2006-06-14 Ross Burton <ross@openedhand.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-06-14  Ross Burton  <ross@openedhand.com>
2
3         * glib/dbus-gobject.c:
4         Free a leaking GArray (surely not!) in dbus_g_method_return.
5
6 2006-06-14  Ross Burton  <ross@openedhand.com>
7
8         * tools/Makefile.am:
9         * tools/dbus-monitor.c:
10         Don't use the GLib bindings in dbus-monitor (patch from Ralf
11         Habacker).
12         
13 2006-06-14  Ross Burton  <ross@openedhand.com>
14
15         * tools/dbus-print-message.c:
16         Also print the object path when outputting signals or method calls.
17
18 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
19
20         * qt/src/Makefile.am: install the qdbus.h header.
21         This allows people to actually use the installed code.
22
23 2006-06-12  Ross Burton  <ross@openedhand.com>
24
25         * glib/dbus-gproxy.c:
26         Don't leak a GArray when firing signals (thank Rob Taylor for review).
27
28 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
29
30         * Released 0.62
31
32 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
33
34         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
35         break pedantic builds. Closes bug 6043 (patch approved by
36         Havoc back in February).
37
38 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
39
40         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
41         that took a QDBusMessage parameter.
42         * qt/src/qdbusbus.h: Add a default flag for RequestName.
43         * qt/tools/dbus.cpp: Don't use automatic call because we might
44         be calling an async method: request a reply.
45
46 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
47
48         * test/qt/*: Update the testcases, including testing the new
49         functionality of sending null QByteArray and QString over the
50         bus. Add new headertest test and restore the old
51         qdbusxmlparser test.
52
53 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
54
55         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
56         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
57
58         * qt/examples/Makefile.am:
59         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
60         form.
61
62         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
63         QByteArray() (nulls) over the bus.
64         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
65         the one that has the signature suffix stripped.
66         * qt/src/qdbusreply.h: Make some methods const.
67
68 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
69
70         Patch from Timo Hoenig <thoenig@suse.de>.
71
72         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
73         required during build to EXTRA_DIST.
74         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
75         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
76         * configure.in: Fix "make dist", take care that the Makefile for
77         qt/dbus is being generated.
78
79 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
80
81         * bus/bus.c: Fix eavesdropping on method calls
82
83 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
84
85         * configure.in:
86         * dbus/dbus-userdb-util.c:
87         Add Solaris console owner patch from Artem Kachitchkine
88
89 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
90
91         * qt/Makfile.am:
92         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
93         reorganisation. Thanks to Timo Hoenig for pointing this out.
94
95 2006-06-06  Robert McQueen  <robot101@debian.org>
96
97         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
98           call to dbus_g_type_get_struct.
99
100 2006-06-06  Robert McQueen  <robot101@debian.org>
101
102         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
103           pointers were put into a GPtrArray-based specialised collection, and
104           then freed along with the array. GValues which you add into
105           collections or maps which have the NOCOPY flag set are assumed to not
106           belong to the caller, so rather than the existing pointer-stealing
107           semantics, they are copied instead. Given that the main consumers of
108           this abstraction are the bindings themselves, I don't think this is
109           too bad, but others should watch their choice of take vs set_static.
110
111 2006-06-06  Robert McQueen  <robot101@debian.org>
112
113         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
114           of g_slist_prepend not being used. Fixed copying of slist-based
115           specialised collections, then wrote a test case and found that it was
116           all broken. Went on to fix iterating and appending too. Good thing
117           nobody uses this code yet.
118
119 2006-06-06  Robert McQueen  <robot101@debian.org>
120
121         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
122           the iterators use gvalue_take_ptrarray_value (the GValues themselves
123           are discarded without unsetting, so it makes no difference whether
124           we take or set_static). Remove cases for G_TYPE_POINTER because
125           there really is nothing useful we can do with them in our
126           specialised types - we *need* boxed copy/free functions at the very
127           least.
128
129 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
130
131         * qt/dbus: Add directory. I had forgotten to add this
132         yesterday after the move...
133
134         * qt/examples/Makefile.am:
135         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
136
137         * qt/tools/Makefile.am:
138         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
139         Added feature to get and set properties.
140         Added validation of service, object path and interface names.
141
142         * qt/tools/dbusidl2cpp.cpp: Two new features:
143         1) Allow specifying both the header and the source file names,
144         by separating them with a colon.
145         2) Don't write an interface output if the -p switch wasn't
146         given, but the -a was.
147
148         * qt/src/*: Fix usage of Iterators and ConstIterators.
149         Fix shadowing of variables by other variables (-Wshadow).
150         Fix keyword-cleanliness in headers.
151         Fix ASCII-cast (QLatin1String, QLatin1Char).
152         Fix validation of member names.
153         Add extra checking of introspection data during XML parsing.
154         Various bug fixes.
155
156 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
157
158         * dbus/Makefile.am:
159         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
160         qt/dbus/qdbus.h now.
161
162 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
163
164         * configure.in: Make --disable-qt actually do
165           something. Patch inspired by Zack Rusin.
166
167 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
168
169         * qt/: Update to Subversion r548032.
170         This includes a big reorganisation of the files inside the
171         subdir.
172
173 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
174
175         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
176         clear:  
177         "Failed to connect to socket <host>:<port> <error>" instead of
178         "Failed to connect to socket <host>: <error>:<port>"
179
180         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
181         for a tcp transport. 
182
183 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
184
185         * qt/*: Update the QtDBus bindings up to revision 546310 in
186         Subversion.
187         This adds the dbuscpp2xml tool, that parses a C++ header and
188         outputs a D-BUS Introspection XML.
189
190 2006-05-21  Havoc Pennington  <hp@redhat.com>
191
192         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
193         is not NULL when it shouldn't be. Also a couple of possible fixes
194         for #4637 though I don't understand why the bug happens, to be
195         honest... also the object constructor has an assert name != NULL
196         and the name is only currently NULL for peer-to-peer proxies that 
197         I don't think anyone uses? So it should be asserting.
198         Anyway, for now at least see if we get an earlier assertion failure.
199
200         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
201         apparently broken code to be sure the tests fail and someone 
202         will fix them...
203
204 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
205
206         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
207         and arrays when they had a single element: has_next returns
208         false, even before you read the element. So, instead, check
209         the array length.
210
211 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
212
213         * qt/qdbusmessage.cpp:
214         * qt/qdbustypehelper_p.h:
215         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
216         the list is a const-reference
217
218 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
219
220         * Adding old doc patch that never got applied
221         
222         * dbus/bus.c (dbus_bus_add_match): Add documentation
223
224         * doc/dbus-specification.xml: Add documentation for the match rules
225           and the AddMatch and RemoveMatch methods
226
227 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
228
229         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
230         call (r535506)
231
232         * qt/dbusidl2cpp.cpp:
233         * qt/qdbusabstractadaptor.cpp:
234         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
235         sibling of the QDBusAbstractAdaptor objects instead of the
236         parent. (r535848)
237
238         * qt/dbusidl2cpp.cpp:
239         * qt/qdbusabstractinterface.cpp:
240         * qt/qdbusabstractinterface.h:
241         * qt/qdbusabstractinterface_p.h:
242         * qt/qdbusinterface.cpp: Make properties in interfaces
243         actually work. The code that was generated would not compile,
244         due to moc calls to functions that did not exist. They now
245         shall. (r536571)
246
247 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
248
249         * Makefile.am:
250         * configure.in:
251         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
252         Thanks to Brad Hards for providing the patch
253
254 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
255
256         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
257         call. (r535506)
258
259 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
260
261         * qt/examples/dbus.cpp: Enhance error messages and use
262         QDBusInterfacePtr.
263
264 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
265
266         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
267         and disable the copy operators. (r533772, r534746)
268
269         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
270
271         * qt/qdbusabstractinterface.cpp:
272         * qt/qdbusabstractinterface.h: Change the default call mode to
273         not use the event loop. Add convenience call() methods that
274         take a CallMode parameter. (r534042)
275
276         * qt/qdbusconnection.h: Change the default call mode to not
277         use the event loop. (r534042)
278
279         * qt/qdbusinterface.cpp:
280         * qt/qdbusinterface.h: Add a method to tell us if the
281         interface is valid (since we don't return a null pointer
282         anymore) (r534099)
283
284         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
285         (r534101)
286
287         * qt/qdbusinternalfilters.cpp: Decouple the introspection
288         function in two so taht we get the chance to introspect
289         without having a QDBusMessage (r534102)
290
291         * qt/qdbusbus.h:
292         * qt/qdbusconnection.cpp:
293         * qt/qdbusconnection_p.h:
294         * qt/qdbusintegrator.cpp: Keep a list of our own names to
295         avoid a round-trip to the server when attempting to introspect
296         one of our own objects. Also make sure the filter functions
297         match the empty interface as well. (r534108)
298         Don't keep the connection names. Instead, trust the unique
299         connection name (r534111)
300         Remove event loop usage (r534112)
301
302 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
303
304         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
305         Brad Hards.
306
307 2006-04-28  Robert McQueen  <robot101@debian.org>
308
309         * glib/dbus-gproxy.c: Fix properties so that they can be given in
310         any order, making it easier for people who inherit from this
311         object.
312
313 2006-04-28  Robert McQueen  <robot101@debian.org>
314
315         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
316         of memory from within pointer arrays and lists. Fixes bug #6300.
317
318 2006-04-28  Robert McQueen  <robot101@debian.org>
319
320         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
321         generating struct signatures. Fixes bug #6083.
322
323 2006-04-28  Robert McQueen  <robot101@debian.org>
324
325         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
326         to qdbusconnection_p.moc.
327
328 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
329
330         * README, INSTALL: Doc fixes
331         Patch from Brad Hards <bradh at frogmouth.net>
332
333 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
334
335         * qt/examples/dbus.cpp: Use the new merged-interface mode for
336         the dynamic meta object. No need to guess which interface to
337         call.
338
339 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
340
341         * qt/qdbusconnection_p.h:
342         * qt/qdbusmetaobject.cpp:
343         * qt/qdbusmetaobject_p.h:
344         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
345         for the dynamic meta object. No need to guess which
346         interface to call.
347         * qt/qdbusabstractinterface_p.h:
348         * qt/qdbusconnection.cpp:
349         * qt/qdbusintegrator.cpp:
350         * qt/qdbusinterface.cpp:
351         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
352         Add a QDBusRef that looks and behaves like DCOPRef.
353
354 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
355
356         * dbus/dbus-connection.c: Interfaces are optional in method
357         calls, so don't give up if the interface parameter is NULL.
358         Patch reviewed by Havoc Pennington.
359
360 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
361
362         * qt/qdbusreply.h: Add default constructor and operator=
363           (r532625)
364         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
365           in public headers (r532952)
366         * qt/qdbusabstractinterface.cpp:
367         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
368           make it the default (r532951)
369
370 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
371
372         * dbus/dbus-connection.c: Fix asserts
373         Patch from Tim Moloney <t.moloney at verizon.net>
374
375 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
376
377         * mono/Connection.cs, mono/Message.cs: Check Target type
378         Patch from Aaron Bockover (abockover at novell.com)
379
380 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
381
382         * INSTALL: fine-tune the requirements for the Qt4 binding.
383
384 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
385
386         * tools/dbus-print-message.c: Added support for printing of all 
387           remaining data types. Fixed logic for indentation of compound
388           data types.
389         
390 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
391
392         * INSTALL: fill out content of file providing DBus specific
393           build installations, followed by generic Auto* INSTALL file
394           content
395         
396 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
397
398         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
399           Patch by Stefan Eilers. (r529537)
400
401 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
402
403         * qt/qdbusinternalfilters.cpp: Don't show the parent's
404           contents (r528208)
405
406 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
407
408         * qt/Makefile.am: fix the dependency for
409           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
410           not in qdbusconnection.cpp.
411           Thanks to Jakub Stachowski <stachowski@hypair.net> for
412           spotting this.
413
414 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
415
416         * qt/examples/listnames.cpp:
417         * qt/examples/Makefile.am: Three ways to list the names on the
418           bus.
419
420 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
421
422         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
423           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
424
425 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
426
427         Merge from Subversion:
428         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
429           something that exists (r526315)
430         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
431           slots/signals (r526316)
432         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
433           also return an unknown-method error if the parameters don't
434           match for org.freedesktop.DBus.Properties. (r526842)
435         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
436         * qt/qdbusintegrator.cpp: Restore the proper order of
437           delivery: don't make method returns be delivered on priority
438           (r528150)
439
440 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
441
442         * configure.in qt/Makefile.am: add qt/examples
443         * qt/examples: Add QtDBus example programs:
444           - hello: Hello, World
445           - ping: Simple method-calling program
446           - pong: Simple object-exporting program (not using adaptors)
447           - complexping: Interactive method-calling program 
448                 (also gets and sets properties).
449           - complexpong: Sample program exporting methods, signals and
450                 properties, using adaptors.
451           - dbus: Simple implementation of a generic method-calling
452                 program, similar to 'dbus-send', but with semantics
453                 similar to 'dcop'.
454           - chat: Simplistic chat program, implemented using signals
455                 and the system bus. Looks like IRC.
456
457 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
458
459         * configure.in: Detect QtGui (necessary for one of the
460           example programs). Note: this increases the minimum required
461           version of Qt to 4.1.3.
462
463 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
464
465         * test/qt/*: Sync with KDE Subversion revision 523647.
466         Update the testcases to the new API. Remove testcases for
467         classes that are no longer public or have been removed.
468
469 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
470
471         * qt/*: 
472         * dbus/qdbus.h: Sync with KDE Subversion revision
473         523647. Hopefully, this will be the last of the
474         source-incompatible changes. Documentation has been improved;
475         support for QList<basic-types> has been added; QDBusObject is
476         gone; QDBus(Abstract)Interface is now a QObject with
477         auto-generated meta-object; QDBusIntrospection is marked
478         private, since QMetaObject can be used now; lots of bugfixes.
479
480 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
481
482         Patch from Milosz Derezynski <internalerror at gmail.com>
483         
484         * configure.in:
485         Output the service directory in the configure summary
486
487         * dbus-1.pc.in:
488         Add session_bus_services_dir
489
490 2006-03-10  Ross Burton  <ross@openedhand.com>
491
492         * tools/dbus-print-message.c:
493         Add support for object paths and signatures.
494
495 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
496
497         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
498         config reload.
499         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
500         information caches
501         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
502         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
503         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
504         * dbus/dbus-userdb.h: Add function to flush all user/group information
505         caches.
506
507 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
508
509         * qt/dbusidl2cpp.cpp:
510         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
511         for dcopidl2cpp, found in the KDE installations (or the more
512         modern kalyptus): generate Qt4 C++ code for the input XML
513         introspection. Currently no IDL parsing.
514
515 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
516
517         * test/qt/*: Update the self-tests.
518
519 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
520
521         * qt/*: 
522         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
523         represents the first feature-complete version of the Qt4
524         bindings since I took ove maintainership.
525
526 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
527
528         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
529         dir. This is C++, so we can't use the DBus ones.
530
531 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
532
533         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
534         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
535
536 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
537
538         * dbus/dbus-connection.c: 
539         (_dbus_connection_block_pending_call):
540         Check to see if our data has already been read off the connection
541         by another blocking pending call before we block in poll.
542         (check_for_reply_and_update_dispatch_unlocked):
543         Code taken from _dbus_connection_block_pending_call - checks for
544         an already read reply and updates the dispatch if there is one.
545
546         * test/name-test/test-pending-call-dispatch.c:
547         New test for making sure we don't get stuck polling a 
548         dbus connection which has no data on the socket when
549         blocking out of order on two or more pending calls.
550
551 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
552
553         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
554         make/automake don't detect that we're talking about the same
555         .lo file if I specify the full path to the source files.
556
557 2006-02-26  Havoc Pennington  <hp@redhat.com>
558
559         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
560
561         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
562         session bus variable is unset, suggest "man dbus-launch" and "man
563         dbus-daemon" to figure out how to fix the problem
564
565 2006-02-25  Havoc Pennington  <hp@redhat.com>
566
567         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
568         should make this thing use the new glib options parser
569
570 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
571
572         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
573         .lo files taking moc sources.
574
575 2006-02-25  Havoc Pennington  <hp@redhat.com>
576
577         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
578         and install it as a public header
579
580 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
581
582         * Released 0.61
583
584 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
585         
586         * proxies.py: Fix the callchain
587
588 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
589         
590         * patch from Sjoerd Simons <sjoerd at debian.org>:      
591
592         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
593         dbus/dbus-sysdeps.c
594
595         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
596         call _dbus_group_info_free_allocated which causes infinite loop,
597         correctly call _dbus_group_info_free
598
599 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
600
601         * qt/qdbusinterface_p.h:
602         * qt/qdbusinterface.cpp: Use the standard
603         org.freedesktop.DBus.Method.NoReply annotation for the "async"
604         calls instead of creating one for us.
605
606         * qt/qdbusconnection_p.h:
607         * qt/qdbusintegrator.cpp: Remove debugging code.
608
609         * qt/qdbusintegrator.cpp:
610         * qt/qdbusmessage.cpp:
611         * qt/qdbusmessage_p.h:
612         * qt/qdbusmessage.h: Change the behaviour of automatic
613         reply-sending: now a reply is always sent, unless the caller
614         didn't request one or if the user slot has already sent one.
615
616 2006-02-16  Robert McQueen  <robot101@debian.org>
617
618         * configure.in: Patch from Debian packages by Sjoerd Simons
619         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
620         arguments so it's possible to build both bindings in the
621         same tree.
622
623         * qt/Makefile.am: Fix truncated value so that make dist works.
624
625 2006-02-16  Robert McQueen  <robot101@debian.org>
626
627         * acinclude.m4, configure.in: Patch from Brad Hards
628         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
629         improving quoting, re-ordering a few checks, and a few other
630         aesthetic tidy-ups.
631
632 2006-02-16  Robert McQueen  <robot101@debian.org>
633
634         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
635         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
636         assertion that the next element to read from the iter is fixed in
637         size. This is not the case when you are at the end of the iter,
638         because the next element type is INVALID.
639
640         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
641         a bogus assert which means that you may not initialise a 0-length
642         string unless you provide a non-NULL pointer. This prevented
643         you from marshalling messages containing zero-length arrays in
644         some cases.
645
646         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
647         from Rob to correct bogus asserts when trying to demarshal an
648         array and get_fixed_array got you 0 elements. Append nothing to
649         the GArray in this case.
650
651         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
652         an empty array via the glib bindings. Without all of the above
653         patches, this new test fails.
654
655 2006-02-16  Robert McQueen  <robot101@debian.org>
656
657         * glib/dbus-gmain.c: Make the previous commit compile.
658
659         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
660         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
661         specify sender_keyword="foo", path_keyword="bar" when adding
662         a signal listener, so that you can bind to signals generically
663         but still do something useful in your callback.
664
665         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
666         chars so that they're not cast to chars and made negative. Thanks
667         to Jakub Stachowski for reporting this and testing the fix.
668
669 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
670
671         * dbus/dbus-glib.h:
672         * glib/dbus-gmain.h:
673         (dbus_g_connection_open): new method for openning
674         a connection to an arbitrary address in the glib bindings
675
676         * ChangeLog: checkin last entry which doesn't seem to be commited
677
678 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
679
680         * tools/dbus-launch.c: Fixed sh syntax output
681
682 2006-02-13  Robert McQueen  <robot101@debian.org>
683
684         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
685         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
686         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
687         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
688         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
689         missing piece of the glib bindings jigsaw puzzle. This modifies
690         the existing specialised types to have N type parameters (rather
691         than the current 1 or 2 for arrays and dictionaries respectively).
692         You can then use this to get a glib type to represent any arbitrary
693         D-Bus struct type using dbus_g_type_get_struct. The only
694         implementation of these types is with GValueArrays as before,
695         but it's now possible to store these in arrays, emit them in
696         signals, etc.
697
698 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
699
700         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
701         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
702         <thiago.macieira at trolltech.com>
703
704 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
705
706         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
707         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
708
709 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
710
711         * bus/connection.c (bus_connections_expect_reply): Make
712         pending reply limit not common to all connections (Bug #5416)
713         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
714
715 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
716
717         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
718
719 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
720
721         * gcj/Makefile.am: point to correct jar command (Bug #4529)
722         patch from Doug Goldstein <cardoe at gentoo.org>
723
724 2006-02-09  Joe Shaw  <joeshaw@novell.com>
725
726         * mono/Arguments.cs: Fix a magic number in the mono bindings
727         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
728
729 2006-01-27  Robert McQueen  <robot101@debian.org>
730
731         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
732         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
733         when generating the client-side methods, instead of overloading
734         CSymbol which broke everything horribly. My apologies.
735
736 2006-01-27  Robert McQueen  <robot101@debian.org>
737
738         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
739         by me and Rob Taylor to add a simple_free function to D-Bus map
740         and collection types, which allows those types which can be freed
741         with a GDestroyNotify (such as GHashTables and GArrays, but not
742         GPtrArrays) to be stored as the values in hashtables.
743
744         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
745         Patch by Rob Taylor to add nested dicts to the glib tests to check
746         the above code works, and appears not to leak when called repeatedly.
747
748 2006-01-27  Robert McQueen  <robot101@debian.org>
749
750         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
751         to free a D-Bus allocated string with dbus_free () instead of
752         g_free ().
753
754 2006-01-27  Iain Holmes  <iain@openedhand.com>
755
756         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
757         method from being called multiple times.
758
759 2006-01-19  Robert McQueen  <robot101@debian.org>
760
761         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
762         <rob.taylor@collabora.co.uk> to add support for generating bindings
763         to arrays that are represented as GPtrArrays rather than GArrays (ie
764         size-variable things, such as strings, objects, structs, etc).
765
766 2006-01-05  Robert McQueen  <robot101@debian.org>
767
768         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
769         <ricardo.kekki@movial.fi> to make it possible to inherit from
770         DBusGProxy, by splitting the DBusGProxy struct into a public part and
771         a private part, and moving the setting of the DBusGProxyManager into a
772         connection property, allowing proper GObject construction.
773
774 2006-01-05  Robert McQueen  <robot101@debian.org>
775
776         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
777         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
778         annotations when generating glib client bindings.
779
780 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
781
782         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
783
784         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
785
786 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
787
788         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
789
790 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
791
792         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
793
794 2005-12-19  Ross Burton  <ross@openedhand.com>
795
796         * doc/dbus-tutorial.xml:
797         Document the Glib client-side bindings, and list all possible annotations.
798
799 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
800
801         * dbus/bus.c (dbus_bus_release_name): Add documentation
802
803 2005-12-06  Robert McQueen  <robot101@debian.org>
804
805         * python/service.py: s/sucessful/successful/ so we're allocating to
806         and reading from the same variable. Oops.
807
808 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
809
810         * Released 0.60
811
812 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
813
814         * test/qt/Makefile.am: build from srcdir
815
816         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
817         Note - this code is wrong and needs to be fixed by the Qt binding
818         developers.  The flags should be treated as bitfields and not enums.
819
820         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
821
822 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
823
824         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
825           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
826           in production code
827
828 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
829
830         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
831         method for getting messages off the bus in the absence of a
832         mainloop.  This method is much like 
833         dbus_connection_read_write_dispatch except it does not dispatch
834         the messages to a registered filter function.  Instead it
835         allows a developer to process messages by directly popping
836         them off the bus.
837
838 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
839
840         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
841         the parser to continue instead of returning error
842         (bus_desktop_file_load): Do not free parser data when
843         parse_section_start or parse_key_value fails because it was 
844         already freed by parser_free (patch from Carlos Garcia Campos  
845         <carlosgc at gnome.org>)
846
847 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
848
849         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
850         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
851         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
852         test/test-segfault.c, test/test-utils.c,
853         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
854         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
855         Various cleanup of dead code and compiler warnings (patch from
856         Kjartan Maraas <kmaraas at gnome.org>) 
857
858 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
859
860         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
861         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
862
863 2005-11-27  Robert McQueen  <robot101@debian.org>
864
865         * python/dbus_bindings.pyx: Repair my previous commit which reverted
866         part of the preceding one. Oops. Merge patch by Johan Hedberg
867         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
868         on big-endian platforms.
869
870         * test/python/test-client.py: Add some 16-bit integers to the test
871         values.
872
873 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
874
875         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
876         method return message for property getters
877
878 2005-11-27  Robert McQueen  <robot101@debian.org>
879
880         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
881         with type v of an instance of dbus.Variant(foo, type='x') caused
882         it to be boxed twice before sending over the bus.
883
884         * python/dbus_bindings.pyx, python/service.py,
885         test/python/test-client.py: Update the constants for the new
886         request_name flags, and update comments/test cases now that queueing
887         is the default action.
888
889 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
890
891         * configure.in:
892         - Change version to 0.60 for impending release
893         - upped the sonames because of ABI and API breakage
894
895 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
896
897         * configure.in: Add test/name-test/Makefile to the generated
898         Makefile list
899
900         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
901         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
902         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
903         not to queue an ower if it can't be the primary owner
904
905         * bus/bus.h: Add new internal BusOwner struct
906
907         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
908         to bus_registry_ensure and don't set the prohibit_replacement flag
909         since they are now set per BusOwner and not per name.
910         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
911         that returns the list of connections in a name's connection queue
912         
913         * bus/services.c (struct BusService): remove prohibit_replacement field
914         (struct BusOwner): new struct for keeping track of queued connections
915         and their associated flags for the queue
916         (struct BusRegistry): add a BusOwner memory pool
917         (bus_registry_new): initialize the BusOwner memory pool
918         (bus_registry_unref): free the BusOwner memory pool
919         (_bus_service_find_owner_link): new internal method for
920         searching the queue for a specific connection
921         (bus_owner_set_flags): new method for adding setting the flags on a
922         bus owner
923         (bus_owner_new): new method that creates a BusOwner object from the
924         pool and sets its flags
925         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
926         (bus_registry_ensure): Add the flags parameter
927         (bus_registry_acquire_service): Switch from using raw connections to
928         using the BusOwner struct
929         Add new state machine for dealing with the new set of flags
930         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
931         cancel_ownership, free_ownership_cancel_data, 
932         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
933         restore_ownership, free_ownership_restore_data, 
934         add_restore_ownership_to_transaction): Switch to using BusOwner 
935         instead of raw connections
936         (bus_service_add_owner): Add flags parameter
937         Switch to using BusOwner instead of raw connections
938         Add state machine for dealing with the new set of flags
939         (bus_service_swap_owner): Swaps the first and second owners in the
940         queue.  Used to make sure proper signals are sent when a service looses 
941         or gains primary ownership.  We never insert an owner at the top of the
942         queue.  Instead we insert it in the second position and then swap.
943         (bus_service_remove_owner): Remove the owner from the queue sending
944         out the NameLost and NameOwnerChanged signals if the we were the 
945         primary owner
946         (bus_service_get_primary_owners_connection): New method that extracts
947         the connection from the primary owner
948         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
949         connection
950         (bus_service_get_allow_replacement): Changed from the old 
951         bus_service_get_prohibit_replacement method.  Checks the flags of the 
952         primary owner and returns if it can be replaced or not
953         (bus_service_set_prohibit_replacement): removed
954         (bus_service_has_owner): returns TRUE if and owner with
955         the specified connection exists in the queue
956         
957         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
958         method that only compiles if tests are enabled.  Allows us to get the 
959         unique name of a connection so we can check it against the queue when
960         doing regression tests
961
962         * bus/activation.c (bus_activation_send_pending_auto_activate),
963         bus/dispatch.c (bus_dispatch),  
964         bus/driver.c (bus_driver_handle_get_service_owner, 
965         bus_driver_handle_get_connection_unix_user, 
966         bus_driver_handle_get_connection_unix_process_id,
967         bus_driver_handle_get_connection_selinux_security_context),
968         bus/signals.c (connection_is_primary_owner): 
969         use bus_service_get_primary_owners_connection instead of
970         bus_service_get_primary_owner
971
972         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
973         _dbus_listen_unix_socket): Calculate the length of the socket
974         path and use that instead of using a fixed length which was
975         causing socket names to contain many trailing Nul bytes.
976
977         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
978         (dbus_g_method_get_sender): New method for extracting the sender 
979         from a DBusGMethodInvocation
980         (dbus_g_method_return_get_reply): changed name to 
981         dbus_g_method_get_reply
982         (dbus_g_method_return_send_reply): changed name to
983         dbus_g_method_send reply
984
985         * doc/dbus-specification.xml: New docs that describe how the new
986         queueing system works and talks about the changes to the how
987         we specify socket names
988
989         * glib/examples/example-service.c, 
990         glib/examples/example-signal-emitter.c,
991         glib/examples/statemachine/statemachine-server.c:
992         Changed the RequestName flags to the new system
993
994         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
995         regression test suite for testing various states of the new
996         queueing system
997         
998 2005-11-15  Robert McQueen  <robot101@debian.org>
999
1000         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1001         Taylor to add two methods, dbus_g_method_return_get_reply and
1002         dbus_g_method_return_send_reply, to allow you to get the reply
1003         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1004         and send it. The GLib bindings can't marshal a return value of
1005         something like a(s) if the array is empty - ultimately they should be
1006         made to heed the signature of the out arguments as the Python bindings
1007         now can, but this is a workable interim solution which might have
1008         other applications.
1009
1010 2005-11-15  Robert McQueen  <robot101@debian.org>
1011
1012         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1013         method to org.freedesktop.DBus to release a bus name or give up
1014         waiting in the queue for it.
1015
1016         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1017         dbus_bus_release_name method to send the ReleaseName method calls.
1018         Add constants for the return values to dbus/dbus-shared.h.
1019
1020         * doc/dbus-specification.xml: Document the new ReleaseName method
1021         in the specification.
1022
1023         * python/dbus_bindings.pyx: Add a low-level python binding for the
1024         release name method.
1025
1026         * python/exceptions.py, python/service.py: Make freeing BusName
1027         objects release the name. Add a NameExistsException, and fix a
1028         bug with creating UnknownMethodException.
1029
1030         * test/python/test-client.py: Add tests for freeing BusName
1031         objects causing names to be released.
1032
1033 2005-11-14  Robert McQueen  <robot101@debian.org>
1034
1035         * python/service.py: Include the traceback in the error reply when we
1036         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1037
1038 2005-11-14  David Zeuthen  <davidz@redhat.com>
1039
1040         Patch from Timo Hoenig <thoenig@suse.de>.
1041
1042         * bus/bus.c: I've recently investigated why the automatic reload
1043         of configuration files does not work as expected.
1044
1045         Currently, reloading configuration files does only work when
1046         running dbus-daemon with --nodaemon.  If we are running as daemon
1047         we're hitting a dnotify bug once we fork the process.
1048
1049         We're initializing the dnotify fds before calling fork().  Once
1050         the child process forked it does still have the fds (and they
1051         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1052         getting SIGIO as changes are made to the configuration files.
1053
1054         The attached patch moves the initialization of the dnotify fds to
1055         process_config_postinit().  This is safe for all current code
1056         paths and solves the dnotify disfunction.  If we're running
1057         dbus-daemon as daemon the fds for dnotify are now being
1058         initialized after fork() for the child process.
1059
1060         * configure.in: The current configure.in check for dnotify probes
1061         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1062         match for 'xlinux', too. Additionally I have adapted the configure
1063         option's style to match with the others.
1064
1065 2005-11-14  Robert McQueen  <robot101@debian.org>
1066
1067         * python/decorators.py, python/service.py: Add a new argument to the
1068         dbus.service.method decorator called sender_keyword, which if set,
1069         specifies the name of an argument which will be provided the bus
1070         name of the method caller.
1071
1072         * test/python/test-client.py, test/python/test-service.py: Add a
1073         method and test to check the sender_keyword functionality.
1074
1075 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1076
1077         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1078         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1079         Simons <sjoerd at luon.net>)
1080
1081         * AUTHORS: Add Robert McQueen for his work on the Python
1082         Bindings and other parts of D-Bus
1083
1084 2005-11-07  Robert McQueen  <robot101@debian.org>
1085
1086         * python/decorators.py: Change emit_signal function to use the
1087         signature annotation of the signal when marhsalling the arguments from
1088         the service. Fix a bug where the code checking signature length
1089         against argument length referenced the wrong variable.
1090
1091         * python/introspect_parser.py: Avoid adding the type signature of
1092         signal arguments to any methods which occur after them in the
1093         introspection data (!) by making the parser a little more careful
1094         about its current state.
1095
1096         * python/service.py: Remove debug prints from last commit (again :D).
1097
1098         * test/python/test-client.py, test/python/test-service.py: Add test
1099         signals with signature decorators to test the strict marshalling code
1100         gives errors at the right time. Could do with checking the signals
1101         actually get emitted too, given that the test does nothing with
1102         signals at the moment...
1103
1104 2005-11-07  Robert McQueen  <robot101@debian.org>
1105
1106         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1107         instances to stop madness of creating new instances representing
1108         the same bus connection all the time, rendering any tracking of
1109         match rules and bus names quite meaningless. Caught a bug where
1110         the private argument to SessionBus() and friends was being passed
1111         in as use_default_mainloop by mistake. Still some problems with
1112         multiple dbus_binding.Connection instances representing the same
1113         low-level connection (eg when you use both SessionBus() and
1114         StarterBus() in same process), but it's a lot better now than it
1115         was.
1116
1117         * python/dbus_bindings.pyx: Add constants with the return values
1118         for bus_request_name().
1119
1120         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1121         and retrieve the same instances for the same name, so deletion can be
1122         done with refcounting. Also now throws some kind of error if you
1123         don't actually get the name you requested, unlike previously...
1124
1125         * test/python/test-client.py: Add tests for instance caching of buses
1126         and bus name objects.
1127
1128 2005-11-04  Robert McQueen  <robot101@debian.org>
1129
1130         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1131         marshalling of boolean values. Add some booleans to the values in
1132         the test client.
1133
1134         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1135         argument to the dbus.service.method decorator, which allows you to
1136         name arguments to take two callback functions for replying with
1137         return values or an exception.
1138
1139         * test/python/test-client.py, test/python/test-service.py: Add test
1140         case using asynchronous method reply functions, both return values and
1141         errors, and from within both the function itself and from a mainloop
1142         callback.
1143
1144         * python/decorators.py, python/service.py: Perform checking that the
1145         number of method/signal arguments matches the number of types in the
1146         signature at class loading time, not when you first introspect the
1147         class.
1148
1149         * python/service.py: Remove debug print left by the last commit.
1150
1151 2005-11-03  Robert McQueen  <robot101@debian.org>
1152
1153         * python/service.py: Heavy refactoring of method invocation, with
1154         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1155         in favour of a new _message_cb that uses seperate functions for
1156         looking up the method to call, marshalling the return values, and
1157         sending exceptions as errors, and is easier to follow as a
1158         consequence.  Fixes some corner cases about returning things that
1159         don't match your declared out_signature, allows exceptions to define
1160         _dbus_error_name and have it be sent over the bus as the error name,
1161         and paves the way for cool stuff like heeding the message no reply
1162         flag, asynchronous method implementations, informing the method of the
1163         sender, and including backtraces in the error messages.
1164
1165         * test/python/test-client.py: Catch and print exceptions thrown in the
1166         async callback tests, rather than passing them to the low-level
1167         bindings to be ignored in a noisy and frustrating manner.
1168
1169 2005-11-03  Robert McQueen  <robot101@debian.org>
1170
1171         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1172         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1173         tweak others to be consistent.
1174
1175         * test/python/test-client.py: Tweak output of testInheritance.
1176
1177 2005-10-29  Robert McQueen  <robot101@debian.org>
1178
1179         * python/service.py: Major changes to allow multiple inheritance
1180         from classes that define D-Bus interfaces:
1181         
1182          1. Create a new Interface class which is the parent class of
1183             Object, and make the ObjectType metaclass into InterfaceType.
1184         
1185          2. Patch written with Rob Taylor to replace use of method_vtable
1186             with code that walks the class's __MRO__ (method resolution order)
1187             to behave like Python does when invoking methods and allow
1188             overriding as you'd expect. Code is quite tricky because
1189             we have to find two methods, the one to invoke which has the
1190             right name and isn't decorated with the /wrong/ interface,
1191             and the one to pick up the signatures from which is decorated
1192             with the right interface.
1193         
1194             The same caveats apply as to normal multiple inheritance -
1195             this has undefined behaviour if you try and inherit from two
1196             classes that define a method with the same name but are
1197             decorated with different interfaces. You should decorate
1198             your overriding method with the interface you want.
1199         
1200          3. Replace grungy introspection XML generation code in the metaclass
1201             with dictionaries that cope correctly with multiple inheritance
1202             and the overriding of methods. This also uses the signature
1203             decorations to provide correct introspection data, including
1204             the debut appearance of the types of your return values. :D
1205
1206         * test/python/test-client.py, test/python/test-service.py: Add a test
1207         case to try invoking an method that overrides one inherited from a
1208         D-Bus interface class.
1209
1210 2005-10-29  Robert McQueen  <robot101@debian.org>
1211
1212         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1213         Add checking for the end of struct character when marshalling a
1214         struct in MessageIter.append_strict.
1215
1216         * python/examples/example-service.py,
1217         python/examples/gconf-proxy-service.py,
1218         python/examples/gconf-proxy-service2.py: Update to use gobject
1219         mainloop directly rather than appearing to depend on gtk.
1220
1221         * python/test/test-client.py, python/test/test-server.py: Remove
1222         obsolete and broken test scripts for old bindings. We have up to date
1223         and working tests in test/python/.
1224
1225 2005-10-29  Robert McQueen  <robot101@debian.org>
1226
1227         * python/decorators.py: Add optional arguments to the method and
1228         signal decorators to allow you to specify the signature of arguments
1229         and return values. Preserve the doc strings of signal functions in the
1230         decorated version, for pydoc and friends.
1231
1232         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1233         parse_signature_block function with an iterable dbus.Signature()
1234         type. Fix a bug in MessageIter.append_strict where you could append
1235         anything by claiming it was a string.
1236
1237         * python/service.py: Use the out_signature decoration on methods to
1238         marshal return values, meaning you no longer require dbus.Array()
1239         or dbus.Dictionary() to indicate the type when returning empty
1240         arrays or dictionaries. Fix a bug where exceptions which are defined
1241         in __main__ are not turned into error replies.
1242
1243         * test/python/test-client.py, test/python/test-service.py: Add test
1244         for correct marshalling of return values according to out_signature.
1245         Fix a bug in the async call test where the error_handler is missing a
1246         self argument.
1247
1248 2005-10-29  Robert McQueen  <robot101@debian.org>
1249
1250         * glib/Makefile.am, glib/examples/Makefile.am,
1251         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1252         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1253
1254         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1255
1256         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1257         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1258         the command line.
1259
1260 2005-10-27  Ross Burton  <ross@openedhand.com>
1261
1262         * dbus/dbus-marshal-header.c:
1263         Remove dead code.
1264
1265         * glib/dbus-gobject.c:
1266         Stop compiler warning.
1267
1268 2005-10-25  Ross Burton  <ross@openedhand.com>
1269
1270         * dbus/dbus-auth.c:
1271         * dbus/dbus-server-unix.c:
1272         * dbus/dbus-transport-unix.c:
1273         * glib/dbus-gmain.c:
1274         * glib/dbus-gobject.c:
1275         Add some const keywords.
1276
1277 2005-10-25  Ross Burton  <ross@openedhand.com>
1278
1279         * doc/dbus-specification.xml:
1280         Document the NoReply annotation.
1281
1282         * glib/dbus-binding-tool-glib.h:
1283         * glib/dbus-binding-tool-glib.c:
1284         Respect the NoReply annotation.
1285
1286 2005-10-24  Robert McQueen <robot101@debian.org>
1287
1288         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1289         derive from unicode instead of str, and encode/decode UTF-8 when
1290         marshalling/unmarshalling bus messages
1291
1292         * python/introspect_parser.py: encode introspection data as UTF-8
1293         before passing the buffer into libxml2
1294
1295         * test/python/test-client.py: add unicode test strings
1296
1297         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1298         ignore generated python test files
1299
1300 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1301
1302         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1303         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1304         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1305
1306         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1307         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1308         when constructing struct signatures
1309
1310         * python/_dbus.py (Bus): handle private connections using the
1311         private keyword in the constructor. defaults to private=False
1312         (Bus::close): new method to close a connection to the bus
1313
1314         * python/dbus_bindings.pyx (Connection::close): renamed method
1315         was previously called disconnect
1316         (bus_get): now supports getting a private connection
1317
1318         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1319         keyword is set to True.  if it is, execute the method without waiting
1320         for a reply
1321         (ProxyObject::_introspect_execute_queue): new method for executing
1322         all the pending methods that were waiting for the introspect to
1323         finish.  this is called when introspect either succeeds or fails
1324         (ProxyObject::_introspect_error_handler): call queued methods
1325
1326 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1327
1328         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1329         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1330
1331         * python/service.py (Object::_message_cb): handle exceptions correctly
1332         by sending them over the wire to the calling app.  This makes sure
1333         the client returns immediately instead of waiting the 15 seconds to
1334         timeout.
1335
1336         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1337         Add a test to benchmark how long it takes to introspect a service and 
1338         call a method which returns a large element (pretty fast)
1339
1340         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1341         method which pushes a lot of data
1342
1343 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1344
1345         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1346         reclaim memory outside of the loop and use del istead of just setting
1347         the key to None
1348
1349 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1350
1351         * python/service.py (ObjectType::_reflect_on_signal): Always close
1352         signal tag even when there are no arguments
1353
1354 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1355
1356         * configure.in: Set mono, mono-docs and Qt3 to default
1357         to no instead of auto when building.  These bindings do not
1358         have full time maintainers and will not be supported for the
1359         1.0 release.
1360
1361 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1362
1363         patches from Michael Krivoruchko <misha at sun.com>: 
1364         
1365         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1366         _dbus_connection_message_sent, 
1367         _dbus_connection_send_preallocated_unlocked_no_update, 
1368         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1369         is NULL when calling _dbus_verbose
1370
1371         * configure.in: check for functions getpeerucred and getpeereid
1372
1373         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1374         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1375         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1376         Patch was only tested on Solaris 10 x86 so it might be issues
1377         with other platforms (i.e. BSDs and MacOSX)
1378         
1379
1380 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1381
1382         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1383         instead of marshal basic so we can handle recursive types in a variant
1384
1385         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1386         in variants
1387
1388         * test/glib/test-service-glib.c, test-service-glib.xml
1389         (my_object_echo_variant [EchoVariant], 
1390         my_object_process_variant_of_array_of_ints123
1391         [ProcessVariantOfArrayOfInts123]): 
1392         Add two test methods
1393
1394         * python/introspect_parser.py: New module for parsing introspect
1395         data.
1396
1397         * python/dbus_bindings.pyx:
1398         (various places): when throwing errors fix to use errormsg instead 
1399         of message local variable because Pyrex can get confused with other 
1400         message variables (initial patch by Robert McQueen 
1401         <robert.mcqueen at collabora.co.uk>)
1402         (MessageIter::parse_signature_block): new method for getting the next
1403         block in a signiture.
1404         (MessageIter::append_strict): new method for appending values strictly
1405         using the passed in signature instead of guessing at the type
1406         (MessageItter:: append_dict, append_struct, append_array): use 
1407         signatures to marshal children if the signature is available
1408         
1409         * python/exceptions.py (IntrospectionParserException): new exception
1410
1411         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1412         introspected signatures if available, else we fall back to the
1413         old way of doing things.
1414         (ProxyObject::_introspect_reply_handler ): parse introspection data
1415         
1416         * python/service.py (ObjectType::_reflect_on_method): Properly
1417         terminate <method> if there are no args in the reflection data
1418
1419         * test/python/test-client.py: add tests for talking with the GLib
1420         test server.  This gives us better coverage for introspection since
1421         python to python will always generate arguments as variants.  It also
1422         allows us to test the robustness of the GLib bindings and interlanguage
1423         communications.
1424
1425         
1426 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1427
1428         * bus/driver.c (bus_driver_handle_introspect): Add signals
1429         to the introspect data. (patch from Daniel P. Berrange 
1430         <dan at berrange.com>)
1431
1432         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1433         
1434         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1435         _dbus_connection_run_builtin_filters): Changed these to
1436         be unlock_no_update functions and call 
1437         _dbus_connection_send_unlocked_no_update instead of
1438         dbus_connection_send to avoid locking errors.
1439         
1440         * doc/TODO: Removed the make Ping test TODO
1441         
1442 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1443
1444         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1445         We now copy the message from a DBusError and then free 
1446         the error object befor throwing the error
1447
1448         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1449         DBusBindingOutputMode enum which was causing a warning.
1450         #include <time.h> so using time_t is explicitly defined
1451
1452 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1453
1454         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1455         - dbus/dbus-bus.c
1456         (internal_bus_get): new method that take over the heavy lifting
1457         of dbus_bus_get and adds the ability to get a private connection
1458         to the bus
1459         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1460         interface as in previous versions
1461         (dbus_bus_get_private): new method that is a wrapper to 
1462         internal_bus_get to get a private connection to the bus
1463
1464         - dbus/dbus-bus.h
1465         (dbus_bus_get_private): add as a public libdbus interface
1466
1467         - dbus-1.pc.in: output system_bus_default_address and 
1468         sysconfdir variables so apps can use them when compiling
1469
1470 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1471         * dbus/qt: New Qt bindings
1472
1473 2005-09-12  Waldo Bastian  <bastian@kde.org>
1474
1475         * dbus/dbus-marshal-validate.c,
1476         doc/dbus-specification.xml, test/Makefile.am,
1477         test/test-names.c: allow hyphens in bus names.
1478
1479 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1480
1481         * test/data/auth/fallback.auth-script: we don't
1482         retry the EXTERNAL method when we know its going
1483         to fail anymore.
1484
1485 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1486
1487         * dbus/dbus-connection-internal.h: rename
1488         (add|remove|toggle)_(watch|timeout) to unlocked()
1489         
1490         * dbus/dbus-connection.c: ditto.
1491         
1492         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1493         Update some callers for the renaming.
1494
1495 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1496
1497         * dbus/dbus-auth.c: (record_mechanisms): don't
1498         retry the first auth mechanism because we know
1499         we're just going to get rejected again.
1500         
1501         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1502         Fix thinko ... and what a nasty little bugger to
1503         track down you were ...
1504
1505         * dbus/dbus-connection.c:
1506         (_dbus_connection_add_watch),
1507         (_dbus_connection_remove_watch): add note about
1508         these needing the connection to be locked.
1509         (_dbus_connection_get_dispatch_status_unlocked):
1510         set status to DATA_REMAINS when we queue the
1511         disconnected message.
1512         
1513         * bus/dispatch.c:
1514         (bus_dispatch): fix warning.
1515         (check_existent_service_no_auto_start):
1516         Expect ChildSignaled error too.
1517         (check_existent_hello_from_self): fix another
1518         couple of warnings.
1519         
1520 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1521
1522         Patches from James Willcox <snorp@snorp.net>
1523
1524         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1525
1526         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1527         support array "out" parameters.
1528
1529         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1530         for 16-bit int support.
1531
1532 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1533
1534         * Released 0.50
1535
1536         * Patch from Steve Grubb:
1537         - bus/activation.c (bus_activation_service_reload_test): clean up
1538         some indentation
1539         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1540         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1541         buffer overflows in the test suite.  This is non critical because
1542         it can not be exploited and this code is only run when doing a 
1543         make check.
1544
1545         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1546         - configure.in: Don't check and link against kdecore, only qt headers
1547         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1548         - gcj/org/freedesktop/dbus/Makefile.am:
1549         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1550         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1551         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1552         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1553         - tools/Makefile.am: Add platform extentions to binaries 
1554         (i.e. .exe on windows)
1555
1556         * configure.in: 
1557         - Make it so if no suitable version of python is found we only 
1558         disable building python instead of exiting the configure script
1559         - Require version 2.4 of glib for glib bindings
1560         - Up version to 0.50
1561
1562         * python/__init__.py: Sync version with libdbus to (0,50,0)
1563         
1564 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1565
1566         * dbus/dbus-object-tree.c (find_subtree_recurse):
1567         a couple of optimizations (bug #710):
1568         - do a binary search in the tree
1569         - insert a new child at the right place directly, no need for
1570           qsort anymore
1571         - do the "double alloc" thing when allocating children
1572
1573 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1574
1575         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1576
1577         * python/dbus_bindings.pyx: Memory management foo
1578         (global): remove hacky _user_data_references global list
1579         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1580         tuples. Unref user_data
1581         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1582         (Connection::__del__): Remove and replace with __dealloc__ method
1583         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1584         to keep tuple from being deallocated instead of the global var hack
1585         (Connection::register_object_path): Stuff user_data into a tuple.
1586         Use Py_INCREF to keep tuple from being deallocated instead of the 
1587         global var hack
1588         (Connection::register_fallback): Stuff user_data into a tuple.
1589         Use Py_INCREF to keep tuple from being deallocated instead of the 
1590         global var hack
1591         (GIL_safe_pending_call_notification): Don't unref the message
1592         because it gets unreffed when going out of scope.  Py_XDECREF
1593         the user_data
1594         (PendingCall::__del__): Remove and replace with __dealloc__ method
1595         (PendingCall::set_notify): ref the pending call because we will
1596         need it to stick around for when the notify callback gets called
1597         (Message::__del__): Remove and replace with __dealloc__ method
1598
1599         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1600         gthreads_init to match up with the dbus call
1601
1602         * python/glib.py (init_threads): Changed to threads_init to match
1603         up with gobject.threads_init().  init_threads is kept for backwards
1604         compat but will most likely be deprecated in the future
1605
1606         * test/python/test-client.py: 
1607         - revamp to use Python's unittest functionality
1608         - add async call tests
1609         - setup threads in glib and dbus so we make sure locks are working
1610         
1611 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1612
1613         * python/dbus_bindings.pyx 
1614         (_pending_call_notification, cunregister_function_handler, 
1615         cmessage_function_handler): All callback functions have been rearranged 
1616         to workaround a bug in Pyrex when working with the GIL which is Python's 
1617         global lock when dealing with threads.  They have been split into
1618         a wrapper function (which assumes the name of the old function) and
1619         a _GIL_safe_<function name> function which contains the functionality
1620         of the old function.  This ensures that Pyrex does not write code
1621         the lock is released.
1622         
1623
1624 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1625
1626         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1627         GIL global lock when calling back into Python
1628
1629 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1630
1631         * Release 0.36.2
1632
1633         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1634
1635         * bus/policy.c (bus_policy_allow_user): change default "user is
1636         allowed" to be "user has same uid as the bus itself"; any
1637         allow/deny rules will override.
1638
1639         * bus/session.conf.in: don't allow all users, since now by default
1640         the user that ran the bus can connect.
1641
1642 2005-08-26  Colin Walters  <walters@verbum.org>
1643
1644         * tools/dbus-print-message.c (print_message): Flush stdout
1645         after printing a message, so that redirecting to a file, then
1646         hitting Ctrl-C works.
1647
1648 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1649
1650         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1651         (EmptyMessage): new class that subclasses Message.  This is a workaround
1652         to a Pyrex bug that fails to call __del__ when the Message object goes out
1653         of scope.  For some reason subclassing Message fixes this bug
1654         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1655         - s/Message(_create=0)/EmptyMessage everywhere else
1656         
1657         * test/python/test-{server|client}.py: add the python/.libs directory
1658         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1659         get picked up from the system
1660
1661 2005-08-25  Colin Walters  <walters@verbum.org>
1662
1663         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1664         to Ryan Lortie for the suggestion.
1665
1666 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1667
1668         * test/python: Add python regression test
1669
1670         * configure.in: Add test/python/Makefile
1671
1672         * test/Makefile.am: Add the python directory to SUBDIRS
1673
1674 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1675
1676         * Release 0.36.1
1677
1678         * python/_dbus.py: 
1679         (Interface::connect_to_signal): propigate keywords for match on args
1680         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1681
1682         * python/proxies.py (ProxyObject::connect_to_signal):
1683         propigate keywords for match on args
1684
1685         * Makefile.am: point everything to pyexecdir since python borks
1686         on multilib
1687
1688 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1689
1690         * Release 0.36
1691
1692 2005-08-23  Colin Walters  <walters@verbum.org>
1693
1694         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1695
1696 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1697
1698         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1699         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1700         of defining DBusConnection ourselves.
1701
1702 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1703
1704         * python/dbus.pth: New path file to fix up problems when installing
1705         c libraries to lib64 and python files to lib.
1706
1707         * python/Makefile.am: install dbus.pth in the correct spot
1708
1709 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1710         * ChangeLog: clean up my last entry a bit
1711
1712         * doc/introspect.xsl: New stylesheet for converting introspection data
1713         into browser renderable xhtml. Contributed by Lennart Poettering.
1714
1715         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1716         Poettering.
1717
1718         * doc/dbus-tutorial.xml: 
1719         - Add Colin Walter to the Authors section for authoring the GLib
1720         section
1721         - Add descriptions of the new signature and type functionality
1722         in the Python complex type mapping section
1723         - Add a sidenote on the new args matching functionality in 
1724         the Python bindings
1725         - Fixed up some of the examples to use the gobject.MainLoop
1726         instead of gtk.main
1727         
1728         * python/_dbus.py:
1729         (Bus::_create_args_dict): New. Converts a hash of arg matches
1730         to a more useable format
1731         (Bus::add_signal_receiver): add a **keywords parameter for catching
1732         arg match parameters
1733         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1734         arg match parameters
1735         
1736         * python/matchrules.py:
1737         (MatchTree::exec_matches): Check for arg matches
1738         (SignalMatchRule::add_args_match): New method
1739         (SignalMatchRule::execute): Added args_list parameter as an optimization
1740         so we don't have to marshal the args more than once
1741         (SignalMatchRule::match_args_from_list): New method that checks to see
1742         if the rule's arg matches match an argument list.  Only arguments
1743         set in the rule are checked.
1744         (SignalMatchRule::match_args_from_rule): New method that checks to see
1745         if the rule's arg matches match another rule's.  All args have to match
1746         in order for this method to return true.  If either rule has more args
1747         then it is not a match.
1748         (SignalMatchRule::is_match): Add args match
1749         (SignalMatchRule::repr): Add args to the final output if they exist
1750
1751 2005-08-17  Ross Burton  <ross@burtonini.com>
1752
1753         * glib/dbus-gproxy.c:
1754         (dbus_g_proxy_call_no_reply): unref the message once sent.
1755         (dbus_g_proxy_call): protect against NULL proxy.
1756
1757 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1758
1759         * python/__init__.py: Version updated (0, 43, 0)
1760         
1761         * python/dbus_bindings.pyx: 
1762         - Fixed type objects to have self passed into __init__
1763         - Added the Variant type
1764         - Add the ability to specify types or signatures for Array, Variant 
1765         and Dictionary
1766         (Connection::send_with_reply_handlers): return a PendingCall object
1767         (_pending_call_notification): handle the case when an error is returned 
1768         without an error message in the body
1769         (MessageIter::get_boolean): return True or False instead of an integer
1770         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1771         and add checks for objects with embeded signatures or types (Array, 
1772         Variant and Dictionary)
1773         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1774         (MessageIter::append_dict): handle embeded types or signatures
1775         (MessageIter::append_array): handle embeded types or signatures
1776         (MessageIter::append_variant): new method
1777         
1778         * python/proxies.py:
1779         (DeferedMethod): New. Dummy executable object used when queuing calls 
1780         blocking on introspection data
1781         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1782         or shorter timeouts for method calls
1783         (ProxyObject): Add first pass at an introspection state machine
1784         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1785         introspection. 
1786         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1787         the usual mechanisms for sending messages.  This is to avoid a deadlock
1788         where the Intospect call would be queued waiting for the Introspect 
1789         call to finish ;-)
1790         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1791         when introspection returns with no error
1792         (ProxyObject::_introspect_error_handler): New.  This method is called 
1793         when introspection encounters an error
1794         (ProxyObject::__getattr__): Code to handle different introspection 
1795         states.  Queue async calls or block blocking calls if we are 
1796         introspecting.  Pass through as normal if we are not or are done with 
1797         introspecting.
1798         
1799         * python/service.py: Import signal and method from decorators.py
1800
1801         * python/types.py: Add Variant type
1802
1803 2005-08-16  Colin Walters  <walters@verbum.org>
1804
1805         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1806         DBusError message is NULL.
1807
1808 2005-08-09  Havoc Pennington  <hp@redhat.com>
1809
1810         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1811         malloc'd copy of the name parameter
1812
1813 2005-08-09  Havoc Pennington  <hp@redhat.com>
1814
1815         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1816         warning if the reply serial is set to 0
1817
1818 2005-08-04  Colin Walters  <walters@verbum.org>
1819
1820         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1821         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1822         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1823         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1824         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1825         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1826         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1827         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1828         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1829         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1830         
1831         Prefix name with _ to ensure they're not exported.  All callers
1832         updated.
1833
1834         * glib/dbus-gvalue.c (typecode_to_gtype)
1835         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1836         (signature_iter_to_g_type_dict)
1837         (signature_iter_to_g_type_array)
1838         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1839         (dbus_gtypes_from_arg_signature):
1840         Move to dbus-gsignature.c.
1841
1842         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1843         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1844         (dbus_binding_tool_output_glib_client): Ditto.
1845
1846         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1847         and dbus-gsignature.h
1848
1849         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1850         unused variable.
1851
1852 2005-08-03  Colin Walters  <walters@verbum.org>
1853
1854         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1855         catch any incompatible changes accidentally made.
1856
1857 2005-08-03  Havoc Pennington  <hp@redhat.com>
1858
1859         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1860         typo, from Julien Puydt
1861
1862         * bus/connection.c (bus_connection_disconnected): we were always
1863         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1864
1865 2005-08-01  Colin Walters  <walters@verbum.org>
1866
1867         Patch from Joe Markus Clarke:   
1868         
1869         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1870         use-after-free.
1871
1872 2005-08-01  Colin Walters  <walters@verbum.org>
1873         
1874         Patch from Joe Markus Clarke:   
1875         
1876         * tools/dbus-send.c (main): 
1877         
1878         Don't use C99 style initializers (bug #3933).
1879         
1880 2005-08-01  Colin Walters  <walters@verbum.org>
1881
1882         Patch from Joe Markus Clarke:   
1883
1884         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1885         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1886         * glib/dbus-gobject.c (write_interface):
1887
1888         Don't use C99 style initializers (bug #3933).
1889
1890 2005-07-31  Havoc Pennington  <hp@redhat.com>
1891
1892         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1893         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1894
1895 2005-07-30  Havoc Pennington  <hp@redhat.com>
1896
1897         * fix a bunch of Doxygen warnings and mistakes
1898
1899 2005-07-30  Havoc Pennington  <hp@redhat.com>
1900
1901         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1902         DBUS_BUILD_TESTS since it's now used in production code
1903
1904 2005-07-29  Havoc Pennington  <hp@redhat.com>
1905
1906         * test/glib/test-profile.c (write_junk): initialize the junk
1907         buffer so valgrind doesn't have a breakdown
1908
1909 2005-07-29  Havoc Pennington  <hp@redhat.com>
1910
1911         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1912         (match_rule_matches): remove unused arg
1913         (test_matching): add tests for match_rule_matches()
1914
1915         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1916         do arg0='foo' arg5='bar' in the match rules
1917         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1918
1919         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1920
1921 2005-07-29  Ross Burton  <ross@openedhand.com>
1922
1923         * dbus/dbus-connection.c:
1924         Don't create a DBusCondVar which is never used.
1925
1926 2005-07-27  Ross Burton  <ross@openedhand.com>
1927
1928         * dbus/dbus-message.c:
1929         Reduce the size of the maximum cached message to 10K.
1930
1931 2005-07-25  Ross Burton  <ross@openedhand.com>
1932
1933         * glib/dbus-gproxy.c:
1934         Remove matches when all proxies are unregistered.
1935
1936 2005-07-24  Colin Walters  <walters@verbum.org>
1937
1938         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1939         typedata; recursive arrays won't have it.
1940
1941         * test/glib/test-dbus-glib.c:
1942         * test/glib/test-service-glib.c:
1943         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1944         
1945 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1946
1947         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1948         proxies.py, service.py: Cleanup of code after running it through the
1949         pyflakes code checker mostly dealing with undefined names.  
1950         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1951
1952 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1953
1954         * NEWS: Update to 0.35.2
1955
1956 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1957
1958         * python/_dbus.py: Remove import of the dbus.services
1959         module as it no longer exists (patch from Dimitur Kirov)
1960
1961         * python/service.py (Object::__init__): Fixed typo
1962         s/name/bus_name (patch from Dimitur Kirov)
1963
1964         * python/examples/example-signal-emitter.py: import dbus.glib
1965         to get the main loop and use glib mainloop instead of gtk so
1966         X doesn't have to be running.
1967
1968         * python/examples/example-signal-recipient.py: import dbus.glib
1969         to get the main loop and use glib mainloop instead of gtk so
1970         X doesn't have to be running. Import the decorators module
1971         directly.
1972
1973         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1974         didn't pick up on but are needed to build
1975
1976         * configure.in: upped version to 0.35.2
1977
1978         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1979         added Colin Walters' SELinux API rename patch from head 
1980         s/unix sercurity context/selinux security context/
1981
1982 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1983
1984         * python/Makefile.am: dbus_binding.pxd.in should be included 
1985         in EXTRA_DIST not dbus_binding.pxd
1986         fix up $(srcdir) hopefully for the last time
1987
1988         * NEWS: Update to 0.35.1
1989
1990 2005-07-16  Colin Walters  <walters@verbum.org>
1991
1992         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1993         from bus_driver_handle_get_connection_unix_security_context.  Update for
1994         error usage.
1995         (message_handlers): Update for renames.
1996
1997         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1998         _dbus_string_init failure correctly.
1999         (bus_selinux_append_context): Convert SID to context.  Append it
2000         as a byte array.
2001         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2002         hasn't been called.
2003
2004         * bus/selinux.h: Update prototype.
2005
2006         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2007         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2008
2009 2005-07-15  Colin Walters  <walters@verbum.org>
2010
2011         * doc/TODO: Add note about convenience wrappers.
2012
2013 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2014
2015         * NEWS: Update to 0.35
2016
2017 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2018
2019         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2020         so distcheck doesn't fail
2021
2022         * glib/examples/Makefile.am: Add example-service.xml and 
2023         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2024
2025         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2026         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2027
2028         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2029         compiler looks in the right places during distcheck
2030
2031 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2032
2033         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2034         to fail
2035
2036 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2037
2038         * python/examples/example-service.py,
2039         python/examples/example-signal-emitter.py: Fixed up examples
2040         for API changes
2041
2042 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2043
2044         * python/__init__.py: Upped to version (0,42,0) because of
2045         the API change
2046
2047 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2048
2049         * ChangeLog: fix date in last entry
2050
2051         * configure.in, bus/system.conf.in: add the ability to configure 
2052         the system bus user at compiletime with the --with-dbus-user flag
2053         (patch from Kristof Vansant)
2054
2055 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2056
2057         * bus/dispatch.c, test/test-service.c: Add testcase
2058         for sending messages to oneself (TODO item).
2059
2060         * python/service.py (class Object): Swap ordering of bus_name 
2061         and object_path parameters to better support inheritance.
2062
2063         * doc/dbus-tutorial.xml: change Python docs to reflect change
2064         in parameter ordering and fix the inheritance section.
2065
2066         * doc/TODO: remove sending message to oneself TODO item
2067
2068 2005-07-15  Ross Burton  <ross@openedhand.com>
2069
2070         * glib/dbus-gproxy.c:
2071         Fix a leak when calling methods via the proxy.
2072
2073 2005-07-15  Colin Walters  <walters@verbum.org>
2074
2075         * bus/selinux.c (bus_selinux_append_context): Wrap in
2076         HAVE_SELINUX.
2077
2078 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2079
2080         * python/_dbus.py (Bus::remove_signal_receiver):
2081         don't add a callback to the match if none has been passed in
2082         
2083         * python/matchrules.py (SignalMatchTree::remove): if the rule
2084         being matched does not have a callback treat it as a wildcard
2085         fix matching logic
2086
2087         * doc/dbus-tutorial.xml: Add Python tutorial
2088
2089 2005-07-14  Colin Walters  <walters@verbum.org>
2090
2091         * bus/driver.c
2092         (bus_driver_handle_get_connection_unix_security_context): New function.
2093         (message_handlers): Add.
2094
2095         * bus/selinux.c (bus_selinux_append_context): New function; appends
2096         security context to message.
2097
2098         * bus/selinux.h: Prototype.
2099
2100         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2101
2102 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2103
2104         * bus/activation.c: clean up all tabs to be 8 spaces 
2105         (bus_activation_activate_service): make sure we clean up
2106         if activation fails
2107
2108         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2109         (check_shell_fail_service_auto_start): New function
2110         tests to make sure we get fail properly when trying to auto start a service
2111         with a faulty command line
2112         (check_shell_service_success_auto_start): New function tests to make sure
2113         auto started services get the arguments on the command line
2114
2115         * test/test-shell-service.c: Added service for testing auto-starting with 
2116         command line arguments
2117
2118         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2119         test/data/valid-service-files/debug-shell-echo-success.service.in:
2120         Added service files for testing auto-starting with command line arguments
2121
2122         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2123
2124 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2125
2126         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2127         
2128         * dbus/Makefile.am: added new files to build.
2129
2130         * bus/activation.c (bus_activation_activate_service): support
2131         activation commands with parameters.
2132
2133         * test/shell-test.c: added test program for the shell parsing
2134         code.
2135
2136 2005-07-13  David Zeuthen  <davidz@redhat.com>
2137
2138         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2139         64 bit signed and unsigned parameters
2140
2141 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2142
2143         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2144
2145         * python/service.py (class Name): renamed BusName to make it clearer
2146         what the object is for (a name on the bus)
2147
2148         * python/examples/example-service.py,
2149         python/examples/example-signal-emitter.py: change the Name object to
2150         BusName
2151
2152 2005-07-12  Colin Walters  <walters@verbum.org>
2153
2154         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2155
2156         * tools/dbus-launch.c: Include sys/select.h.
2157
2158 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2159         * python/dbus_bindings.pyx.in: removed
2160
2161         * python/dbus_bindings.pyx: Added.
2162         - Fixed some memleaks (patch from 
2163         Sean Meiners <sean.meiners@linspireinc.com>)
2164         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2165         own pxd file (Pyrex definition)
2166         - Broke out glib dependancies into its own pyx module
2167         
2168         * python/dbus_bindings.pdx: Added.
2169         - Defines C class Connection for exporting to other modules
2170
2171         * python/dbus_glib_bindings.pyx: Added.
2172         - New module to handle lowlevel dbus-glib mainloop integration
2173
2174         * python/glib.py: Added.
2175         - Registers the glib mainloop when you import this module
2176
2177         * python/services.py: Removed (renamed to service.py)
2178         
2179         * python/service.py: Added.
2180         - (class Server): renamed Name
2181
2182         * python/__init__.py: Bump ro version (0,41,0)
2183         -don't import the decorators or service module
2184         by default.  These now reside in the dbus.service namespace
2185
2186         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2187         setup function on creation 
2188
2189         * python/examples/example-service.py,
2190         python/examples/example-signal-emitter.py: update examples
2191
2192         * python/examples/gconf-proxy-service.py,
2193         python/examples/gconf-proxy-service2.py: TODO fix these up
2194
2195         * doc/TODO: Addition
2196         - Added a Python Bindings 1.0 section
2197         - added "Add match on args or match on details to match rules"
2198
2199
2200 2005-07-12  Colin Walters  <walters@verbum.org>
2201
2202         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2203         (statemachine-glue.h): 
2204         * glib/examples/Makefile.am (example-service-glue.h) 
2205         (example-signal-emitter-glue.h): 
2206         * glib/Makefile.am (dbus-glib-error-switch.h): 
2207         Add libtool --mode=execute so we use the built library instead
2208         of any installed one.
2209
2210 2005-07-11  Colin Walters  <walters@verbum.org>
2211
2212         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2213         (dbus_g_value_types_init): Remove assertion.
2214         (dbus_g_value_get_g_type, dbus_g_value_open)
2215         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2216         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2217         functions related to DBusGValue.  Now we marshal/demarshal
2218         structures as GValueArray.
2219         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2220         structures.
2221         (signature_iter_to_g_type_array): Don't call
2222         signature_iter_to_g_type_struct.
2223         (signature_iter_to_g_type_struct): Delete.
2224         (dbus_gvalue_to_signature): Delete.
2225         (dbus_gvalue_to_signature): New function with same name as other
2226         one; we can convert structures to signatures.
2227         (demarshal_valuearray): New function.
2228         (get_type_demarshaller): Use it.
2229         (demarshal_recurse): Delete.
2230         (marshal_proxy): New function.
2231         (marshal_map): Warn if we can't determine signature from type.
2232         (marshal_collection_ptrarray): Ditto.
2233         (marshal_collection_array): Ditto.
2234         (get_type_marshaller): Use marshal_valuearray.
2235         (marshal_recurse): Delete.
2236         (_dbus_gvalue_test): Add some tests.
2237
2238         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2239         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2240         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2241         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2242         (dbus_g_value_free): Remove prototypes.
2243
2244         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2245         G_TYPE_VALUE_ARRAY.
2246
2247         * glib/examples/example-service.c:
2248         * glib/examples/example-client.c: Implement GetTuple.
2249
2250         * test/glib/test-dbus-glib.c:
2251         * test/glib/test-service-glib.c:
2252         * test/glib/test-service-glib.xml: Add structure tests.
2253
2254 2005-07-10  Colin Walters  <walters@verbum.org>
2255
2256         * doc/TODO: Knock off some GLib items with this patch.
2257
2258         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2259         (_dbus_gvalue_signals_error): New functions.
2260
2261         * glib/dbus-gvalue-utils.h: Prototype them.
2262
2263         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2264         and change to not output const/retval flags for input args.  All
2265         callers updated.
2266         (invoke_object_method): Refactor to handle return values.  Add
2267         some more comments in various places.  Remove debug g_print.
2268
2269         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2270
2271         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2272         Handle G_TYPE_NONE.
2273         (compute_gsignature): New function; refactored from code from
2274         compute_marshaller and compute_marshaller_name.  Enhance to
2275         handle return values and async ops more cleanly.  Update for
2276         async ops returning NONE instead of BOOLEAN.
2277         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2278         and output appropriate string.
2279         (generate_glue): Handle return value annotation.  Also don't dump
2280         constness flag for input arguments.
2281
2282         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2283         files shared between installed library and utilities.
2284         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2285         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2286         binding tool can access gtype utility functions.
2287
2288         * test/glib/test-service-glib.c: 
2289         * test/glib/test-service-glib.xml: 
2290         * test/glib/test-dbus-glib.c: Add some tests for return values.
2291
2292 2005-07-09  Colin Walters  <walters@verbum.org>
2293
2294         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2295         argument if available, not method.
2296
2297         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2298         (invoke_object_method): First, remove some redundant
2299         GValues (object_value, error_value) in favor of working on
2300         array directly.  Second, rework constness to be less buggy.
2301         Now we iterate directly over the argument metadata instead
2302         of parallel iterating over output signature and metadata.
2303
2304         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2305
2306         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2307         annotation on input args.
2308         
2309 2005-07-09  Colin Walters  <walters@verbum.org>
2310
2311         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2312         Define.
2313
2314         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2315         annotation.
2316
2317         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2318         (method_dir_signature_from_object_info): Handle arg_iterate change.
2319         (write_interface): Ditto.
2320         (lookup_object_info): Don't barf if format_version is > 0.
2321         (invoke_object_method): Handle arg constness.
2322
2323         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2324         (arg_info_new): Create.
2325         (arg_info_unref): Destroy.
2326         (arg_info_get_annotations, arg_info_get_annotation) 
2327         (arg_info_add_annotation): New functions.
2328
2329         * glib/dbus-gidl.h: Prototype them.
2330
2331         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2332         args, disallow them in properties.
2333         (parse_annotation): Handle arg annotations.
2334
2335         * test/glib/test-service-glib.xml: 
2336         * test/glib/test-service-glib.c: Update to make some methods
2337         const.
2338
2339 2005-07-08  Colin Walters  <walters@verbum.org>
2340
2341         * test/glib/test-service-glib.xml: 
2342         * test/glib/test-service-glib.c:
2343         * test/glib/test-dbus-glib.c: Test a{sv}.
2344
2345         * glib/examples/statemachine/statemachine.c:
2346         * glib/examples/statemachine/statemachine-server.c:
2347         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2348         add progress bar, etc.
2349
2350         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2351         needed anymore due to generic array/map marshalling.
2352         (dbus_g_value_types_init): Don't register basic arrays or the
2353         string/string hash.
2354         (dbus_gtype_from_signature_iter): Don't try to recurse into
2355         variants.
2356         (dbus_gtype_to_signature): Check collection/map before type
2357         metadata.
2358         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2359         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2360         generic map creation/append functions instead of hash table
2361         specifically.
2362         (get_type_demarshaller): Handle maps.
2363         (demarshal_collection): Dispatch on collection type to either
2364         demarshal_collection_ptrarray or demarshal_collection_array.
2365         (get_type_marshaller): Handle maps.
2366         (marshal_collection): Dispatch collection type to either
2367         marshal_collection_ptrarray or marshal_collection_array.
2368         (_dbus_gvalue_test): New test.
2369
2370         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2371         (hash_free_from_gtype): Use it to free GValues.
2372         (hashtable_append): New function.
2373         (ptrarray_append): Fix prototype.
2374         (slist_append): Ditto.
2375         (_dbus_gvalue_utils_test): Extend tests.
2376
2377         * glib/dbus-gtype-specialized.c
2378         (dbus_g_type_specialized_init_append): Renamed from
2379         dbus_g_type_specialized_collection_init_append.  Remove const from
2380         value, since we steal it.
2381         (dbus_g_type_specialized_map_append): New function.
2382
2383         * glib/dbus-gtype-specialized.h: Update prototypes.
2384         Add DBusGTypeSpecializedMapAppendFunc.
2385
2386         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2387         _dbus_gvalue_test.
2388         
2389         * glib/dbus-gtest.h: Prototype it.
2390
2391 2005-07-08  Ross Burton  <ross@openedhand.com>
2392
2393         * dbus/dbus-glib.h:
2394         Add DBysGAsyncData for the async bindings.
2395
2396         * glib/dbus-binding-tool-glib.c:
2397         Re-enable the async bindings.
2398
2399         * test/glib/test-dbus-glib.c:
2400         Add a test for the generated async bindings.
2401
2402 2005-07-08  Colin Walters  <walters@verbum.org>
2403
2404         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2405         connection concept.
2406         
2407 2005-07-08  Colin Walters  <walters@verbum.org>
2408         
2409         * tools/Makefile.am: Kill of print-introspect in favor of using
2410         dbus-send --print-reply=literal.
2411
2412         * test/glib/test-service-glib.xml: 
2413         * test/glib/test-service-glib.c (my_object_get_objs): New test
2414         for "ao".
2415
2416         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2417         (main): Test GetObjs.
2418
2419         * glib/examples/statemachine/Makefile.am:
2420         * glib/examples/statemachine/sm-marshal.list:
2421         * glib/examples/statemachine/statemachine-client.c:
2422         * glib/examples/statemachine/statemachine-server.c:
2423         * glib/examples/statemachine/statemachine-server.xml:
2424         * glib/examples/statemachine/statemachine.c:
2425         * glib/examples/statemachine/statemachine.h:
2426         * glib/examples/statemachine/statemachine.xml:
2427
2428         New example.
2429
2430         * glib/examples/example-service.c (main): Move invocation
2431         of dbus_g_object_type_install_info earlier, to emphasize it
2432         should only be done once.
2433
2434         * glib/examples/example-signal-emitter.c (main): Ditto.
2435
2436         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2437
2438         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2439         (dbus_gvalue_marshal): Update prototypes.
2440
2441         * glib/dbus-gvalue.c: Update all marshalling functions to take
2442         const GValue instead of GValue.
2443         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2444         types.
2445         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2446         change.
2447         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2448         Return a newly-allocated string.
2449         (demarshal_proxy, demarshal_object_path, demarshal_object)
2450         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2451         we get the wrong types from message.
2452         (get_type_demarshaller): New function, extracted from
2453         dbus_gvalue_demarshal.
2454         (demarshal_collection): New function, demarshals generic
2455         collection.
2456         (dbus_gvalue_demarshal): Just invoke result of
2457         get_type_demarshaller.  Throw error if we don't have one.
2458         (marshal_garray_basic): Abort on OOM.
2459         (get_type_marshaller): New function, extracted from
2460         dbus_gvalue_marshal.
2461         (collection_marshal_iterator, marshal_collection): New functions;
2462         implements generic marshalling for an iteratable specialized
2463         collection.
2464         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2465
2466         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2467         G_TYPE_STRING.
2468         (ptrarray_value_from_gvalue): Ditto.
2469         (ptrarray_append, ptrarray_free): New functions.
2470         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2471         (slist_append, slist_end_append, slist_free): New functions.
2472         (dbus_g_type_specialized_builtins_init): Add append fuctions
2473         for GPtrArray and GSList.  Register GSList.
2474         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2475
2476         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2477         New.
2478         (dbus_g_type_specialized_collection_init_append)
2479         (dbus_g_type_specialized_collection_append)
2480         (dbus_g_type_specialized_collection_end_append): Prototype.
2481         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2482         end_append_func.
2483
2484         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2485         (dbus_g_type_specialized_collection_append) 
2486         (dbus_g_type_specialized_collection_end_append): New functions.
2487         (dbus_g_type_map_value_iterate): Take const GValue.
2488         (dbus_g_type_collection_value_iterate): Ditto.
2489
2490         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2491         _dbus_gvalue_utils_test.
2492         
2493         * glib/dbus-gtest.h: Prototype it.
2494
2495         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2496         using uninitialized owner_list.
2497         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2498         public API.
2499         (dbus_g_proxy_end_call_internal): Update to use error set
2500         from dbus_gvalue_demarshal instead of setting it here.
2501         (dbus_g_proxy_begin_call): Move return_if_fail here.
2502
2503         * glib/dbus-gobject.c (write_interface): Update for
2504         dbus_gtype_to_signature returning new string.
2505
2506         * configure.in: Add glib/examples/statemachine.
2507
2508 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2509
2510         * configure.in: Add a configure option, --with-console-auth-dir
2511         
2512         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2513         new setting.  Patch from Kay Sievers.
2514
2515 2005-07-06  Colin Walters  <walters@verbum.org>
2516
2517         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2518         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2519         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2520         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2521         Delete in favor of dbus_g_proxy_begin_call and
2522         dbus_g_proxy_cancel_call.
2523         (DBusGProxyCall, DBusGProxyCallNotify): New.
2524         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2525         data, and destroy function.  This replaces
2526         dbus_g_pending_call_set_notify.
2527         (dbus_g_proxy_cancel_call): Prototype.
2528         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2529
2530         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2531         pending_calls map.
2532         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2533         internal proxy for calls to the bus. Remove
2534         pending_nameowner_calls, now the internal proxy keeps track.
2535         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2536         pending_nameowner_calls.
2537         (got_name_owner_cb): Update prototype, and use
2538         dbus_g_proxy_end_call.
2539         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2540         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2541         favor of using internal proxy.
2542         (dbus_g_proxy_manager_unregister): Update to use
2543         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2544         (dbus_g_proxy_init): Initialize pending calls map.
2545         (dbus_g_proxy_constructor): New.
2546         (dbus_g_proxy_class_init): Add get/set property functions,
2547         constructor, and add NAME, PATH, and INTERFACE properties.
2548         (cancel_pending_call): New function.
2549         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2550         cancel them.
2551         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2552         (GPendingNotifyClosure): New structure.
2553         (d_pending_call_notify, d_pending_call_free): Moved here from
2554         dbus-glib.c.
2555         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2556         ordering.
2557         (manager_begin_bus_call): New internal function for talking to
2558         internal bus proxy.
2559         (dbus_g_proxy_new): Construct object using GObjet properties.
2560         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2561         Create closure of same, and insert call into map of pending calls.
2562         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2563         call.  Look up pending call in current set.  Remove it when we've
2564         completed.
2565         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2566         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2567         and destroy function directly.
2568         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2569         (dbus_g_proxy_call): Invoke with NULL callback.
2570         (dbus_g_proxy_cancel_call): New function, replaces
2571         dbus_g_pending_call_cancel.
2572
2573         * glib/dbus-gparser.c (validate_signature): Fix call to
2574         dbus_set_g_error.
2575
2576         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2577         New quark for attaching metadata to GType.
2578         (info_hash): Delete.
2579         (lookup_object_info): Look up using quark.
2580         (dbus_g_object_type_install_info): Check that a type is classed,
2581         not that it's an object.  Also just install type data using quark
2582         instead of using global hash.
2583
2584         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2585         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2586         (GPendingNotifyClosure): Delete.
2587         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2588         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2589
2590         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2591         client method generation until we can fix it...
2592         
2593         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2594         (load_from_service_thread_func): Ditto.
2595
2596         * tools/dbus-names-model.c (struct NamesModel): Hold
2597         DBusGProxyCall.
2598         (have_names_notify): Update prototype, use
2599         dbus_g_proxy_cancel_call.
2600         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2601
2602         * tools/dbus-monitor.c (filter_func): Update for print_message
2603         API change.
2604
2605         * test/glib/test-dbus-glib.c: Add more tests for async
2606         invocations.  Update many begin_call/end_call pairs to just use
2607         dbus_g_proxy_call.
2608
2609         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2610         allows us to dump print-introspect.c.
2611
2612         * tools/dbus-print-message.h (print_message): Add literal argument
2613         to print_message which is intended to allow printing arguments without
2614         metadata like "string=".
2615
2616         * tools/dbus-print-message.c (print_iter): Add literal argument.
2617         (print_message): Allow printing string messages literally.
2618
2619 2005-07-05  Colin Walters  <walters@verbum.org>
2620
2621         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2622         Remove value refcount leak, original patch from Jorn Baayen
2623         <jorn@openedhand.com>.  Also remove useless extra value in favor
2624         of prepending to value array directly.
2625
2626 2005-07-02  Colin Walters  <walters@verbum.org>
2627
2628         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2629
2630 2005-07-01  Colin Walters  <walters@verbum.org>
2631
2632         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2633         
2634         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2635         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2636         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2637         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2638
2639 2005-06-30  Colin Walters  <walters@verbum.org>
2640
2641         * test/glib/test-dbus-glib.c:
2642         * test/glib/test-service-glib.c:
2643         * test/glib/test-service-glib.xml: Update tests for new error
2644         setting bits, also add async tests (patch from Ross Burton).
2645
2646         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2647         DBUS_GLIB_THREADS_LIBS.
2648
2649         * glib/dbus-gproxy.c (get_name_owner)
2650         (dbus_g_pending_call_end_valist): Ditto.
2651
2652         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2653         domain (GQuark) to DBusGErrorInfo.  
2654         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2655         quark in error_metadata.  Take message interface as default
2656         error message interface.
2657         (gerror_to_dbus_error_message): Pass message interface.
2658         (dbus_set_g_error): Resurrected.
2659         (dbus_g_error_info_free): New function.
2660         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2661         of _peek to actually create the object class if it hasn't been
2662         created yet.
2663         (dbus_g_error_domain_register): New function.
2664
2665         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2666
2667         * glib/dbus-gparser.c (validate_signature): Ditto.
2668
2669         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2670         (dbus_g_error_domain_register): Prototype.
2671
2672         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2673         Update tests.
2674
2675 2005-06-29  Colin Walters  <walters@verbum.org>
2676
2677         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2678         DBUS_TYPE_G_OBJECT_PATH.
2679
2680         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2681         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2682         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2683         (dbus_g_object_path_get_g_type): New function.
2684         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2685         to DBUS_TYPE_G_OBJECT_PATH by default.
2686         (demarshal_proxy): Remove unused name variable.
2687         (demarshal_object_path, marshal_object_path): New functions.
2688         (demarshal_proxy_array, marshal_proxy_array): Delete.
2689         
2690         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2691         DBUS_TYPE_G_OBJECT_PATH to char *.
2692         (dbus_g_type_get_lookup_function): Map builtin
2693         DBUS_TYPE_G_OBJECT_PATH.
2694
2695         * test/glib/test-dbus-glib.c
2696         * test/glib/test-service-glib.c (my_object_objpath): 
2697         Adapt tests to new object path marshalling.
2698
2699 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2700
2701         * configure.in: force check for Python >= 2.4
2702
2703 2005-06-29  Colin Walters  <walters@verbum.org>
2704         
2705         Patch from Ross Burton <ross@openedhand.com>
2706         
2707         * glib/dbus-gobject.c (invoke_object_method): Unset object
2708         value in all cases, not only in async case.
2709
2710 2005-06-29  Colin Walters  <walters@verbum.org>
2711
2712         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2713         name_call for keeping track of any outgoing GetNameOwner call.
2714         Also add for_owner and associated.
2715         (struct _DBusGProxyManager): Add owner_names, which is hash table
2716         that maps a base name to a list of names it owns (that we're
2717         interested in).  Add pending_nameowner_calls which is a list of
2718         all outstanding GetNameOwner; avoids us having to iterate over
2719         every proxy.  Add unassociated_proxies which keeps track of name
2720         proxies with no associated name owner.
2721         (dbus_g_proxy_manager_unref): Destroy owner_names.
2722         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2723         name refcounts.
2724         (find_name_in_info, name_owner_foreach)
2725         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2726         (dbus_g_proxy_manager_monitor_name_owner)
2727         (dbus_g_proxy_manager_unmonitor_name_owner)
2728         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2729         New functions; they manipulate the owner_names mapping.
2730         (got_name_owner_cb): New function.
2731         (get_name_owner): New function, extracted from
2732         dbus_g_proxy_new_for_name_owner.
2733         (dbus_g_proxy_manager_register): For now we need to keep track of
2734         all NameOwnerChanged.  Also if the proxy is for a name, if we
2735         don't already know the name owner, queue a new GetNameOwner
2736         request and add it to our list of unassociated proxies.  Otherwise
2737         inc the refcount.
2738         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2739         cancel any pending GetNameOwner call, etc.
2740         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2741         the owner_names mapping to look up the current names for the
2742         signal source, and dispatch to any proxies for that name.
2743         (dbus_g_proxy_new): Initialize new members.
2744         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2745         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2746         (dbus_g_pending_call_end_valist): New function, extracted from
2747         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2748         but want to use the GLib infrastructure.  Also note how many
2749         arguments in reply were over.
2750         (dbus_g_pending_call_end): New function, just call
2751         dbus_g_pending_call_end_valist.
2752         (dbus_g_proxy_end_call_internal): Just call
2753         dbus_g_pending_call_end_valist.
2754
2755         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2756         of builtin marshaller for STRING_STRING_STRING.
2757
2758         * test/glib/test-dbus-glib.c: 
2759         * test/glib/test-service-glib.c:
2760         * test/glib/test-service-glib.xml:
2761         Extend tests to cover name proxies, destruction of owner proxies,
2762         etc.
2763         
2764         * glib/examples/example-signal-recipient.c
2765         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2766         
2767         * tools/dbus-send.c (main): Print D-BUS error name in addition
2768         to message.
2769
2770 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2771
2772         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2773         cmessage_function_handler): Patch from 
2774         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2775         by using the Py_GILState_Ensure/Release to synchronize with the
2776         python runtime.
2777         
2778 2005-06-28  Ray Strode  <rstrode@redhat.com>
2779
2780         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2781         babysitter helper process on last unref, bug #2813.
2782
2783 2005-06-27  Colin Walters  <walters@verbum.org>
2784
2785         * test/glib/test-dbus-glib.c: 
2786         * test/glib/test-service-glib.c:
2787         * test/glib/test-service-glib.xml:
2788         Test hash table signal emitting.
2789
2790         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2791         types to their fundamental basis types, since this is what
2792         marshallers operate on.  Also add an entry for VOID__BOXED.
2793         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2794
2795 2005-06-26  Havoc Pennington  <hp@redhat.com>
2796
2797         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2798         from Don Park
2799
2800 2005-06-26  Colin Walters  <walters@verbum.org>
2801
2802         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2803         (dbus_g_error_set): New public function from its ashes; used by
2804         both service-side method implementation and GLib bindings
2805         internals.
2806         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2807         (_dbus_glib_test): Add some tests.
2808
2809         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2810
2811         * test/glib/test-service-glib.c (my_object_throw_error): Use
2812         dbus_g_error_set.
2813
2814         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2815         errors thrown by dbus_g_error_set.
2816
2817         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2818
2819         * glib/dbus-gparser.c (validate_signature): Ditto.
2820
2821         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2822         (dbus_g_proxy_end_call_internal): Ditto.
2823
2824         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2825         converts DBUS_ERROR_x to DBUS_GERROR_x.
2826         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2827
2828         * doc/TODO: Remove error TODO.
2829
2830         * doc/dbus-tutorial.xml: Update with documentation about error
2831         handling.
2832
2833         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2834         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2835         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2836
2837 2005-06-22  Colin Walters  <walters@verbum.org>
2838         
2839         Patch from Ross Burton <ross@openedhand.com>
2840
2841         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2842
2843 2005-06-20  Colin Walters  <walters@verbum.org>
2844
2845         * configure.in: Add glib/examples.
2846
2847         * glib/Makefile.am: Add examples/
2848
2849         * glib/examples/.cvsignore
2850         * glib/examples/Makefile.am
2851         * glib/examples/example-client.c
2852         * glib/examples/example-service.c
2853         * glib/examples/example-service.xml
2854         * glib/examples/example-signal-emitter.c
2855         * glib/examples/example-signal-emitter.xml
2856         * glib/examples/example-signal-recipient.c:
2857         New files; GLib binding examples, ported from
2858         python/examples.
2859
2860 2005-06-20  Colin Walters  <walters@verbum.org>
2861
2862         * dbus/dbus-glib.h: 
2863         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2864         dbus_g_proxy_call.
2865
2866         * glib/dbus-binding-tool-glib.c: 
2867         * doc/dbus-tutorial.xml: 
2868         * test/glib/test-dbus-glib.c: Update for rename.
2869         
2870 2005-06-20  Colin Walters  <walters@verbum.org>
2871
2872         Patch suggested by Ross Burton <ross@openedhand.com>
2873
2874         * glib/dbus-gobject.c (export_signals): Free signal name.
2875         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2876         memory leak.  Add a bit of documentation.
2877         (dbus_g_method_return_error): Free context, and note we do
2878         so.
2879
2880 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2881
2882         * dbus/dbus-glib.h:
2883         * glib/dbus-gobject.c:
2884         * glib/dbus-gproxy.c:
2885         * glib/dbus-gvalue.c: Predeclare structs as 
2886         typedef struct _Something Something instead of 
2887         typedef struct Something Something, so we can 
2888         redeclare the prototypes. Other GNOME libraries 
2889         do this already.
2890
2891 2005-06-17  Colin Walters  <walters@verbum.org>
2892
2893         * tools/dbus-names-model.c (have_names_notify): Fix call
2894         to dbus_g_proxy_end_call.
2895         
2896 2005-06-17  Colin Walters  <walters@verbum.org>
2897
2898         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2899         spew warnings if we get malformed remote signals.
2900
2901         * glib/dbus-gobject.c (propsig_iterate): New function.
2902         (lookup_object_info): New function, extracted from
2903         lookup_object_and_method.
2904         (introspect_properties, introspect_signals): Delete; these
2905         are merged into write_interface.
2906         (write_interface): Write out signals and properties here;
2907         dump the org.gtk.object stuff and use the interface given
2908         in the introspection data blob.  Also fix up property XML.
2909         (lookup_values): New function.
2910         (introspect_interfaces): Gather a mapping from interface to a
2911         list of its methods, signals, and properties, then write out
2912         each interface.
2913         (lookup_object_and_method): Use lookup_object_info.
2914         (struct DBusGSignalClosure): Add interface.
2915         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2916         we can just use the constant data.
2917         (dbus_g_signal_closure_finalize): Don't free signal name.
2918         (signal_emitter_marshaller): Use interface from signal closure.
2919         (export_signals): Only export signals mentioned in introspection
2920         blob.
2921         (dbus_g_connection_register_g_object): Warn if we have no
2922         introspection data for an object.
2923         (funcsig_equal): Remove unused variable.
2924         (dbus_g_object_register_marshaller): Take varargs instead of
2925         list.
2926         (dbus_g_object_register_marshaller_array): New function,
2927         extracted from old dbus_g_object_register_marshaller.
2928
2929         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2930         signals and property data.
2931         (write_quoted_string): New function, extracted from generate_glue.
2932         (generate_glue): Write signals and properties to introspection
2933         blob.
2934
2935         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2936         exported_signals and exported_properties.
2937         (dbus_g_object_register_marshaller): Update prototype.
2938         (dbus_g_object_register_marshaller_array): Prototype.
2939         
2940         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2941
2942         * test/glib/test-service-glib.c: Add new test signals and method
2943         to emit them.
2944
2945         * test/glib/test-service-glib.xml: Add some test signals.
2946
2947         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2948         and my-object-marshal.h
2949         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2950         my-object-marshal.c.
2951         (my-object-marshal.c, my-object-marshal.h): Implement.
2952
2953         * test/glib/.cvsignore: Update.
2954
2955         * doc/TODO: Remove two GLib TODO items fixed by this
2956         patch.
2957
2958 2005-06-16  Colin Walters  <walters@verbum.org>
2959
2960         * doc/TODO: Update for GLib bindings.
2961         
2962 2005-06-16  Colin Walters  <walters@verbum.org>
2963
2964         * glib/dbus-binding-tool-glib.c:
2965         * glib/dbus-gobject.c:
2966         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2967         from Ross Burton, for his GLib bindings work.
2968
2969 2005-06-16  Colin Walters  <walters@verbum.org>
2970
2971         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2972         to iterate instead of walking to G_TYPE_INVALID.
2973
2974         Patch based on a patch from Ryan Gammon.
2975
2976 2005-06-16  Colin Walters  <walters@verbum.org>
2977
2978         * bus/bus.c (bus_context_new): Set parser to NULL
2979         after we unref it (Patch from Chris Boscolo, #2174).
2980         
2981 2005-06-16  Colin Walters  <walters@verbum.org>
2982
2983         * python/dbus_bindings.pyx.in: Import size_t,
2984         __int64_t, __uint64_t, and __signed.
2985
2986         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2987         Define cmsg struct, output it.
2988         (_dbus_read_credentials_unix_socket):
2989         Use cmsg struct.
2990         
2991         Patch from Joe Markus Clarke for FreeBSD support.
2992         
2993 2005-06-16  Colin Walters  <walters@verbum.org>
2994
2995         * tools/dbus-send.c (append_array): Use strtok.
2996         (append_dict): New function.
2997         (type_from_name): New function, extracted from main.
2998         (main): Handle sending dicts.
2999
3000         * tools/dbus-print-message.c (print_iter): Print dict
3001         entries.
3002         
3003 2005-06-16  Colin Walters  <walters@verbum.org>
3004
3005         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3006         values as the empty string (#2948).
3007         
3008 2005-06-16  Colin Walters  <walters@verbum.org>
3009
3010         * dbus/Makefile.am:
3011         * mono/doc/Makefile.am:
3012         * test/glib/Makefile.am:
3013
3014         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3015
3016 2005-06-16  Colin Walters  <walters@verbum.org>
3017
3018         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3019         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3020
3021         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3022         Increment pointer after swapping fixed array.  Add assertion
3023         for array length.
3024                 
3025 2005-06-15  Colin Walters  <walters@verbum.org>
3026
3027         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3028         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3029         
3030 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3031
3032         * NEWS: Update to 0.34
3033
3034 2005-06-15  David Zeuthen  <davidz@redhat.com>
3035
3036         * configure.in (LT_CURRENT): Revert back to 1 as the library
3037         hasn't changed and we've certainly not committed to protocol
3038         stability yet.  All this does is to break ABI. See commit note
3039         from hp@redhat.com 2005-05-05 for details.
3040         
3041 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3042
3043         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3044         (_dbus_connection_run_builtin_filters): New method
3045         (dbus_connection_dispatch): Run the builtin filters which in turn
3046         runs the peer filter which handles Ping messages.
3047
3048         * doc/TODO: 
3049          - Ping isn't handled: This patch fixes it
3050          
3051          - Add a test case for the Ping message: added TODO item
3052
3053 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3054
3055         * dbus/dbus-message.c:
3056         (dbus_message_has_path): New method
3057         (dbus_message_has_interface): New method
3058         (dbus_message_has_member): New method
3059
3060         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3061         New method
3062
3063         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3064         the keyring directory is private to the user
3065
3066         * doc/TODO:
3067          - The convenience functions in dbus-bus.h should perhaps have
3068          the signatures that they would have if they were autogenerated
3069          stubs. e.g. the acquire service function. We should also evaluate
3070          which of these functions to include, in light of the fact that
3071          GLib/Qt native stubs will probably also exist.: Punted
3072
3073          - add dbus_message_has_path(), maybe has_member/interface:
3074          fixed in this patch
3075
3076          - in dbus-keyring.c, enforce that the keyring dir is not
3077          world readable/writable: Fixed in this patch
3078
3079 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3080
3081         * dbus/dbus-marshal-validate.h: Added a new validation
3082         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3083         out of memory errors when validating signitures
3084
3085         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3086         in places where we previously used DBUS_VALID and a FALSE return 
3087         value to indicate OOM
3088         
3089         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3090         Use a stack to track the number of elements inside containers.  The 
3091         stack values are then used to validate that dict entries have only two
3092         elements within them.
3093         (validate_body_helper): check the reason for failure when validating
3094         varients
3095         
3096         * dbus/dbus-message.c (load_message): use 
3097         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3098         DBUS_VALID and a FALSE return value to indicate OOM
3099
3100         * doc/TODO: remove "- validate dict entry number of fields" as this
3101         patch fixes it
3102
3103 2005-06-14  David Zeuthen  <davidz@redhat.com>
3104
3105         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3106         watches (if applicable) and add new watches
3107
3108         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3109         (main): Setup SIGIO signal handler if using D_NOTIFY
3110
3111         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3112
3113         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3114         (merge_included): Also merge conf_dirs list
3115         (bus_config_parser_unref): Clear conf_dirs list
3116         (include_dir): Add directory to conf_dirs list
3117         (bus_config_parser_get_conf_dirs): New function
3118
3119         * bus/dir-watch.[ch]: New files
3120
3121         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3122
3123         * configure.in: Add checks for D_NOTIFY on Linux
3124
3125 2005-06-14  Colin Walters  <walters@verbum.org>
3126
3127         * glib/dbus-binding-tool-glib.c:
3128         * glib/dbus-gobject.c:
3129         * glib/dbus-gvalue.c: Fix indentation and brace style.
3130         
3131 2005-06-14  Ross Burton <ross@openedhand.com>.
3132
3133         * glib/dbus-glib.h: Make DBusGMethodInvocation
3134         a private structure.  Rearrange prototypes a bit.
3135         
3136         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3137         documentation for first_arg_type.
3138         
3139         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3140         here, add documentation.  Move dbus_g_method_return
3141         and dbus_g_method_return_error into public API
3142         section.
3143
3144 2005-06-14  Colin Walters  <walters@verbum.org>
3145
3146         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3147         Add missing return statements, noticed by Ross Burton.
3148         
3149 2005-06-13  Ross Burton <ross@openedhand.com>.
3150
3151         * glib/dbus-gobject.c: Handle errors on message
3152         demarshalling by sending error message back.
3153         * glib/dbus-gvalue.c: Initialize return variables.
3154
3155 2005-06-13  Colin Walters  <walters@verbum.org>
3156
3157         * glib/Makefile.am: Fix thinko in last patch.
3158
3159 2005-06-13  Colin Walters  <walters@verbum.org>
3160
3161         * glib/Makefile.am: Move dbus-gtype-specialized.c
3162         and dbus-gtype-specialized.h into a _HEADERS variable,
3163         install them.
3164
3165 2005-06-12  Colin Walters  <walters@verbum.org>
3166
3167         Async signals and various bugfixes and testing by
3168         Ross Burton <ross@openedhand.com>.
3169
3170         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3171         (dbus_gvalue_genmarshal_name_from_type)
3172         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3173         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3174         (dbus_g_value_types_init, dbus_gtype_from_signature)
3175         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3176         (dbus_gtypes_from_arg_signature): New function prototypes.
3177         (dbus_gvalue_demarshal): Take context and error arguments.
3178         (dbus_gvalue_demarshal_variant): New function.
3179         (dbus_gvalue_demarshal_message): New function.
3180         (dbus_gvalue_store): Delete.
3181
3182         * glib/dbus-gvalue.c:
3183
3184         File has been almost entirely rewritten; now we special-case
3185         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3186         hash tables correctly, etc.  Full support for recursive values
3187         is not yet complete.
3188
3189         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3190         argument of signal to G_TYPE_POINTER since we now pass a
3191         structure.
3192         (lookup_g_marshaller): Delete in favor of
3193         _dbus_gobject_lookup_marshaller.
3194         (marshal_dbus_message_to_g_marshaller): Use
3195         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3196         to handle remote signal callbacks.
3197         (dbus_g_proxy_new_from_proxy): New function; creates a new
3198         DBusGProxy by copying an existing one.
3199         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3200         (dbus_g_proxy_get_path): New functions.
3201         (dbus_g_proxy_marshal_args_to_message): New function;
3202         factored out of existing code.
3203         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3204         from a varargs array.
3205         (dbus_g_proxy_begin_call_internal): New function.
3206         (dbus_g_proxy_end_call_internal): New function.
3207         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3208         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3209         after collecting args into value array.
3210         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3211         invoke dbus_g_proxy_end_call_internal.
3212         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3213         end_call_internal.
3214         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3215         types.
3216         (array_free_all): New function.
3217         (dbus_g_proxy_add_signal): Take GTypes.
3218
3219         * glib/dbus-gobject.h:
3220         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3221         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3222         Prototype.
3223
3224         * glib/dbus-gobject.c: Add a global marshal_table hash which
3225         stores mappings from type signatures to marshallers.  Change lots
3226         of invocations of dbus_gtype_to_dbus_type to
3227         dbus_gtype_to_signature.
3228         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3229         (introspect_signals): Fix test for query.return_type.
3230         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3231         (invoke_object_method): Many changes.  Handle asynchronous
3232         invocations.  Convert arguments with
3233         dbus_gvalue_demarshal_message.  Handle errors.  Use
3234         DBusSignatureIter instead of strlen on args. Handle all arguments
3235         generically.  Special-case variants.
3236         (dbus_g_method_return, dbus_g_method_return_error): New function.
3237         (DBusGSignalClosure): New structure, closes over signal
3238         information.
3239         (dbus_g_signal_closure_new): New function.
3240         (dbus_g_signal_closure_finalize): New function.
3241         (signal_emitter_marshaller): New function; is special marshaller
3242         which emits signals on bus.
3243         (export_signals): New function; introspects object signals and
3244         connects to them.
3245         (dbus_g_object_type_install_info): Take GType instead of
3246         GObjectClass.
3247         (dbus_g_connection_register_g_object): Invoke export_signals.
3248         (dbus_g_connection_lookup_g_object): New function.
3249         (DBusGFuncSignature) New structure; used for mapping type
3250         signatures to marshallers.
3251         (funcsig_hash): New function; hashes DBusGFuncSignature.
3252         (funcsig_equal): New function; compares DBusGFuncSignature.
3253         (_dbus_gobject_lookup_marshaller): New function.
3254         (dbus_g_object_register_marshaller): New function; used to
3255         register a marshaller at runtime for a particular signature.
3256
3257         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3258
3259         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3260         which notes a server method implementation should be
3261         asynchronous.
3262
3263         * glib/dbus-binding-tool-glib.c
3264         (dbus_binding_tool_output_glib_server): Call
3265         dbus_g_value_types_init.
3266         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3267         variants specially.
3268         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3269         of a lookup function.
3270         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3271         (write_untyped_out_args): New method; write output arguments.
3272         (write_formal_declarations_for_direction): Function for
3273         writing prototypes.
3274         (write_formal_parameters_for_direction): Function for
3275         writing implementations.
3276         (write_typed_args_for_direction): Function for writing
3277         arguments prefixed with GTypes.
3278         (write_async_method_client): Write out async version
3279         of method.
3280
3281         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3282         (dbus_g_type_get_marshal_name): Move mapping from GType
3283         to marshal name into here.
3284         (dbus_g_type_get_c_name): Move into here.
3285         (compute_marshaller): Convert signature to type with
3286         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3287         (compute_marshaller_name): Ditto.
3288         (compute_marshaller): Handle async signal annotations.
3289         (gather_marshallers): Return if we don't have a known
3290         prefix.
3291         (generate_glue): Collect introspection blob here, and
3292         write all of the blob at the end.  This allows an object
3293         with multiple interfaces to work.
3294         Mark async methods in introspection blob.
3295
3296         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3297         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3298         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3299
3300         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3301         avoids people accidentally using DBUS_TYPE_* which should
3302         not be necessary anymore.
3303         Do include dbus-gtype-specialized.h, which are utilities
3304         for GLib container types.
3305         Add various #defines for types such as
3306         DBUS_TYPE_G_BOOLEAN_ARRAY.
3307         (DBusGValueIterator, DBusGValue): Define, not fully used
3308         yet.
3309         (dbus_g_value_get_g_type): Type for recursive value.
3310         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3311         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3312         (dbus_g_value_free): Prototypes.
3313         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3314         (dbus_g_proxy_set_interface): Prototype.
3315         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3316         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3317         types.
3318         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3319         Accessors.
3320         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3321         doing async invocations.
3322         (dbus_g_method_return, dbus_g_method_return_error):
3323         Prototypes.
3324         * doc/dbus-tutorial.xml: Update GLib section.
3325         
3326         * tools/dbus-viewer.c (load_child_nodes): Update
3327         for new invocation type of dbus_g_proxy_end_call.
3328         (load_from_service_thread_func): Ditto.
3329
3330         * tools/print-introspect.c (main): Ditto.
3331
3332         * tools/dbus-names-model.c (have_names_notify)
3333         (names_model_reload, names_model_set_connection)
3334         Use GTypes.
3335
3336         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3337         needed since Python bindings use GLib bindings.
3338
3339         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3340         Add --prefix argument.
3341
3342         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3343         unneeded --ignore-unsupported arg.
3344         
3345         * test/glib/test-service-glib.c: 
3346         * test/glib/test-service-glib.xml:
3347         * test/glib/test-dbus-glib.c: Add many more tests.
3348
3349 2005-06-06  David Zeuthen  <davidz@redhat.com>
3350
3351         * doc/TODO: Add item about need to remove deprecated functions.
3352
3353         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3354
3355         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3356         to repair the ABI which was broken with the last commit.
3357
3358 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3359
3360         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3361         (dbus_connection_disconnect): renamed to dbus_connection_close 
3362         for API symmetry with dbus_connection_open
3363         (_dbus_connection_open_internal): 
3364         s/dbus_connection_disconnect/dbus_connection_close
3365
3366         * dbus/dbus-bus.c (dbus_bus_get):
3367         s/dbus_connection_disconnect/dbus_connection_close
3368
3369         * bus/connection.c (bus_connections_unref, 
3370         bus_connections_setup_connection, bus_connections_expire_incomplete):
3371         s/dbus_connection_disconnect/dbus_connection_close
3372
3373         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3374         kill_client_connection_unchecked, check_hello_connection):
3375         s/dbus_connection_disconnect/dbus_connection_close
3376
3377         * bus/bus.c (new_connection_callback):
3378         s/dbus_connection_disconnect/dbus_connection_close
3379
3380         * tools/dbus-send.c (main):
3381         s/dbus_connection_disconnect/dbus_connection_close
3382
3383         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3384         s/dbus_connection_disconnect/dbus_connection_close
3385         
3386         * test/test-service.c (path_message_func, filter_func):
3387         s/dbus_connection_disconnect/dbus_connection_close
3388         
3389         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3390         
3391 2005-05-25  Colin Walters  <walters@verbum.org>
3392
3393         * dbus/dbus-protocol.h: Move various bus service #defines such
3394           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3395           dbus/dbus-shared.h.
3396         * dbus/dbus-shared.h: Various defines moved here.
3397         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3398
3399 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3400
3401         * python/__init__.py: Python bindings deserve a minor version
3402         update.  Upped to (0, 40, 2)
3403
3404 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3405
3406         * python/decorators.py: add explicitly_pass_message decorator
3407         for passing in the dbus message as keyword for edge case signal
3408         handling
3409
3410         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3411         to conform with what dbus expects for match rules
3412         (SignalMatchRule.execute): add the dbus message as a keyword
3413         if the signal handler has requested it
3414
3415         * python/examples/example/signal-recipient.py: added some more
3416         examples on how to hook up to signals
3417
3418 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3419
3420         * python/decorators.py: import dbus_bindings
3421
3422         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3423         SignalMatchNode): new classes that implement wildcard signal
3424         callback matching using a tree lookup. Heavily modified from a
3425         patch sent by Celso Pinto (fd.o bug #3241)
3426
3427         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3428         use new match classes to handle signals.
3429
3430 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3431         
3432         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3433
3434 2005-05-18  Havoc Pennington  <hp@redhat.com>
3435
3436         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3437         gettext. Not really worth requiring yet perhaps, but any
3438         production quality 1.0 would require it so we should go ahead and
3439         get things set up. We do have a couple token calls to
3440         bindtextdomain in the code already.
3441
3442 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3443
3444         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3445         when using recursive g_main_loops
3446
3447         * python/_dbus.py (class Bus): add the ProxyObjectClass
3448         alias for ProxyObject to make it easier for the Twisted 
3449         networking framework to integrate dbus.
3450
3451         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3452         alias for ProxyMethod to make it easier for the Twisted 
3453         networking framework to integrate dbus. 
3454
3455 2005-05-11  Ross Burton  <ross@openedhand.com>
3456
3457         * glib/dbus-glib-tool.c: Add --prefix argument.
3458         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3459         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3460         Add prefix argument.
3461         (generate_glue): Pass prefix argument down.
3462         (dbus_binding_tool_output_glib_server): Pass prefix to
3463         glib-genmarshal.
3464         
3465 2005-05-11  Colin Walters  <walters@verbum.org>
3466
3467         * tools/dbus-send.c (append_array): New function.
3468         (append_arg): Broken out from main.
3469         (main): Add cheesy hack to send arrays and variants.
3470         (usage): Update.
3471         * tools/dbus-print-message.c (print_iter): Broken out
3472         from main.
3473
3474 2005-05-11  Colin Walters  <walters@verbum.org>
3475
3476         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3477         New function, returns signature string for signature iter.
3478         * dbus/dbus-signature.h: Prototype it.
3479         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3480         New function, returns signature string for message iter.
3481         (dbus_message_iter_get_array_len): New function, returns
3482         length of array.
3483         (dbus_message_iter_get_fixed_array): Fix assertion; this
3484         function should be used when the iter is pointing to the
3485         contents of an array
3486         * dbus/dbus-message.h: Prototypes.
3487         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3488         New function; returns length of an array.
3489         * dbus/dbus-marshal-recursive.h: Prototype it.
3490         
3491 2005-05-11  Colin Walters  <walters@verbum.org>
3492
3493         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3494         compilation error.
3495         
3496 2005-05-08  Havoc Pennington  <hp@redhat.com>
3497
3498         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3499         daemon's pid, not the parent's pid, to the file descriptor.
3500         Reported by Taj Morton.
3501
3502 2005-05-05  Havoc Pennington  <hp@redhat.com>
3503
3504         * configure.in (LT_*): add notes on how the libtool versioning
3505         works to save thinking. Increment soname to indicate protocol
3506         breakage (though really the library interface hasn't changed I
3507         guess)
3508
3509         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3510         verify the GUID received from server matches what we were
3511         expecting, if we had an expectation
3512
3513         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3514         (_dbus_auth_get_guid_from_server): new function
3515         (send_begin): parse the OK args
3516
3517         * doc/dbus-specification.xml: add GUID to the auth protocol
3518
3519 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3520
3521         * Fix my name in previous changelog ;)
3522
3523         * python/proxies.py (ProxyObject.__getattr__): add further patch
3524         from Anthony Baxter to throw an AttributeError when python 
3525         __special__ functions are called instead of marshling them over 
3526         the bus (Bug#1685 comment 3).
3527
3528 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3529
3530         * python/Makefile.am: changed to use pyexecdir for the binding
3531         shared libraries (Bug#2494)
3532
3533         * python/exceptions.py: bring exceptions over from the bindings
3534         so they can be used in applications (Bug#2036)
3535         Make all exceptions derive from DBusException
3536
3537         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3538         of classes so that print obj doesn't throw an exception (Bug #1685)
3539
3540 2005-05-03  Ross Burton  <ross@openedhand.com>
3541
3542         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3543         Return if we get an error during registration.  Set up a
3544         weak reference on object to unregister if object is destroyed.
3545         (unregister_gobject): New function.
3546         
3547 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3548
3549         * python/dbus_bindings.pyx.in: 
3550         - added new type classes for hinting to the marashaler what type 
3551         to send over the wire
3552         - added int16 and uint16 marshalers
3553         - Fixed a bug in the type constants that caused int32 to go out
3554         as uint16 over the wire
3555         * python/dbus.py: split up into different files and renamed _dbus.py
3556         * python/__init__.py, python/_util.py, python/decorators.py, 
3557         python/exceptions.py, python/proxies.py, python/services.py,
3558         python/types.py: new files split off from dbus.py
3559         * python/Makefile.am: Add new files, remove dbus.py and 
3560         install all python files to <python module dir>/dbus
3561         * python/examples/*: Added #!/usr/bin/env python to the top of
3562         every example.  Patch provided by Tatavarty Kalyan
3563
3564 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3565
3566         * NEWS: Update to 0.33
3567
3568 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3569
3570         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3571         method for doing async calls
3572         (_pending_call_notification): New C function for handling pendning call
3573         callbacks
3574         (set_notify): New method for setting pending call notification
3575         
3576         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3577         Async capabilities added to remote method calls
3578         (Sender): class removed
3579         (RemoteService): class removed
3580         (ObjectTree): class removed for now
3581         (RemoteObject): Renamed to ProxyObject
3582         (RemoteMethod): Renamed to ProxyMethod
3583         (method): Decorator added for decorating python methods as dbus methods
3584         (signal): Decorator added for decorating python methods as signal emitters
3585         (ObjectType): Metaclass added for generating introspection data and the
3586         method callback vtable
3587         (Interface): Wrapper class added to wrap objects in a dbus interface
3588         (Object): Uses ObjectType as its metaclass and exports Introspect
3589         of the org.freedesktop.DBus.Introspectable interface
3590         (ValidationException, UnknownMethodException): new exceptions
3591
3592         * python/examples/*: Modified to fit with the new bindings
3593
3594 2005-04-23  Havoc Pennington  <hp@redhat.com>
3595
3596         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3597         reported by Tony Houghton
3598
3599         * test/test-service.c (main): test
3600         dbus_connection_get_object_path_data()
3601
3602         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3603         the exact_match
3604         (_dbus_object_tree_get_user_data_unlocked): new function used by
3605         dbus_connection_get_object_path_data()
3606         (do_register): add assertion test for get_user_data_unlocked
3607         (object_tree_test_iteration): more tests
3608
3609         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3610         new function from Dan Reed to let you get the user data from 
3611         dbus_connection_register_object_path()
3612
3613 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3614
3615         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3616         in numerous places that did not account for the NULL terminator
3617         (signature_from_seed): changed the manual string copy loop to 
3618         just use strcpy instead
3619         make check should now pass
3620
3621 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3622
3623         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3624         so that it allows messages that are not signals to pass in 
3625         NULL as the interface.
3626
3627 2005-04-18  David Zeuthen  <davidz@redhat.com>
3628
3629         * glib/dbus-gmain.c (io_handler_destroy_source): 
3630         (timeout_handler_destroy_source, connection_setup_free): 
3631         Also unref the source to avoid memory leaks.
3632
3633 2005-04-13  David Zeuthen  <davidz@redhat.com>
3634
3635         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3636         more reasonable, yet still totally arbitrary, value :-). 
3637
3638 2005-04-13  David Zeuthen  <davidz@redhat.com>
3639
3640         * doc/TODO: Added an "important for 1.0" item about selinux
3641         allow/deny messages
3642
3643 2005-04-13  David Zeuthen  <davidz@redhat.com>
3644
3645         * bus/selinux.c: Add c-file-style to top of file
3646         (log_audit_callback): Don't free the data here anymore
3647         (bus_selinux_check): Don't take spid and tpid since appending
3648         that to auxdata may OOM.
3649         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3650         to the caller if we are OOM by taking an error object.
3651         (bus_selinux_allows_send): -do-
3652
3653         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3654         and bus_selinux_allows_send
3655
3656         * bus/bus.c (bus_context_check_security_policy): Pass error and
3657         pass on OOM thrown by bus_selinux_allows_send()
3658
3659         * bus/services.c (bus_registry_acquire_service): Pass error and
3660         pass on OOM thrown by bus_selinux_allows_acquire_service()
3661
3662 2005-04-13  Havoc Pennington  <hp@redhat.com>
3663
3664         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3665         message at a time to avoid monopolizing the main loop, bug 
3666         #2953 from Benjamin Otte
3667
3668 2005-04-09  Havoc Pennington  <hp@redhat.com>
3669
3670         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3671         possible overlap, fix from Daniel Reed
3672         (fixup_alignment): fix signedness warnings
3673         (_dbus_string_append_unichar): ditto
3674
3675 2005-04-09  Havoc Pennington  <hp@redhat.com>
3676
3677         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3678
3679         * glib/dbus-glib-tool.c (main): fix warning
3680
3681         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3682
3683         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3684         add a new function that can be used in simple applications that
3685         don't have a main loop and are willing to block
3686
3687 2005-04-05  David Zeuthen  <davidz@redhat.com>
3688
3689         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3690
3691         * glib/dbus-gmain.c:
3692         (io_handler_destroy_source): Remove from list of IO handlers
3693         of the ConnectionSetup object
3694         (timeout_handler_destroy_source): -do- for timeout handlers
3695         (io_handler_source_finalized): Don't remove from list since
3696         we now do that in io_handler_destroy_source(). Renamed from
3697         io_handler_source_destroyed
3698         (timeout_handler_source_destroyed): -do- for timeout handlers
3699         (connection_setup_free): It is now safe to iterate over all
3700         IO and timeout handlers as the _destroy_source removes them
3701         from the list synchronously
3702
3703 2005-03-30  Havoc Pennington  <hp@redhat.com>
3704
3705         * configure.in: change check to gtk 2.4
3706
3707         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3708         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3709         to 2.4
3710
3711 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3712
3713         * News: Update 0.32
3714
3715         * HACKING: Fixed realease instructions.  configure.in should be updated to
3716           the next release by the person who made the last release.
3717
3718 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3719
3720         * python/lvalue_cast_post_process.py - removed.  Patch has been
3721           submitted to Pyrex maintainers that fixes gcc4.0 errors
3722
3723         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3724
3725 2005-03-24  Daniel Reed  <n@ml.org>
3726
3727         * tools/Makefile.am: Make print-introspect and
3728         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3729
3730 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3731
3732         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3733
3734         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3735           had in Red Hat packages for a while but for some reason never 
3736           got merged upstream
3737           (_dbus_is_a_number): New checks if a string
3738           can be converted to a number and does the conversion if it can
3739           (_dbus_user_database_lookup): Add check to see if the given username
3740           is a udi.  This allows udi's to be used instead of usernames in the
3741           config file.
3742           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3743           is a gdi.  This allows gdi's to be used instead of groupnames in the
3744           config file.
3745
3746 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3747
3748         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3749           code so that it compiles with gcc4.0
3750
3751         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3752           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3753           results back to dbus_binding.c
3754
3755 2005-03-20  Colin Walters  <walters@verbum.org>
3756
3757         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3758
3759         * configure.in: Require GTK+ 2.6.
3760         
3761 2005-03-20  Colin Walters  <walters@verbum.org>
3762
3763         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3764
3765 2005-03-17  Tom Parker  <palfrey@tevp.net>
3766
3767         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3768         print DBUS_UID_UNSET; instead print passed username.  Also
3769         be sure to actually use gid looked up in cache.
3770         
3771         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3772         for DBUS_GID_UNSET and groupname.
3773
3774 2005-03-17  Colin Walters  <walters@verbum.org>
3775
3776         * bus/print-introspect.c: Move to tools/.
3777         * bus/run-with-tmp-session-bus.sh: Ditto.
3778         
3779         * glib/Makefile.am (dbus-glib-bindings.h): Move
3780         generation to tools/Makefile.am.
3781
3782         * test/glib/run-test.sh: Update to handle move
3783         of run-with-tmp-session-bus.sh.
3784
3785         * test/glib/test-service-glib.c: Update to handle
3786         move of dbus-glib-bindings.h.
3787
3788         * tools/print-introspect.c: Moved here
3789         from bus/, and ported to GLib bindings.
3790
3791         * tools/run-with-tmp-session-bus.sh: Moved here
3792         from bus/.
3793
3794         * tools/Makefile.am: Generate dbus-glib-bindings.h
3795         and dbus-bus-introspect.xml here.
3796
3797         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3798         Update.
3799
3800 2005-03-17  Colin Walters  <walters@verbum.org>
3801
3802         * bus/driver.c (write_args_for_direction): Use
3803         _dbus_string_get_const_data to retrieve string;
3804         _dbus_string_get_const_data_len doesn't actually return
3805         a NULL-terminated substring.
3806
3807         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3808         (main): Change to use org_freedesktop_DBus_request_name
3809         instead of using g_proxy_begin_call/end_call.
3810
3811 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3812
3813         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3814         generating the finalizer.  Fixes from Ben Maurer.
3815
3816 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3817
3818         * mono/BusDriver.cs: Update method names: ListServices
3819         becomes ListNames; GetOwner becomes GetNameOwner.
3820
3821         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3822         onto the eval stack when removing the delegate.
3823
3824 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3825
3826         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3827         LT_CURRENT.  Set it to the autoconf variable.
3828                                                                                 
3829         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3830         classes that disconnects the signal handler delegate from the
3831         service object.  Fixes a big leak of proxy objects on the
3832         client side of things.  Patch from Ben Maurer
3833         <bmaurer@ximian.com>
3834
3835 2005-03-12  Colin Walters  <walters@verbum.org>
3836
3837         * bus/driver.c (write_args_for_direction): New function,
3838         parses a type signature into arguments and outputs to
3839         XML.
3840         (bus_driver_handle_introspect): Use it instead of
3841         hardcoding XML for certain signatures.
3842         
3843         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3844         dependency on dbus-daemon.
3845
3846         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3847         argument, pass it to dbus_binding_tool_output_glib_client.
3848
3849         * glib/dbus-binding-tool-glib.c
3850         (generate_client_glue): Protect against multiple inclusion.
3851         (dbus_binding_tool_output_glib_client): Add
3852         G_BEGIN_DECLS/G_END_DECLS.
3853
3854         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3855         Change to just take iface prefix directly.
3856         (write_formal_parameters): Clarify error message.
3857         (check_supported_parameters): New function; checks to see type
3858         signatures of method parameters are supported.
3859         (generate_client_glue): Handle ignore_unsupported flag.
3860         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3861         parameter.
3862
3863         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3864         --ignore-unsupported by default until glib bindings
3865         support arrays.
3866
3867 2005-03-11  Colin Walters  <walters@verbum.org>
3868
3869         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3870         install it.
3871
3872         * bus/print-introspect.c: New file; prints introspection
3873         data for a given name and object path.
3874
3875         * bus/run-with-tmp-session-bus.sh: New file, refactored
3876         from test/glib/run-test.sh.  Creates a temporary session
3877         bus and runs another program.
3878
3879         * test/glib/run-test.sh: Refactor to invoke
3880         run-with-tmp-session-bus.sh.
3881
3882         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3883         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3884         macros instead of hardcoding.
3885
3886         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3887
3888 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3889
3890         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3891         this unref; it doesn't match up evenly in some codepaths.
3892         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3893         this evenly matches with the ref near the top of this function.
3894
3895 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3896
3897         * dbus/dbus-object-tree.c
3898         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3899         and we try to unregister a path that's not registered, still go
3900         through the process of unlocking and don't just return.
3901
3902 2005-03-09  Colin Walters  <walters@verbum.org>
3903
3904         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3905         to this are generated for client-side wrappers.  Invokes a
3906         D-BUS method and returns reply values.  
3907
3908         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3909         function; writes signature string for argument direction.
3910         (write_args_for_direction): Change to pass input values directly
3911         instead of via address, and fix indentation.
3912         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3913         make generated wrappers inlineable.
3914
3915         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3916         note about using dbus_type_is_fixed.
3917
3918         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3919         dbus/dbus-signature.c as dbus_type_is_fixed.
3920
3921         All callers updated.
3922
3923         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3924         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3925
3926         * dbus/dbus-signature.h: Prototype.
3927
3928         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3929         error printf code.
3930
3931         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3932         appropriate instead of just freeing it.
3933         (main): Free returned strings using g_free.
3934
3935         * test/glib/Makefile.am (test-service-glib-glue.h)
3936         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3937
3938         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3939         simply maps a simple D-BUS type to GType.
3940         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3941         GType.
3942         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3943         initialize the value with it.
3944         (dbus_gvalue_binding_type_from_type): Unused, delete.
3945         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3946         various types instead of unmarshalling to value data directly.
3947         Remove can_convert boolean.
3948         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3949         returning directly instead of using can_convert boolean.
3950         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3951         Stores a GValue in a pointer to a value of its corresponding C
3952         type.
3953
3954         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3955         add dbus_gvalue_store.
3956
3957 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3958
3959         Fix a bunch of lifecycle and memory management problems
3960         in the mono bindings.
3961
3962         * mono/Arguments.cs (Arguments): Implement IDisposable
3963
3964         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3965         strictly a static class.
3966
3967         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3968         delegates into this file.
3969         (Connection): Implement IDisposable.
3970         (Dispose): Disconnect the connection and set the raw connection
3971         pointer to IntPtr.Zero.
3972         (~Connection): Call Dispose().
3973         (RegisterObjectPath): Added.  Manages the registration of object
3974         paths so we can cleanly disconnect them at dispose/finalize time.
3975         (UnregisterObjectPath): Ditto.
3976         (set_RawConnection): Unregister all of the object paths when
3977         changing the underlying DBusConnection.  Add them back onto the
3978         new connection, if any.
3979
3980         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3981         more unmanaged resources anymore, so it's not necessary.  Move all
3982         the DBusObjectPathVTable stuff out of here.
3983         (Handler): Save references to our delegates so that they don't get
3984         finalized.  Call Connection.RegisterObjectPath() instead of
3985         dbus_connection_register_object_path() directly.
3986         (Message_Called): Dispose the message after we're finished with
3987         it.
3988
3989         * mono/Message.cs (Message): Implement IDisposable.
3990         (Dispose): Dispose the Arguments, and set the RawMessage to
3991         IntPtr.Zero.
3992         (SendWithReplyAndBlock): We own the ref to the reply that comes
3993         back from dbus_connection_send_with_reply_and_block() so add a
3994         comment about that and unref it after we've constructed a managed
3995         MethodReturn class around it.  Fixes a big, big leak.
3996
3997         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3998         method.
3999         (BuildSignalHandler): After we've sent the Signal message, dispose
4000         of it.
4001         (BuildMethod): Dispose of the method call and reply messages after
4002         we've sent the message and extracted the data we want from the
4003         reply.
4004
4005         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4006         anymore.
4007         (Service_FilterCalled): Dispose of the message after we're
4008         finished with it.
4009
4010 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4011
4012         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4013         After we attach our pending call to the connection, unref
4014         it.  Fixes a leak.
4015  
4016         * mono/Connection.cs (set_RawConnection): Disconnect our
4017         filter and match callbacks from the old connection and
4018         reconnect them to the new connection, if any.
4019
4020         * mono/DBusType/Array.cs: "Code" is a static member, so
4021         don't use "this" to refer to it.  Fix for stricter checking
4022         in Mono 1.1.4.
4023  
4024         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4025         object path that we pass into unmanaged code.
4026  
4027         * mono/DBusType/String.cs (Append): Don't leak the string
4028         that we pass into unmanged code.
4029
4030 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4031         * NEWS: Update for 0.31
4032
4033         * configure.in: Release 0.31
4034         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4035
4036         * qt/Makefile.am: fixed build
4037
4038         * dbus/Makefile.am: soname bump for libdbus
4039
4040         * glib/Makefile.am: soname bump for libdbus-glib
4041
4042 2005-03-05  Havoc Pennington  <hp@redhat.com>
4043
4044         * dbus/dbus-sysdeps.c:
4045         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4046         value
4047         (_dbus_generate_random_bytes_buffer): fix return value
4048
4049         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4050         checks actually work, from Tom Parker <fdo@tevp.net>
4051
4052 2005-03-01  Colin Walters  <walters@verbum.org>
4053
4054         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4055         functions copied from dbus-glib-tool.c.
4056         (main): Convert lots of error code to use them.
4057         Also add some testing for introspection bits.
4058
4059 2005-03-01  Colin Walters  <walters@verbum.org>
4060         
4061         * doc/TODO: Remove introspection signature TODO.
4062
4063 2005-02-27  Colin Walters  <walters@verbum.org>
4064
4065         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4066         Change return value to const char * instead of int so we can do
4067         full signatures.
4068         (struct PropertyInfo, struct ArgInfo): Store char *.
4069         (property_info_new, arg_info_new): Update parameters, strdup.
4070         (property_info_unref, arg_info_unref): Free.
4071
4072         * glib/dbus-gidl.h: Update prototypes.
4073
4074         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4075         (validate_signature): New function, just validates signature and
4076         sets GError.
4077         (parse_property, parse_arg): Invoke validate_signature.  Store
4078         signature instead of just type code.
4079
4080         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4081         function to return a primary type for a signature, dropping
4082         information about types in container types.
4083         (dbus_gvalue_genmarshal_name_from_type)
4084         (dbus_gvalue_binding_type_from_type)
4085         (dbus_gvalue_ctype_from_type): Update to take full signature
4086          instead of type code.
4087         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4088
4089         * glib/dbus-gvalue.h: Update prototypes for above.
4090
4091         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4092         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4093         (introspect_properties, introspect_signals, write_interface):
4094         Update to handle signatures, and remove usage of
4095         _dbus_gutils_type_to_string.
4096         (handle_introspect): Print out type codes instead of e.g. "string"
4097         in hardcoded introspection XML; also use x_AS_STRING constants
4098         instead of hardcoding in string.
4099
4100         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4101         to string.  Remove usage of _dbus_gutils_type_to_string.
4102
4103         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4104
4105         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4106         deletion.
4107         
4108         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4109         (compute_marshaller_name, generate_glue): Handle signature change
4110         to string.
4111         (write_formal_parameters, write_args_for_direction): Ditto, and
4112         remove FIXME.
4113
4114         * tools/dbus-tree-view.c (type_to_string): Delete.
4115         (info_set_func_text): Update to print full signatures.
4116
4117         * test/glib/test-service-glib.xml: Change types to new
4118         introspection format.
4119
4120 2005-02-26  Havoc Pennington  <hp@redhat.com>
4121
4122         * doc/TODO: remove the "guid" item
4123
4124         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4125         (with_bus_thread_func): use open_private
4126
4127         * dbus/dbus-connection.c (dbus_connection_open_private): new
4128         function that works like the old dbus_connection_open()
4129         (dbus_connection_open): now returns an existing connection if
4130         possible
4131
4132         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4133         through the GUID to the transport
4134
4135         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4136         GUID in hex-encoded form.
4137
4138         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4139         pass GUID argument in to the transport
4140
4141         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4142         guid argument
4143
4144         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4145
4146         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4147
4148 2005-02-25  Havoc Pennington  <hp@redhat.com>
4149
4150         * doc/dbus-specification.xml: document the GUID thing
4151
4152         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4153         globally unique ID for the server, and put a "guid=hexencoded"
4154         field in the address
4155
4156         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4157
4158         * dbus/dbus-message.c: ditto
4159
4160         * dbus/dbus-dataslot.c: ditto
4161
4162         * dbus/dbus-list.c: ditto
4163
4164         * dbus/dbus-internals.h: wait, just include
4165         dbus-threads-internal.h here
4166         
4167         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4168         use in main library
4169
4170         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4171
4172 2005-02-24  Colin Walters  <walters@verbum.org>
4173
4174         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4175
4176 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4177
4178         * glib/Makefile.am: added dbus-gobject.h to sources list
4179         so distcheck doesn't fail
4180         
4181 2005-02-24  Havoc Pennington  <hp@redhat.com>
4182
4183         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4184         you must disconnect before unref, since locking and other things
4185         are screwed up otherwise. Fix assorted other locking stuff.
4186
4187         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4188         fix compilation
4189
4190         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4191         into a private header and don't export from the library
4192
4193         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4194
4195 2005-02-24  Colin Walters  <walters@verbum.org>
4196         
4197         * dbus/dbus-signature.c: New file; implements various functions
4198         related to type signatures.  Includes an interator for parsing,
4199         validation functions.
4200         (dbus_type_is_basic): Moved here from
4201         dbus-marshal-basic.c:_dbus_type_is_basic.
4202         (dbus_type_is_container): Moved here from
4203         dbus-marshal-basic.c:_dbus_type_is_container.
4204
4205         All callers of _dbus_type_is_container and _dbus_type_is_basic
4206         updated, and include dbus-signature.h.
4207
4208         * dbus/dbus-signature.h: New file; prototypes for the above.
4209
4210         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4211         dbus-signature.h.
4212
4213         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4214         function factored out of _dbus_first_type_in_signature.
4215         (_dbus_first_type_in_signature_c_str): New function; returns first
4216         type code for a type signature character.
4217
4218         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4219         handle function moves.
4220
4221         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4222
4223         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4224         function; skips to next complete type in type signature.
4225         Implemented using previous skip_one_complete_type.  Now
4226         skip_one_complete_type just delegates to
4227         _dbus_type_signature_next.
4228
4229         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4230         to dbus-signature.c
4231         (_dbus_type_is_container): Ditto.
4232
4233         * doc/dbus-specification.xml: Update introspection sample to
4234         use real type signatures.
4235
4236         * dbus/dbus-test.h: Prototype signature test.
4237
4238         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4239         signature tests.
4240
4241         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4242
4243 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4244
4245         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4246         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4247
4248 2005-02-21  Colin Walters  <walters@verbum.org>
4249
4250         * dbus/dbus-test-main.c (main): Take optional specific test
4251         argument.
4252
4253         * dbus/dbus-test.c (run_test): New function, runs a test function
4254         with no data directory.
4255         (run_data_test): Like above, but takes data directory.
4256         (dbus_internal_do_not_use_run_tests): Take
4257         specific test argument.  Replace lots of cut n' paste code
4258         with run_test and run_data_test.
4259
4260         * dbus/dbus-test.h: Update prototype for
4261         dbus_internal_do_not_use_run_tests.
4262
4263 2005-02-20  Havoc Pennington  <hp@redhat.com>
4264
4265         Fix bugs reported by Daniel P. Berrange
4266         
4267         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4268         (protected_change_watch): new function
4269         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4270         (_dbus_server_add_watch): change to work like the
4271         dbus-connection.c equivalents; like those, probably kind of
4272         busted, but should at least mostly work for now
4273         (dbus_server_disconnect): drop the lock if we were already
4274         disconnected, patch from Daniel P. Berrange
4275
4276         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4277         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4278         same stuff
4279
4280         * doc/TODO: todo about unscrewing this mess
4281
4282 2005-02-19  Colin Walters  <walters@verbum.org>
4283
4284         * glib/dbus-binding-tool-glib.c
4285         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4286
4287         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4288         as errno.h and sys/stat.h.
4289         (lose): New function, prints error with
4290         newline and exits.
4291         (lose_gerror): Similar, but takes GError for message.
4292         (main): Add --output argument to specify output file to write to,
4293         instead of always printing to stdout.  In this mode, determine
4294         timestamps on source files to see whether any are newer than the
4295         target file.  If not, exit.  Also convert a number of error
4296         messages to use lose (since it's shorter), and switch to using
4297         g_io_channel_shutdown.
4298
4299 2005-02-19  Havoc Pennington  <hp@redhat.com>
4300
4301         * glib/dbus-gobject.c
4302         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4303
4304         * glib/dbus-glib.c: fix doxygen warnings
4305
4306         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4307         is found on an <arg>
4308
4309 2005-02-17  Colin Walters  <walters@verbum.org>
4310
4311         * glib/dbus-gobject.h: Don't export
4312         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4313         
4314         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4315         (invoke_object_method): Handle it.
4316
4317         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4318         Handle rename.
4319         
4320 2005-02-17  Colin Walters  <walters@verbum.org>
4321
4322         * bus/.cvsignore, doc/.cvsignore
4323         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4324         Update.
4325
4326 2005-02-17  Colin Walters  <walters@verbum.org>
4327         
4328         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4329         Rename to DBUS_SERVICE_DBUS.
4330         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4331         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4332         Change the value from "org.freedesktop.Local"
4333         to "org.freedesktop.DBus.Local".
4334         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4335         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4336         DBUS_INTERFACE_INTROSPECTABLE.
4337         Change the value from "org.freedesktop.Introspectable"
4338         to "org.freedesktop.DBus.Introspectable".
4339         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4340         DBUS_INTERFACE_PROPERTIES.
4341         Change the value from "org.freedesktop.Properties"
4342         to "org.freedesktop.DBus.Properties".
4343         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4344         DBUS_INTERFACE_PEER.
4345         Change the value from "org.freedesktop.Peer"
4346         to "org.freedesktop.DBus.Peer".
4347         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4348         DBUS_INTERFACE_LOCAL.
4349         Change the value from "org.freedesktop.Local"
4350         to "org.freedesktop.DBus.Local".
4351
4352         All other users of those constants have been changed.
4353
4354         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4355
4356         * glib/dbus-gobject.c (handle_introspect): Use constants.
4357
4358         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4359
4360 2005-02-17  Colin Walters  <walters@verbum.org>
4361
4362         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4363         (parse_node, parse_interface, parse_method, parse_signal)
4364         (parse_property, parse_annotation): Lose if we're currently in an
4365         annotation.
4366         (parse_annotation): New function.
4367         (parser_start_element, parser_end_element): Handle annotation.
4368         (parse_method, parse_interface): Remove support for c_name attribute,
4369         switch to annotations.
4370
4371         * glib/dbus-gidl.h (interface_info_get_binding_names)
4372         (method_info_get_binding_names)
4373         (interface_info_get_binding_name, method_info_get_binding_name)
4374         (interface_info_set_binding_name, method_info_set_binding_name):
4375         Remove.
4376         (interface_info_get_annotations, method_info_get_annotations)
4377         (interface_info_get_annotation, method_info_get_annotation)
4378         (interface_info_add_annotation, method_info_add_annotation):
4379         Prototype.
4380
4381         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4382         for "bindings".
4383         (struct MethodInfo): Ditto.
4384         Straightfoward conversion of binding methods into annotation methods
4385         as prototyped.
4386
4387         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4388
4389         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4390
4391         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4392         Use new annotation API.
4393
4394         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4395         annotation element.
4396         
4397         * doc/dbus-specification.xml: Discuss introspection annotations,
4398         include list of well-known annotations.
4399
4400         * test/glib/test-service-glib.xml: Make validate against new DTD.
4401
4402 2005-02-17  Colin Walters  <walters@verbum.org>
4403
4404         This patch is based on initial work from
4405         Paul Kuliniewicz <kuliniew@purdue.edu>.
4406
4407         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4408         initialization of GValue from dbus type to here.
4409         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4410         for the "glib-genmarshal" program from a DBus type.
4411         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4412         into the C name for it we use in the glib bindings.
4413         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4414         glib C type (not GValue).
4415         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4416
4417         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4418         from dbus-gobject.c.
4419
4420         * glib/dbus-gutils.h: Prototype it.
4421
4422         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4423         (marshal_dbus_message_to_g_marshaller): Use new shared function
4424         dbus_glib_marshal_dbus_message_to_gvalue_array.
4425
4426         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4427         Will be changed once we have annotations.
4428
4429         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4430         GStaticRWLock.  Callers updated.
4431         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4432         (string_table_next): New function for iterating over zero-terminated
4433         string value array.
4434         (string_table_lookup): New function; retrieves specific entry in
4435         array.
4436         (get_method_data): New function; look up method data in object data chunk.
4437         (object_error_domain_prefix_from_object_info)
4438         (object_error_code_from_object_info): New functions, but not implemented yet.
4439         (method_interface_from_object_info): New function; retrieve interface name.
4440         (method_name_from_object_info): New function; retrieve method name.
4441         (method_arg_info_from_object_info): New function; retrieve argument data.
4442         (arg_iterate): New function; iterates over serialized argument data.
4443         (method_dir_signature_from_object_info): New function; returns a
4444         GString holding type signature for arguments for just one
4445         direction (input or output).
4446         (method_input_signature_from_object_info)
4447         (method_output_signature_from_object_info): New functions.
4448         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4449         converts dbus message arguments into a GValue array.  Used for both
4450         signal handling and method invocation.
4451         (struct DBusGlibWriteIterfaceData): New utility structure.
4452         (write_interface): New function; generate introspection XML for
4453         an interface.
4454         (introspect_interfaces): New function; gathers all interface->methods,
4455         generates introspection XML for them.
4456         (handle_introspect): Invoke introspect_interfaces.
4457         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4458         (lookup_object_and_method): New function; examines an incoming message
4459         and attempts to match it up (via interface, method name, and argument
4460         signature) with a known object and method.
4461         (gerror_domaincode_to_dbus_error_name): New function; converts a
4462         GError domain and code into a DBus error name.  Needs GError data
4463         added to object introspection to work well.
4464         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4465         GError.
4466         (invoke_object_method): New function to invoke an object method
4467         looked up via lookup_object_and_method.  Parses the incoming
4468         message, turns it into a GValue array, then invokes the marshaller
4469         specified in the DBusGMethodInfo.  Creates a new message with
4470         either return values or error message as appropriate.
4471         (gobject_message_function): Invoke lookup_object_and_method and
4472         invoke_object_method.
4473
4474         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4475         (enum DBusBindingOutputMode): New enum for binding output modes.
4476         (pretty_print): Print binding names.
4477         (dbus_binding_tool_error_quark): GError bits.
4478         (version): Fix typo.
4479         (main): Create GIOChannel for output.  Parse new --mode argument,
4480         possible values are "pretty-print", "glib-server", "glib-client".
4481         Use mode to invoke appropriate function.
4482         
4483         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4484
4485         * glib/dbus-glib-tool.h: New header, just includes GError bits
4486         for now.
4487
4488         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4489         maps binding style to name.
4490         (struct MethodInfo): Ditto.
4491         (get_hash_keys, get_hash_key): Utility function, returns keys for
4492         a GHashTable.
4493         (interface_info_new, method_info_new): Initialize bindings.
4494         (interface_info_unref, method_info_unref): Destroy bindings.
4495         (method_info_get_binding_names, method_info_get_binding_name)
4496         (interface_info_get_binding_names, interface_info_get_binding_name):
4497         Functions for retrieving binding names.
4498         (method_info_set_binding_name, interface_info_set_binding_name):
4499         Functions for setting binding names.
4500
4501         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4502         for glib binding generation.
4503
4504         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4505         and client-side glib glue generation.
4506
4507         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4508         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4509         dbus-glib-tool.h.
4510
4511         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4512         of using GClosureMarshal directly.
4513         (struct DBusGObjectInfo): Add n_infos member.
4514
4515         * test/glib/test-service-glib.xml: New file; contains introspection data
4516         for MyTestObject used in test-service-glib.c.
4517
4518         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4519         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4520         (my_object_uppercase, my_object_many_args): New test methods.
4521         (main): Use dbus_g_object_class_install_info to include generated object
4522         info.
4523
4524         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4525         as well as client-side bindings.
4526
4527         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4528         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4529         using both the dbus_gproxy stuff directly as well as the generated bindings.
4530
4531 2005-02-15  Havoc Pennington  <hp@redhat.com>
4532
4533         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4534         complete a pending call, don't run filters first.
4535
4536         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4537         dbus_pending_call_steal_reply
4538
4539         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4540         _dbus_connection_block_pending_call
4541         (dbus_pending_call_get_reply): change to steal_reply and return a
4542         ref
4543
4544         * dbus/dbus-connection.c
4545         (dbus_connection_send_with_reply_and_block): port to work in terms
4546         of DBusPendingCall
4547         (_dbus_connection_block_pending_call): replace block_for_reply
4548         with this
4549
4550 2005-02-14  Havoc Pennington  <hp@redhat.com>
4551
4552         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4553         properly handle looking up group information by name; fix 
4554         from j@bootlab.org
4555
4556 2005-02-13  Havoc Pennington  <hp@redhat.com>
4557
4558         * dbus/dbus-connection.c (dbus_connection_return_message) 
4559         (dbus_connection_borrow_message): hold dispatch lock while message
4560         is outstanding
4561         (_dbus_connection_block_for_reply): hold dispatch lock while we
4562         block for the reply, so nobody steals our reply
4563         (dbus_connection_pop_message): hold the dispatch lock while we
4564         pluck the message
4565
4566 2005-02-13  Havoc Pennington  <hp@redhat.com>
4567
4568         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4569         (_dbus_connection_release_dispatch)
4570         (_dbus_connection_acquire_io_path)
4571         (_dbus_connection_release_io_path): make the mutex and condvar
4572         control access to the "acquired" flag. Drop the connection lock
4573         while waiting on the condvar. Hopefully these are baby steps in
4574         roughly the right direction.
4575
4576 2005-02-13  Havoc Pennington  <hp@redhat.com>
4577
4578         * dbus/dbus-connection.c: use separate mutexes for the condition
4579         variables; this is some kind of baseline for sanity, but the
4580         condition variables still aren't used correctly afaict
4581
4582 2005-02-13  Havoc Pennington  <hp@redhat.com>
4583
4584         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4585         fix a double-unlock
4586
4587         * dbus/dbus-connection.c
4588         (_dbus_connection_detach_pending_call_unlocked): add this
4589
4590         Initial semi-correct pass through to fix thread locking; there are
4591         still some issues with the condition variable paths I'm pretty
4592         sure
4593         
4594         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4595         lock/unlock calls
4596
4597         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4598         rename to add _unlocked
4599         (struct DBusConnection): move "dispatch_acquired" and
4600         "io_path_acquired" to use only one bit each.
4601         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4602         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4603         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4604         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4605         (_dbus_connection_remove_timeout) 
4606         (_dbus_connection_toggle_timeout): drop lock when calling out to
4607         user functions; done in a hacky/bad way.
4608         (_dbus_connection_send_and_unlock): add a missing unlock
4609         (_dbus_connection_block_for_reply): add a missing unlock
4610
4611         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4612         drop lock in a hacky probably unsafe way to call out to user
4613         function
4614
4615 2005-02-12  Havoc Pennington  <hp@redhat.com>
4616
4617         * tools/dbus-tree-view.c (info_set_func_text): display more
4618         details on args
4619
4620         * bus/driver.c (bus_driver_handle_list_services): list the bus
4621         driver
4622
4623         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4624
4625         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4626         (method_info_get_n_args): new function
4627
4628 2005-02-12  Havoc Pennington  <hp@redhat.com>
4629
4630         * bus/driver.c (bus_driver_handle_introspect): add introspection
4631         for bus driver
4632
4633 2005-02-12  Havoc Pennington  <hp@redhat.com>
4634
4635         * bus/driver.c: put the signature of each bus driver method in the
4636         table of handlers and check it on incoming calls; this isn't
4637         really useful, but going to add introspect support in a minute.
4638
4639 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4640
4641         * mono/Connection.cs: The unpredictability of finalizers in mono
4642         prevents us from deterministically disconnecting the filters from
4643         the Service class's finalizer, so move tracking of filters and
4644         matches here.  Add API for that.
4645
4646         * mono/Service.cs: Remove the code, add code which calls the
4647         methods now on the Connection class.
4648
4649 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4650
4651         * python/dbus.py (class Sender): added to support dbus signals better
4652         (Bus::add_signal_receiver): added expand_args parameter which defaults
4653         to True.  When expand args is True the signal handler will pass the 
4654         message arguments as parameters to the signal handler.  If False
4655         revert to previous behavior where the signal handler must get the
4656         argument list from the message.  This is to help port applications
4657         like HAL that have a tendancy to send variable length argument lists.
4658         self._match_rule_to_receivers is now a dict of dicts.
4659         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4660         removing it from a list
4661         (Bus::_signal_func): change signal handlers so that interface,
4662         signal_name, service, path and message are packed into a Sender
4663         object and that is passed to the handler.  If expand_args is True
4664         extract the args list from the message and append it to the parameter
4665         list
4666         
4667         * python/dbus_bindings.pyx.in (class Signature): added to support 
4668         signiature types
4669         (MessageIter::__init__): changed iteration limit to match D-BUS
4670         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4671         STRUCT and VARIENT type support
4672         (MessageIter::python_value_to_dbus_sig): made recursive to support
4673         recursive types
4674         (MessageIter::append*): added Signature, dict, tuple 
4675         support
4676
4677         * python/examples/example-client.py: added examples of getting tuples
4678         and dicts
4679
4680         * python/examples/example-service.py: added examples of sending tuples
4681         and dicts
4682
4683         * python/examples/example-signal-recipient.py: Fixed to handle new
4684         signal callback format
4685
4686 2005-02-10  Havoc Pennington  <hp@redhat.com>
4687
4688         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4689         (call dbus_g_proxy_add_signal)
4690
4691         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4692         escape the hostname
4693         (_dbus_server_new_for_domain_socket): escape the path
4694
4695         * dbus/dbus-address.c (dbus_address_escape_value): new
4696         (dbus_address_unescape_value): new
4697         (dbus_parse_address): unescape values
4698
4699         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4700
4701         * doc/dbus-specification.xml: explain how to escape values in
4702         addresses
4703
4704 2005-02-10  Havoc Pennington  <hp@redhat.com>
4705
4706         * dbus/dbus-message-factory.c (generate_special): modify test to
4707         avoid using a non-basic dict key
4708
4709         * dbus/dbus-marshal-validate-util.c: add test for the below
4710
4711         * doc/dbus-specification.xml: require that dict keys are a basic
4712         type
4713
4714         * dbus/dbus-marshal-validate.c
4715         (_dbus_validate_signature_with_reason): require that dict key is a
4716         basic type
4717
4718 2005-02-10  Havoc Pennington  <hp@redhat.com>
4719
4720         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4721         change to be _and_unlock instead of _unlocked
4722
4723         * dbus/dbus-connection.c
4724         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4725         have no_update so we can find this bug quickly in future
4726
4727 2005-02-10  Havoc Pennington  <hp@redhat.com>
4728
4729         * dbus/dbus-message-util.c (verify_test_message): tests for string
4730         array
4731
4732         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4733         support for arrays of string/signature/path
4734
4735 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4736
4737         * dbus/dbus-connection.c
4738         (_dbus_connection_queue_received_message_link,
4739         _dbus_connection_message_sent): Add the path to
4740         the verbose output.
4741         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4742         _dbus_connection_send_preallocated_unlocked(), updated the
4743         dispatch status, and unlocks.  Fixes a bug where certain
4744         situations (like a broken pipe) could cause a Disconnect message
4745         to not be sent, tricking the bus into thinking a service was still
4746         there when the process had quit.
4747         (_dbus_connection_send_preallocated): Call
4748         _dbus_connection_send_preallocated_and_unlock().
4749         (_dbus_connection_send_and_unlock): Added.  Calls
4750         _dbus_connection_send_preallocated_and_unlock().
4751         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4752         (dbus_connection_send_with_reply): Update the dispatch status and
4753         unlock.
4754
4755         * mono/Service.cs (~Service): Added.  Removes the filter so that
4756         we don't get unmanaged code calling back into a GCed delegate.
4757         (RemoveFilter); Added.
4758
4759 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4760
4761         * dbus/dbus-message.c (dbus_message_iter_open_container):
4762         - Removed check for iterator type being an array because
4763         get_arg_type does not work with writer iterators
4764         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4765
4766 2005-02-07  Havoc Pennington  <hp@redhat.com>
4767
4768         * doc/dbus-specification.xml: some more language cleanups; add
4769         stuff about how to deal with invalid protocol and extension
4770         points; add _ to allowed chars in auth commands; add EXTENSION_
4771         auth command prefix
4772
4773 2005-02-06  Havoc Pennington  <hp@redhat.com>
4774
4775         * s/expected/required/ in a couple places for clarity
4776
4777 2005-02-07  Colin Walters  <walters@verbum.org>
4778
4779         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4780         sender or proposed_recipient.
4781
4782 2005-02-06  Havoc Pennington  <hp@redhat.com>
4783
4784         * dbus/dbus-message-factory.c (generate_special): more tests
4785
4786         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4787         array length that exceeds the maximum
4788
4789 2005-02-05  Havoc Pennington  <hp@redhat.com>
4790
4791         * dbus/dbus-message-factory.c (generate_special): more test cases,
4792         increasing coverage
4793
4794         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4795         reason why a signature was invalid
4796
4797         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4798         skip the length of the string before we look at it in validation
4799
4800         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4801         equal_substring
4802
4803         * dbus/dbus-message.c (_dbus_message_loader_new): default
4804         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4805
4806 2005-02-05  Havoc Pennington  <hp@redhat.com>
4807
4808         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4809         if the signature of a variant was empty
4810         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4811         struct with no element type)
4812
4813         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4814         mangled messages to break things
4815
4816 2005-02-04  Havoc Pennington  <hp@redhat.com>
4817
4818         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4819         g_quark_try_string() so it actually can return 0
4820         (dbus_g_proxy_connect_signal): ditto
4821
4822 2005-02-04  Havoc Pennington  <hp@redhat.com>
4823
4824         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4825         bogus warning
4826         (tristring_from_message): assert cleanly on null path/interface
4827         (should not be possible though I decided later)
4828         (dbus_g_proxy_dispose): move proxy manager unregistration here
4829         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4830         g_return_if_fail() checks
4831
4832 2005-02-04  Havoc Pennington  <hp@redhat.com>
4833
4834         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4835
4836         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4837         (with some minor changes)
4838
4839         * doc/dbus-specification.xml: add deprecated attribute to
4840         introspection format
4841
4842 2005-01-31  Havoc Pennington  <hp@redhat.com>
4843
4844         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4845         think it's sort of right
4846
4847 2005-01-30  Havoc Pennington  <hp@redhat.com>
4848
4849         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4850
4851 2005-01-30  Havoc Pennington  <hp@redhat.com>
4852
4853         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4854
4855         * autogen.sh: change to autotools 1.9
4856
4857         * glib/dbus-gproxy.c: completely change how signals work
4858         (dbus_g_proxy_add_signal): new function to specify signature of a
4859         signal
4860         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4861         and g_warning if the incoming message has the wrong signature.
4862
4863 2005-01-30  Havoc Pennington  <hp@redhat.com>
4864
4865         * tools/dbus-names-model.c (have_names_notify): fix this
4866
4867         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4868         up the string array handling a bit 
4869
4870 2005-01-30  Havoc Pennington  <hp@redhat.com>
4871
4872         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4873         (dbus_g_pending_call_cancel): new function
4874
4875         * dbus/dbus-glib.h: move GType decls for connection/message here;
4876         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4877         here, just kind of rationalizing how we handle all that
4878
4879         * tools/dbus-names-model.c: new file for a tree model listing the
4880         services on a bus
4881
4882         * tools/dbus-tree-view.c (model_new): use proper typing on the
4883         model rows
4884
4885 2005-01-30  Havoc Pennington  <hp@redhat.com>
4886
4887         * glib/dbus-gmain.c: add a custom GSource back that just checks
4888         whether the message queue has anything in it; otherwise, there are 
4889         cases where we won't see messages in the queue since there was no 
4890         IO visible to the glib main loop
4891
4892         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4893         increase default message timeout to 25 seconds
4894
4895 2005-01-30  Havoc Pennington  <hp@redhat.com>
4896
4897         * test/glib/test-profile.c (no_bus_stop_server): remove the
4898         warning about the g_warning that I just fixed
4899
4900         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4901         custom source, seems to be a lot easier to understand and work
4902         better.
4903
4904 2005-01-30  Havoc Pennington  <hp@redhat.com>
4905
4906         I think this main loop thing is conceptually broken, but here are 
4907         some band aids. I'll maybe rewrite it in a minute.
4908         
4909         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4910         custom GSource, so don't pass it in; confusing
4911         (gsource_server_finalize, gsource_connection_finalize): add
4912         finalize handlers that remove all the watches.  
4913
4914 2005-01-30  Havoc Pennington  <hp@redhat.com>
4915
4916         * glib/dbus-gobject.c (introspect_properties): fix the XML
4917         generated
4918
4919         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4920         which effectively detects the use of freed messages
4921
4922         * glib/dbus-gobject.c (handle_introspect): modify and return the
4923         reply message instead of the incoming message
4924
4925         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4926         gee, maybe it should SEND THE XML instead of just making a string
4927         and freeing it again ;-)
4928
4929         * tools/dbus-print-message.c (print_message): improve printing of
4930         messages
4931
4932         * configure.in: add debug-glib.service to the output
4933
4934 2005-01-30  Havoc Pennington  <hp@redhat.com>
4935
4936         dbus-viewer introspected and displayed the bus driver
4937         
4938         * dbus/dbus-object-tree.c 
4939         (object_tree_test_iteration): add tests for a handler registered on "/"
4940
4941         * dbus/dbus-object-tree.c
4942         (_dbus_decompose_path): fix to handle path "/" properly
4943         (run_decompose_tests): add tests for path decomposition
4944         
4945         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4946         properly
4947
4948         * glib/dbus-gobject.c (handle_introspect): fix quotes
4949
4950         * test/glib/run-test.sh: support launching the bus, then running
4951         dbus-viewer
4952
4953         * test/glib/test-service-glib.c (main): put in a trivial gobject
4954         subclass and register it on the connection
4955
4956         * bus/driver.c (bus_driver_handle_introspect): implement
4957         introspection of the bus driver service
4958
4959         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4960         identifiers, doctype decl
4961
4962         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4963         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4964         returning the service unchanged.
4965         (bus_driver_handle_message): remove old check for reply_serial in
4966         method calls, now the message type deals with that
4967         (bus_driver_handle_message): handle NULL interface
4968
4969         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4970
4971         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4972         -1 for len
4973
4974         * tools/dbus-viewer.c: add support for introspecting a service on
4975         a bus
4976
4977         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4978         (dbus_g_pending_call_unref): add
4979
4980 2005-01-29  Havoc Pennington  <hp@redhat.com>
4981
4982         * tools/dbus-tree-view.c: add support for displaying properties.
4983         (run dbus-viewer with an introspect xml file as arg, then resize
4984         the window so the tree elements show up, not sure what that is)
4985
4986         * glib/dbus-gobject.c (handle_introspect): return
4987         org.freedesktop.Properties and org.freedesktop.Introspectable
4988         interfaces when we are introspected.
4989
4990         * doc/dbus-specification.xml: allow empty interface name when 
4991         Get/Set a property
4992
4993 2005-01-29  Havoc Pennington  <hp@redhat.com>
4994
4995         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4996         though it uses glib, it could be extended for any binding in
4997         principle
4998
4999         * glib/dbus-gobject.c (gobject_message_function): change to the
5000         new way properties work
5001
5002         * dbus/dbus-protocol.h: add the new interfaces
5003
5004         * doc/dbus-specification.xml: document the introspection format,
5005         Introspectable interface, and add an org.freedesktop.Properties
5006         interface.
5007
5008         * glib/dbus-gparser.c: add support for a <property> element
5009
5010         * glib/dbus-gidl.c: add PropertyInfo
5011
5012         * glib/dbus-gobject.c (handle_introspect): put the outermost
5013         <node> outside the signal and property descriptions.
5014         (introspect_properties): export properties as <property> rather
5015         than as method calls
5016
5017 2005-01-28  Havoc Pennington  <hp@redhat.com>
5018
5019         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5020         related to authentication protocol
5021
5022 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5023
5024         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5025                 - BUS_ACTIVATION -> BUS_STARTER
5026                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5027                 - class MessageIter (__init__): Added recursion checking 
5028                 so we throw a nice error instead of just disconnecting from the
5029                 bus.
5030                 (get): Added arg_type parameter for recursion.
5031                 Removed the nil type
5032                 Added signiture type placeholder (not implemented)
5033                 Added struct type placeholder (not implemented)
5034                 Added varient type placeholder (not implemented)
5035                 Commented out dict type for now     
5036                 (get_element_type): renamed from get_array_type
5037                 (get_*): changed to use the dbus_message_iter_get_basic API
5038                 (get_*_array): removed in favor of recursive get_array method
5039                 (get_array): new recursive method which calls get to marshal
5040                 the elements of the array
5041                 (value_to_dbus_sig): New method returns the corrasponding
5042                 dbus signiture to a python value
5043                 (append): Comment out dict handling for now
5044                 Handle lists with the new recursive API
5045                 Comment out None handling for now
5046                 (append_nil): removed
5047                 (append_*): changed to use dbus_message_iter_append_basic API
5048                 (append_*_array): removed in favor of recursive append_array 
5049                 method
5050                 (__str__): Make it easier to print out recursive iterators
5051                 for debugging
5052                 - class Message (__str__): moved type inspection to the
5053                 MessageIter class' __str__ method
5054                 (get_iter): Added an append parameter wich defaults to False
5055                 If True use the new API's to create an append iterator
5056
5057         * python/dbus.py: Update to use new bindings API
5058                 - TYPE_ACTIVATION -> TYPE_STARTER
5059                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5060                 - class ActivationBus -> class StarterBus
5061                 - class RemoteObject (__call__): get an append iterator
5062                 - (_dispatch_dbus_method_call): get an append iterator
5063                 - class Object (emit_signal): get an append iterator
5064
5065         * python/examples/: Fixed up the examples to work with the new API
5066                 
5067 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5068
5069         * configure.in: Bump version up to 0.30.
5070
5071         * HACKING: Add a release item to bump the version number up after 
5072         a release.
5073
5074 2005-01-28  Havoc Pennington  <hp@redhat.com>
5075
5076         * doc/dbus-specification.xml: update to describe 16-bit types and
5077         dict entries
5078
5079         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5080         assertion
5081
5082         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5083         type
5084
5085         * dbus/dbus-marshal-recursive.c: implement
5086
5087 2005-01-27  Havoc Pennington  <hp@redhat.com>
5088
5089         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5090
5091         * configure.in: find the right type for 16 and 32 bit ints as well
5092         as 64
5093
5094         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5095         the 16-bit types so people don't have to stuff them in 32-bit or
5096         byte arrays.
5097
5098 2005-01-27  Havoc Pennington  <hp@redhat.com>
5099
5100         * dbus/dbus-message.c: byteswap the message if you init an
5101         iterator to read/write from it
5102         
5103         * dbus/dbus-marshal-byteswap.c: new file implementing 
5104         _dbus_marshal_byteswap()
5105
5106         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5107
5108 2005-01-26  Havoc Pennington  <hp@redhat.com>
5109         
5110         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5111         build, apparently - nobody noticed?)
5112         
5113 2005-01-26  Havoc Pennington  <hp@redhat.com>
5114
5115         * dbus/dbus-marshal-recursive.h: remove todo comment
5116
5117 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5118
5119         * Land the mono binding changes to conform to the new APIs.
5120
5121         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5122         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5123
5124         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5125         type code as a string.
5126         (InitAppending): Rename dbus_message_append_iter_init() to
5127         dbus_message_iter_init_append().
5128
5129         * mono/BusDriver.cs: Rename ServiceEventHandler to
5130         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5131         Rename ServiceOwnerChanged to NameOwnerChanged.
5132
5133         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5134         underlying C call.
5135
5136         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5137
5138         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5139         dbus_bus_acquire_service() to dbus_bus_request_name().
5140
5141         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5142         of Type.UnderlyingSystemType to get the correct element type for
5143         the array.
5144         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5145         dbus_message_get_{element|arg}_type() instead of
5146         dbus_message_iter_init_array_iterator().
5147         (Append): Replace dbus_message_iter_append_array() with
5148         dbus_message_iter_open_container() and
5149         dbus_message_iter_close_container().
5150
5151         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5152         types have been removed.
5153         
5154         * mono/DBusType/*.cs: Replace calls of
5155         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5156         but specify the type in the DllImport extern declaration.  Ditto
5157         for dbus_message_iter_append_[type]() ->
5158         dbus_message_iter_append_basic().
5159
5160         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5161         NameOwnerChangedHandler.
5162
5163 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5164
5165         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5166                 - get_base_service -> get_unique_name
5167                 - bus_get_base_service -> bus_get_unique_name
5168                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5169                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5170                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5171                 - bus_activate_service -> bus_start_service_by_name
5172                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5173                 - bus_acquire_service -> bus_request_name
5174                 - dbus_bus_acquire_service -> dbus_bus_request_name
5175                 - bus_service_exists -> bus_name_has_owner
5176                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5177
5178         * python/dbus.py: Rename of methods
5179                 - activate_service -> start_service_by_name
5180                 - bus_acquire_service -> bus_request_name
5181                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5182                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5183
5184         
5185 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5186
5187         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5188         signature for the method that can't be found.
5189
5190         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5191         the message has any arguments, we need to call
5192         _dbus_type_reader_get_current_type(), not
5193         _dbus_type_reader_has_next().
5194
5195 2005-01-24  Havoc Pennington  <hp@redhat.com>
5196
5197         * dbus/dbus-message-factory.c: more testing of message validation
5198
5199         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5200         header
5201
5202 2005-01-23  Havoc Pennington  <hp@redhat.com>
5203
5204         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5205         get this all working, not many tests in the framework yet though
5206
5207 2005-01-22  Havoc Pennington  <hp@redhat.com>
5208
5209         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5210         tutorial, based on work from David Wheeler.
5211
5212 2005-01-21  Havoc Pennington  <hp@redhat.com>
5213
5214         * dbus/dbus-bus.c: add more return_if_fail checks
5215
5216         * dbus/dbus-message.c (load_message): have the "no validation"
5217         mode (have to edit the code to toggle the mode for now though)
5218
5219         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5220         skips all validation; I want to use this at least for benchmark
5221         baseline, I'm not sure if it should be a publicly-available switch.
5222
5223 2005-01-21  Havoc Pennington  <hp@redhat.com>
5224
5225         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5226         toplevel doxygen group as the low-level API stuff
5227
5228         * dbus/dbus.h: note that libdbus is the low-level API
5229
5230 2005-01-20  Havoc Pennington  <hp@redhat.com>
5231
5232         * update-dbus-docs.sh: script to update docs on the web site, only
5233         works for me though. neener.
5234
5235 2005-01-20  Havoc Pennington  <hp@redhat.com>
5236
5237         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5238         code can reveal bugs in it
5239
5240 2005-01-20  Havoc Pennington  <hp@redhat.com>
5241
5242         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5243         select() version, patches from Tor Lillqvist
5244
5245 2005-01-20  Havoc Pennington  <hp@redhat.com>
5246
5247         * doc/dbus-tutorial.xml: replace > with &gt;
5248
5249         * bus/services.c (bus_registry_acquire_service): validate the name
5250         and return a better error if it's no good.
5251
5252         * doc/dbus-specification.xml: note NO_AUTO_START change
5253
5254         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5255         from AUTO_START, we're toggling the default
5256
5257         * bus/dispatch.c: adapt the tests to change of auto-start default
5258
5259 2005-01-18  Havoc Pennington  <hp@redhat.com>
5260
5261         * rename dbus-daemon-1 to dbus-daemon throughout
5262
5263 2005-01-18  Havoc Pennington  <hp@redhat.com>
5264
5265         * Throughout, grand renaming to strip out the use of "service",
5266         just say "name" instead (or "bus name" when ambiguous).  Did not
5267         change the internal code of the message bus itself, only the
5268         programmer-facing API and messages.
5269         
5270         * doc/dbus-specification.xml: further update the message bus section
5271         
5272         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5273         in error case
5274
5275 2005-01-17  Havoc Pennington  <hp@redhat.com>
5276
5277         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5278         ever
5279
5280         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5281         "invalid name character" not only non-ASCII
5282
5283         * doc/dbus-specification.xml: further update spec, message bus 
5284         parts are still out-of-date but the marshaling etc. stuff is now
5285         accurate-ish
5286
5287 2005-01-17  Havoc Pennington  <hp@redhat.com>
5288
5289         * doc/dbus-specification.xml: partially update spec
5290
5291 2005-01-17  Havoc Pennington  <hp@redhat.com>
5292
5293         * Throughout, align variant bodies according to the contained
5294         type, rather than always to 8. Should save a fair bit of space in
5295         message headers.
5296         
5297         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5298         fix handling of case where p == end
5299
5300         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5301
5302 2005-01-17  Havoc Pennington  <hp@redhat.com>
5303
5304         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5305
5306         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5307         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5308         are marshaling/unmarshaling a boolean.
5309
5310 2005-01-16  Havoc Pennington  <hp@redhat.com>
5311
5312         This is about it on what can be disabled/deleted from libdbus
5313         easily, back below 150K anyhow. Deeper cuts are more work than 
5314         just turning the code off as I've done here.
5315         
5316         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5317         signed int convenience funcs
5318
5319         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5320         verbose mode
5321
5322         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5323         things out of libdbus
5324
5325         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5326         
5327         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5328         tests-enabled-only, though it should probably be deleted)
5329
5330         * dbus/dbus-message-util.c: same stuff
5331
5332         * dbus/dbus-auth-util.c: same stuff
5333
5334 2005-01-16  Havoc Pennington  <hp@redhat.com>
5335
5336         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5337
5338         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5339         way for stripping down dbus-userdb.c stuff included in libdbus.
5340         Rename _dbus_parse_uid for consistency.
5341
5342 2005-01-16  Havoc Pennington  <hp@redhat.com>
5343
5344         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5345         name the assertion failed in
5346
5347         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5348         (_dbus_return_val_if_fail): assert that the name of the function
5349         containing the check doesn't start with '_', since we only want to 
5350         use checks on public functions
5351         
5352         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5353         checks to assertions
5354
5355         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5356         change checks to asserts for private function
5357
5358         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5359         to asserts for private function
5360
5361         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5362         broken assertion that was breaking make check
5363         (_dbus_type_reader_array_is_empty): remove this rather than fix
5364         it, was only used in assertions
5365
5366 2005-01-16  Havoc Pennington  <hp@redhat.com>
5367
5368         * test/unused-code-gc.py: hacky script to find code that's used
5369         only by the bus (not libdbus) or used only by tests or not used at
5370         all. It has some false alarms, but looks like we can clean up a
5371         lot of size from libdbus.
5372
5373         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5374         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5375         
5376 2005-01-16  Havoc Pennington  <hp@redhat.com>
5377
5378         * Add and fix docs according to Doxygen warnings throughout
5379         source.
5380         
5381         * dbus/dbus-marshal-recursive.c
5382         (_dbus_type_reader_array_is_empty): change this to just call
5383         array_reader_get_array_len() and make it static
5384
5385         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5386         from get_array_type
5387         (dbus_message_iter_init_append): rename from append_iter_init
5388
5389         * dbus/dbus-marshal-recursive.c
5390         (_dbus_type_reader_get_element_type): rename from
5391         _dbus_type_reader_get_array_type
5392
5393 2005-01-15  Havoc Pennington  <hp@redhat.com>
5394
5395         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5396
5397         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5398         when DBUS_DISABLE_ASSERT
5399         (_dbus_marshal_set_basic): be sure we align for the string length
5400
5401         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5402         this look faster
5403
5404         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5405         inline macro version
5406         (_dbus_string_set_byte): provide inline macro version
5407
5408 2005-01-15  Havoc Pennington  <hp@redhat.com>
5409
5410         * Land the new message args API and type system.
5411
5412         This patch is huge, but the public API change is not 
5413         really large. The set of D-BUS types has changed somewhat, 
5414         and the arg "getters" are more geared toward language bindings;
5415         they don't make a copy, etc.
5416
5417         There are also some known issues. See these emails for details
5418         on this huge patch:
5419         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5420         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5421         
5422         * dbus/dbus-marshal-*: all the new stuff
5423
5424         * dbus/dbus-message.c: basically rewritten
5425
5426         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5427         freed blocks to be all non-nul bytes so using freed memory is less
5428         likely to work right
5429
5430         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5431         DBUS_FAIL_MALLOC=N environment variable, so you can do
5432         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5433         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5434         thorough.
5435
5436         * qt/message.cpp: port to the new message args API
5437         (operator<<): use str.utf8() rather than str.unicode()
5438         (pretty sure this is right from the Qt docs?)
5439
5440         * glib/dbus-gvalue.c: port to the new message args API
5441
5442         * bus/dispatch.c, bus/driver.c: port to the new message args API
5443
5444         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5445         "locked" flag to TRUE and align_offset to 0; I guess we never
5446         looked at these anyhow, but seems cleaner.
5447
5448         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5449         move allocation padding macro to this header; use it to implement
5450         (_DBUS_STRING_STATIC): ability to declare a static string.
5451
5452         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5453         change to return TRUE if the interface is not set.
5454
5455         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5456         to dbus-marshal-validate.[hc]
5457
5458         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5459         dbus-internals.c
5460
5461         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5462         to dbus-marshal-*.[hc]
5463
5464         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5465         function here from dbus-marshal.c
5466
5467 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5468
5469         * NEWS: Update for 0.23.
5470
5471         * configure.in: Release 0.23.
5472
5473 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5474
5475         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5476         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5477         behind.
5478
5479         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5480         uninstall"
5481
5482         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5483         is an enum, get the enum's underlying type.  Another mono
5484         1.1.3 fix.
5485
5486 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5487
5488         Patch from Sjoerd Simons <sjoerd@luon.net>
5489
5490         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5491         DESTDIR.  It breaks stuff.
5492
5493 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5494
5495         Patch from Tambet Ingo <tambet@ximian.com>
5496
5497         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5498         calling type.GetElementType().  The code previously depended on
5499         broken Mono behavior, which was fixed in Mono 1.1.3.
5500
5501         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5502         Activator.CreateInstance() so that the class's constructor is
5503         called with the right parameters.
5504
5505 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5506
5507         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5508
5509         * dbus/dbus-connection.c
5510         (_dbus_connection_queue_received_message_link): Call
5511         _dbus_connection_remove_timeout() instead of the _locked()
5512         variant, since it's always called from
5513         _dbus_connection_handle_watch(), which handles the locking.
5514         Removed the _locked() variant since it's no longer used.
5515
5516 2005-01-03  Havoc Pennington  <hp@redhat.com>
5517
5518         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5519         return
5520         
5521 2004-12-26  Havoc Pennington  <hp@redhat.com>
5522
5523         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5524
5525 2005-01-03  Havoc Pennington  <hp@redhat.com>
5526
5527         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5528         floating point
5529
5530         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5531
5532 2005-01-02  Havoc Pennington  <hp@redhat.com>
5533
5534         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5535
5536 2005-01-01  Havoc Pennington  <hp@redhat.com>
5537
5538         * configure.in: add -Wfloat-equal
5539
5540 2005-01-01  Havoc Pennington  <hp@redhat.com>
5541
5542         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5543         for a variety of reasons '==' doesn't do this.
5544
5545 2004-12-31  Havoc Pennington  <hp@redhat.com>
5546
5547         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5548         I keep wishing I had
5549
5550 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5551
5552         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5553
5554 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5555
5556         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5557         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5558         dbus-protocol.h.  Because they are defines and not enums they are not
5559         autogenerated.
5560
5561 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5562
5563         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5564         dbus_bus_activate_service
5565
5566         * python/dbus.py (Bus.activate_service): activate a service on the
5567         bus.
5568
5569 2004-12-24  Havoc Pennington  <hp@redhat.com>
5570
5571         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5572         file format has also changed and I haven't adapted to that yet
5573         
5574         * Makefile.am: load .gcno files from latest gcc
5575
5576 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5577         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5578
5579         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5580         lowlevel binding
5581
5582         * python/dbus.py (get_unix_user): Added binding to 
5583         call dbus_bindings.bus_get_unix_user
5584
5585         * python/extract.py: Modified the proto_pat regex to
5586         handle unsigned long
5587
5588 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5589
5590         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5591         better POSIX compliance.
5592
5593 2004-12-19  Havoc Pennington  <hp@redhat.com>
5594
5595         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5596         (_dbus_string_insert_8_aligned): new functions
5597
5598         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5599
5600 2004-12-18  Havoc Pennington  <hp@redhat.com>
5601
5602         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5603         macro
5604
5605         * dbus/dbus-message.c: fix a comment, and add a still-unused
5606         not-implemented function
5607
5608         * dbus/dbus-marshal.h: fix comment
5609
5610         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5611
5612 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5613
5614         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5615         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5616         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5617         Type.UnderlyingSystemType to get the actual system type
5618         underneath.  This code previously depended on the broken Mono
5619         behavior, which was fixed in 1.1.3.
5620
5621 2004-11-27  Havoc Pennington  <hp@redhat.com>
5622
5623         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5624         are disabled
5625         (_dbus_string_get_const_data): inline when asserts are disabled
5626
5627         * dbus/dbus-message.c: record the _dbus_current_generation of
5628         creation so we can complain if dbus_shutdown() is used improperly.
5629         Do this only if checks are enabled.
5630
5631         * dbus/dbus-connection.c: ditto
5632         
5633 2004-11-26  Havoc Pennington  <hp@redhat.com>
5634
5635         * test/glib/test-profile.c: add with_bus mode to profile echoes
5636         that go through the bus.
5637
5638         * test/glib/run-test.sh: add ability to run test-profile
5639
5640         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5641         config file reload.
5642
5643 2004-11-26  Havoc Pennington  <hp@redhat.com>
5644
5645         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5646         thing was implemented
5647
5648 2004-11-26  Havoc Pennington  <hp@redhat.com>
5649
5650         * test/glib/test-profile.c: tweak a bit, add support for some
5651         made-up minimal malloc overhead with plain sockets, since in 
5652         real life some sort of buffers are unavoidable thus we could 
5653         count them in the theoretical best case
5654
5655 2004-11-26  Havoc Pennington  <hp@redhat.com>
5656
5657         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5658         where I was trying to cache one too many messages
5659
5660 2004-11-26  Havoc Pennington  <hp@redhat.com>
5661
5662         * dbus/dbus-message.c: reimplement message cache as an array which 
5663         makes the cache about twice as fast and saves maybe 1.5% overall
5664
5665 2004-11-26  Havoc Pennington  <hp@redhat.com>
5666
5667         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5668         message cache lock here
5669
5670 2004-11-26  Havoc Pennington  <hp@redhat.com>
5671
5672         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5673         the "char byte_order" next to each other to save 4 bytes
5674         (dbus_message_new_empty_header): reduce preallocation, since the
5675         message cache should achieve a similar effect
5676         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5677         message cache that keeps a few DBusMessage around in a pool,
5678         another 8% speedup or so.
5679
5680         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5681
5682 2004-11-25  Havoc Pennington  <hp@redhat.com>
5683
5684         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5685         to write, without reading or blocking, try it before the poll()
5686         and skip the poll() if nothing remains to write. This is about a
5687         3% speedup in the echo client/server
5688
5689 2004-11-25  Havoc Pennington  <hp@redhat.com>
5690
5691         The primary change here is to always write() once before adding
5692         the write watch, which gives us about a 10% performance increase.
5693         
5694         * dbus/dbus-transport-unix.c: a number of modifications to cope
5695         with removing messages_pending
5696         (check_write_watch): properly handle
5697         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5698         messages_pending stuff
5699         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5700         AUTHENTICATED cases
5701         (unix_handle_watch): after writing, see if the write watch can be
5702         removed
5703         (unix_do_iteration): assert that write_watch/read_watch are
5704         non-NULL rather than testing that they aren't, since they 
5705         aren't allowed to be NULL. check_write_watch() at the end so 
5706         we add the watch if we did not finish writing (e.g. got EAGAIN)
5707
5708         * dbus/dbus-transport-protected.h: remove messages_pending call,
5709         since it resulted in too much inefficient watch adding/removing; 
5710         instead we now require that the transport user does an iteration 
5711         after queueing outgoing messages, and after trying the first
5712         write() we add a write watch if we got EAGAIN or exceeded our 
5713         max bytes to write per iteration setting
5714
5715         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5716         function
5717
5718         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5719         freed and then accessed, valgrind flagged this bug, fix it
5720
5721         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5722         as the last valid field plus 1, where really it is equal to the
5723         last valid field. Corrects some message corruption issues.
5724
5725         * dbus/dbus-mainloop.c: verbosity changes
5726
5727         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5728         instead of aborting in one of the test codepaths
5729
5730         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5731         caused not printing the pid ever again if a verbose was missing
5732         the newline at the end
5733         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5734
5735         * dbus/dbus-connection.c: verbosity changes; 
5736         (dbus_connection_has_messages_to_send): new function
5737         (_dbus_connection_message_sent): no longer call transport->messages_pending
5738         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5739         try to write() immediately, so we can avoid the write watch. This
5740         is the core purpose of this patchset
5741         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5742         dump the outgoing message queue, so nobody will get confused
5743         trying to send them or thinking stuff is pending to be sent
5744
5745         * bus/test.c: verbosity changes
5746
5747         * bus/driver.c: verbosity/assertion changes
5748
5749         * bus/dispatch.c: a bunch of little tweaks to get it working again
5750         because this patchset changes when/where you need to block.
5751
5752 2004-11-23  Havoc Pennington  <hp@redhat.com>
5753
5754         * test/glib/test-profile.c: modify to accept a plain_sockets
5755         argument in which case it will bench plain sockets instead of
5756         libdbus, for comparison purposes.
5757
5758 2004-11-22  Havoc Pennington  <hp@redhat.com>
5759
5760         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5761         threads for more time, so sysprof can get a grip on it.
5762
5763         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5764         pointless variable
5765
5766 2004-11-13  Havoc Pennington  <hp@redhat.com>
5767
5768         * test/glib/test-profile.c: fix this thing up a bit
5769
5770         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5771         preallocation sizes by a fair bit; not sure if this will be an
5772         overall performance win or not, but it does reduce reallocs.
5773
5774         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5775         the test hack that forced constant realloc if asserts are
5776         disabled, so we can profile sanely. Sprinkle in some
5777         _DBUS_UNLIKELY() which are probably pointless, but before I
5778         noticed the real performance problem I put them in.
5779         (_dbus_string_validate_utf8): micro-optimize this thing a little
5780         bit, though callgrind says it didn't help; then special-case
5781         ascii, which did help a lot; then be sure we detect nul bytes as
5782         invalid, which is a bugfix.
5783         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5784         superstition; use memset to nul the padding instead of a manual
5785         loop.
5786         (_dbus_string_get_length): inline this as a
5787         macro; it showed up in the profile because it's used for loop
5788         tests and so forth
5789
5790 2004-11-10  Colin Walters  <walters@verbum.org>
5791
5792         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5793         for extra paranoia.
5794
5795 2004-11-09  Colin Walters  <walters@verbum.org>
5796
5797         * dbus/dbus-string.c (_dbus_string_get_length): New
5798         function, writes DBusString to C buffer.
5799
5800         * dbus/dbus-string.h: Prototype it.
5801
5802         * dbus/dbus-message.c (dbus_message_type_to_string): New
5803         function, converts message type into C string.
5804
5805         * dbus/dbus-message.h: Prototype it.
5806
5807         * bus/selinux.c (bus_selinux_check): Take source pid,
5808         target pid, and audit data.  Pass audit data to
5809         avc_has_perm.
5810         (log_audit_callback): New function, appends extra
5811         audit information.
5812         (bus_selinux_allows_acquire_service): Also take
5813         service name, add it to audit data.
5814         (bus_selinux_allows_send): Also take message
5815         type, interface, method member, error name,
5816         and destination, and add them to audit data.
5817         (log_cb): Initialize func_audit.
5818         
5819         * bus/selinux.h (bus_selinux_allows_acquire_service)
5820         (bus_selinux_allows_send): Update prototypes 
5821
5822         * bus/services.c (bus_registry_acquire_service): Pass
5823         service name to bus_selinux_allows_acquire_service.
5824
5825         * bus/bus.c (bus_context_check_security_policy): Pass
5826         additional audit data.  Move assignment of dest
5827         to its own line.
5828
5829 2004-11-07  Colin Walters  <walters@verbum.org>
5830
5831         * dbus/dbus-transport-unix.c (do_authentication): Always
5832         initialize auth_completed.
5833         
5834 2004-11-07  Colin Walters  <walters@verbum.org>
5835
5836         * bus/bus.c (load_config): Break into three
5837         separate functions: process_config_first_time_only,
5838         process_config_every_time, and process_config_postinit.
5839         (process_config_every_time): Move call of
5840         bus_registry_set_service_context_table into
5841         process_config_postinit.
5842         (process_config_postinit): New function, does
5843         any processing that needs to happen late
5844         in initialization (and also on reload).
5845         (bus_context_new): Instead of calling load_config,
5846         open config parser here and call process_config_first_time_only
5847         and process_config_every_time directly.  Later, after
5848         we have forked but before changing UID,
5849         invoke bus_selinux_full_init, and then call
5850         process_config_postinit.
5851         (bus_context_reload_config): As in bus_context_new,
5852         load parse file inside here, and call process_config_every_time
5853         and process_config_postinit.
5854
5855         * bus/services.h, bus/services.c
5856         (bus_registry_set_service_context_table): Rename
5857         from bus_registry_set_sid_table.  Take string hash from config
5858         parser, and convert them here into SIDs.
5859
5860         * bus/config-parser.c (struct BusConfigParser): Have
5861         config parser only store a mapping of service->context
5862         string.
5863         (merge_service_context_hash): New function.
5864         (merge_included): Merge context string hashes instead
5865         of using bus_selinux_id_table_union.
5866         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5867         simply create a new string hash.
5868         (bus_config_parser_unref): Unref it.
5869         (start_selinux_child): Simply insert strings into hash,
5870         don't call bus_selinux_id_table_copy_over.
5871
5872         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5873         (bus_selinux_id_table_copy_over): Delete.
5874
5875 2004-11-03  Colin Walters  <walters@verbum.org>
5876
5877         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5878         variables.
5879         
5880 2004-11-03  Colin Walters  <walters@verbum.org>
5881
5882         * bus/test-main.c (test_pre_hook): Fix test logic,
5883         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5884
5885 2004-11-02  Colin Walters  <walters@redhat.com>
5886
5887         * bus/selinux.c (bus_selinux_init): Split into two functions,
5888         bus_selinux_pre_init and bus_selinux_post_init.
5889         (bus_selinux_pre_init): Just determine whether SELinux is
5890         enabled.
5891         (bus_selinux_post_init): Do everything else.
5892
5893         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5894         config file, and bus_selinux_post_init after.  This ensures that
5895         we don't lose the policyreload notification thread that
5896         bus_selinux_init created before forking previously.
5897         
5898         * bus/test-main.c (test_pre_hook): Update for split.
5899
5900 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5901
5902         Patch from Johan Fischer <linux@fischaz.com>
5903         
5904         * mono/doc/Makefile.am (install-data-local): Added directory
5905         install for DESTDIR
5906
5907 2004-10-29  Colin Walters  <walters@redhat.com>
5908
5909         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5910         parameter for fd to write pid to.       
5911
5912         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5913         
5914         * bus/bus.c (bus_context_new): Pass print_pid_fd
5915         to _dbus_become_daemon (bug #1720)
5916
5917 2004-10-29  Colin Walters  <walters@redhat.com>
5918
5919         Patch from Ed Catmur <ed@catmur.co.uk>
5920
5921         * mono/doc/Makefile.am (install-data-local): Handle
5922         DESTDIR.
5923
5924 2004-10-29  Colin Walters  <walters@redhat.com>
5925
5926         * bus/.cvsignore, qt/.cvsignore: Update.
5927
5928 2004-10-29  Colin Walters  <walters@redhat.com>
5929
5930         Patch from Kristof Vansant <de_lupus@pandora.be>
5931
5932         * configure.in: Detect Slackware.
5933         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5934         * bus/rc.messagebus.in: New file.
5935
5936 2004-10-29  Colin Walters  <walters@redhat.com>
5937
5938         * tools/dbus-monitor.c (filter_func): Return
5939         DBUS_HANDLER_RESULT_HANDLED in filter function
5940         for now.  See:
5941         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5942
5943 2004-10-29  Colin Walters  <walters@redhat.com>
5944
5945         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5946
5947         * bus/services.c (bus_registry_acquire_service): 
5948         Correctly retrieve service name from DBusString
5949         for printing.
5950
5951 2004-10-29  Colin Walters  <walters@redhat.com>
5952
5953         * dbus/dbus-glib.h: Update documentation to not
5954         refer to internal APIs.
5955
5956 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5957
5958         * mono/Arguments.cs (GetDBusTypeConstructor):
5959         type.UnderlyingSystemType will return "System.Byte" if you do it
5960         on "byte[]", which is not what we want.  So check the type.IsArray
5961         property and use System.Array instead.
5962
5963 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5964
5965         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5966         the DBusUserInfo structure since this is passed into the function.
5967         This would cause a double free when the function that allocated
5968         the structure would try to free it when an error occured.
5969
5970         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5971         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5972         for service activation to avoid 32bit/64bit parallel install issues
5973
5974 2004-10-21  Colin Walters  <walters@verbum.org>
5975
5976         * AUTHORS: Fix my email address, the @gnu.org one
5977         has been bouncing for some time.  Also add J5.
5978         
5979 2004-10-21  Colin Walters  <walters@verbum.org>
5980
5981         * dbus/dbus-transport-unix.c (do_authentication): Return
5982         authentication status to callers.
5983         (unix_handle_watch): If we completed authentication this round,
5984         don't do another read.  Instead wait until the next iteration,
5985         after we've read any pending data in the auth buffer.
5986         (unix_do_iteration): Ditto.
5987         (unix_handle_watch): Updated for new do_authentication prototype.
5988
5989 2004-10-18  Colin Walters  <walters@verbum.org>
5990
5991         * bus/selinux.c (bus_selinux_enabled): Handle
5992         --disable-selinux case.
5993         
5994 2004-10-18  Colin Walters  <walters@verbum.org>
5995
5996         * bus/selinux.h: Add bus_selinux_enabled.
5997         
5998         * bus/selinux.c (bus_selinux_enabled): Implement it.
5999         
6000         * bus/config-parser.c (struct include): Add
6001         if_selinux_enabled member.
6002         (start_busconfig_child): Parse if_selinux_enabled
6003         attribute for include.
6004         (bus_config_parser_content): Handle it.
6005
6006         * bus/session.conf.in, bus/system.conf.in: Add
6007         inclusion of context mapping to default config files;
6008         conditional on SELinux being enabled.
6009         
6010         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6011         
6012         * test/data/invalid-config-files/badselinux-1.conf, 
6013         test/data/invalid-config-files/badselinux-2.conf:
6014         Test files for bad syntax.
6015         
6016 2004-10-17  Colin Walters  <walters@verbum.org>
6017
6018         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6019         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6020         format specifier mismatches.
6021
6022 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6023
6024         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6025         format string.
6026
6027         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6028         pointer (bug #1540, Leonardo Boiko).
6029
6030 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6031
6032         * mono/BusDriver.cs: Changed BusDriver struct to remove
6033         the ServiceCreated and ServiceDeleted events and replace them
6034         with the new ServiceOwnerChanged event.
6035
6036         * mono/example/BusListener.cs: Added a new example program,
6037         which listens for and reports any ServiceOwnerChanged events
6038         on the bus driver.
6039
6040         * mono/example/Makefile.am (DESTDIR): Build changes for the
6041         new BusListener.cs example.
6042
6043 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6044
6045         * bus/signals.c (bus_match_rule_parse): validate the components of
6046         match rules (bug #1439).
6047
6048         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6049
6050 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6051
6052         * doc/dbus-specification.xml: document ServiceOwnerChanged
6053         signal.
6054         
6055         * bus/driver.c, bus/driver.h, bus/services.c: Use
6056         ServiceOwnerChanged signal instead of ServiceCreated and
6057         ServiceDeleted.
6058         
6059         * bus/dispatch.c: update testcase for the new signal.
6060
6061 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6062
6063         Patch from Nat Friedman <nat@novell.com>
6064
6065         * mono/Makefile.am: A number of small build fixes to allow "make
6066         distcheck" to succeed.
6067
6068         * mono/example/Makefile.am: "make distcheck" fixes.
6069
6070         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6071         key in @srcdir@.
6072
6073         * test/Makefile.am: "make distcheck" fixes.
6074
6075 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6076
6077         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6078
6079         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6080
6081         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6082         messages after the first one (bug #1389).
6083         
6084         * bus/dispatch.c (check_double_hello_message): add a test case for
6085         the double hello message bug.
6086         (check_existent_service_activation): fix check of spawning error.
6087         
6088 2004-09-16  David Zeuthen  <david@fubar.dk>
6089
6090         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6091
6092 2004-09-12  David Zeuthen  <david@fubar.dk>
6093
6094         Patch from Kay Sievers <kay.sievers@vrfy.org>
6095
6096         * bus/bus.c (bus_context_new):
6097         * bus/bus.h:
6098         * bus/main.c (usage)
6099         (main):
6100         Add commandline option --nofork to override configuration file
6101         setting.
6102
6103 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6104
6105         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6106         compilers don't like it (bug #974).
6107
6108 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6109
6110         * qt/connection.*: Applied patch by Jérôme Lodewyck
6111         <lodewyck@clipper.ens.fr> to integrate an existing
6112         connection into the Qt eventloop
6113
6114 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6115
6116         * mono/BusDriver.cs: Added.  This is a class for interacting with
6117         the org.freedesktop.DBus service.
6118
6119         * mono/Message.cs: Added a mechanism to expose the message that is
6120         currently being dispatched via the static Message.Current
6121         property.  Added Message.Sender and Message.Destination
6122         properties.
6123
6124         * mono/Handler.cs: Expose the dispatched message via
6125         Message.Current when handling method calls.
6126
6127         * mono/Service.cs: Expose the dispatched message via
6128         Message.Current when handling signal emissions.
6129         
6130         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6131         Connection.BaseService property.
6132
6133 2004-08-28  Havoc Pennington  <hp@redhat.com>
6134
6135         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6136
6137         More fixes from Steve Grubb
6138         
6139         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6140         (_dbus_listen_tcp_socket): fix fd leak
6141
6142         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6143         EINTR to a bit lower in the code
6144
6145 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6146
6147         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6148         TRUE if we are inquiring about the existence of the built-in
6149         org.freedesktop.DBus service.
6150
6151 2004-08-25  John Palmieri  <johnp@redhat.com>
6152         * bus/config-parser.c:
6153         (struct PolicyType): Add POLICY_CONSOLE
6154         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6155         (start_busconfig_child): Sets up console element when
6156         <policy at_console=""> is encountered in a policy file
6157         (append_rule_from_element): Convert console elements to console
6158         rules.
6159
6160         * bus/policy.c: 
6161         (bus_policy_create_client_policy): Add console rules to the client
6162         policy based on if the client is at the console
6163         (bus_policy_append_console_rule): New function for adding a
6164         console rule to a policy
6165         (bus_policy_merge): Handle console rule merging
6166
6167         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6168         where we check for console user files
6169         
6170         * dbus/dbus-sysdeps.c:
6171         (_dbus_file_exists): New function which checks if the given
6172         file exists
6173         (_dbus_user_at_console): New function which does the system
6174         specific process of checking if the user is at the console
6175
6176         * dbus/dbus-userdb.c:
6177         (_dbus_is_console_user): New function converts a UID to user name
6178         and then calls the system specific _dbus_user_at_console to 
6179         see if the user is at the console and therefor a console user
6180
6181 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6182
6183         * bus/config-parser.c (set_limit):
6184         * bus/dbus-daemon-1.1.in:
6185         * test/data/valid-config-files/many-rules.conf: set the
6186         max_match_rules_per_connection limt from the config file. 
6187
6188         * doc/busconfig.dtd: update the DTD.
6189
6190         * bus/driver.c: remove some unused variables.
6191
6192 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6193
6194         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6195         it's been replaced by dbus_g_bus_get
6196
6197 2004-08-23  Colin Walters  <walters@redhat.com>
6198
6199         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6200
6201         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6202
6203         * bus/selinux.c: Create a thread for policy reload notification.
6204         (bus_selinux_get_policy_root): Implement.
6205
6206         * bus/config-parser.c (start_busconfig_child)
6207         (bus_config_parser_content): Support SELinux-root relative
6208         inclusion.
6209
6210         * configure.in <HAVE_SELINUX>: Add -lpthread.
6211         
6212         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6213         (test_post_hook): Move memory checking into here.
6214         (test_pre_hook, test_post_hook): Move SELinux checks in
6215         here, but conditional on a DBUS_TEST_SELINUX environment
6216         variable.  Unfortunately we can't run the SELinux checks
6217         as a normal user, since they won't have any permissions
6218         for /selinux.  So this will have to be tested manually
6219         for now, until we have virtualization for most of
6220         libselinux.
6221         
6222 2004-08-23  Havoc Pennington  <hp@redhat.com>
6223
6224         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6225         drop supplementary groups, suggested by Steve Grubb
6226
6227 2004-08-20  Colin Walters  <walters@redhat.com>
6228
6229         * bus/config-parser.c (start_busconfig_child): Remove some unused
6230         variables.
6231         
6232         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6233         warning.
6234
6235 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6236
6237         * configure.in: If --enable-mono is passed in, if we can't find
6238         mono error out.
6239
6240         * mono/Makefile.am: Use /gacutil to install assemblies into the
6241         GAC and not /root.
6242
6243 2004-08-12  Havoc Pennington  <hp@redhat.com>
6244
6245         * NEWS: update for 0.22
6246
6247         * configure.in: release 0.22
6248
6249 2004-08-11  Colin Walters  <walters@redhat.com>
6250
6251         * tools/dbus-send.c (main, usage): Add --reply-timeout
6252         argument.
6253
6254 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6255
6256         * bus/bus.c (process_config_first_time_only): get rid of an unused
6257         DBusError that was causing a memoy leak (bug #989).
6258
6259         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6260         fix compilation on Solaris/Forte C (bug #974)
6261
6262         * bus/main.c (main): plug two minuscule memleaks.
6263
6264 2004-08-10  Havoc Pennington  <hp@redhat.com>
6265
6266         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6267
6268 2004-08-09  Havoc Pennington  <hp@redhat.com>
6269
6270         * COPYING: switch to Academic Free License version 2.1 instead of
6271         2.0, to resolve complaints about patent termination clause.
6272
6273 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6274
6275         * README: added documentation for the --enable-python 
6276         configure switch.
6277
6278 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6279
6280         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6281         _unref in the SELinux support.
6282
6283         * doc/busconfig.dtd: update DTD for SELinux support.
6284
6285         * bus/config-loader-libxml.c: fix error handler and parser
6286         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6287
6288         * configure.in: remove the warning about libxml2.
6289
6290         * dbus/dbus-bus.c: silence doxygen warning.
6291
6292 2004-07-31  Colin Walters  <walters@redhat.com>
6293
6294         * configure.in: Move #error in SELinux check to its own line.
6295
6296 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6297
6298         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6299         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6300         dbus_error_set.
6301
6302         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6303         broken by the change in the _SET_OOM macros.
6304
6305 2004-07-31  Colin Walters  <walters@redhat.com>
6306
6307         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6308         BUS_SET_OOM.
6309
6310 2004-07-31  Colin Walters  <walters@redhat.com>
6311
6312         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6313         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6314         AC_MSG_CHECKING.
6315
6316 2004-07-24  Havoc Pennington  <hp@redhat.com>
6317
6318         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6319
6320         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6321         functionality
6322
6323         * configure.in: add --enable-selinux
6324         
6325         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6326
6327         * bus/main.c (main): initialize and shut down selinux
6328
6329         * bus/connection.c: store SELinux ID on each connection, to avoid 
6330         repeated getting of the string context and converting it into 
6331         an ID
6332
6333         * bus/bus.c (bus_context_get_policy): new accessor, though it
6334         isn't used
6335         (bus_context_check_security_policy): check whether the security
6336         context of sender connection can send to the security context of
6337         recipient connection
6338
6339         * bus/config-parser.c: add parsing for <selinux> and <associate>
6340         
6341         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6342         implement dbus_connection_get_unix_fd()
6343
6344         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6345         function, used by the selinux stuff
6346         
6347 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6348
6349         * bus/config-loader-libxml.c: complete the implementation of
6350         libxml backend for config file loader. Doesn't work with full OOM
6351         test yet. 
6352         
6353         * configure.in: change error when selecting libxml into a warning.
6354         
6355         * test/data/invalid-config-files: add two non-well-formed XML
6356         files. 
6357         
6358         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6359         
6360         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6361         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6362         be necessary to read all the buffer. (bug #894)
6363
6364         * bus/activation.c (bus_activation_activate_service): fix a
6365         potential assertion failure (bug #896). Small optimization in the
6366         case of auto-activation messages.
6367
6368         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6369         add test case for byte-through-vararg bug (#901). patch by Kimmo
6370         Hämäläinen. 
6371
6372 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6373
6374         * python/dbus.py:
6375         * python/dbus_bindings.pyx.in:
6376         Add dbus.init_gthreads (), allow emit_signal to pass
6377         arguments to the signal.
6378         
6379 2004-07-24  Havoc Pennington  <hp@redhat.com>
6380
6381         * AUTHORS: add some people, not really comprehensively, let me
6382         know if I missed you
6383
6384 2004-07-24  Havoc Pennington  <hp@redhat.com>
6385
6386         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6387         Owen
6388
6389         * test/Makefile.am (DIST_SUBDIRS): here also
6390
6391 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6392
6393         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6394         breaking build on Solaris, reported by Farhad Saberi on the ML.
6395
6396         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6397         va_arg invocation to account for integer promotion in the case of
6398         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6399
6400         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6401         _dbus_list_get_first_link, not _dbus_list_get_first.
6402
6403         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6404
6405         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6406         handler functions so that the asserts in _dbus_object_subtree_unref
6407         do not fail.
6408
6409         * dbus/dbus-transport-unix.c (do_reading):
6410         _dbus_transport_queue_messages return value is of type
6411         dbus_bool_t, not DBusDispatchStatus.
6412         
6413 2004-07-19  David Zeuthen  <david@fubar.dk>
6414
6415         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6416
6417         * bus/dispatch.c:
6418         (check_get_connection_unix_user): Debug says GetProperty; but the
6419         method is called GetConnectionUnixUser
6420         (check_get_connection_unix_process_id): New function
6421         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6422         also call check_get_connection_unix_process_id()
6423         
6424         * bus/driver.c:
6425         (bus_driver_handle_get_connection_unix_process_id): New function,
6426         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6427         interface
6428         
6429         * dbus/dbus-auth.c:
6430         (handle_server_data_external_mech): Set pid from the credentials
6431         obtained from the socket
6432         
6433         * dbus/dbus-connection.c:
6434         (dbus_connection_get_unix_process_id): New function
6435         
6436         * dbus/dbus-connection.h: 
6437         Add prototype for dbus_connection_get_unix_process_id
6438         
6439         * dbus/dbus-transport.c:
6440         (_dbus_transport_get_unix_process_id): New function
6441         
6442         * dbus/dbus-transport.h:
6443         Add prototype for _dbus_transport_get_unix_process_id
6444         
6445 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6446
6447         * dbus/dbus-message.c: Message counter fix, patch by Christian
6448         Hammond <chipx86@gnupdate.org>
6449
6450 2004-07-18  Seth Nickell  <seth@gnome.org>
6451
6452         * python/dbus.py:
6453         * python/dbus_bindings.pyx.in:
6454         * python/tests/test-client.py:
6455
6456         Add dbus.ByteArray and dbus_bindings.ByteArray
6457         types so that byte streams can be passed back.
6458
6459         Give jdahlin the heaps of credit that are so
6460         rightfully his.
6461         
6462 2004-07-12  Seth Nickell  <seth@gnome.org>
6463
6464         * python/dbus.py:
6465
6466         Add message argument to the default object_method_handler
6467         function.
6468         
6469         * python/dbus_bindings.pyx.in:
6470
6471         Automatically return NIL when passed an empty list
6472         (we can't pass back a list since lists are typed
6473         and we don't have any idea what type the the client
6474         intended the list to be... :-( )
6475         
6476 2004-07-10  Seth Nickell  <seth@gnome.org>
6477
6478         * python/examples/Makefile.am:
6479
6480         Fix distcheck breakage caused by new examples.
6481
6482 2004-07-10  Seth Nickell  <seth@gnome.org>
6483
6484         * python/dbus.py:
6485
6486         Add "message" argument to service-side dbus.Object
6487         methods. This will break existing services written
6488         using the python bindings, but will allow extraction
6489         of all the message information (e.g. who its from).
6490
6491         Add improved "object oriented" signal handling/emission.
6492         
6493         * python/examples/example-service.py:
6494
6495         Nix this example.
6496         
6497         * python/examples/example-signal-emitter.py:
6498         * python/examples/example-signal-recipient.py:
6499
6500         Two new examples that show how to emit and receive
6501         signals using the new APIs.
6502         
6503         * python/examples/example-signals.py:
6504         * python/examples/gconf-proxy-service.py:
6505         * python/examples/gconf-proxy-service2.py:
6506
6507         Add "message" argument to service methods.
6508
6509 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6510
6511         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6512         * dbus/bus.c (dbus_bus_get_unix_user)
6513         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6514         method of org.freedesktop.DBus interface.
6515
6516         * bus/dispatch.c: test case
6517
6518 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6519
6520         * python/Makefile.am: switched include directory from glib/ to dbus/
6521         since dbus-glib.h moved
6522  
6523 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6524
6525         * configure.in: prevent building the gcj stuff and libxml loader
6526         since they are broken.
6527
6528 2004-06-20  Havoc Pennington  <hp@redhat.com>
6529
6530         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6531         codes from the dbus error names
6532         
6533         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6534         as dbus/dbus-glib.h and that breakage is now visible due to 
6535         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6536         
6537         * glib/dbus-glib.h: s/gproxy/g_proxy/
6538
6539         * dbus/dbus-shared.h: new header to hold stuff shared with
6540         binding APIs
6541         
6542         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6543         than dbus-errors.h
6544
6545         * glib/dbus-glib.h (dbus_set_g_error): move to
6546         dbus-glib-lowlevel.h
6547
6548         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6549         of stuff to enable this
6550
6551         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6552
6553         * a bunch of other changes with the same basic "separate glib 
6554         bindings from dbus.h" theme
6555         
6556 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6557
6558         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6559
6560         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6561
6562 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6563
6564         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6565         the reply value of the ServiceExists message.
6566
6567 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6568
6569         * python/dbus_bindings.pyx.in: No longer need to parse path
6570         elements and pass them as arrays of strings.  The C API now
6571         accepts plain path strings.
6572         (_build_parsed_path): removed 
6573
6574 2004-06-07  Havoc Pennington  <hp@redhat.com>
6575
6576         * doc/TODO: remove auto-activation item since it's done; sort
6577         items by importance/milestone
6578
6579 2004-06-07  Havoc Pennington  <hp@redhat.com>
6580
6581         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6582         random signature when using REQUIRED_FIELDS (this hack won't work
6583         in the long term)
6584
6585         * dbus/dbus-message.c: change the signature to be a header field,
6586         instead of message->signature special-case string. Incremental
6587         step forward. Then we can fix up code to send the signature in the
6588         message, then fix up code to validate said signature, then fix up
6589         code to not put the typecodes inline, etc.
6590         (load_one_message): don't make up the signature after the fact
6591         (decode_header_data): require signature field for the known
6592         message types
6593
6594         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6595
6596         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6597
6598 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6599
6600         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6601
6602         * mono/Handler.cs: Updated to follow new path argument for
6603         (un-)registering objects.
6604
6605         * mono/example/Makefile.am:
6606         * mono/Makefile.am:
6607         * configure.in: Bumped required version for mono and use new -pkg
6608         syntax for deps
6609
6610 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6611
6612         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6613         registration functions take the path argument as char* instead of
6614         char**.
6615
6616         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6617         split off the path decompostion part of
6618         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6619         warnings. 
6620
6621         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6622         
6623 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6624  
6625         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6626         machine approach.  A state is implemented as a function that
6627         handles incoming events as specified for that state.
6628         
6629         * doc/dbus-specification.xml: Update auth protocol state machine
6630         specification to match implementation.  Remove some leftover
6631         base64 examples.
6632
6633 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6634
6635         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6636         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6637         quiet doxygen.
6638
6639         * Doxyfile.in: remove deprecated options.
6640
6641         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6642         glib/test-thread.h, glib/test-thread-client.c,
6643         glib/test-thread-server.c, glib/test-profile.c,
6644         glib/test-dbus-glib.c: remove these unused files.
6645
6646 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6647
6648         * dbus/dbus-object-tree.c
6649         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6650         non-fallback handlers (bug #684).
6651         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6652         (find_subtree_recurse): report wether the returned subtree is an
6653         exact match or a "fallback" match higher up in the tree.
6654         (object_tree_test_iteration): update test case.
6655
6656 2004-06-01  Seth Nickell  <seth@gnome.org>
6657
6658         * python/dbus_bindings.pyx.in:
6659         * python/tests/test-client.py:
6660
6661         Round off basic type support. Add dicts (yay!), and 
6662         remaining array types.
6663
6664         Make MessageIter more general so it works for dicts too.
6665
6666         Mark all loop variables as C integers.
6667         
6668 2004-05-31  Havoc Pennington  <hp@redhat.com>
6669
6670         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6671         "in" before "out"
6672
6673         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6674
6675         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6676         option that runs the tests, and start filling in some code
6677         including for starters just dumping the interfaces to stdout
6678
6679         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6680
6681         * test/data/valid-introspection-files/lots-of-types.xml: test of
6682         an example introspection file
6683
6684         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6685         "node" (I think...)
6686
6687 2004-05-31  Seth Nickell  <seth@gnome.org>
6688
6689         * python/dbus_bindings.pyx.in:
6690         * python/tests/test-client.py:
6691
6692         Test Suite: 1
6693         Python Bindings: 0
6694
6695         Fix string array memory trashing bug... oops...
6696
6697 2004-05-30  Seth Nickell  <seth@gnome.org>
6698
6699         * python/dbus.py:
6700
6701         Add a nicer-but-less-flexible alternate API for handling 
6702         calls to virtual objects in dbus.ObjectTree.
6703
6704         Screw up the argument order to the dbus.Object constructor
6705         for consistency with dbus.ObjectTree (and to make dbus_methods
6706         optional for future extension)
6707         
6708         * python/examples/Makefile.am:
6709         * python/examples/gconf-proxy-service.py:
6710         * python/examples/gconf-proxy-service2.py:
6711
6712         Alternate implementation of gconf-proxy-service using the
6713         nicer dbus.ObjectTree API.
6714         
6715         * python/examples/example-service.py:
6716         * python/tests/test-server.py
6717
6718         Reverse the argument order to deal with dbus.Object constructor
6719         changes.
6720         
6721 2004-05-30  Seth Nickell  <seth@gnome.org>
6722
6723         * python/examples/example-client.py:
6724         * python/examples/example-service.py:
6725
6726         Take it back. Lists seem to work but they're broken
6727         in the test suite. Make the base examples use
6728         lists (works fine).
6729
6730 2004-05-30  Seth Nickell  <seth@gnome.org>
6731
6732         * python/dbus_bindings.pyx.in:
6733         * python/tests/test-client.py:
6734
6735         Add some more tests and fix errors that crop up.
6736         Unfortunately, currently it seems like marshalling
6737         and unmarshalling of lists is completely broken :-(
6738
6739 2004-05-30  Seth Nickell  <seth@gnome.org>
6740
6741         * python/dbus_bindings.pyx.in:
6742
6743         Add support for ObjectPath type.
6744
6745         * python/dbus.py:
6746
6747         Refactor message handling code to a common function.
6748         
6749         * python/tests/test-client.py:
6750         * python/tests/test-server.py:
6751
6752         Add tests that check to make sure values of all types
6753         can be echoed from a service w/o mangling.
6754         
6755 2004-05-29  Seth Nickell  <seth@gnome.org>
6756
6757         * python/dbus.py:
6758
6759         Add ObjectTree class which allows implementation
6760         of trees of "virtual" objects. Basically the python
6761         wrapper for "register_fallback".
6762         
6763         * python/examples/Makefile.am
6764         * python/examples/gconf-proxy-client.py:
6765         * python/examples/gconf-proxy-service.py:
6766
6767         Implement a simple GConf proxy service that supports
6768         get/set on string and int GConf keys using the ObjectTree.
6769         
6770 2004-05-29  Seth Nickell  <seth@gnome.org>
6771
6772         * python/dbus.py:
6773         * python/examples/example-client.py:
6774         * python/examples/example-service.py:
6775         * python/examples/list-system-services.py:
6776
6777         Add SessionBus, SystemBus and ActivationBus classes
6778         so you don't need to know the special little BUS_TYPE
6779         flag.
6780         
6781 2004-05-29  Havoc Pennington  <hp@redhat.com>
6782
6783         * bus/config-parser.c (process_test_valid_subdir): temporarily
6784         stop testing config parser OOM handling, since expat has issues
6785         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6786
6787         * bus/dbus-daemon-1.1.in: change requested_reply to
6788         send_requested_reply/receive_requested_reply so we can send the
6789         replies, not just receive them.
6790
6791         * bus/config-parser.c: parse the new
6792         send_requested_reply/receive_requested_reply
6793
6794         * bus/policy.c (bus_client_policy_check_can_send): add
6795         requested_reply argument and use it
6796
6797         * bus/bus.c (bus_context_check_security_policy): pass through
6798         requested_reply status to message send check
6799
6800         * bus/system.conf.in: adapt to requested_reply change
6801         
6802 2004-05-28  Havoc Pennington  <hp@redhat.com>
6803
6804         * test/glib/test-service-glib.c (main): remove unused variable
6805
6806         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6807
6808         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6809         from the enum, no longer in use.
6810
6811         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6812         works right.
6813
6814         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6815         whether error_name passed in is a valid error name.
6816
6817 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6818
6819         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6820         OBJECT_PATH and OBJECT_PATH_ARRAY
6821
6822 2004-05-28  Seth Nickell  <seth@gnome.org>
6823
6824         * python/examples/Makefile.am:
6825
6826         Forget to add Makefile.am. Do not pass go.
6827
6828 2004-05-28  Michael Meeks  <michael@ximian.com>
6829
6830         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6831         fix no int64 case.
6832
6833         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6834
6835         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6836         (_dbus_message_iter_get_basic_type_array): impl.
6837         drastically simplify ~all relevant _get methods to use these.
6838         (_dbus_message_iter_append_basic_array),
6839         (dbus_message_iter_append_basic): impl
6840         drastically simplify ~all relevant _append methods to use these.
6841
6842         * dbus/dbus-message-builder.c (parse_basic_type) 
6843         (parse_basic_array, lookup_basic_type): impl.
6844         (_dbus_message_data_load): prune scads of duplicate /
6845         cut & paste coding.
6846
6847         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6848         (_dbus_demarshal_basic_type): implement,
6849         (demarshal_and_validate_len/arg): beef up debug.
6850         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6851
6852 2004-05-27  Seth Nickell  <seth@gnome.org>
6853
6854         * configure.in:
6855         * python/Makefile.am:
6856
6857         Include the example python apps in the tarball.
6858         
6859         * python/examples/list-system-services.py
6860
6861         Add a python new example that fetches the list of services
6862         from the system bus.
6863         
6864 2004-05-27  Seth Nickell  <seth@gnome.org>
6865
6866         * python/dbus.py:
6867         * python/dbus_bindings.pyx.in:
6868
6869         Fix failure to notify that a signal was not handled,
6870         resulted in hung functions.
6871         
6872 2004-05-25  Colin Walters  <walters@redhat.com>
6873
6874         * tools/dbus-monitor.c (main): Monitor all types of messages.
6875
6876 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6877
6878         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6879         which unregisters the object path and disposes the handler.
6880
6881 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6882  
6883         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6884          
6885         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6886         operands to && so we call dbus_message_iter_next () for the last
6887         argument also.
6888
6889 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6890
6891         * dbus/dbus-object-tree.c
6892         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6893         children even if the requested path isn't registered.
6894         (object_tree_test_iteration): test object_tree_list_registered.
6895
6896         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6897         it to 0.
6898         
6899 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6900
6901         * doc/TODO: Remove resolved items.
6902
6903         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6904         field.
6905         
6906         * bus/connection.c (bus_connections_expect_reply): Enforce the
6907         per-connection limit on pending replies.
6908         
6909         Patch from Jon Trowbridge <trow@ximian.com>:
6910  
6911         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6912         up a watch that triggers a config reload when one end of the pipe
6913         becomes readable.
6914         (signal_handler): Instead of doing the config reload in our SIGHUP
6915         handler, just write to the reload pipe and let the associated
6916         watch handle the reload when control returns to the main loop.
6917  
6918         * bus/driver.c (bus_driver_handle_reload_config): Added.
6919         Implements a ReloadConfig method for requesting a configuration
6920         file reload via the bus driver.
6921  
6922 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6923
6924         * HACKING: Updated release instructions concerning the wiki page.
6925
6926 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6927
6928         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6929         filter against auth->allowed_mechs; we only add allowed mechs in
6930         record_mechanisms().
6931  
6932         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6933         ALLOWED_MECHS to auth-script format so we can set the list of
6934         allowed mechanisms.
6935  
6936         * data/auth/client-out-of-mechanisms.auth-script: New test to
6937         check client disconnects when it is out of mechanisms to try.
6938  
6939         * dbus/dbus-auth.c (process_command): Remove check for lines
6940         longer that 1 MB; we only buffer up maximum 16 kB.
6941  
6942         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6943         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6944         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6945         assume there might be unused bytes.
6946  
6947         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6948         client-out-of-mechs, it is handled in process_reject(). Move check
6949         for max failures to send_rejected(), as it's a server-only thing.
6950
6951         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6952         send_auth(), send_data(), send_rejected(), send_error(),
6953         send_ok(), send_begin() and send_cancel().
6954
6955 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6956
6957         Remove base64 encoding, replace with hex encoding. Original patch
6958         from trow@ximian.com, added error handling.
6959
6960         * dbus/dbus-string.c (_dbus_string_base64_encode)
6961         (_dbus_string_base64_decode): Remove.
6962         (_dbus_string_hex_decode): Add end_return argument so we can
6963         distinguish between OOM and invalid hex encoding.
6964         (_dbus_string_test): Remove base64 tests and add test case for
6965         invalid hex.
6966
6967         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6968         Replace base64 with hex.
6969
6970         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6971         for invalid hex encoded data in auth protocol.
6972
6973 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6974
6975         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6976         leak.
6977
6978 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6979
6980         * mono/dbus-sharp.dll.config.in: Added for GAC
6981         * mono/dbus-sharp.snk: Added for GAC
6982         * mono/Assembly.cs.in: Added for GAC
6983         * mono/Makefile.am: Changes for GAC installation        
6984         * configure.in: Added refs for dbus-sharp.dll.config.in and
6985         Assembly.cs.in. More fixes for mono testing
6986         * mono/example/Makefile.am: Changed var to CSC
6987         * Makefile.am: Changed flag name to DBUS_USE_CSC
6988
6989 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6990
6991         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6992         * mono/doc/*: Added documentation framework
6993         * configure.in: Added monodoc check
6994         * README: Added description of mono configure flags
6995
6996 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6997
6998         * doc/dbus-specification.xml: Added a "Required" column to the 
6999         header fields table and changed the "zero or more" verbage in
7000         the above paragraph to read "The header must contain the required 
7001         named header fields and zero or more of the optional named header 
7002         fields".
7003         * test/data/invalid-messages/*.message: Added the required PATH 
7004         named header field to the tests so that they don't fail on 
7005         'Missing path field'
7006
7007 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7008
7009         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7010         the stack by implicitly defining variable and parameter types and
7011         removing the hack of defining C pointers as python objects and later
7012         casting them.
7013
7014 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7015
7016         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7017
7018 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7019
7020         * mono/DBusType/Dict.cs: Handle empty dicts
7021         * mono/DBusType/Array.cs: Handle empty arrays
7022         * mono/Arguments.cs: Handle empty arguments
7023
7024 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7025
7026         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7027         field
7028
7029 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7030
7031         * test/data/valid-messages/standard-*.message: Update message
7032         test scripts to new header field names.
7033
7034 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7035
7036         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7037         overflow to times_we_did_each_thing array which would chop off the
7038         first character of the failure_dir string. Increased the size of
7039         the array to 7 to reflect the number of random mutation functions
7040         we have.
7041
7042 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7043
7044         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7045         unix_server->watch here, it is unreffed in disconnect.
7046         (_dbus_server_new_for_tcp_socket): convert NULL host to
7047         "localhost" here so we don't append NULL to address.
7048         
7049         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7050         various addresses, including tcp with no explicit host.
7051
7052 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7053
7054         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7055         fix incorrect setting of .name_offset in the HeaderField (it was
7056         off by two bytes, positioned right after the name and typecode)
7057
7058         * bus/bus.c (bus_context_new, bus_context_unref): test before
7059         calling dbus_server_free_data_slot and _dbus_user_database_unref
7060         in case of an error.
7061
7062         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7063         by libdbus-gtool.
7064
7065 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7066
7067         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7068         _dbus_poll() instead of select().
7069
7070 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7071
7072         * bus/main.c (signal_handler): Reload the configuration files
7073         on SIGHUP.
7074         (main): Set up our SIGHUP handler.
7075
7076         * bus/bus.c (struct BusContext): Store the config file, user and
7077         fork flag in the BusContext.
7078         (process_config_first_time_only): Added.  Contains the code
7079         (previously in bus_context_new) for setting up the BusContext from
7080         the BusConfigParser that should only be run the first time the
7081         config files are read.
7082         (process_config_every_time): Added.  Contains the code (previously
7083         in bus_context_new) for setting up the BusContext from the
7084         BusConfigParser that should be run every time the config files are
7085         read.
7086         (load_config): Added.  Builds a BusConfigParser from the config
7087         files and passes the resulting structure off to
7088         process_config_first_time_only (assuming this is the first time)
7089         and process_config_every_time.
7090         (bus_context_new): All of the config-related code has been moved
7091         to process_config_first_time_only and process_config_every_time.
7092         Now this function just does the non-config-related initializations
7093         and calls load_config.
7094         (bus_context_reload_config): Added.
7095
7096 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7097
7098         * bus/driver.c (bus_driver_handle_get_service_owner):
7099         implement a GetServiceOwner method.
7100         * doc/dbus-specification.xml: document it.
7101         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7102         
7103         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7104         implement, using the bus GetServiceOwner method.
7105
7106         * test/glib/test-dbus-glib.c:
7107         use dbus_gproxy_new_for_service_owner so that we can receive the
7108         signal. 
7109
7110 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7111
7112         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7113         dbus/dbus-message.c, dbus/dbus-protocol.h
7114         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7115
7116         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7117         dbus/dbus-message.c, dbus/dbus-protocol.h
7118         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7119
7120         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7121         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7122         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7123
7124         * doc/dbus-specification.xml (Header Fields Table):
7125         s/SERVICE/DESTINATION
7126         s/SENDER_SERVICE/SENDER
7127
7128
7129 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7130
7131         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7132         a few seconds.
7133
7134 2004-04-13  Michael Meeks  <michael@ximian.com>
7135
7136         * glib/dbus-gobject.c (handle_introspect): split out
7137         (introspect_properties): this.
7138         (handle_introspect): implement this.
7139
7140         * test/glib/Makefile.am: use the absolute path so the bus
7141         daemon's chdir ("/") doesn't kill us dead.
7142
7143         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7144
7145 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7146
7147         * bus/config-parser.c (struct BusConfigParser): Added
7148         included_files field.
7149         (seen_include): Added.  Checks whether or not a file has already
7150         been included by any parent BusConfigParser.
7151         (bus_config_parser_new): Copy the parent's included_files.
7152         (include_file): Track which files have been included, and fail on
7153         circular inclusions.
7154         (process_test_valid_subdir): Changed printf to report if we are
7155         testing valid or invalid conf files.
7156         (all_are_equiv): Changed printf to be a bit clearer about
7157         what we are actually doing.
7158         (bus_config_parser_test): Test invalid configuration files.
7159
7160 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7161
7162         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7163         argument.  If non-null, the newly-constructed BusConfigParser will
7164         be initialized with the parent's BusLimits instead of the default
7165         values.
7166         (include_file): When including a config file, pass in
7167         the current parser as the parent and then copy the BusLimits
7168         from the included BusConfigParser pack to the current parser.
7169         (process_test_valid_subdir): Renamed from process_test_subdir.
7170         (process_test_equiv_subdir): Added.  Walks through a directory,
7171         descending into each subdirectory and loading the config files
7172         it finds there.  If any subdirectory contains two config files
7173         that don't produce identical BusConfigParser structs, fail.
7174         For now, the BusConfigParser's BusPolicies are not compared.
7175         (bus_config_parser_test): Call both process_test_valid_subdir and
7176         process_test_equiv_subdir.
7177
7178         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7179         argument and pass it along to the call to bus_config_parser_new.
7180         Also made a few small changes to allow this code to compile.
7181
7182         * bus/config-loader-expat.c (bus_config_load): Take a parent
7183         argument and pass it along to the call to bus_config_parser_new.
7184
7185         * bus/bus.c (bus_context_new): Load the config file
7186         with a NULL parent argument.
7187
7188 2004-03-29  Michael Meeks  <michael@ximian.com>
7189
7190         * glib/dbus-gobject.c (introspect_properties): split
7191         out, fix mangled 'while' flow control.
7192         (introspect_signals): implement.
7193         (handle_introspect): update.
7194
7195 2004-03-29  Michael Meeks  <michael@ximian.com>
7196
7197         * glib/dbus-gobject.c (set_object_property): split out / 
7198         re-work, use the property type, and not the message type(!)
7199         (get_object_property): ditto.
7200
7201         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7202         (dbus_gvalue_marshal): make this code re-usable, needed
7203         for signals too, also on both proxy and server side.
7204         Re-write for more efficiency / readability.
7205
7206 2004-03-29  Michael Meeks  <michael@ximian.com>
7207
7208         * dbus/dbus-message.c
7209         (dbus_message_new_error_printf): impl.
7210
7211         * dbus/dbus-connection.c
7212         (dbus_connection_unregister_object_path): fix warning.
7213
7214         * configure.in: fix no-mono-installed situation.
7215
7216 2004-03-27  Havoc Pennington  <hp@redhat.com>
7217
7218         Patch from Timo Teräs:
7219         
7220         * tools/dbus-send.c (main): if --print-reply, assume type is
7221         method call; support boolean type args
7222         
7223         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7224         bunch of memleak and logic bugs
7225         
7226 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7227
7228         * mono/Arguments.cs:
7229         * mono/Introspector.cs:
7230         * mono/Handler.cs:
7231         * mono/InterfaceProxy.cs:
7232         * mono/Message.cs
7233         * mono/ProxyBuilder.cs:
7234         * mono/Service.cs:
7235         Added InterfaceProxy class to avoid building proxies for every
7236         object.
7237
7238         * dbus-message.h:
7239         * dbus-message.c (dbus_message_append_args_valist)
7240         (dbus_message_iter_get_object_path)
7241         (dbus_message_iter_get_object_path_array)
7242         (dbus_message_iter_append_object_path)
7243         (dbus_message_iter_append_object_path_array):
7244         Added object_path iter functions to handle OBJECT_PATH arguments
7245         
7246 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7247
7248         First checkin of mono bindings.
7249         * configure.in:
7250         * Makefile.am:
7251         Build stuff for the bindings
7252         * dbus-sharp.pc.in: Added for pkgconfig
7253         
7254 2004-03-21  Havoc Pennington  <hp@redhat.com>
7255
7256         * test/test-service.c (main): remove debug spew
7257
7258 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7259
7260         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7261         arrays
7262
7263         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7264         (dbus_message_iter_init_array_iterator)
7265         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7266         indicate whether the iterator is empty
7267
7268         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7269         warnings
7270
7271 2004-03-19  Havoc Pennington  <hp@redhat.com>
7272
7273         * NEWS: 0.21 updates
7274
7275         * configure.in: 0.21
7276
7277         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7278         
7279         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7280         you don't need pyrex to make dist
7281
7282         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7283         sources; run moc
7284         
7285 2004-03-18  Richard Hult  <richard@imendio.com>
7286
7287         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7288         (dbus_message_set_auto_activation): Add doxygen docs.
7289
7290 2004-03-16  Richard Hult  <richard@imendio.com>
7291
7292         * bus/activation.c: (bus_activation_service_created),
7293         (bus_activation_send_pending_auto_activation_messages),
7294         (bus_activation_activate_service):
7295         * bus/activation.h:
7296         * bus/dispatch.c: (bus_dispatch),
7297         (check_nonexistent_service_auto_activation),
7298         (check_service_auto_activated),
7299         (check_segfault_service_auto_activation),
7300         (check_existent_service_auto_activation), (bus_dispatch_test):
7301         * bus/driver.c: (bus_driver_handle_activate_service):
7302         * bus/services.c: (bus_registry_acquire_service):
7303         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7304         (dbus_message_get_auto_activation):
7305         * dbus/dbus-message.h:
7306         * dbus/dbus-protocol.h: Implement auto-activation.
7307         
7308         * doc/dbus-specification.xml: Add auto-activation to the spec.
7309
7310 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7311
7312         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7313         fix a bug with CUSTOM types.
7314
7315         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7316         a unit test for this bug (used to fail).
7317
7318 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7319
7320         * bus/activation.c:
7321         (babysitter_watch_callback): notify all pending activations waiting for
7322           the same exec that the activation failed.
7323         (bus_activation_activate_service): shortcut the activation if we 
7324           already waiting for the same executable to start up.
7325
7326 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7327
7328         * bus/activation.c: 
7329         - Added service file reloading. 
7330           Each service files directory is kept in an hash table in 
7331           BusActivation and each BusActivationEntry knows what .service-file it
7332           was read from. So when you try to activate a service the bus will 
7333           check if it's been updated, removed or if new .service-files has 
7334           been installed.
7335         - Test code at the bottom for the service file reloading.
7336         * bus/test-main.c: (main):
7337         * bus/test.h:
7338         - added service reloading test.
7339         * dbus/dbus-sysdeps.c: 
7340         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7341
7342 2004-03-08  Michael Meeks  <michael@ximian.com>
7343
7344         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7345         bail immediately if disconnected, to avoid busy loop.
7346
7347         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7348         cleanup cut/paste/inefficiency.
7349
7350 2004-03-01  David Zeuthen  <david@fubar.dk>
7351
7352         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7353         bug where args were used twice. This bug resulted in a segfault
7354         on a Debian/PPC system when starting the messagebus daemon. Include
7355         dbus-sysdeps.h for DBUS_VA_COPY
7356
7357         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7358
7359         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7360         appropriate va_copy implementation. From GLib
7361         
7362 2004-02-24  Joe Shaw  <joe@ximian.com>
7363
7364         * bus/services.c (bus_registry_acquire_service): We need to pass
7365         in the service name to dbus_set_error() to prevent a crash.
7366
7367 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7368
7369         * AUTHORS: Reveal my True identity.
7370
7371 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7372
7373         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7374         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7375
7376 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7377
7378         * doc/TODO: Added not about better error check of configuration files.
7379
7380 2003-12-02  Richard Hult  <richard@imendio.com>
7381
7382         * Update AFL version to 2.0 throughout the source files to reflect
7383         the update that was done a while ago.
7384
7385 2003-12-02  Richard Hult  <richard@imendio.com>
7386
7387         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7388         wrote_dict_key to FALSE on the iter that the dict is appended to,
7389         just like when appending other types. Fixes a bug where a dict
7390         couldn't be put inside a dict.
7391         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7392         (message_iter_test, _dbus_message_test): Add test case for dict
7393         inside dict.
7394
7395 2003-12-01  David Zeuthen  <david@fubar.dk>
7396
7397         * python/dbus.py: Add the actual message when calling the reciever
7398         of a signal such that parameters can be inspected. Add the method
7399         remove_signal_receiver
7400         
7401 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7402
7403         * bus/*.[ch]:
7404         * dbus/*.[ch]:
7405         * glib/*.[ch]: Made ref functions return the pointer
7406
7407 2003-11-25  Zack Rusin  <zack@kde.org>
7408
7409         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7410
7411         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7412         wrappers,
7413
7414         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7415         the Integrator and to better fit with the server,
7416
7417 2003-11-24  Zack Rusin  <zack@kde.org>
7418
7419         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7420         the integrator handles it now
7421
7422         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7423         since QTimer wasn't really meant to be used the way DBusTimeout is
7424
7425 2003-11-24  Zack Rusin  <zack@kde.org>
7426
7427         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7428         Integrator class which integrates D-BUS with the Qt event loop,
7429
7430         * qt/connection.h, qt/connection.cpp: Move all the code which
7431         was dealing with D-BUS integration to the Integrator class,
7432         and start using Integrator,
7433
7434 2003-11-23  Zack Rusin  <zack@kde.org>
7435
7436         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7437         wrapper
7438
7439         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7440         switching namespaces to DBusQt, reworking the class,
7441
7442         * Makefile.cvs: switching dependencies so that it matches KDE 
7443         schematics,
7444         
7445         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7446         the library
7447
7448 2003-11-19  Havoc Pennington  <hp@redhat.com>
7449
7450         * NEWS: update
7451
7452         * configure.in: bump version to 0.20
7453
7454         * configure.in (have_qt): add yet another place to look for qt
7455         (someone hand trolltech a .pc file...)
7456
7457 2003-11-01  Havoc Pennington  <hp@redhat.com>
7458
7459         * doc/dbus-specification.xml: add state machine docs on the auth
7460         protocol; just a first draft, I'm sure it's wrong.      
7461
7462 2003-10-28  David Zeuthen  <david@fubar.dk>
7463
7464         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7465         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7466         
7467 2003-10-28  Havoc Pennington  <hp@redhat.com>
7468
7469         * dbus/dbus-message.c (get_next_field): delete unused function
7470
7471 2003-10-28  Havoc Pennington  <hp@redhat.com>
7472
7473         * bus/expirelist.c (do_expiration_with_current_time): detect
7474         failure of the expire_func due to OOM
7475
7476         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7477
7478         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7479         NoReply error that's now created by the bus when the service exits
7480
7481 2003-10-28  Havoc Pennington  <hp@redhat.com>
7482
7483         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7484         tests for set_path, set_interface, set_member, etc.
7485
7486         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7487
7488         * dbus/dbus-message.c (set_string_field): always just delete and
7489         re-append the field; accept NULL for deletion
7490         (re_align_fields_recurse): reimplement
7491         
7492 2003-10-26  Havoc Pennington  <hp@redhat.com>
7493
7494         * dbus/dbus-connection.c: fix docs to properly describe the
7495         disconnected message
7496         (_dbus_connection_notify_disconnected): remove this function; 
7497         we can't synchronously add the disconnected message, we have to 
7498         do it after we've queued any remaining real messages
7499         (_dbus_connection_get_dispatch_status_unlocked): queue the
7500         disconnect message only if the transport has finished queueing all
7501         its real messages and is disconnected.
7502         (dbus_connection_disconnect): update the dispatch status here
7503
7504 2003-10-22  Havoc Pennington  <hp@redhat.com>
7505
7506         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7507
7508         * bus/connection.c (bus_transaction_send_from_driver): set the
7509         destination to the connection's base service
7510
7511 2003-10-20  Havoc Pennington  <hp@redhat.com>
7512
7513         hmm, make check is currently not passing.
7514         
7515         * doc/dbus-specification.xml: add requirement that custom type
7516         names follow the same rules as interface names.
7517
7518         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7519         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7520         'map'
7521
7522         * doc/dbus-specification.xml: update type codes to match
7523         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7524         CUSTOM. Add type OBJECT_PATH to the spec.
7525
7526 2003-10-17  Havoc Pennington  <hp@redhat.com>
7527
7528         * bus/driver.c (create_unique_client_name): use "." as separator
7529         in base service names instead of '-'
7530
7531         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7532         byte at the end of the string
7533
7534         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7535         optimization macros since string validation seems to be a slow
7536         point.
7537         
7538         * doc/dbus-specification.xml: restrict valid
7539         service/interface/member/error names. Add test suite code for the
7540         name validation.
7541
7542         * dbus/dbus-string.c: limit service/interface/member/error names 
7543         to [0-9][A-Z][a-z]_
7544
7545         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7546         format arg to verbose spew
7547
7548         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7549         memory, return instead of g_error
7550
7551         * test/test-service.c (path_message_func): support emitting a
7552         signal on request
7553
7554         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7555         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7556         assuming the activation bus was the session bus so that services
7557         started manually will still register.
7558         (init_connections_unlocked): fix so that in OOM situation we get
7559         the same semantics when retrying the function
7560         
7561         * test/test-service.c (main): change to use path registration, to
7562         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7563         than DBUS_BUS_SESSION
7564
7565 2003-10-16  Havoc Pennington  <hp@redhat.com>
7566
7567         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7568
7569         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7570         coverage of the tests
7571         (coverage-report.txt): don't move the .da and .bbg files around
7572
7573 2003-10-16  Havoc Pennington  <hp@redhat.com>
7574
7575         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7576         to put there
7577
7578 2003-10-16  Havoc Pennington  <hp@redhat.com>
7579
7580         * bus/connection.c (bus_pending_reply_expired): either cancel or
7581         execute, not both
7582         (bus_connections_check_reply): use unlink, not remove_link, as we
7583         don't want to free the link; fixes double free mess
7584
7585         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7586         where no reply was received
7587
7588         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7589         fix a refcount leak
7590
7591         * bus/signals.c (match_rule_matches): add special cases for the
7592         bus driver, so you can match on sender/destination for it.
7593
7594         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7595         DBUS_PRINT_BACKTRACE is set
7596
7597         * dbus/dbus-internals.c: add pid to assertion failure messages
7598
7599         * dbus/dbus-connection.c: add message type code to the debug spew
7600
7601         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7602         sender=foo not service=foo
7603
7604         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7605         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7606         DBUS_ACTIVATION_ADDRESS instead
7607
7608         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7609         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7610
7611         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7612         context struct
7613
7614         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7615         (dbus_message_iter_get_object_path_array): new function (half
7616         finished, disabled for the moment)
7617         
7618         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7619         DBUS_MESSAGE_TYPE_ERROR
7620
7621         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7622         avoid redirecting stderr to /dev/null
7623         (babysit): close stdin if not doing the "exit_with_session" thing
7624
7625         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7626         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7627         stdout/stdin, so things don't get confused
7628         
7629         * bus/system.conf.in: fix to allow replies, I modified .conf
7630         instead of .conf.in again.
7631
7632 2003-10-14  David Zeuthen  <david@fubar.dk>
7633
7634         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7635         argtype to arg_type when raising unknown arg type exception.
7636         Changed type list to reflect the changes in dbus-protocol.h so 
7637         the bindings actually work.
7638
7639 2003-10-14  Havoc Pennington  <hp@redhat.com>
7640
7641         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7642         to have a bug keeping it from outputting the .da files sometimes
7643         (string_get_string): don't append garbage nul bytes to the string.
7644
7645 2003-10-15  Seth Nickell  <seth@gnome.org>
7646
7647         * python/Makefile.am:
7648
7649         Include dbus_h_wrapper.h in the dist tarball.
7650
7651 2003-10-14  Havoc Pennington  <hp@redhat.com>
7652
7653         * bus/bus.c (bus_context_check_security_policy): revamp this to
7654         work more sanely with new policy-based requested reply setup
7655
7656         * bus/connection.c (bus_transaction_send_from_driver): set bus
7657         driver messages as no reply
7658
7659         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7660         requested_reply attribute on allow/deny rules
7661
7662         * bus/system.conf: add <allow requested_reply="true"/>
7663
7664         * bus/driver.c (bus_driver_handle_message): fix check for replies
7665         sent to the bus driver, which was backward. How did this ever work
7666         at all though? I think I'm missing something.
7667
7668         * dbus/dbus-message.c (decode_header_data): require error and
7669         method return messages to have a reply serial field to be valid
7670         (_dbus_message_loader_queue_messages): break up this function;
7671         validate that reply serial and plain serial are nonzero; 
7672         clean up the OOM/error handling.
7673         (get_uint_field): don't return -1 from this
7674         (dbus_message_create_header): fix signed/unsigned bug
7675
7676         * bus/connection.c (bus_connections_expect_reply): save serial of
7677         the incoming message, not reply serial
7678
7679 2003-10-14  Havoc Pennington  <hp@redhat.com>
7680
7681         * bus/connection.c: implement pending reply tracking using
7682         BusExpireList
7683
7684         * bus/bus.c (bus_context_check_security_policy): verify that a
7685         reply is pending in order to allow a reply to be sent. Deny 
7686         messages of unknown type.
7687
7688         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7689
7690         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7691         (bus_context_get_reply_timeout): new
7692
7693 2003-10-13  Seth Nickell  <seth@gnome.org>
7694
7695         * python/Makefile.am:
7696
7697         Pass "make distcheck": remove a couple files from DIST_FILES
7698         that weren't included in the final version.
7699
7700 2003-10-12  Havoc Pennington  <hp@pobox.com>
7701
7702         Added test code that 1) starts an actual bus daemon and 2) uses
7703         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7704         more testing possible, but this is the basic framework.
7705         
7706         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7707         empty proxy lists from the proxy list hash
7708
7709         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7710         couple of return_if_fail checks
7711
7712         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7713         to allocate, so everything is cleared to NULL as it should be.
7714
7715         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7716         source as data to dbus_connection_set_timeout_functions() as the 
7717         timeout functions expected
7718
7719         * test/glib/run-test.sh: add a little script to start up a message
7720         bus and run tests using it
7721
7722         * tools/dbus-launch.1: updates
7723
7724         * tools/dbus-launch.c (main): add --config-file option
7725
7726         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7727         that could never be reached.
7728
7729         * dbus/dbus-message.c (dbus_message_new_method_return) 
7730         (dbus_message_new_error, dbus_message_new_signal): set the
7731         no-reply-expected flag on all these. Redundant, but may
7732         as well be consistent.
7733
7734 2003-10-11  Havoc Pennington  <hp@pobox.com>
7735
7736         * test/decode-gcov.c (function_solve_graph): make broken block
7737         graph a nonfatal error since it seems to be broken. Need to debug
7738         this.
7739
7740         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7741         can't just check type > INVALID < LAST anymore
7742
7743         * dbus/dbus-message.c (dbus_message_get_signature): new function
7744         (dbus_message_has_signature): new function
7745         (struct DBusMessage): add signature field (right now it isn't sent
7746         over the wire, just generated on the fly)
7747         (dbus_message_copy): copy the signature, and init strings to
7748         proper length to avoid some reallocs
7749         (dbus_message_iter_init_array_iterator): return void, since it
7750         can't fail
7751         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7752         (_dbus_message_loader_queue_messages): add silly temporary hack to
7753         fill in message->signature on load
7754
7755         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7756         characters, so they are relatively human-readable.
7757
7758 2003-10-11  Havoc Pennington  <hp@pobox.com>
7759
7760         * dbus/dbus-message.c (_dbus_message_test): add more test
7761         coverage, but #if 0 for now since they uncover a bug 
7762         not fixed yet; I think in re_align_field_recurse()
7763         (re_align_field_recurse): add FIXME about broken assertion
7764
7765         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7766
7767         * bus/connection.c: share a couple code bits with expirelist.c
7768
7769         * bus/expirelist.h, bus/expirelist.c: implement a generic
7770         expire-items-after-N-seconds facility, was going to share between
7771         expiring connections and replies, decided not to use for expiring
7772         connections for now.
7773
7774         * COPYING: include AFL 2.0 (still need to change all the file headers)
7775
7776 2003-10-09  Havoc Pennington  <hp@redhat.com>
7777
7778         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7779         gcc 3.3. Not that we do anything about it yet.
7780
7781         * bus/signals.c (bus_match_rule_parse): impose max length on the
7782         match rule text
7783
7784         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7785
7786 2003-10-09  Havoc Pennington  <hp@redhat.com>
7787
7788         Make matching rules theoretically work (add parser).
7789         
7790         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7791         the case where destination is explicitly specified as bus driver
7792         and someone else is eavesdropping.
7793         
7794         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7795         definition of eavesdropping and assertion
7796
7797         * tools/dbus-send.c (main): use dbus_message_type_from_string
7798
7799         * bus/signals.c (bus_match_rule_parse): implement
7800
7801         * dbus/dbus-message.c (dbus_message_type_from_string): new
7802
7803         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7804
7805 2003-10-02  Havoc Pennington  <hp@pobox.com>
7806
7807         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7808         dbus_gproxy_oneway_call
7809
7810         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7811         (dbus_server_setup_with_g_main): fix to allow calling them more
7812         than once on the same args
7813         (dbus_bus_get_with_g_main): new function
7814
7815 2003-10-02  Havoc Pennington  <hp@redhat.com>
7816
7817         * doc/dbus-tutorial.xml: write some stuff
7818
7819 2003-09-29  Havoc Pennington  <hp@pobox.com>
7820
7821         * configure.in: split checks for Doxygen from XML docs, check for
7822         xmlto
7823
7824         * doc/Makefile.am: XML-ify all the docs, and add a blank
7825         dbus-tutorial.xml
7826
7827 2003-09-29  Havoc Pennington  <hp@pobox.com>
7828
7829         * Merge dbus-object-names branch. To see the entire patch 
7830         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7831         it's huuuuge though.
7832         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7833         
7834 2003-09-28  Havoc Pennington  <hp@pobox.com>
7835
7836         * HACKING: update to reflect new server
7837
7838 2003-09-26  Seth Nickell  <seth@gnome.org>
7839
7840         * python/dbus.py:
7841         * python/examples/example-signals.py:
7842
7843         Start implementing some notions of signals. The API
7844         is really terrible, but they sort of work (with the
7845         exception of being able to filter by service, and to
7846         transmit signals *as* a particular service). Need to
7847         figure out how to make messages come from the service
7848         we registered :-(
7849         
7850         * python/dbus_bindings.pyx.in:
7851
7852         Removed duplicate message_handler callbacks.
7853         
7854 2003-09-25  Havoc Pennington  <hp@redhat.com>
7855
7856         * bus/session.conf.in: fix my mess
7857
7858 2003-09-25  Havoc Pennington  <hp@pobox.com>
7859
7860         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7861
7862 2003-09-25  Seth Nickell  <seth@gnome.org>
7863
7864         * python/examples/example-service.py:
7865
7866         Johan notices complete wrong code in example-service, but
7867         completely wrong in a way that works exactly the same (!).
7868         Johan is confused, how could this possibly work? Example
7869         code fails to serve purpose of making things clear.
7870         Seth fixes.
7871
7872 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7873
7874         * doc/dbus-specification.sgml: don't require header fields
7875         to be 4-byte aligned and specify that fields should be
7876         distinguished from padding by the fact that zero is not
7877         a valid field name.
7878         
7879         * doc/TODO: remove re-alignment item and add item to doc
7880         the OBJECT_PATH type.
7881         
7882         * dbus/dbus-message.c:
7883         (HeaderField): rename the original member to value_offset
7884         and introduce a name_offset member to keep track of where
7885         the field actually begins.
7886         (adjust_field_offsets): remove.
7887         (append_int_field), (append_uint_field),
7888         (append_string_field): don't align the start of the header
7889         field to a 4-byte boundary.
7890         (get_next_field): impl finding the next marhsalled field
7891         after a given field.
7892         (re_align_field_recurse): impl re-aligning a number of
7893         already marshalled fields.
7894         (delete_field): impl deleting a field of any type and
7895         re-aligning any following fields.
7896         (delete_int_or_uint_field), (delete_string_field): remove.
7897         (set_int_field), (set_uint_field): no need to re-check
7898         that we have the correct type for the field.
7899         (set_string_field): ditto and impl re-aligning any
7900         following fields.
7901         (decode_header_data): update to take into account that
7902         the fields aren't 4-byte aligned any more and the new
7903         way to distinguish padding from header fields. Also,
7904         don't exit when there is too much header padding.
7905         (process_test_subdir): print the directory.
7906         (_dbus_message_test): add test to make sure a following
7907         field is re-aligned correctly after field deletion.
7908         
7909         * dbus/dbus-string.[ch]:
7910         (_dbus_string_insert_bytes): rename from insert_byte and
7911         allow the insert of multiple bytes.
7912         (_dbus_string_test): test inserting multiple bytes.
7913
7914         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7915         warning note to docs about having to re-align any
7916         marshalled values following the string.
7917         
7918         * dbus/dbus-message-builder.c:
7919         (append_string_field), (_dbus_message_data_load):
7920         don't align the header field.
7921         
7922         * dbus/dbus-auth.c: (process_test_subdir): print the
7923         directory.
7924         
7925         * test/break-loader.c: (randomly_add_one_byte): upd. for
7926         insert_byte change.
7927         
7928         * test/data/invalid-messages/bad-header-field-alignment.message:
7929         new test case.
7930         
7931         * test/data/valid-messages/unknown-header-field.message: shove
7932         a dict in the unknown field.
7933
7934 2003-09-25  Seth Nickell  <seth@gnome.org>
7935
7936         * python/dbus.py:
7937         * python/dbus_bindings.pyx.in:
7938
7939         Handle return values.
7940         
7941         * python/examples/example-client.py:
7942         * python/examples/example-service.py:
7943
7944         Pass back return values from the service to the client.
7945         
7946 2003-09-24  Seth Nickell  <seth@gnome.org>
7947
7948         * python/dbus.py:
7949
7950         Connect Object methods (when you are sharing an object) up... pass
7951         in a list of methods to be shared. Sharing all the methods just
7952         worked out too weird. You can now create nice Services over the
7953         DBus in Python. :-)
7954         
7955         * python/dbus_bindings.pyx.in:
7956
7957         Keep references to user_data tuples passed into C functions so 
7958         Python doesn't garbage collect on us.
7959
7960         Implement MethodReturn and Error subclasses of Message for creating
7961         DBusMessage's of those types.
7962         
7963         * python/examples/example-client.py:
7964         * python/examples/example-service.py:
7965
7966         Simple example code showing both how create DBus services and objects,
7967         and how to use them.
7968
7969 2003-09-23  Havoc Pennington  <hp@pobox.com>
7970
7971         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7972
7973 2003-09-23  Havoc Pennington  <hp@redhat.com>
7974
7975         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7976         (dbus_gproxy_disconnect_signal): implement
7977         (dbus_gproxy_manager_remove_signal_match): implement
7978         (dbus_gproxy_manager_add_signal_match): implement
7979         (dbus_gproxy_oneway_call): implement
7980
7981 2003-09-23  Havoc Pennington  <hp@pobox.com>
7982
7983         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7984         subclass. This means dropping the transparent thread safety of the
7985         proxy; you now need a separate proxy per-thread, or your own
7986         locking on the proxy. Probably right anyway.
7987         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7988
7989 2003-09-22  Havoc Pennington  <hp@redhat.com>
7990
7991         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7992
7993 2003-09-21  Seth Nickell  <seth@gnome.org>
7994
7995         First checkin of the Python bindings.
7996         
7997         * python/.cvsignore:
7998         * python/Makefile.am:
7999         * python/dbus_bindings.pyx.in:
8000         * python/dbus_h_wrapper.h:
8001
8002         Pieces for Pyrex to operate on, building a dbus_bindings.so
8003         python module for low-level access to the DBus APIs.
8004         
8005         * python/dbus.py:
8006
8007         High-level Python module for accessing DBus objects.
8008
8009         * configure.in:
8010         * Makefile.am:
8011
8012         Build stuff for the python bindings.
8013
8014         * acinclude.m4:
8015
8016         Extra macro needed for finding the Python C header files.
8017
8018 2003-09-21  Havoc Pennington  <hp@pobox.com>
8019
8020         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8021         implementing the proxy manager, didn't get very far.
8022
8023         * dbus/dbus-bus.c (dbus_bus_add_match): new
8024         (dbus_bus_remove_match): new
8025
8026         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8027         path_name argument; adjust the other not-yet-implemented 
8028         gproxy constructors to be what I think they should be.
8029
8030 2003-09-21  Havoc Pennington  <hp@pobox.com>
8031
8032         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8033         by default for message bus connections.
8034
8035         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8036         exit_on_disconnect flag is set and we process the disconnected
8037         signal.
8038         (dbus_connection_set_exit_on_disconnect): new function
8039
8040 2003-09-21  Havoc Pennington  <hp@pobox.com>
8041
8042         Get matching rules mostly working in the bus; only actually
8043         parsing the rule text remains. However, the client side of
8044         "signal connections" hasn't been started, this patch is only the
8045         bus side.
8046         
8047         * dbus/dispatch.c: fix for the matching rules changes
8048         
8049         * bus/driver.c (bus_driver_handle_remove_match)
8050         (bus_driver_handle_add_match): send an ack reply from these
8051         method calls
8052
8053         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8054         arguments, reported by Seth Nickell
8055
8056         * bus/config-parser.c (append_rule_from_element): support
8057         eavesdrop=true|false attribute on policies so match rules 
8058         can be prevented from snooping on the system bus.
8059
8060         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8061         and "destination" in attribute names; fix some docs bugs; 
8062         add eavesdrop=true|false attribute
8063
8064         * bus/driver.c (bus_driver_handle_add_match)
8065         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8066         messages
8067
8068         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8069         rid of broadcast service concept, signals are just always broadcast
8070
8071         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8072         mostly implement matching rules stuff (currently only exposed as signal
8073         connections)
8074
8075 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8076
8077         * doc/dbus-specification.sgml: Change the header field name
8078         to be an enum and update the rest of the spec to reference
8079         the fields using the conventinal name.
8080
8081         * dbus/dbus-protocol.h: update to reflect the spec.
8082
8083         * doc/TODO: add item to remove the 4 byte alignment requirement.
8084         
8085         * dbus/dbus-message.c: Remove the code to generalise the
8086         header/body length and serial number header fields as named
8087         header fields so we can reference field names using the 
8088         protocol values.
8089         (append_int_field), (append_uint_field), (append_string_field):
8090         Append the field name as a byte rather than four chars.
8091         (delete_int_or_uint_field), (delete_string_field): reflect the
8092         fact that the field name and typecode now occupy 4 bytes instead
8093         of 8.
8094         (decode_string_field), (decode_header_data): update to reflect
8095         protocol changes and move the field specific encoding from
8096         decode_string_field() back into decode_header_data().
8097         
8098         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8099         Add utility to aid debugging.
8100         
8101         * dbus/dbus-message-builder.c:
8102         (append_string_field), (_dbus_message_data_load): Update to
8103         reflect protocol changes; Change the FIELD_NAME directive
8104         to HEADER_FIELD and allow it to take the field's conventional
8105         name rather than the actual value.
8106         
8107         * test/data/*/*.message: Update to use HEADER_FIELD instead
8108         of FIELD_NAME; Always align the header on an 8 byte boundary
8109         *before* updating the header length.
8110
8111 2003-09-15  Havoc Pennington  <hp@pobox.com>
8112
8113         * dbus/dbus-pending-call.c: add the get/set object data
8114         boilerplate as for DBusConnection, etc. Use generic object data
8115         for the notify callback.
8116
8117         * glib/dbus-gparser.c (parse_node): parse child nodes
8118
8119         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8120         
8121         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8122         contain functions shared between the convenience lib and the
8123         installed lib
8124
8125         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8126         -export-symbols-regex to the GLib library
8127
8128         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8129         fix the locking in here, and add a default handler for
8130         Introspect() that just returns sub-nodes.
8131
8132 2003-09-14  Havoc Pennington  <hp@pobox.com>
8133
8134         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8135         rather than gfoo consistent
8136
8137         * glib/dbus-gproxy.h: delete for now, move contents to
8138         dbus-glib.h, because the include files don't work right since we
8139         aren't in the dbus/ subdir.
8140         
8141         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8142         (dbus_gproxy_end_call): finish
8143         (dbus_gproxy_begin_call): finish
8144
8145         * glib/dbus-gmain.c (dbus_set_g_error): new
8146
8147         * glib/dbus-gobject.c (handle_introspect): include information
8148         about child nodes in the introspection
8149
8150         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8151         function to help in implementation of introspection
8152
8153         * dbus/dbus-object-tree.c
8154         (_dbus_object_tree_list_registered_and_unlock): new function
8155
8156 2003-09-12  Havoc Pennington  <hp@pobox.com>
8157
8158         * glib/dbus-gidl.h: add common base class for all the foo_info
8159         types
8160
8161         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8162         similar to kdcop
8163
8164         * test/Makefile.am: try test srcdir -ef . in addition to test
8165         srcdir = ., one of them should work (yeah lame)
8166         
8167         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8168         library
8169         
8170         * glib/dbus-gparser.h: make description_load routines return
8171         NodeInfo* not Parser*
8172
8173         * Makefile.am (SUBDIRS): build test dir after all library dirs
8174
8175         * configure.in: add GTK+ detection
8176
8177 2003-09-07  Havoc Pennington  <hp@pobox.com>
8178
8179         * Make Doxygen contented.
8180
8181 2003-09-07  Havoc Pennington  <hp@pobox.com>
8182
8183         * doc/dbus-specification.sgml: more updates
8184
8185 2003-09-06  Havoc Pennington  <hp@pobox.com>
8186
8187         * doc/dbus-specification.sgml: partial updates
8188
8189         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8190         zillionth time; hopefully I edited the right file this time.
8191
8192         * bus/config-parser.c (append_rule_from_element): support
8193         send_type, send_path, receive_type, receive_path
8194
8195         * bus/policy.c: add message type and path to the list of things
8196         that can be "firewalled"
8197
8198 2003-09-06  Havoc Pennington  <hp@pobox.com>
8199
8200         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8201         (dbus_connection_register_object_path): make this not handle
8202         messages to paths below the given path
8203
8204 2003-09-03  Havoc Pennington  <hp@pobox.com>
8205
8206         * test/glib/Makefile.am: add this with random glib-linked test
8207         programs
8208
8209         * glib/Makefile.am: remove the random test programs from here,
8210         leave only the unit tests
8211
8212         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8213         uscore/javacaps conversion, and fix     
8214         (get_object_property, set_object_property): change to .NET
8215         convention for mapping props to methods, set_FooBar/get_FooBar, 
8216         since one language has such a convention we may as well copy it. 
8217         Plus real methods in either getFooBar or get_foo_bar style won't 
8218         collide with this convention.
8219
8220 2003-09-01  Havoc Pennington  <hp@pobox.com>
8221
8222         * glib/dbus-gparser.c: implement
8223
8224         * glib/dbus-gobject.c: start implementing skeletons support
8225
8226         * configure.in: when disabling checks/assert, also define
8227         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8228
8229 2003-09-01  Havoc Pennington  <hp@pobox.com>
8230
8231         * glib/Makefile.am: rearrange a bunch of files and get "make
8232         check" framework set up
8233
8234 2003-08-31  Havoc Pennington  <hp@pobox.com>
8235
8236         * fix build with --disable-tests
8237
8238 2003-08-30  Havoc Pennington  <hp@pobox.com>
8239
8240         * dbus/dbus-connection.c: purge DBusMessageHandler
8241
8242         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8243         use callbacks everywhere
8244
8245 2003-08-30  Havoc Pennington  <hp@pobox.com>
8246
8247         * test/data/valid-config-files/system.d/test.conf: change to 
8248         root for the user so warnings don't get printed
8249
8250         * dbus/dbus-message.c: add dbus_message_get_path,
8251         dbus_message_set_path
8252         
8253         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8254         dispatching to a path
8255
8256         * dbus/dbus-string.c (_dbus_string_validate_path): add
8257
8258         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8259         (_dbus_marshal_object_path): implement
8260
8261         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8262         to contain the path to the target object
8263         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8264         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8265
8266 2003-08-30  Havoc Pennington  <hp@pobox.com>
8267
8268         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8269
8270 2003-08-29  Havoc Pennington  <hp@pobox.com>
8271
8272         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8273         registered
8274         (struct DBusObjectSubtree): shrink this
8275         a lot, since we may have a lot of them
8276         (_dbus_object_tree_free_all_unlocked): implement
8277         (_dbus_object_tree_dispatch_and_unlock): implement
8278
8279 2003-08-29  Havoc Pennington  <hp@pobox.com>
8280
8281         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8282
8283 2003-08-28  Havoc Pennington  <hp@pobox.com>
8284
8285         purge DBusObjectID
8286         
8287         * dbus/dbus-connection.c: port to no ObjectID, create a
8288         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8289
8290         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8291         everything except UnregisterFunction and MessageFunction
8292         
8293         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8294         add DBUS_TYPE_OBJECT_PATH
8295         
8296         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8297         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8298         path-based object IDs
8299
8300 2003-08-25  Havoc Pennington  <hp@pobox.com>
8301
8302         Just noticed that dbus_message_test is hosed, I wonder when I
8303         broke that. I thought make check was passing earlier...
8304         
8305         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8306         container tree, will replace most of dbus-object-registry
8307
8308         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8309         screwup
8310
8311 2003-08-19  Havoc Pennington  <hp@pobox.com>
8312
8313         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8314         (dbus_message_is_error): fix this function
8315
8316         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8317         match
8318
8319         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8320         reflect clarified man page
8321         (bus_client_policy_check_can_send): ditto
8322         
8323         * bus/session.conf.in: fixup
8324
8325         * bus/system.conf.in: fixup
8326
8327 2003-08-18  Havoc Pennington  <hp@redhat.com>
8328
8329         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8330
8331         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8332         dumb bug created earlier (wrong order of args to
8333         decode_header_data())
8334         
8335         * tools/dbus-send.c: port
8336
8337         * tools/dbus-print-message.c (print_message): port
8338
8339         * test/data/*messages: port all messages over
8340         
8341         * dbus/dbus-message-builder.c: support including 
8342         message type
8343         
8344         * bus/driver.c: port over
8345         
8346         * bus/dispatch.c: port over to new stuff
8347
8348         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8349         rename disconnect signal to "Disconnected"
8350
8351 2003-08-17  Havoc Pennington  <hp@pobox.com>
8352
8353         This doesn't compile yet, but syncing up so I can hack on it from
8354         work. What are branches for if not broken code? ;-)
8355         
8356         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8357         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8358         DBUS_HEADER_FIELD_ERROR_NAME
8359         
8360         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8361         for the interface+member pairs
8362         (string_hash): change to use g_str_hash algorithm
8363         (find_direct_function, find_string_function): refactor these to
8364         share most code.
8365         
8366         * dbus/dbus-message.c: port all of this over to support 
8367         interface/member fields instead of name field
8368
8369         * dbus/dbus-object-registry.c: port over
8370         
8371         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8372         from _dbus_string_validate_name
8373
8374         * bus/dbus-daemon-1.1: change file format for the 
8375         <deny>/<allow> stuff to match new message naming scheme
8376
8377         * bus/policy.c: port over
8378
8379         * bus/config-parser.c: parse new format
8380         
8381 2003-08-16  Havoc Pennington  <hp@pobox.com>
8382
8383         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8384         broken assertion
8385
8386         * glib/dbus-gproxy.c: some hacking
8387
8388 2003-08-15  Havoc Pennington  <hp@redhat.com>
8389
8390         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8391
8392         * dbus/dbus-connection.c
8393         (dbus_connection_send_with_reply_and_block): factor out internals;
8394         change to convert any error replies to DBusError instead of 
8395         returning them as a message
8396
8397 2003-08-15  Havoc Pennington  <hp@pobox.com>
8398
8399         * dbus/dbus-connection.c, 
8400         dbus/dbus-pending-call.c: Finish the pending call stuff
8401
8402 2003-08-14  Havoc Pennington  <hp@redhat.com>
8403
8404         * dbus/dbus-pending-call.c: start on new object that will replace
8405         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8406         replies
8407
8408         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8409         with remote interfaces
8410
8411         * dbus/dbus-gidl.c: do the boring boilerplate in here
8412         
8413 2003-08-12  Havoc Pennington  <hp@pobox.com>
8414
8415         * bus/dispatch.c (bus_dispatch): make this return proper 
8416         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8417
8418         * dbus/dbus-errors.c (dbus_set_error): use
8419         _dbus_string_append_printf_valist
8420
8421         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8422         (_dbus_string_append_printf): new
8423
8424         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8425         UNKNOWN_METHOD
8426
8427         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8428         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8429         message is unhandled.
8430
8431 2003-08-11  Havoc Pennington  <hp@pobox.com>
8432
8433         * bus/test.c (client_disconnect_handler): change to return
8434         HANDLED (would have been REMOVE_MESSAGE)
8435
8436         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8437         HANDLED/NOT_YET_HANDLED instead of
8438         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8439         should be used.
8440
8441 2003-08-10  Havoc Pennington  <hp@pobox.com>
8442
8443         * tools/dbus-send.c (main): add --type argument, for now
8444         supporting only method_call and signal types.
8445
8446         * tools/dbus-print-message.c: print message type
8447
8448         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8449         init connection->objects
8450
8451         * doc/dbus-specification.sgml: fix sgml
8452
8453         * bus/*.c: port over to object-instance API changes
8454
8455         * test/test-service.c: ditto
8456         
8457         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8458         name, we will have to fix up the rest of the code to also handle
8459         this
8460         (dbus_message_new): generic message-creation call
8461         (set_string_field): allow appending name field
8462
8463 2003-08-06  Havoc Pennington  <hp@pobox.com>
8464
8465         * dbus/dbus-object-registry.c: implement signal connection 
8466         and dispatch
8467
8468         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8469
8470         * dbus/dbus-internals.c (_dbus_memdup): new function
8471
8472 2003-08-02  Havoc Pennington  <hp@pobox.com>
8473
8474         * dbus/dbus-message.c (dbus_message_get_no_reply)
8475         (dbus_message_set_no_reply): add these and remove
8476         set_is_error/get_is_error
8477
8478         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8479         remove the ERROR flag, since there's now an ERROR type
8480
8481 2003-08-01  Havoc Pennington  <hp@pobox.com>
8482
8483         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8484         implement
8485
8486         * dbus/dbus-message.c (dbus_message_get_type): new function
8487
8488         * doc/dbus-specification.sgml: add "type" byte to messages
8489
8490 2003-08-01  Havoc Pennington  <hp@pobox.com>
8491
8492         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8493         a message type enum to distinguish kinds of message
8494         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8495         that need not be replied to
8496
8497 2003-08-01  Havoc Pennington  <hp@pobox.com>
8498
8499         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8500         (unpack_8_octets): fix no-64-bit-int bug
8501
8502         * dbus/dbus-object-registry.c (validate_id): validate the 
8503         connection ID bits, not just the instance ID.
8504
8505         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8506         the connection-global 33 bits of the object ID
8507
8508         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8509         object ID in the new way
8510
8511         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8512         define server/client/instance bits.
8513
8514 2003-07-30  Havoc Pennington  <hp@pobox.com>
8515
8516         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8517         build
8518
8519 2003-07-13  Havoc Pennington  <hp@pobox.com>
8520
8521         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8522         fields to DBusObjectVTable and DBusObjectInfo
8523
8524 2003-07-12  Havoc Pennington  <hp@pobox.com>
8525
8526         * dbus/dbus-object-registry.c: implement unit test,
8527         fix bugs discovered in process
8528
8529         * dbus/dbus-connection.c: remove handler_table and
8530         register_handler(), add DBusObjectRegistry usage
8531
8532         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8533         (dbus_object_id_set_null): new functions
8534
8535 2003-07-08  Havoc Pennington  <hp@pobox.com>
8536
8537         * dbus/dbus-object.c: implement some of this
8538
8539         * dbus/dbus-object-registry.c
8540         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8541         param
8542         (_dbus_object_registry_new): handle OOM
8543
8544 2003-07-08  Havoc Pennington  <hp@pobox.com>
8545
8546         * dbus/dbus-object.h: sketch out an API for registering objects
8547         with a connection, that allows us to use as little as 24 bytes
8548         per object and lets application code represent an object in 
8549         any conceivable way.
8550
8551         * dbus/dbus-object-registry.c: implement the hard bits of the
8552         DBusConnection aspect of object API. Not yet wired up.
8553         
8554 2003-07-06  Havoc Pennington  <hp@pobox.com>
8555
8556         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8557         (_dbus_marshal_object_id): new
8558         (_dbus_demarshal_object_id): new
8559         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8560         consolidate identical switch cases. Don't conditionalize handling
8561         of DBUS_TYPE_UINT64, need to handle the type always.
8562         (_dbus_marshal_validate_arg): consolidate identical cases, and
8563         handle DBUS_TYPE_OBJECT_ID
8564
8565         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8566
8567         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8568
8569 2003-09-28  Havoc Pennington  <hp@pobox.com>
8570
8571         * real 0.13 release
8572
8573 2003-09-28  Havoc Pennington  <hp@pobox.com>
8574
8575         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8576         to work with Debian db2html
8577
8578 2003-09-28  Havoc Pennington  <hp@pobox.com>
8579
8580         * configure.in: 0.13
8581
8582         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8583         stylesheet-images for benefit of Debian
8584         
8585         Change back to using filesystem-linked sockets for the system
8586         bus, so only root can create the default system bus address.
8587         
8588         * bus/system.conf.in: change to use
8589         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8590
8591         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8592         from here.
8593
8594         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8595         here, and AC_DEFINE DBUS_SYSTEM_PATH
8596
8597 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8598
8599         * doc/TODO:
8600         * doc/busconfig.dtd:
8601         Add busconfig DTD.
8602         
8603 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8604
8605         * doc/dbus-specification.sgml:
8606         Add activation reply values.
8607         
8608 2003-08-05  Havoc Pennington  <hp@redhat.com>
8609
8610         * configure.in: 0.12
8611
8612 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8613
8614         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8615         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8616         (add_watch), (remove_watch), (create_source):
8617         Refcount fds, fixes some reentrancy issues.
8618         
8619 2003-07-30  Havoc Pennington  <hp@redhat.com>
8620
8621         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8622         bus address to be abstract if we have abstract sockets
8623
8624         * NEWS: update
8625
8626 2003-07-28  Havoc Pennington  <hp@redhat.com>
8627
8628         * bus/messagebus.in: fix to avoid processname/servicename 
8629         confusion, from Michael Kearey
8630         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8631         
8632 2003-07-23  Havoc Pennington  <hp@pobox.com>
8633
8634         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8635         fix from Andy Hanton to remove broken "+1"
8636
8637 2003-07-16  Havoc Pennington  <hp@pobox.com>
8638
8639         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8640         babysitter process, as suggested by Thomas Leonard, so 
8641         an "eval `dbus-launch --exit-with-session`" will actually 
8642         return
8643
8644 2003-07-16  Havoc Pennington  <hp@pobox.com>
8645
8646         * configure.in: print out EXPANDED_* variables in the summary at
8647         the end; clean up the code that computes EXPANDED_ variables and
8648         get the ones using exec_prefix right. Should make things work
8649         when you build without --prefix
8650
8651 2003-06-29  Havoc Pennington  <hp@pobox.com>
8652
8653         * mono/Test.cs (class Test): fire up a main loop and run it
8654
8655         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8656         done once, the app has to do it
8657
8658 2003-06-26  Havoc Pennington  <hp@pobox.com>
8659
8660         * mono/Connection.cs: set up connection with the glib main loop
8661
8662 2003-07-01  Havoc Pennington  <hp@redhat.com>
8663
8664         * doc/dbus-specification.sgml: clarify the format of a type code,
8665         change suggested by Jim Blandy
8666
8667 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8668
8669         * doc/Makefile.am:
8670         * tools/Makefile.am: Don't assume srcdir == builddir.
8671
8672         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8673         the allocated block.
8674         (_dbus_memory_test): New function.
8675         * dbus/dbus-test.h: Add _dbus_memory_test ().
8676         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8677
8678         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8679         of %c%c%c%c.
8680         (dbus_message_new): Remove obsolete @todo.
8681
8682         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8683         (_dbus_marshal_set_uint64): Fix comment.
8684
8685         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8686         hardcode FIELD_REPLY_SERIAL.
8687
8688         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8689         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8690
8691         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8692         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8693
8694 2003-06-24  Havoc Pennington  <hp@pobox.com>
8695
8696         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8697
8698 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8699
8700         * configure.in:
8701         * gcj/.cvsignore:
8702         * gcj/Hello.java:
8703         * gcj/Makefile.am:
8704         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8705         * gcj/org/.cvsignore:
8706         * gcj/org/Makefile.am:
8707         * gcj/org/freedesktop/.cvsignore:
8708         * gcj/org/freedesktop/Makefile.am:
8709         * gcj/org/freedesktop/dbus/.cvsignore:
8710         * gcj/org/freedesktop/dbus/Makefile.am:
8711         * gcj/org/freedesktop/dbus/Message.java: (Message),
8712         (Message.Message):
8713         * gcj/org/freedesktop/dbus/natMessage.cc:
8714         Fix the build system.
8715
8716 2003-06-22  Havoc Pennington  <hp@pobox.com>
8717
8718         * mono/Connection.cs: add more bindings
8719
8720         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8721         more than once.
8722
8723 2003-06-22  Havoc Pennington  <hp@pobox.com>
8724
8725         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8726         Start wrapping more stuff.
8727
8728 2003-06-22  Havoc Pennington  <hp@pobox.com>
8729
8730         * mono/Message.cs: implement Message.Wrap() that ensures we only
8731         have a single C# wrapper per DBusMessage, assuming it works which
8732         it probably doesn't.
8733
8734         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8735         (dbus_message_free_data_slot): new
8736         (dbus_message_set_data): new
8737         (dbus_message_get_data): new
8738
8739 2003-06-22  Havoc Pennington  <hp@pobox.com>
8740
8741         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8742         (_dbus_data_slot_allocator_alloc): rework these to keep a
8743         reference count on each slot and automatically manage a global
8744         slot ID variable passed in by address
8745
8746         * bus/bus.c: convert to new dataslot API
8747
8748         * dbus/dbus-bus.c: convert to new dataslot API
8749
8750         * dbus/dbus-connection.c: convert to new dataslot API
8751
8752         * dbus/dbus-server.c: convert to new dataslot API
8753
8754         * glib/dbus-gmain.c: ditto
8755
8756         * bus/test.c: ditto
8757
8758         * bus/connection.c: ditto
8759
8760 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8761
8762         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8763         after the gcj checks so that the correct configuration tags
8764         will be added to libtool.
8765
8766         * dbus-glib-1.pc.in: No need to specify any includes since
8767         dbus-1.pc.in has those.
8768
8769 2003-06-22  Havoc Pennington  <hp@pobox.com>
8770
8771         * mono/*, gcj/*, configure.in, Makefile.am:
8772         Check in makefiles and subdirs for mono and gcj bindings.
8773         Neither binding actually exists, just trying to get through
8774         all the build and other boring bits.
8775
8776 2003-06-21  Philip Blundell  <philb@gnu.org>
8777
8778         * tools/dbus-monitor.1: Updated.
8779
8780         * tools/dbus-send.1: Likewise.
8781
8782 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8783
8784         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8785         for hangup and error after checking read so we won't discard
8786         pending data if both hangup and read are set.
8787
8788 2003-06-19  Philip Blundell  <philb@gnu.org>
8789
8790         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8791
8792         * tools/dbus-send.c: Accept both --system and --session.
8793
8794         * tools/dbus-monitor.c: Same here.
8795
8796 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8797
8798         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8799         from C++ (Patch by Miloslav Trmac).
8800
8801 2003-06-15  Joe Shaw  <joe@assbarn.com>
8802
8803         * configure.in: Check for socklen_t.
8804
8805         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8806
8807         * test/test-segfault.c: Add #include <sys/time.h>
8808
8809         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8810         dbus-launch needs it.
8811
8812 2003-06-09  Havoc Pennington  <hp@redhat.com>
8813
8814         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8815         SUN_LEN, it breaks abstract socket usage
8816
8817         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8818         starts of lines.
8819
8820 2003-06-04  Havoc Pennington  <hp@pobox.com>
8821
8822         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8823         using unix:abstract=/foo, and when listening in a tmpdir
8824         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8825
8826         * dbus/dbus-transport.c (_dbus_transport_open): support
8827         unix:abstract=/foo
8828
8829         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8830         support abstract sockets
8831
8832         * dbus/dbus-transport-unix.c
8833         (_dbus_transport_new_for_domain_socket): support abstract sockets
8834
8835         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8836         toggle as an argument, implement abstract namespace support
8837         (_dbus_listen_unix_socket): ditto
8838
8839         * configure.in: add --enable-abstract-sockets and implement
8840         a configure check for autodetection of the right value.
8841
8842 2003-06-01  Havoc Pennington  <hp@pobox.com>
8843
8844         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8845         in /tmp (though on Linux this will end up being useless,
8846         when we add abstract namespace support)
8847
8848         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8849         subst'ing it
8850
8851 2003-05-28  Colin Walters  <walters@verbum.org>
8852
8853         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8854
8855 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8856
8857         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8858
8859 2003-05-17  Colin Walters  <walters@gnu.org>
8860
8861         * tools/dbus-send.c: Don't exit with an error code if --help was
8862         passed.  Default to using the session bus instead of the system
8863         one.
8864
8865         * tools/dbus-launch.c: Ditto.
8866
8867         * tools/dbus-monitor.c: Ditto.
8868
8869         * tools/dbus-send.1: Update with new arguments.
8870
8871         * tools/dbus-launch.c: Emit code to export variables.  New
8872         arguments -s and -c to specify shell syntax, and a bit of code to
8873         autodetect syntax.  Also, allow specifying a program to run.
8874
8875         * tools/dbus-launch.1: Update with new arguments.
8876
8877         * tools/dbus-send.1: Ditto.
8878
8879         * tools/dbus-monitor.1: Ditto.
8880
8881 2003-05-17  Havoc Pennington  <hp@pobox.com>
8882
8883         * bus/config-parser.c (merge_included): merge in policies from
8884         child configuration file.
8885
8886         * bus/policy.c (bus_policy_merge): function to merge two policies
8887         together
8888
8889 2003-05-16  Havoc Pennington  <hp@redhat.com>
8890
8891         * dbus/dbus-connection.c: disable verbose lock spew
8892
8893         * tools/dbus-send.c: add --print-reply command line option
8894
8895         * tools/dbus-print-message.h (print_message): new util function
8896         shared by dbus-send and dbus-monitor
8897
8898         * tools/dbus-monitor.c (handler_func): exit on disconnect
8899
8900         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8901         disconnected, don't try to use the read_watch
8902
8903         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8904         so we can find this bug more easily
8905
8906 2003-05-16  Havoc Pennington  <hp@redhat.com>
8907
8908         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8909         NULL as DBusHashTable is annoyingly likely to do.
8910
8911 2003-05-16  Colin Walters  <walters@verbum.org>
8912
8913         * tools/dbus-monitor.c: Add --session argument and usage()
8914         function.
8915
8916         * tools/dbus-monitor.1: Update with new --session arg.
8917
8918         * bus/Makefile.am (install-data-hook): Create
8919         $(libdir)/dbus-1.0/services so that the session bus is happy.
8920
8921 2003-05-15  Havoc Pennington  <hp@redhat.com>
8922
8923         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8924         on non-x86. ifdef's are evil.
8925
8926 2003-05-15  Havoc Pennington  <hp@redhat.com>
8927
8928         * configure.in: 0.11
8929
8930         * NEWS: update
8931
8932         * bus/Makefile.am (initddir): apparently we are supposed to put
8933         init scripts in /etc/rc.d/init.d not /etc/init.d
8934
8935         * bus/Makefile.am: remove the "you must --enable-tests to make
8936         check" as it broke distcheck
8937
8938         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8939
8940 2003-05-13  James Willcox  <jwillcox@gnome.org>
8941
8942         * configure.in:
8943         * bus/activation.c: (bus_activation_service_created),
8944         (bus_activation_activate_service):
8945         * bus/driver.c: (bus_driver_send_service_deleted),
8946         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8947         (bus_driver_send_service_acquired),
8948         (bus_driver_send_welcome_message),
8949         (bus_driver_handle_list_services):
8950         * bus/session.conf.in:
8951         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8952         (dbus_bus_service_exists), (dbus_bus_activate_service):
8953         * dbus/dbus-bus.h:
8954
8955         Add some convenience API which lets you activate a service, and did a
8956         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8957         and dbus_message_get_args()
8958
8959 2003-05-11  Havoc Pennington  <hp@pobox.com>
8960
8961         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8962         calling _dbus_marshal_validate_arg() for every byte in a byte
8963         array, etc.
8964
8965         * dbus/dbus-message-handler.c: use atomic reference counting to
8966         reduce number of locks slightly; the global lock in here sucks
8967
8968         * dbus/dbus-connection.c
8969         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8970         update_dispatch_status that can be called with lock held; then use
8971         in a couple places to reduce locking/unlocking
8972         (dbus_connection_send): hold the lock over the whole function
8973         instead of acquiring it twice.
8974
8975         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8976
8977         * bus/connection.c (bus_connections_setup_connection): fix access
8978         to already-freed memory.
8979
8980         * dbus/dbus-connection.c: keep a little cache of linked list
8981         nodes, to avoid using the global linked list alloc lock in the
8982         normal send-message case. Instead we just use the connection lock
8983         that we already have to take.
8984
8985         * dbus/dbus-list.c (_dbus_list_find_last): new function
8986
8987         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8988         change to use a struct for the atomic type; fix docs,
8989         they return value before increment, not after increment.
8990
8991         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8992         (_dbus_string_append_8_aligned): new functions to try to
8993         microoptimize this operation.
8994         (reallocate_for_length): break this out of set_length(), to
8995         improve profile info, and also so we can consider inlining the
8996         set_length() part.
8997
8998         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8999         strings with some preallocation, cuts down on our calls to realloc
9000         a fair bit. Though if we can get the "move entire string to empty
9001         string" optimization below to kick in here, it would be better.
9002
9003         * dbus/dbus-string.c (_dbus_string_move): just call
9004         _dbus_string_move_len
9005         (_dbus_string_move_len): add a special case for moving
9006         an entire string into an empty string; we can just
9007         swap the string data instead of doing any reallocs.
9008         (_dbus_string_init_preallocated): new function
9009
9010 2003-05-11  Havoc Pennington  <hp@pobox.com>
9011
9012         Write a "test-profile" that does echo client-server with threads;
9013         profile reveals lock contention, memcpy/realloc of buffers, and
9014         UTF-8 validation as hot spots. 20% of lock contention eliminated
9015         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9016         contention is global mempool locks for GList and DBusList.
9017
9018         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9019         x86 implementation
9020
9021         * dbus/dbus-connection.c (struct DBusConnection): use
9022         dbus_atomic_t for the reference count
9023
9024         * dbus/dbus-message.c (struct DBusMessage): declare
9025         dbus_atomic_t values as volatile
9026
9027         * configure.in: code to detect ability to use atomic integer
9028         operations in assembly, from GLib patch
9029
9030         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9031         time, tired of it being wrong in threads and forked processes
9032
9033         * glib/test-profile.c: a little program to bounce messages back
9034         and forth between threads and eat CPU
9035
9036         * dbus/dbus-connection.c: add debug spew macros for debugging
9037         thread locks; include config.h at top; fix deadlock in
9038         dbus_connection_flush()
9039
9040 2003-05-08  Havoc Pennington  <hp@pobox.com>
9041
9042         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9043         data from getting written, and there wasn't a good reason to
9044         use _exit really.
9045
9046         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9047         dbus_verbose lines in test coverage
9048         (main): add list of functions sorted by # of untested blocks
9049         to the coverage report
9050
9051         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9052
9053         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9054
9055         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9056         extend test coverage
9057
9058         * test/data/auth/cancel.auth-script: test canceling an
9059         authentication
9060
9061         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9062         aren't used. in CVS history if we end up needing them.
9063
9064 2003-05-04  Havoc Pennington  <hp@pobox.com>
9065
9066         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9067         unit test
9068
9069         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9070         function, which assumed length was in # of strings, not bytes
9071
9072         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9073         missing coverage
9074
9075         * dbus/dbus-connection.c
9076         (_dbus_connection_queue_received_message): disable function for
9077         now, we are only using it in test mode
9078
9079         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9080         remove a mistaken FIXME
9081
9082 2003-05-04  Havoc Pennington  <hp@pobox.com>
9083
9084         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9085         unlock mutex on successful return, patch from Anders Gustafsson
9086
9087 2003-05-04  Havoc Pennington  <hp@pobox.com>
9088
9089         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9090         Anders Gustafsson
9091
9092 2003-05-04  Havoc Pennington  <hp@pobox.com>
9093
9094         * tools/dbus-launch.c: implement
9095
9096         * bus/main.c (main), bus/bus.c (bus_context_new):
9097         implement --print-pid and --fork
9098
9099 2003-05-03  Havoc Pennington  <hp@redhat.com>
9100
9101         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9102         the address had no value, and add to test suite. Fix and
9103         regression test from Miloslav Trmac
9104
9105 2003-05-03  Havoc Pennington  <hp@pobox.com>
9106
9107         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9108         watch is invalid when handled
9109
9110         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9111         dbus-launch utility to launch the bus from a shell script.  Didn't
9112         actually implement dbus-launch yet, it's just a placeholder still.
9113
9114 2003-05-03  Havoc Pennington  <hp@pobox.com>
9115
9116         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9117         daemon; also documents daemon config file, so replaces
9118         doc/config-file.txt. Corrected some stuff from config-file.txt in
9119         the process of moving it.
9120
9121 2003-05-03  Havoc Pennington  <hp@pobox.com>
9122
9123         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9124         add some man pages
9125
9126 2003-05-03  Colin Walters  <walters@verbum.org>
9127
9128         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9129         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9130
9131         * Makefile.am: Update to use new .pc versioning scheme.
9132
9133 2003-05-02  Havoc Pennington  <hp@redhat.com>
9134
9135         * bus/system.conf.in: allow send/receive to/from message bus
9136         service
9137
9138 2003-04-30  Havoc Pennington  <hp@redhat.com>
9139
9140         * configure.in: print a note when building with unit tests and
9141         without assertions
9142
9143 2003-04-30  Havoc Pennington  <hp@redhat.com>
9144
9145         * Makefile.am: add a check-local that complains if you didn't
9146         configure with --enable-tests
9147
9148 2003-04-29  Havoc Pennington  <hp@redhat.com>
9149
9150         * glib/dbus-gmain.c: docs cleanups
9151
9152         * dbus/dbus-types.h: add docs on int64 types
9153
9154         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9155         public API docs section
9156
9157 2003-04-29  Havoc Pennington  <hp@redhat.com>
9158
9159         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9160         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9161         parallel install API version, not with the D-BUS package version.
9162
9163         * HACKING: move some of README over here
9164
9165         * README: updates, and document API/ABI policy
9166
9167         * configure.in: reindentation
9168
9169 2003-04-29  Havoc Pennington  <hp@redhat.com>
9170
9171         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9172         to use this library" to be sure people have the right
9173         expectations.
9174
9175 2003-04-28  Havoc Pennington  <hp@redhat.com>
9176
9177         * configure.in: add --enable-docs which by default is auto yes if
9178         doxygen and db2html found, no otherwise; but can be forced on/off
9179
9180         * doc/Makefile.am: conditionalize whether to build docs on
9181         --enable-docs
9182
9183 2003-04-28  Havoc Pennington  <hp@redhat.com>
9184
9185         * configure.in: 0.10
9186
9187         * NEWS: update
9188
9189         * bus/system.conf.in: add <includedir>system.d</includedir>
9190
9191         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9192         username was provided but not uid
9193
9194         * bus/config-parser.c (struct BusConfigParser): keep track of
9195         whether the parser is toplevel or was included; change some
9196         of the error handling if it's included.
9197
9198 2003-04-27  Havoc Pennington  <hp@pobox.com>
9199
9200         Unbreak my code...
9201
9202         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9203         report correct status if we finish processing authentication
9204         inside this function.
9205
9206         * bus/activation.c (try_send_activation_failure): use
9207         bus_transaction_send_error_reply
9208
9209         * bus/connection.c (bus_connection_get_groups): return an error
9210         explaining the problem
9211
9212         * bus/bus.c (bus_context_check_security_policy): implement
9213         restriction here that inactive connections can only send the
9214         hello message. Also, allow bus driver to send anything to
9215         any recipient.
9216
9217         * bus/connection.c (bus_connection_complete): create the
9218         BusClientPolicy here instead of on-demand.
9219         (bus_connection_get_policy): don't return an error
9220
9221         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9222         sender field in message being replied to
9223
9224         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9225         causing it to return FALSE always
9226
9227         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9228         we checked sender rather than destination
9229
9230 2003-04-25  Havoc Pennington  <hp@redhat.com>
9231
9232         test suite is slightly hosed at the moment, will fix soon
9233
9234         * bus/connection.c (bus_connections_expire_incomplete): fix to
9235         properly disable the timeout when required
9236         (bus_connection_set_name): check whether we can remove incomplete
9237         connections timeout after we complete each connection.
9238
9239         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9240         probably still broken.
9241
9242         * bus/services.c (bus_registry_acquire_service): implement max
9243         number of services owned, and honor allow/deny rules on which
9244         services a connection can own.
9245
9246         * bus/connection.c (bus_connection_get_policy): report errors here
9247
9248         * bus/activation.c: implement limit on number of pending
9249         activations
9250
9251 2003-04-25  Havoc Pennington  <hp@redhat.com>
9252
9253         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9254         where we used >= 0 instead of != DBUS_UID_UNSET.
9255
9256 2003-04-25  Havoc Pennington  <hp@redhat.com>
9257
9258         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9259         were toggled without add/remove, fix from Anders Gustafsson
9260
9261 2003-04-24  Havoc Pennington  <hp@redhat.com>
9262
9263         * test/data/valid-config-files/basic.conf: add <limit> tags to
9264         this test
9265
9266         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9267         <limit> tag in configuration file.
9268
9269 2003-04-24  Havoc Pennington  <hp@redhat.com>
9270
9271         * bus/dispatch.c: somehow missed some name_is
9272
9273         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9274         (_dbus_timeout_set_interval): new
9275
9276         * bus/connection.c (bus_connections_setup_connection): record time
9277         when each connection is first set up, and expire them after the
9278         auth timeout passes.
9279
9280 2003-04-24  Havoc Pennington  <hp@redhat.com>
9281
9282         * dbus/dbus-message.c (dbus_message_name_is): rename
9283         (dbus_message_service_is): rename
9284         (dbus_message_sender_is): rename
9285         (dbus_message_get_service): rename
9286
9287 2003-04-24  Havoc Pennington  <hp@redhat.com>
9288
9289         * configure.in: add --enable-checks
9290
9291         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9292
9293         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9294         to use thread locks.
9295         (_dbus_connection_handler_destroyed_locked): move some private
9296         functions into proper docs group
9297
9298         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9299         _dbus_return_val_if_fail
9300
9301         Throughout: use dbus_return_if_fail
9302
9303 2003-04-23  James Willcox  <jwillcox@gnome.org>
9304
9305         * glib/dbus-glib.h:
9306         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9307         (dbus_connection_setup_with_g_main),
9308         (dbus_server_setup_with_g_main):
9309         * glib/test-dbus-glib.c: (main):
9310         * glib/test-thread-client.c: (main):
9311         * glib/test-thread-server.c: (new_connection_callback), (main):
9312         * tools/dbus-monitor.c: (main):
9313
9314         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9315         and dbus_server_setup_with_g_main().
9316
9317 2003-04-20  Havoc Pennington  <hp@pobox.com>
9318
9319         * doc/dbus-specification.sgml: document the restrictions on
9320         message and service names
9321
9322 2003-04-22  Havoc Pennington  <hp@redhat.com>
9323
9324         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9325         support, and do some code cleanups to share more code and
9326         speed up array marshal/demarshal.
9327
9328         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9329
9330         * configure.in: generate dbus-arch-deps.h
9331
9332         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9333         64-bit typecodes
9334
9335 2003-04-22  Havoc Pennington  <hp@redhat.com>
9336
9337         * test/data/valid-messages/opposite-endian.message: fix test
9338         to use proper type for rply field
9339
9340         * test/data/invalid-messages: add tests for below validation
9341
9342         * dbus/dbus-message.c (decode_header_data): validate field types,
9343         and validate that named fields are valid names
9344         (decode_name_field): consider messages in the
9345         org.freedesktop.Local. namespace to be invalid.
9346
9347         * dbus/dbus-string.c (_dbus_string_validate_name): new
9348
9349 2003-04-19  Havoc Pennington  <hp@pobox.com>
9350
9351         * bus/driver.c (bus_driver_handle_hello): check limits and
9352         return an error if they are exceeded.
9353
9354         * bus/connection.c: maintain separate lists of active and inactive
9355         connections, and a count of each. Maintain count of completed
9356         connections per user. Implement code to check connection limits.
9357
9358         * dbus/dbus-list.c (_dbus_list_unlink): export
9359
9360         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9361         number of bytes in the message queue for a connection
9362
9363 2003-04-18  Havoc Pennington  <hp@pobox.com>
9364
9365         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9366
9367         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9368         memleaks
9369
9370         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9371         on realloc be sure to update the pointer in the keyring
9372
9373         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9374         offset to avoid writing to unallocated memory
9375
9376         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9377         try the next mechanism, so we properly handle OOM
9378
9379         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9380         on OOM.
9381         (_dbus_keyring_new): fix OOM bug
9382         (_dbus_keyring_new_homedir): always set error; impose a maximum
9383         number of keys we'll load from the file, mostly to speed up the
9384         test suite and make its OOM checks more useful, but also for
9385         general sanity.
9386
9387         * dbus/dbus-auth.c (process_error_server): reject authentication
9388         if we get an error from the client
9389         (process_cancel): on cancel, send REJECTED, per the spec
9390         (process_error_client): send CANCEL if we get an error from the
9391         server.
9392
9393 2003-04-18  Havoc Pennington  <hp@pobox.com>
9394
9395         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9396         debug spew
9397
9398         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9399         handling problem
9400
9401         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9402         about DBUS_TEST_HOMEDIR once
9403
9404         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9405         the environment
9406
9407         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9408         config file so we test the right thing
9409
9410         Throughout: assorted docs improvements
9411
9412 2003-04-18  Havoc Pennington  <hp@pobox.com>
9413
9414         * glib/dbus-gmain.c: adapt to watch changes
9415
9416         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9417
9418         * dbus/dbus-server.h: remove dbus_server_handle_watch
9419
9420         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9421
9422         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9423         like DBusTimeout, so we don't need dbus_connection_handle_watch
9424         etc.
9425
9426 2003-04-17  Havoc Pennington  <hp@redhat.com>
9427
9428         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9429         database usage so it all goes via the DBusUserDatabase cache.
9430
9431 2003-04-17  Havoc Pennington  <hp@redhat.com>
9432
9433         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9434         there was an OOM watch we skipped, we always return TRUE so we
9435         iterate again to have a look at it again. Fixes test suite hang.
9436         Code rearrangement also lets us lose some memset and only iterate
9437         over callbacks once.
9438
9439         * bus/driver.c (bus_driver_handle_message): sense of test for
9440         reply was backward
9441
9442 2003-04-16  Havoc Pennington  <hp@pobox.com>
9443
9444         * doc/dbus-specification.sgml: make spec say serials are unsigned
9445
9446         * dbus/dbus-message.h: change message serials to unsigned
9447
9448         * dbus/dbus-connection.c: adapt to message serials being unsigned
9449
9450 2003-04-15  Havoc Pennington  <hp@pobox.com>
9451
9452         * bus/bus.c: create and keep around a shared DBusUserDatabase
9453         object.
9454
9455         * bus/connection.c (bus_connection_get_groups): don't cache
9456         groups for user in the connection object, since user database
9457         object now does that.
9458
9459 2003-04-16  Havoc Pennington  <hp@redhat.com>
9460
9461         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9462         list of size counters
9463         (_dbus_message_loader_putback_message_link): put back a popped link
9464
9465         * dbus/dbus-connection.c
9466         (dbus_connection_set_max_live_messages_size): rename
9467         max_received_size
9468         (dbus_connection_get_outgoing_size): get size of outgoing
9469         queue
9470         (_dbus_connection_set_connection_counter): remove this cruft
9471
9472 2003-04-14  Havoc Pennington  <hp@redhat.com>
9473
9474         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9475         caching, but at some point we might want to be able to use a
9476         different database.
9477
9478         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9479         SHA1 conf file to test the sha1 auth mechanism, since the regular
9480         test always uses EXTERNAL when available.
9481
9482         * configure.in,
9483         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9484         add conf file that requires use of sha1 auth
9485
9486 2003-04-13  Havoc Pennington  <hp@pobox.com>
9487
9488         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9489         from Philip Blundell to send messages and monitor them.
9490
9491 2003-04-13  Havoc Pennington  <hp@pobox.com>
9492
9493         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9494         callbacks
9495
9496         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9497         users
9498
9499         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9500         fix to only recover unused bytes if we're already authenticated
9501         (_dbus_transport_get_is_authenticated): fix to still mark us
9502         authenticated if there are unused bytes.
9503
9504         * bus/dispatch.c: implement security policy checking
9505
9506         * bus/connection.c (bus_transaction_send_from_driver): new
9507
9508         * bus/bus.c (bus_context_check_security_policy): new
9509
9510         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9511         now we just set the DBusError and it gets converted to an error
9512         reply.
9513
9514         * bus/connection.c (allow_user_function): enable code using actual
9515         data from the config file
9516
9517         * bus/policy.c (list_allows_user): handle wildcard rules for
9518         user/group connection perms
9519
9520 2003-04-13  Havoc Pennington  <hp@pobox.com>
9521
9522         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9523
9524         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9525
9526         * bus/policy.c (bus_policy_append_mandatory_rule)
9527         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9528         (bus_policy_append_group_rule): new functions
9529
9530 2003-04-12  Havoc Pennington  <hp@pobox.com>
9531
9532         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9533
9534         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9535         the pid/gid/uid, just for paranoia.
9536
9537         * test/break-loader.c (randomly_do_n_things): find a byte
9538         containing a type code, and randomly change it to a different
9539         type code.
9540
9541 2003-04-12  Havoc Pennington  <hp@pobox.com>
9542
9543         * bus/policy.h: change BusPolicy to be the thing from the config
9544         file, and rename old BusPolicy to BusClientPolicy
9545
9546         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9547         match change in how policy works
9548
9549         * dbus/dbus-internals.h: mark assert_not_reached as
9550         __attribute((noreturn))__
9551
9552 2003-04-11  Havoc Pennington  <hp@redhat.com>
9553
9554         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9555         the broadcast service. Use boolean return for ServiceExists.
9556
9557 2003-04-11  Havoc Pennington  <hp@redhat.com>
9558
9559         * configure.in: add another directory to look for qt in.
9560
9561 2003-04-11  Havoc Pennington  <hp@redhat.com>
9562
9563         * AUTHORS: add Colin Walters
9564
9565 2003-04-11  Havoc Pennington  <hp@redhat.com>
9566
9567         * NEWS: update
9568
9569         * configure.in: 0.9
9570
9571 2003-04-11  Havoc Pennington  <hp@redhat.com>
9572
9573         * bus/messagebus.in: remove pid file when stopping the
9574         message bus, since the bus won't have privileges to remove it
9575         itself.
9576
9577 2003-04-11  Havoc Pennington  <hp@redhat.com>
9578
9579         * bus/bus.c (bus_context_new): move credentials change after
9580         creating pidfile
9581
9582 2003-04-11  Havoc Pennington  <hp@pobox.com>
9583
9584         * test/decode-gcov.c: add "below average functions" to the
9585         coverage report, and change how some of the code works.
9586
9587         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9588         not in the coverage stats.
9589
9590         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9591         couple places so running the test suite doesn't result in megaspam.
9592
9593 2003-04-11  Havoc Pennington  <hp@pobox.com>
9594
9595         * bus/dispatch.c (check_existent_service_activation): accept a no
9596         memory error in a place we didn't before
9597
9598         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9599         in case the first one failed," since the test suite is less
9600         broken now.
9601
9602 2003-04-10  Havoc Pennington  <hp@pobox.com>
9603
9604         * bus/dispatch.c (check_segfault_service_activation): add test
9605         for launching an executable that just crashes.
9606
9607         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9608         don't leave a million cores. We'll see how portable this is.
9609
9610 2003-04-10  Havoc Pennington  <hp@pobox.com>
9611
9612         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9613         the possible parent failures before we fork, so that we don't
9614         fail to create a babysitter after creating the child.
9615
9616         * bus/activation.c (bus_activation_activate_service): kill child
9617         if we don't successfully complete the activation.
9618
9619 2003-04-10  Havoc Pennington  <hp@redhat.com>
9620
9621         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9622         the connection if it's disconnected
9623
9624         * bus/activation.c (bus_activation_service_created): use new
9625         transaction features to roll back removal of pending activation if
9626         we don't successfully create the service after all. Don't remove
9627         pending activation if the function fails.
9628
9629         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9630         (_dbus_list_insert_after_link): new code to facilitate
9631         services.c fixes
9632
9633         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9634         new functionality, so we can preallocate the ability to insert
9635         into a hash table.
9636
9637         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9638         allowing us to put custom hooks in a transaction to be used for
9639         cancelling said transaction
9640
9641         * doc/dbus-specification.sgml: add some discussion of secondary
9642         service owners, and disallow zero-length service names
9643
9644         * bus/services.c (bus_registry_acquire_service): new function,
9645         splits out part of bus_driver_handle_acquire_service() and fixes
9646         a bug where we didn't remove the service doing the acquiring
9647         from the secondary queue if we failed to remove the current owner
9648         from the front of the queue.
9649
9650 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9651
9652         * doc/dbus-specification.sgml:
9653         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9654
9655 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9656
9657         * bus/.cvsignore:
9658         * glib/.cvsignore:
9659         * test/.cvsignore:
9660         Added files to cvsignore
9661
9662         * dbus/dbus-message.h:
9663         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9664         Make get_named() take two out argument and return a boolean.
9665         (dbus_message_iter_get_args_valist):
9666         Update usage of get_named().
9667         (dbus_message_iter_append_byte):
9668         Fix typo
9669         (dbus_message_iter_append_named)
9670         Fix typo
9671         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9672         More tests.
9673
9674 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9675
9676         * dbus/dbus-marshal.[ch]:
9677         Add array_type_pos argument to _dbus_marshal_validate_arg.
9678         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9679
9680         * dbus/dbus-message.[ch]:
9681         Multi-dimensional arrays have full type specification in the
9682         outermost array. Iter code re-arranged to handle this.
9683         Added some more iter tests.
9684
9685         * doc/dbus-specification.sgml:
9686         Add me to authors.
9687         Remove old FIXME.
9688         Update new array encoding description.
9689         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9690
9691         * test/data/invalid-messages/array-with-mixed-types.message:
9692         * test/data/valid-messages/array-of-array-of-uint32.message:
9693         Change to the new array format.
9694
9695         * test/data/invalid-messages/too-short-dict.message:
9696         Fix bug in test.
9697
9698         * test/data/valid-messages/recursive-types.message:
9699         Fix up and extend test.
9700
9701 2003-04-10  Havoc Pennington  <hp@pobox.com>
9702
9703         * bus/dispatch.c: lots of fixes
9704
9705         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9706         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9707         that was crack, broke the test service.
9708
9709         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9710         handling to avoid piling up errors if we get a failure on the
9711         first address.
9712
9713         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9714         pid in assertion failures.
9715
9716         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9717         to some fixed size of file descriptor array. Don't return TRUE
9718         anytime a timeout exists, that led to lots of busy loop silliness
9719         in the tests.
9720
9721 2003-04-09  Havoc Pennington  <hp@redhat.com>
9722
9723         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9724         I'd checked this in earlier but hadn't.
9725
9726 2003-04-09  Havoc Pennington  <hp@redhat.com>
9727
9728         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9729         the activation test (man this is getting old!)
9730
9731 2003-04-09  Havoc Pennington  <hp@redhat.com>
9732
9733         * test/test-utils.c: use dispatch status function to fix this up
9734
9735         * bus/connection.c (connection_watch_callback): don't dispatch
9736         from here
9737         (connection_timeout_callback): don't dispatch from here
9738         (bus_connections_setup_connection): set the dispatch status function
9739         (bus_connection_disconnected): unset it
9740
9741         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9742         used to add a connection to be dispatched
9743         (_dbus_loop_iterate): do the dispatching at the end of each
9744         iteration
9745
9746         * dbus/dbus-connection.c
9747         (dbus_connection_set_dispatch_status_function): new function
9748         allowing us to fix up main loop usage
9749         (_dbus_connection_last_unref): free all the various function
9750         user data
9751         (dbus_connection_dispatch): call the DispatchStatusFunction
9752         whenever this function returns
9753         (dbus_connection_handle_watch): call DispatchStatusFunction
9754         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9755         (reply_handler_timeout): call DispatchStatusFunction
9756         (dbus_connection_flush): call DispatchStatusFunction
9757
9758 2003-04-09  Havoc Pennington  <hp@redhat.com>
9759
9760         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9761         a memory leak
9762
9763         * bus/dispatch.c (check_service_activated): fix bug in test
9764
9765         * dbus/dbus-mainloop.c (check_timeout): fix this up
9766
9767         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9768         verbose output so we can sort out output from different processes,
9769         e.g. in the activation case.
9770
9771 2003-04-08  Colin Walters  <walters@gnu.org>
9772
9773         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9774         the pid file.
9775         (bus_context_new): Set it.
9776         (bus_context_unref): Use it to delete the pid file.
9777
9778 2003-04-08  Havoc Pennington  <hp@redhat.com>
9779
9780         * test/data/invalid-messages/array-with-mixed-types.message:
9781         regression test that fails for the moment
9782
9783         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9784         tests for convenience
9785
9786         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9787         array of nil, it broke things.
9788
9789         * test/data/invalid-messages/array-of-nil.message: regression test
9790
9791         * test/data/valid-messages/array-of-array-of-uint32.message:
9792         happened to write this so added it to suite
9793
9794 2003-04-08  Havoc Pennington  <hp@redhat.com>
9795
9796         * bus/driver.c (bus_driver_handle_acquire_service): init
9797         retval/reply before checking name
9798
9799         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9800         recursion depth argument
9801
9802         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9803         in the public struct for future extension
9804
9805         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9806         typo
9807
9808         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9809         message
9810
9811         * doc/dbus-specification.sgml: fix typo
9812
9813 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9814
9815         Implemented recursive types, named types and new-style iters
9816
9817         * bus/driver.c:
9818         * glib/test-thread-client.c: (thread_func):
9819         * glib/test-thread-server.c: (handle_test_message):
9820         * test/test-service.c: (handle_echo):
9821         Update to new api
9822
9823         * dbus/Makefile.am:
9824         * dbus/dbus-dict.c:
9825         * dbus/dbus-dict.h:
9826         * dbus/dbus.h
9827         Remove DBusDict
9828
9829         * dbus/dbus-internals.c: (_dbus_type_to_string):
9830         Update for new types.
9831
9832         * dbus/dbus-marshal.[ch]:
9833         Implement recursive types and the new marshalling format.
9834         Remove hardcoded dict marshalling.
9835         Marshal named types.
9836
9837         * dbus/dbus-message-builder.c:
9838         Add BYTE_ARRAY.
9839         Remove references to old types
9840
9841         * dbus/dbus-message.[ch]:
9842         New non-refcounted iter API that supports recursive iters.
9843         Use iters for appending, including support for recursive
9844         iters.
9845         Add byte and named type support.
9846         Update everything to new marshalling formats.
9847         Add tests for new API.
9848
9849         * dbus/dbus-protocol.h:
9850         Remove old array types.
9851         Add types: BYTE, ARRAY, DICT, NAMED
9852
9853         * dbus/dbus-string.c:
9854         * dbus/dbus-sysdeps.c:
9855         Make parse_double locale safe.
9856
9857         * dbus/dbus-test-main.c:
9858         Call setlocale.
9859
9860         * dbus/dbus-test.c:
9861         Kill dict test
9862
9863         * doc/dbus-specification.sgml:
9864         Update spec
9865
9866         * test/data/incomplete-messages/missing-body.message:
9867         * test/data/invalid-messages/bad-boolean.message:
9868         * test/data/invalid-messages/bad-boolean-array.message:
9869         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9870         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9871         * test/data/invalid-messages/too-short-dict.message:
9872         * test/data/valid-messages/dict-simple.message:
9873         * test/data/valid-messages/dict.message:
9874         * test/data/valid-messages/emptiness.message:
9875         * test/data/valid-messages/lots-of-arguments.message:
9876         * test/data/valid-messages/no-padding.message:
9877         * test/data/valid-messages/recursive-types.message:
9878         Add missing NAME fields
9879         Fix up dicts & arrays
9880
9881         * test/data/invalid-messages/dict-with-nil-value.message:
9882         Removed, this is not invalid anymore.
9883
9884         * test/data/valid-messages/recursive-types.message:
9885         Add new test for deeply recursive types.
9886
9887 2003-04-07  Havoc Pennington  <hp@pobox.com>
9888
9889         * bus/driver.c (bus_driver_handle_acquire_service): return an
9890         error if you try to acquire a service that starts with ':'
9891
9892 2003-04-07  Havoc Pennington  <hp@redhat.com>
9893
9894         * doc/dbus-specification.sgml: require that base service names
9895         start with ':' and that the base service is created/deleted
9896         as first and last things a connection does on the bus
9897
9898         * bus/dispatch.c (check_existent_service_activation): lots more
9899         work on the activation test; it doesn't fully pass yet...
9900
9901         * test/test-service.c (main): fix so we don't memleak the
9902         connection to the message bus
9903         (filter_func): accept a message asking us to exit
9904
9905 2003-04-06  Havoc Pennington  <hp@pobox.com>
9906
9907         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9908         from Colin Walters
9909
9910         * configure.in: fixes to Qt detection from Colin Walters
9911
9912         * doc/Makefile.am: Only remove generated docbook dirs if they
9913         exist, from Colin Walters
9914
9915         * dbus/dbus-bus.c: change how we set well-known connections to
9916         NULL, so that it works if a single connection is stored in
9917         two well-known array slots.
9918
9919         * test/Makefile.am: remove a lot of stuff that isn't immediately
9920         useful, it's in CVS history if we want it.
9921
9922         * test/test-service.c: use dbus-mainloop instead of that
9923         watch.[hc] crack
9924
9925 2003-04-06  Havoc Pennington  <hp@pobox.com>
9926
9927         * dbus/Makefile.am: split lists of sources into stuff that goes in
9928         the library, util functions that go in the lib and are also used
9929         elsewhere, and util functions that are used in tests/daemon but
9930         don't go in the lib.
9931
9932         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9933         here so it can be used in test binaries also
9934
9935 2003-04-06  Havoc Pennington  <hp@pobox.com>
9936
9937         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9938         here in the parent process, so we can return an error if it
9939         fails. Also, move some of the code into the child so the parent
9940         is less hosed if we fail midway through.
9941
9942         * bus/bus.c (bus_context_new): move pidfile detection further up
9943         in the function, before we start overwriting sockets and such.
9944
9945         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9946
9947         * configure.in: add --with-system-pid-file and --with-system-socket
9948
9949 2003-04-06  Colin Walters  <walters@verbum.org>
9950
9951         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9952
9953         * bus/system.conf.in: Declare a pidfile.
9954
9955         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9956         create one (if appropriate).
9957
9958         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9959         (struct BusConfigParser) [pidfile]: New.
9960         (element_type_to_name, merge_included, start_busconfig_child)
9961         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9962         (bus_config_parser_unref): Free it.
9963         (bus_config_parser_get_pidfile): New function.
9964
9965         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9966
9967         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9968
9969         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9970
9971         * dbus/dbus-sysdeps.h: Prototype it.
9972
9973 2003-04-06  Havoc Pennington  <hp@pobox.com>
9974
9975         * bus/bus.c (bus_context_new): print the address in here, rather
9976         than in main(), because we need to do it before forking the daemon
9977
9978         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9979         on the service nonexistent error
9980
9981         * bus/driver.c (bus_driver_handle_acquire_service): set the
9982         sender on the AcquireService reply
9983
9984         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9985         server also listen on a UNIX socket so services can connect to it.
9986
9987 2003-04-06  Havoc Pennington  <hp@pobox.com>
9988
9989         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9990         so it detects deadlocks and also we actually init threads when
9991         debugging.
9992
9993 2003-04-06  Havoc Pennington  <hp@pobox.com>
9994
9995         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9996         save the domain socket name, and unlink it when we disconnect the
9997         server. Means that at least when we exit normally, we won't leave
9998         a bunch of junk in /tmp
9999
10000         * dbus/dbus-transport-unix.c
10001         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10002         memory management). (I was making a real change here but then
10003         didn't)
10004
10005 2003-04-06  Havoc Pennington  <hp@pobox.com>
10006
10007         * bus/bus.c (bus_context_new): fix wrong handling of
10008         server_data_slot_unref() in the error case.
10009
10010         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10011         "(condition) != 0" to _dbus_real_assert so that
10012         "_dbus_assert (pointer)" doesn't cause a warning
10013
10014         * bus/main.c (main): accept --print-address option to print out
10015         the message bus address
10016
10017         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10018
10019         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10020         "tmpdir" option to unix: address on client side
10021
10022         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10023         to unix: address
10024
10025         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10026         we can use to create sockets in the test suite.
10027
10028         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10029         cleanly. To be used for testing.
10030
10031         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10032
10033         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10034
10035         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10036         handle trying to call this when there's no servers active
10037
10038 2003-04-05  Havoc Pennington  <hp@pobox.com>
10039
10040         * NEWS: update
10041
10042         * configure.in: 0.8
10043
10044 2003-04-05  Havoc Pennington  <hp@pobox.com>
10045
10046         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10047         crash on startup. Need to get "try starting the daemon"
10048         in the test suite I guess. ;-)
10049
10050         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10051         tracked the number of open connections; it's better done in
10052         application-specific code as you want it to span all servers etc.
10053
10054 2003-04-05  Havoc Pennington  <hp@pobox.com>
10055
10056         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10057         patch from Colin Walters
10058
10059 2003-04-05  Havoc Pennington  <hp@pobox.com>
10060
10061         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10062         reality; in fact multiple mechanisms are allowed.
10063
10064         * dbus/dbus-internals.c (_dbus_real_assert)
10065         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10066         _dbus_assert_not_reached() into functions, so that they don't show
10067         up in basic block counts for test coverage, and don't use up as
10068         much disk space. Does mean slower execution speed though, so
10069         assumes --disable-asserts is the normal production case.
10070
10071 2003-04-05  Havoc Pennington  <hp@pobox.com>
10072
10073         * test/Makefile.am (dist-hook): also dist *.in files
10074
10075         * NEWS: update
10076
10077         * configure.in: 0.7
10078
10079 2003-04-05  Havoc Pennington  <hp@pobox.com>
10080
10081         * dbus/dbus-string.c: docs warning
10082
10083         * dbus/dbus-spawn.c: missing docs
10084
10085         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10086
10087 2003-04-05  Havoc Pennington  <hp@pobox.com>
10088
10089         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10090         magic from GLib
10091
10092         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10093         to -1 once we've reaped the babysitter
10094         (_dbus_babysitter_handle_watch): do as much work as we can, not
10095         just one go of it
10096
10097         * bus/activation.c: add code using DBusBabysitter so that we
10098         handle it when a service fails to start up properly.
10099         (bus_activation_service_created): don't remove the activation
10100         entries as we go, just let them get removed when we free the pending
10101         activation. Unref reply messages after sending them.
10102
10103 2003-04-05  Havoc Pennington  <hp@pobox.com>
10104
10105         * test/decode-gcov.c (main): print per-directory stats in the report
10106
10107         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10108
10109 2003-04-05  Havoc Pennington  <hp@pobox.com>
10110
10111         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10112
10113         * test/decode-gcov.c: hack up a little program to suck data
10114         out of gcov files. Yes this is sort of silly.
10115
10116         * configure.in: define something in config.h and do an
10117         AM_CONDITIONAL when gcov is enabled
10118
10119 2003-04-04  Havoc Pennington  <hp@redhat.com>
10120
10121         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10122         return a "babysitter" object that is used to monitor the status of
10123         the spawned process and reap it when required.
10124
10125         * test/test-segfault.c, test/test-exit.c,
10126         test/test-sleep-forever.c: binaries that do various lame things,
10127         used in the test suite.
10128
10129         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10130
10131 2003-04-03  Havoc Pennington  <hp@pobox.com>
10132
10133         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10134         in preparation for modifying it, dbus-sysdeps is getting
10135         a bit unmanageable.
10136
10137 2003-04-03  Havoc Pennington  <hp@redhat.com>
10138
10139         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10140         have multiple ones
10141
10142         * bus/*.[hc]: adapt to mainloop change
10143
10144 2003-04-03  Havoc Pennington  <hp@redhat.com>
10145
10146         * bus/activation.c (load_directory): fix up memleaks
10147         (bus_activation_entry_free): free the entry
10148
10149         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10150         we get one from the message bus; fix memleaks.
10151
10152         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10153
10154 2003-04-03  Havoc Pennington  <hp@pobox.com>
10155
10156         * bus/config-parser.c (bus_config_parser_unref): free
10157         list of mechanisms, bug discovered by test suite enhancements
10158         (putting system.conf and session.conf into suite)
10159
10160         * test/Makefile.am, test/test-service.c: add placeholder for a
10161         test service that we'll activate as part of test suite. Doesn't
10162         do anything yet.
10163
10164         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10165         setting NULL value, and use system malloc not dbus_malloc()
10166         when we have unavoidable memleakage.
10167
10168         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10169         didn't work, and support DBUS_BUS_ACTIVATION.
10170
10171         * bus/activation.c (child_setup): pass our well-known bus type to
10172         the child
10173
10174         * bus/config-parser.c: support <type> to specify well-known type
10175
10176         * doc/dbus-specification.sgml: document the env variables to
10177         locate well-known buses and find service activator
10178
10179 2003-04-02  Havoc Pennington  <hp@redhat.com>
10180
10181         * test/Makefile.am (all-local): add a rule to copy tests to
10182         builddir, so we can have generated tests. Use this to remove the
10183         silly hack for testing system.conf and session.conf. Will use this
10184         shortly to generate .service files pointing to test binaries.
10185
10186 2003-04-02  Havoc Pennington  <hp@redhat.com>
10187
10188         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10189         current alloc and needed new length, not max of the doubled
10190         allocation and needed new length. Also, when building tests,
10191         don't do the double-allocation stuff, just realloc every time.
10192
10193 2003-04-02  Havoc Pennington  <hp@redhat.com>
10194
10195         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10196         in error messages
10197         (_dbus_string_get_dirname): new
10198         (_dbus_sysdeps_test): new
10199         (_dbus_directory_open): include dirnames in error messages
10200
10201         * bus/config-parser.c: interpret <include> and <includedir> and
10202         <servicedir> relative to config file location if the given
10203         filename is not absolute.
10204
10205         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10206
10207 2003-04-02  Havoc Pennington  <hp@redhat.com>
10208
10209         * bus/connection.c (bus_transaction_send_error_reply): set sender
10210         service for the error, and unref the reply on success
10211
10212         * bus/activation.c: convert to use BusTransaction so OOM can be
10213         handled correctly
10214         (bus_activation_service_created): set sender of the message
10215
10216 2003-04-01  Havoc Pennington  <hp@redhat.com>
10217
10218         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10219         <includedir> (at least mostly)
10220
10221         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10222         first, then the user ID
10223
10224 2003-04-01  Havoc Pennington  <hp@pobox.com>
10225
10226         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10227         function
10228
10229         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10230
10231         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10232
10233         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10234         socket 0777, and unlink any existing socket.
10235
10236         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10237         the configuration file so specifies; set up auth mechanism
10238         restrictions
10239
10240         * bus/config-parser.c (bus_config_parser_content): add support
10241         for <fork> option and fill in code for <auth>
10242
10243         * bus/system.conf.in: add <fork/> to default configuration,
10244         and limit auth mechanisms to EXTERNAL
10245
10246         * doc/config-file.txt (Elements): add <fork>
10247
10248         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10249         (_dbus_change_identity): new function
10250
10251 2003-03-31  Havoc Pennington  <hp@redhat.com>
10252
10253         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10254         (_dbus_listen_unix_socket): fix off-by-one error in null
10255         termination spotted by Nalin
10256
10257 2003-03-31  Havoc Pennington  <hp@redhat.com>
10258
10259         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10260         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10261         having a real home directory available.
10262
10263 2003-03-31  Havoc Pennington  <hp@redhat.com>
10264
10265         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10266
10267         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10268
10269         * configure.in: add support for specifying a style of init script
10270         to install
10271
10272 2003-03-31  Havoc Pennington  <hp@redhat.com>
10273
10274         Fix some annoying DBusString API and fix all affected code.
10275
10276         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10277         max_length argument
10278         (_dbus_string_get_data): change to return string instead of using
10279         an out param
10280         (_dbus_string_get_const_data): ditto
10281         (_dbus_string_get_data_len): ditto
10282         (_dbus_string_get_const_data_len): ditto
10283
10284 2003-03-31  Havoc Pennington  <hp@redhat.com>
10285
10286         * bus/main.c (main): fix up the command line arguments to be nicer
10287
10288 2003-03-31  Havoc Pennington  <hp@redhat.com>
10289
10290         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10291         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10292         final location that lands in the config file
10293
10294         * bus/config-loader-expat.c (bus_config_load): fix type of
10295         XML_Parser variable
10296
10297         * doc/TODO: remove TODO item for dbus_bus_get()
10298
10299         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10300
10301 2003-03-31  Havoc Pennington  <hp@pobox.com>
10302
10303         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10304         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10305         argument since they are always client side
10306
10307         * dbus/dbus-server.c (dbus_server_get_address): new function
10308
10309         * bus/main.c (main): take the configuration file as an argument.
10310
10311         * test/data/valid-config-files/debug-allow-all.conf: new file to
10312         use with dispatch.c tests for example
10313
10314         * bus/test-main.c (main): require test data dir
10315
10316         * bus/bus.c (bus_context_new): change this to take a
10317         configuration file name as argument
10318
10319         * doc/config-file.txt (Elements): add <servicedir>
10320
10321         * bus/system.conf, bus/session.conf: new files
10322
10323         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10324         well-known socket if none set
10325
10326         * configure.in: create system.conf and session.conf
10327
10328 2003-03-30  Havoc Pennington  <hp@pobox.com>
10329
10330         * bus/config-parser.c: hacking
10331
10332         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10333         to shut down, since it could cause weirdness with the DBusList
10334         lock
10335
10336         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10337         link-oriented stack routines
10338         (alloc_link): free the mempool if the first alloc from it fails
10339
10340         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10341
10342         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10343         from GLib
10344         (_dbus_string_skip_white): new
10345
10346         * doc/config-file.txt (Elements): add <includedir>
10347
10348 2003-03-28  Havoc Pennington  <hp@pobox.com>
10349
10350         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10351         (_dbus_string_copy_data): new functions
10352
10353 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10354
10355         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10356         * dbus/dbus-bus.h:
10357         Add dbus_bus_get.
10358
10359         * dbus/dbus-memory.c:
10360         Fix a doc comment.
10361
10362 2003-03-28  Havoc Pennington  <hp@pobox.com>
10363
10364         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10365         I think it may have just been superstition. Not sure.
10366
10367         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10368         failures that were not being handled.
10369
10370         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10371
10372         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10373         row that will fail on out-of-memory.
10374
10375         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10376         function for testing out-of-memory handling.
10377
10378         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10379         allocation functions, they do map exactly to the expat ones.
10380
10381 2003-03-27  Havoc Pennington  <hp@redhat.com>
10382
10383         * bus/config-loader-libxml.c (bus_config_load): add another error
10384         check
10385
10386 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10387
10388         * doc/TODO:
10389         Add note about automatic service activation.
10390
10391         * doc/dbus-specification.sgml:
10392         Rename the specification and clarify a few things.
10393
10394 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10395
10396         * Doxyfile.in:
10397         * dbus/dbus-address.c:
10398         * dbus/dbus-dict.c:
10399         * dbus/dbus-marshal.c:
10400         * dbus/dbus-server-debug-pipe.c:
10401         * dbus/dbus-transport-unix.c:
10402         Fix documentation warnings.
10403
10404 2003-03-26  Havoc Pennington  <hp@pobox.com>
10405
10406         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10407         after every test so it's quick and easy to see which leaked, and
10408         so we test multiple dbus_shutdown() calls
10409
10410         * configure.in: change configure.in XML stuff to also support
10411         expat
10412
10413         * config-loader-libxml.c: some hacking
10414
10415         * config-loader-expat.c: some hacking
10416
10417         * config-parser.c: some hacking, plus tests
10418
10419 2003-03-25  Havoc Pennington  <hp@redhat.com>
10420
10421         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10422
10423         * configure.in: add --with-xml option to specify XML library,
10424         right now only libxml is supported.
10425
10426         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10427         nonworking code between home and work, still just stubs
10428
10429 2003-03-24  Havoc Pennington  <hp@redhat.com>
10430
10431         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10432         file
10433
10434         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10435         NULL argument for "message" if the error is a well-known one,
10436         fill in a generic message in this case.
10437
10438         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10439         favor of DBusError
10440
10441         * bus/test.c (bus_test_flush_bus): add
10442
10443         * bus/policy.c (bus_policy_test): test code stub
10444
10445 2003-03-24  Havoc Pennington  <hp@pobox.com>
10446
10447         * bus/connection.c (bus_connections_setup_connection): set up
10448         the "can this user connect" function, but it always returns
10449         TRUE until we have a config file parser so we can have a config
10450         file that allows connections.
10451
10452 2003-03-23  Havoc Pennington  <hp@pobox.com>
10453
10454         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10455         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10456         the mutex, so we can check for proper memory management
10457         and OOM handling.
10458
10459         * dbus/dbus-dataslot.c: remove the mutex from
10460         DBusDataSlotAllocator and lock it manually when using it,
10461         to simplify fitting it into the global slots framework.
10462
10463         * dbus/dbus-threads.c (init_static_locks): rework how we're
10464         handling global locks so they are easily shut down.
10465
10466         * bus/policy.c (bus_policy_append_rule): fix
10467
10468         * bus/test-main.c (main): check for memleaks
10469
10470         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10471         test suite check for memleaks
10472
10473         * dbus/dbus-memory.c: add support in test mode for tracking
10474         number of outstanding blocks
10475
10476 2003-03-23  Havoc Pennington  <hp@pobox.com>
10477
10478         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10479         policies code
10480
10481         * dbus/dbus-hash.h: add ULONG hash keys
10482
10483         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10484         (_dbus_get_group_id): new function
10485
10486 2003-03-20  Havoc Pennington  <hp@redhat.com>
10487
10488         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10489         new function
10490         (dbus_connection_get_unix_user): new function
10491
10492 2003-03-20  Havoc Pennington  <hp@pobox.com>
10493
10494         * bus/connection.c (bus_connection_send_oom_error): assert that
10495         message has a sender
10496         (connection_execute_transaction): ditto
10497         (bus_connection_preallocate_oom_error): fix to set the sender, and
10498         set recipient to the destination service, not the bus driver
10499
10500         * bus/policy.c: hacking
10501
10502         * dbus/dbus-message.c (dbus_message_service_is): new function
10503         (dbus_message_sender_is): new
10504
10505 2003-03-19  Havoc Pennington  <hp@redhat.com>
10506
10507         * bus/policy.c: start sketching code for policy restrictions on
10508         what connections can do.
10509
10510 2003-03-18  Havoc Pennington  <hp@redhat.com>
10511
10512         * doc/TODO: some notes on high-level todo items. Little nitpick
10513         stuff is all in @todo, so no need to add it here.
10514
10515         * doc/config-file.txt: some notes on how config file might look
10516
10517 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10518
10519         * configure.in: 0.6
10520
10521         * NEWS: Update.
10522
10523 2003-03-17  Havoc Pennington  <hp@redhat.com>
10524
10525         * dbus/dbus-internals.h: add gcc attributes so that
10526         our printf-style functions warn on bad arguments to
10527         format
10528
10529         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10530         format bug
10531
10532         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10533         printf format bug
10534
10535 2003-03-17  Havoc Pennington  <hp@redhat.com>
10536
10537         * bus/test-main.c (main): make it print something as it runs
10538         so make check doesn't look stuck
10539
10540         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10541         from CVS, now obsolete
10542
10543 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10544
10545         * bus/dispatch.c: (bus_dispatch):
10546         Refetch the service name since it may have been reallocated
10547         when dbus_message_set_sender was called.
10548
10549         * dbus/dbus-sysdeps.c: (_dbus_accept):
10550         Add address and address length variables and use them to stop
10551         valgrind from complaining.
10552
10553 2003-03-17  Havoc Pennington  <hp@pobox.com>
10554
10555         All tests pass, no memleaks, no valgrind complaints.
10556
10557         * bus/test.c: refcount handler_slot
10558
10559         * bus/connection.c (bus_connections_new): refcount
10560         connection_data_slot
10561
10562         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10563         bytes so that auth scripts pass.
10564
10565         * bus/dispatch.c: init message_handler_slot so it gets allocated
10566         properly
10567
10568         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10569
10570         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10571         dealloc server_pipe_hash when no longer used for benefit of
10572         leak checking
10573
10574         * dbus/dbus-auth.c (process_command): memleak fix
10575
10576         * bus/dispatch.c (check_hello_message): memleak fix
10577
10578 2003-03-16  Havoc Pennington  <hp@pobox.com>
10579
10580         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10581
10582 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10583
10584         * bus/activation.c (bus_activation_activate_service): Append
10585         the pending activation entry to the list of pending activations.
10586
10587 2003-03-16  Havoc Pennington  <hp@pobox.com>
10588
10589         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10590         connections
10591
10592         * dbus/dbus-address.c (create_entry): fix OOM handling when
10593         failing to alloc entry->method
10594
10595 2003-03-16  Havoc Pennington  <hp@pobox.com>
10596
10597         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10598         the watch
10599
10600         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10601         add some missing dbus_set_result
10602
10603         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10604         alloc the DBusMessageHandler
10605
10606         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10607         the transport here, since we call this from the finalizer; it
10608         resulted in a double-finalize.
10609
10610         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10611         where we tried to use transport->connection that was NULL,
10612         happened when transport was disconnected early on due to OOM
10613
10614         * bus/*.c: adapt to handle OOM for watches/timeouts
10615
10616         * dbus/dbus-transport-unix.c: port to handle OOM during
10617         watch handling
10618
10619         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10620         reference to unused bytes instead of a copy
10621
10622         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10623         out of memory
10624
10625         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10626         FALSE on OOM
10627
10628         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10629         of memory
10630
10631 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10632
10633         * doc/dbus-specification.sgml:
10634         Document reply message for ActivateService.
10635
10636 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10637
10638         * bus/activation.c: (bus_pending_activation_entry_free),
10639         (bus_pending_activation_free), (bus_activation_new),
10640         (bus_activation_unref), (bus_activation_service_created),
10641         (bus_activation_activate_service):
10642         * bus/activation.h:
10643         * bus/bus.c: (bus_context_new):
10644         * bus/desktop-file.c: (new_section):
10645         * bus/driver.c: (bus_driver_send_service_deleted),
10646         (bus_driver_handle_activate_service):
10647         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10648         * bus/services.h:
10649         * dbus/dbus-connection.c:
10650         (dbus_connection_send_with_reply_and_block):
10651         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10652         * dbus/dbus-protocol.h:
10653         Make activation work better. Now pending activations will be queued
10654         and the daemon won't try to activate services that are already registered.
10655
10656 2003-03-16  Havoc Pennington  <hp@pobox.com>
10657
10658         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10659         connection data
10660
10661         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10662         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10663
10664 2003-03-16  Havoc Pennington  <hp@pobox.com>
10665
10666         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10667         this. always run the test suite before commit...
10668
10669         * bus/*: adapt to DBusConnection API changes
10670
10671         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10672         requires renaming stuff to avoid dbus_connection_dispatch name
10673         conflict.
10674
10675         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10676         function
10677
10678         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10679         separate from _dbus_message_loader_return_buffer()
10680
10681         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10682         this, because it's now always broken to use; the number of
10683         messages in queue vs. the number still buffered by the message
10684         loader is undefined/meaningless. Should use
10685         dbus_connection_get_dispatch_state().
10686         (dbus_connection_dispatch): rename from
10687         dbus_connection_dispatch_message
10688
10689 2003-03-16  Havoc Pennington  <hp@pobox.com>
10690
10691         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10692         implementation
10693
10694 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10695
10696         * dbus/dbus-connection.c:
10697         (dbus_connection_send_with_reply_and_block):
10698         Decrease connection->n_incoming when removing an entry
10699         from the list.
10700         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10701         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10702         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10703         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10704         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10705         (dbus_dict_get_byte_array):
10706         Handle NULL arrays and strings. Also add support for byte arrays.
10707
10708         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10709         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10710         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10711         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10712         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10713         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10714         * dbus/dbus-marshal.h:
10715         Add support for marshalling and demarshalling empty arrays and strings.
10716
10717         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10718         (dbus_message_append_string_array),
10719         (dbus_message_iter_get_boolean),
10720         (dbus_message_iter_get_boolean_array),
10721         (dbus_message_iter_get_int32_array),
10722         (dbus_message_iter_get_uint32_array),
10723         (dbus_message_iter_get_double_array),
10724         (dbus_message_iter_get_byte_array),
10725         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10726         (check_message_handling):
10727         Add support for getting empty arrays and dicts.
10728
10729         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10730         Don't do any validation at all for now, that's better than just checking
10731         for ASCII.
10732
10733         * test/data/valid-messages/emptiness.message:
10734         New test message with lots of empty arrays.
10735
10736 2003-03-16  Havoc Pennington  <hp@pobox.com>
10737
10738         * dbus/dbus-connection.c
10739         (_dbus_connection_queue_received_message_link): new function that
10740         can't fail due to OOM
10741
10742         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10743         new function pops a message together with a list link
10744         containing it.
10745
10746         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10747         message queuing functions to avoid needing to alloc memory
10748
10749 2003-03-16  Havoc Pennington  <hp@pobox.com>
10750
10751         Oops - test code was only testing failure of around 30 of the
10752         mallocs in the test path, but it turns out there are 500+
10753         mallocs. I believe this was due to misguided linking setup such
10754         that there was one copy of dbus_malloc etc. in the daemon and one
10755         in the shared lib, and only daemon mallocs were tested. In any
10756         case, the test case now tests all 500+ mallocs, and doesn't pass
10757         yet, though there are lots of fixes in this patch.
10758
10759         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10760         this so that it doesn't need to allocate memory, since it
10761         has no way of indicating failure due to OOM (and would be
10762         annoying if it did).
10763
10764         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10765
10766         * bus/Makefile.am: rearrange to create two self-contained
10767         libraries, to avoid having libraries with overlapping symbols.
10768         that was resulting in weirdness, e.g. I'm pretty sure there
10769         were two copies of global static variables.
10770
10771         * dbus/dbus-internals.c: move the malloc debug stuff to
10772         dbus-memory.c
10773
10774         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10775         empty.
10776
10777         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10778
10779         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10780         on failure.
10781
10782         * bus/dispatch.c (bus_dispatch_add_connection): free
10783         message_handler_slot when no longer using it, so
10784         memory leak checkers are happy for the test suite.
10785
10786         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10787
10788         * bus/bus.c (new_connection_callback): disconnect in here if
10789         bus_connections_setup_connection fails.
10790
10791         * bus/connection.c (bus_connections_unref): fix to free the
10792         connections
10793         (bus_connections_setup_connection): if this fails, don't
10794         disconnect the connection, just be sure there are no side
10795         effects.
10796
10797         * dbus/dbus-string.c (undo_alignment): unbreak this
10798
10799         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10800         leaking
10801         (_dbus_auth_new): fix the order in which we free strings
10802         on OOM failure
10803
10804         * bus/connection.c (bus_connection_disconnected): fix to
10805         not send ServiceDeleted multiple times in case of memory
10806         allocation failure
10807
10808         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10809         get the base service name
10810         (dbus_bus_register_client): don't return base service name,
10811         instead store it on the DBusConnection and have an accessor
10812         function for it.
10813         (dbus_bus_register_client): rename dbus_bus_register()
10814
10815         * bus/dispatch.c (check_hello_message): verify that other
10816         connections on the bus also got the correct results, not
10817         just the one sending hello
10818
10819 2003-03-15  Havoc Pennington  <hp@pobox.com>
10820
10821         Make it pass the Hello handling test including all OOM codepaths.
10822         Now to do other messages...
10823
10824         * bus/services.c (bus_service_remove_owner): fix crash when
10825         removing owner from an empty list of owners
10826         (bus_registry_ensure): don't leave service in the list of
10827         a connection's owned services if we fail to put the service
10828         in the hash table.
10829
10830         * bus/connection.c (bus_connection_preallocate_oom_error): set
10831         error flag on the OOM error.
10832
10833         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10834         handle _dbus_transport_set_connection failure
10835
10836         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10837         to create watches up front and simply enable/disable them as
10838         needed.
10839         (unix_connection_set): this can now fail on OOM
10840
10841         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10842         of enabling/disabling a watch or timeout.
10843
10844         * bus/loop.c (bus_loop_iterate): don't touch disabled
10845         watches/timeouts
10846
10847         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10848
10849 2003-03-15  Havoc Pennington  <hp@pobox.com>
10850
10851         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10852         write useful test code, after all that futzing around ;-)
10853
10854         Test does not yet pass because we can't handle OOM in
10855         _dbus_transport_messages_pending (basically,
10856         dbus_connection_preallocate_send() does not prealloc the write
10857         watch). To fix this, I think we need to add new stuff to
10858         set_watch_functions, namely a SetEnabled function so we can alloc
10859         the watch earlier, then enable it later.
10860
10861         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10862         dbus-memory.c to the convenience lib
10863
10864         * bus/test.c: rename some static functions to keep them clearly
10865         distinct from stuff in connection.c. Handle client disconnection.
10866
10867 2003-03-14  Havoc Pennington  <hp@pobox.com>
10868
10869         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10870         transport, tests more of the real codepath. Set up clients
10871         with bus_setup_debug_client.
10872
10873         * bus/test.c (bus_setup_debug_client): function to set up debug
10874         "clients" on the main loop
10875
10876         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10877         support
10878
10879         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10880         server type
10881
10882         * dbus/dbus-server-debug.c: support a debug server based on pipes
10883
10884         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10885         (_dbus_close): new function
10886
10887         * configure.in: check for socketpair
10888
10889 2003-03-14  Havoc Pennington  <hp@redhat.com>
10890
10891         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10892         cheesy hack
10893
10894         * dbus/dbus-transport-debug.c: rework this a good bit to be
10895         less complicated. hopefully still works.
10896
10897         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10898         manually
10899
10900         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10901         after running it
10902
10903         * dbus/dbus-message.c (dbus_message_copy): rename from
10904         dbus_message_new_from_message, fix it up to copy
10905         all the message fields, add test case
10906
10907         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10908         not quite passing yet
10909
10910 2003-03-14  Havoc Pennington  <hp@pobox.com>
10911
10912         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10913         until no work remains" in test code. (the large diff here
10914         is just code movement, no actual changes)
10915
10916         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10917         1, no point waiting around for test code.
10918         (_dbus_server_debug_accept_transport): unref the timeout
10919         after adding it (right?)
10920
10921         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10922
10923 2003-03-13  Havoc Pennington  <hp@redhat.com>
10924
10925         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10926         out of memory
10927
10928         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10929         of memory
10930
10931         * dbus/dbus-connection.h: Make AddWatchFunction and
10932         AddTimeoutFunction return a bool so they can fail on out-of-memory
10933
10934         * bus/bus.c (bus_context_new): set up timeout handlers
10935
10936         * bus/connection.c (bus_connections_setup_connection): set up
10937         timeout handlers
10938
10939         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10940         can fail
10941
10942         * bus/bus.c (bus_context_new): adapt to changes
10943
10944         * bus/connection.c: adapt to changes
10945
10946         * test/watch.c: adapt to DBusWatch changes
10947
10948         * bus/dispatch.c (bus_dispatch_test): started adding this but
10949         didn't finish
10950
10951 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10952
10953         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10954
10955 2003-03-13  Havoc Pennington  <hp@pobox.com>
10956
10957         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10958         set up a test framework as for the library
10959
10960 2003-03-12  Havoc Pennington  <hp@pobox.com>
10961
10962         Throughout: purge global variables, introduce BusActivation,
10963         BusConnections, BusRegistry, etc. objects instead.
10964
10965         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10966         message bus object
10967
10968         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10969         going to redo this a bit differently I think
10970
10971 2003-03-12  Havoc Pennington  <hp@redhat.com>
10972
10973         Mega-patch that gets the message bus daemon initially handling
10974         out-of-memory. Work still needed. Also lots of random
10975         moving stuff to DBusError instead of ResultCode.
10976
10977         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10978
10979         * dbus/dbus-connection.c
10980         (dbus_connection_send_with_reply_and_block): use DBusError
10981
10982         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10983         DBusResultCode
10984
10985         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10986         code here, as the only failure possible is OOM.
10987
10988         * bus/connection.c (bus_connection_disconnect):
10989         rename bus_connection_disconnected as it's a notification only
10990
10991         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10992         "name" on get_args failure, should be done by get_args;
10993         don't disconnect client for bad args, just return an error.
10994         (bus_driver_handle_service_exists): ditto
10995
10996         * bus/services.c (bus_services_list): NULL-terminate returned array
10997
10998         * bus/driver.c (bus_driver_send_service_lost)
10999         (bus_driver_send_service_acquired): send messages from driver to a
11000         specific client to the client's unique name, not to the broadcast
11001         service.
11002
11003         * dbus/dbus-message.c (decode_header_data): reject messages that
11004         contain no name field
11005         (_dbus_message_get_client_serial): rename to
11006         dbus_message_get_serial and make public
11007         (_dbus_message_set_serial): rename from set_client_serial
11008         (_dbus_message_set_reply_serial): make public
11009         (_dbus_message_get_reply_serial): make public
11010
11011         * bus/connection.c (bus_connection_foreach): allow stopping
11012         iteration by returning FALSE from foreach function.
11013
11014         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11015         (dbus_connection_free_preallocated_send)
11016         (dbus_connection_preallocate_send): new API for sending a message
11017         without possibility of malloc failure.
11018         (dbus_connection_send_message): rename to just
11019         dbus_connection_send (and same for whole function family)
11020
11021         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11022
11023         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11024
11025         * bus/activation.c: handle/return errors
11026
11027         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11028
11029         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11030         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11031         (_dbus_result_from_errno): move to this file
11032
11033 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11034
11035         * dbus/dbus-marshal.c:
11036         (_dbus_marshal_set_string):
11037         Take a length argument so we can marshal the correct string
11038         length.
11039
11040         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11041         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11042         (_dbus_marshal_test):
11043         * dbus/dbus-marshal.h:
11044         Add support for marshalling and demarshalling dicts.
11045
11046         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11047         Add support for TYPE DICT.
11048
11049         * dbus/dbus-message.c: (set_string_field):
11050         Adjust header padding.
11051
11052         (dbus_message_append_args_valist), (dbus_message_append_dict),
11053         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11054         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11055         (check_message_handling), (check_have_valid_message):
11056         * dbus/dbus-message.h:
11057         Add functions for setting and getting dicts.
11058
11059         * dbus/dbus-protocol.h:
11060         Add DBUS_TYPE_DICT.
11061
11062         * dbus/dbus.h:
11063         Add dbus-dict.h
11064
11065         * doc/dbus-specification.sgml:
11066         Add information about how dicts are marshalled.
11067
11068         * test/data/invalid-messages/dict-with-nil-value.message:
11069         * test/data/invalid-messages/too-short-dict.message:
11070         * test/data/valid-messages/dict-simple.message:
11071         * test/data/valid-messages/dict.message:
11072         Add sample messages containing dicts.
11073
11074 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11075
11076         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11077
11078 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11079
11080         * dbus/Makefile.am:
11081         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11082         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11083         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11084         (dbus_dict_set_double), (dbus_dict_set_string),
11085         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11086         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11087         (dbus_dict_set_string_array), (_dbus_dict_test):
11088         * dbus/dbus-dict.h:
11089         Fix according to comments from Havoc.
11090
11091 2003-03-06  Michael Meeks  <michael@server.home>
11092
11093         * configure.in: if we don't have kde-config, disable have_qt.
11094
11095 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11096
11097         * dbus/Makefile.am:
11098         Add dbus-dict.[ch]
11099
11100         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11101         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11102         (dbus_dict_remove), (dbus_dict_get_value_type),
11103         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11104         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11105         (dbus_dict_put_double), (dbus_dict_put_string),
11106         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11107         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11108         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11109         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11110         (dbus_dict_get_double), (dbus_dict_get_string),
11111         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11112         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11113         (dbus_dict_get_string_array), (_dbus_dict_test):
11114         * dbus/dbus-dict.h:
11115         Add DBusDict implementation
11116
11117         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11118         * dbus/dbus-test.h:
11119         Add _dbus_dict_test
11120
11121 2003-03-04  Havoc Pennington  <hp@pobox.com>
11122
11123         * test/data/auth/*: adapt to changes
11124
11125         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11126         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11127         userid
11128
11129         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11130         more stuff from being in a context name, to make the protocol
11131         simpler to deal with
11132
11133         * dbus/dbus-errors.c (dbus_error_has_name): new function
11134         (dbus_error_is_set): new function
11135
11136         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11137         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11138
11139         * dbus/dbus-connection.c (dbus_connection_flush): also read
11140         messages during a flush operation
11141
11142         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11143
11144 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11145
11146         * configure.in: Check for gethostbyname on Solaris.
11147
11148         * dbus/dbus-transport.c: (_dbus_transport_open):
11149         Remove duplicate "tcp" entry.
11150
11151         * doc/dbus-specification.sgml:
11152         Clarify some things.
11153
11154 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11155
11156         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11157         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11158         (_dbus_keyring_test):
11159         * dbus/dbus-md5.c: (_dbus_md5_compute):
11160         * dbus/dbus-sha.c: (_dbus_sha_compute):
11161         Plug memory leaks.
11162
11163 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11164
11165         * README: Add some things.
11166
11167 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11168
11169         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11170         after case DBUS_TYPE_BOOELAN.
11171
11172 2003-03-02  Havoc Pennington  <hp@pobox.com>
11173
11174         * test/break-loader.c (randomly_set_extreme_ints): add test that
11175         sets really huge and small integers
11176
11177         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11178         that length of boolean array fits in the string, and that
11179         string has room for boolean value in single-bool case.
11180
11181         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11182         optional value to "ALIGN" command which is what to fill the
11183         alignment with.
11184
11185         * test/data/valid-messages/no-padding.message: add regression
11186         test for the message padding problem
11187
11188 2003-03-02  Havoc Pennington  <hp@pobox.com>
11189
11190         * dbus/dbus-message.c (decode_header_data): fix to always init
11191         message_padding, from Benjamin Dauvergne
11192
11193 2003-03-02  Havoc Pennington  <hp@pobox.com>
11194
11195         * configure.in: 0.5
11196
11197         * NEWS: Update.
11198
11199 2003-03-01  Joe Shaw  <joe@assbarn.com>
11200
11201         * configure.in: Check for "struct cmsgcred" and try to access its
11202         members for BSD-like unices.
11203
11204         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11205         _dbus_read_credentials_unix_socket().
11206         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11207         read() for reading the credential byte off the unix socket.  Use
11208         struct cmsgcred on systems that support it.
11209
11210 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11211
11212         * glib/Makefile.am:
11213         * configure.in:
11214         Make gthreads-2.0 dependency optional. Don't build thread test if
11215         its not found.
11216
11217 2003-02-27  Havoc Pennington  <hp@pobox.com>
11218
11219         * dbus/dbus-connection.c
11220         (dbus_connection_send_message_with_reply_and_block): fix doh!
11221         doh! doh! bug that resulted in never removing a reply from the
11222         queue, no wonder we called get_reply_serial so much ;-)
11223
11224         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11225         and client serial instead of demarshaling them every time
11226
11227 2003-02-27  Havoc Pennington  <hp@pobox.com>
11228
11229         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11230         more inlined, using dbus-string-private.h, speeds things up
11231         substantially
11232
11233         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11234         when freeing the string
11235         (_dbus_string_steal_data): fix for align offset
11236         (undo_alignment): new function
11237
11238 2003-02-26  Havoc Pennington  <hp@redhat.com>
11239
11240         All kinds of audit fixes from Owen, plus initial attempt to
11241         handle unaligned memory returned from malloc.
11242
11243         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11244         leave room for align_offset and nul byte
11245         (fixup_alignment): function to track an align_offset and
11246         ensure real->str is aligned
11247         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11248         to allow a nul byte plus align offset
11249         (_dbus_string_lock): fix overflow issue
11250         (_dbus_string_init_const_len): add assertions on sanity of len,
11251         assign allocated to be ALLOCATION_PADDING larger than len
11252         (set_length): fixup the overflow handling
11253         (_dbus_string_get_data_len): fix overflow in assertion
11254         (open_gap): detect overflow in size of gap to be opened
11255         (_dbus_string_lengthen): add overflow check
11256         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11257         (_dbus_string_append): add overflow check
11258         (_dbus_string_append_unichar): overflow
11259         (_dbus_string_delete): fix overflow in assertion
11260         (_dbus_string_copy_len): overflow in assertion
11261         (_dbus_string_replace_len): overflows in assertions
11262         (_dbus_string_find): change to implement in terms of
11263         _dbus_string_find_to
11264         (_dbus_string_find_to): assorted fixage
11265         (_dbus_string_equal_c_str): assert c_str != NULL,
11266         fix logic so the function works
11267         (_dbus_string_ends_with_c_str): fix overflow thingy
11268         (_dbus_string_base64_encode): overflow fix
11269         (_dbus_string_validate_ascii): overflow
11270         (_dbus_string_validate_nul): overflow
11271
11272 2003-02-26  Havoc Pennington  <hp@redhat.com>
11273
11274         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11275
11276 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11277
11278         * configure.in:
11279         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11280
11281         * dbus/dbus-connection.c:
11282         * dbus/dbus-connection.h:
11283         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11284         Add dbus_connection_set_wakeup_main_function and use it when queueing
11285         incoming and outgoing messages.
11286
11287
11288         * dbus/dbus-dataslot.c:
11289         Threadsafe usage of DBusDataSlotAllocator
11290
11291         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11292         dbus_new can fail.
11293
11294         * dbus/dbus-server-unix.c:
11295         Add todo comment
11296
11297         * glib/dbus-gmain.c:
11298         Implement the new wakeup functions for glib.
11299
11300         * glib/Makefile.am:
11301         * glib/test-thread-client.c:
11302         * glib/test-thread-server.c:
11303         * glib/test-thread.h:
11304         Initial cut at some thread test code. Not really done yet.
11305
11306 2003-02-26  Havoc Pennington  <hp@pobox.com>
11307
11308         * dbus/dbus-connection.c
11309         (dbus_connection_send_message_with_reply_and_block): fix crash
11310         where we ref'd the outgoing message instead of the returned reply
11311
11312         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11313         at the end of this function, so if we didn't need to read for
11314         authentication, we reinstall it for receiving messages
11315
11316         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11317         a NULL sender for peer-to-peer case
11318
11319         * dbus/dbus-transport-unix.c (check_read_watch): handle
11320         !authenticated case correctly
11321
11322         * glib/dbus-gmain.c: add support for DBusServer
11323
11324         * dbus/dbus-server.c: add data slot support
11325
11326         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11327         return values and handle errors
11328
11329         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11330         DBusConnection
11331
11332         * Doxyfile.in (INPUT): add glib subdir
11333
11334         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11335         setup_with_g_main instead of hookup_with_g_main; write docs
11336
11337 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11338
11339         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11340         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11341         * dbus/dbus-message.c: (dbus_message_append_boolean),
11342         (dbus_message_append_boolean_array),
11343         (dbus_message_get_args_valist), (_dbus_message_test):
11344         * dbus/dbus-message.h:
11345         * doc/dbus-specification.sgml:
11346         Various fixes as pointed out by Havoc.
11347
11348         * test/data/invalid-messages/bad-boolean-array.message:
11349         * test/data/invalid-messages/bad-boolean.message:
11350         Add invalid boolean value test cases.
11351
11352 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11353
11354         * dbus/dbus-internals.c: (_dbus_type_to_string):
11355         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11356         (_dbus_marshal_validate_arg):
11357         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11358         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11359         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11360         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11361         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11362         (dbus_message_iter_get_double),
11363         (dbus_message_iter_get_boolean_array), (message_iter_test):
11364         * dbus/dbus-message.h:
11365         * dbus/dbus-protocol.h:
11366         * doc/dbus-specification.sgml:
11367         * test/data/valid-messages/lots-of-arguments.message:
11368         Add support for boolean and boolean array types.
11369
11370 2003-02-23  Havoc Pennington  <hp@pobox.com>
11371
11372         * dbus/dbus-keyring.c: finish most of this implementation and
11373         simple unit test
11374
11375         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11376         these barf if the error isn't cleared to NULL
11377
11378         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11379         (_dbus_create_directory): new function
11380
11381         * dbus/dbus-errors.c (dbus_set_error): fix warning
11382
11383         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11384         (_dbus_string_hex_decode): new function
11385         (test_hex_roundtrip): test code
11386
11387         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11388
11389         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11390
11391         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11392         the save-to-temp/rename trick to atomically write the new file
11393         (_dbus_string_parse_uint): new function
11394
11395 2003-02-22  Havoc Pennington  <hp@pobox.com>
11396
11397         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11398
11399 2003-02-22  Havoc Pennington  <hp@pobox.com>
11400
11401         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11402         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11403
11404         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11405
11406         * dbus/test/data/sha-1: add US government test suite for SHA-1
11407
11408 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11409
11410         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11411         Make string arrays NULL-terminated.
11412
11413         * dbus/dbus-memory.c: (dbus_free_string_array):
11414         * dbus/dbus-memory.h:
11415         New function for freeing NULL-terminated string arrays.
11416
11417         * dbus/dbus-message-builder.c: (append_quoted_string),
11418         (_dbus_message_data_load):
11419         Add support for array types.
11420
11421         * dbus/dbus-message.c: (check_message_handling):
11422         Add more types as test cases.
11423
11424         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11425         (_dbus_string_parse_double):
11426         Add the start offset to the end offset.
11427
11428         * test/data/valid-messages/lots-of-arguments.message:
11429         New test message with lots of arguments.
11430
11431 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11432
11433         * dbus/dbus-message.c: (dbus_message_append_nil),
11434         (dbus_message_append_int32), (dbus_message_append_uint32),
11435         (dbus_message_append_double), (dbus_message_append_string),
11436         (dbus_message_append_int32_array),
11437         (dbus_message_append_uint32_array),
11438         (dbus_message_append_double_array),
11439         (dbus_message_append_byte_array),
11440         (dbus_message_append_string_array):
11441         Fix all out-of-memory handling in these functions.
11442
11443 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11444
11445         * dbus/dbus-message.c: (dbus_message_append_nil):
11446         Fix a silly.
11447
11448 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11449
11450         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11451         (dbus_message_append_nil), (dbus_message_append_int32_array),
11452         (dbus_message_append_uint32_array),
11453         (dbus_message_append_double_array),
11454         (dbus_message_append_byte_array),
11455         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11456         (dbus_message_iter_get_int32_array),
11457         (dbus_message_iter_get_uint32_array),
11458         (dbus_message_iter_get_double_array),
11459         (dbus_message_iter_get_byte_array),
11460         (dbus_message_iter_get_string_array):
11461
11462         * dbus/dbus-message.h:
11463         Add functions for appending and getting arrays.
11464
11465 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11466
11467         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11468         element size at least 8 bytes, fixes mempool tests on
11469         64-bit machines.
11470
11471 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11472
11473         * dbus/dbus-transport-unix.c (unix_do_iteration):
11474         Unlock the connection mutex during a blocking select call.
11475         Add todo about how we need a way to wake up the select.
11476
11477         * dbus/dbus-connection-internal.h:
11478         * dbus/dbus-connection.c:
11479         Add _dbus_connection_lock and _dbus_connection_unlock.
11480
11481 2003-02-19  Havoc Pennington  <hp@pobox.com>
11482
11483         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11484         Doxyfile.in, not Doxyfile
11485
11486         * dbus/dbus-keyring.c: do some hacking on this
11487
11488         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11489
11490         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11491         dbus_error_init
11492         (dbus_set_error): remove dbus_error_init, check for message ==
11493         NULL *before* we sprintf into it, and add @todo about including
11494         system headers in this file
11495
11496         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11497
11498         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11499
11500         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11501         get various bits of user information based on either username
11502         or user ID
11503         (_dbus_homedir_from_username): new function
11504
11505 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11506
11507         * configure.in:
11508         Add check for nonposix getpwnam_r
11509
11510         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11511         Align the pool element size to a sizeof (void *) boundary.
11512
11513         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11514         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11515         General Solaris fixes.
11516
11517         * test/data/valid-messages/simplest-manual.message:
11518         Explicitly state that we want little-endian packing.
11519
11520 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11521
11522         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11523
11524         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11525         Added to create a transport connecting using a tcp/ip socket.
11526
11527         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11528         to a tcp socket at given host and port.
11529         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11530         hostname and port.
11531
11532         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11533
11534         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11535         Added to create a server listening on a TCP/IP socket.
11536
11537 2003-02-19  Havoc Pennington  <hp@pobox.com>
11538
11539         Throughout: mop up all the Doxygen warnings and undocumented
11540         stuff.
11541
11542         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11543         to search any paths.
11544
11545         * dbus/dbus-threads.c: move global mutex initializers to
11546         dbus-internals.h, multiple prototypes was confusing doxygen
11547         besides being kind of ugly
11548
11549         * Doxyfile (PREDEFINED): have Doxygen define
11550         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11551         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11552         (do not abuse the feature! it's for stuff like the autogenerated
11553         macros in dbus-md5.c, not just for things you don't feel like
11554         documenting...)
11555
11556 2003-02-18  Havoc Pennington  <hp@pobox.com>
11557
11558         * dbus/dbus-string.c (_dbus_string_zero): new function
11559
11560         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11561         wrap it in some dbus-friendly API
11562
11563         * dbus/dbus-types.h: add 16-bit types
11564
11565 2003-02-18  Joe Shaw  <joe@assbarn.com>
11566
11567         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11568         credentials from our currently running process.
11569         (get_word): Fix a buglet where we were copying the entire length
11570         instead of relative to our position.
11571
11572         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11573         keys on the stack... it's 640k of data.
11574
11575         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11576         read the credentials byte off the socket, even if we don't have
11577         SO_PEERCRED.
11578         (_dbus_poll): Implement poll() using select() for systems which
11579         don't have it.
11580
11581         * glib/test-dbus-glib.c (main): Print out an error if no
11582         parameters are given.
11583
11584         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11585         can fallback to a secondary auth mechanism if the first fails.
11586
11587 2003-02-18  Havoc Pennington  <hp@pobox.com>
11588
11589         * AUTHORS: add Alex
11590
11591 2003-02-17  Havoc Pennington  <hp@pobox.com>
11592
11593         * doc/dbus-specification.sgml: lots of cosmetic
11594         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11595         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11596         s/server/bus/ (except in authentication section). Add a section
11597         "Message Bus Message Routing"
11598
11599 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11600
11601         Release 0.4
11602
11603         * NEWS: Update
11604
11605 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11606
11607         * doc/dbus-specification.sgml:
11608         Specification updates.
11609
11610 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11611
11612         * bus/activation.c: (bus_activation_init), (child_setup),
11613         (bus_activation_activate_service):
11614         * bus/activation.h:
11615         * bus/main.c: (main):
11616         Set DBUS_ADDRESS environment variable.
11617
11618         * dbus/dbus-errors.c: (dbus_set_error):
11619         Don't use va_copy since that's a C99 feature.
11620
11621         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11622         (_dbus_spawn_async):
11623         * dbus/dbus-sysdeps.h:
11624         Add child_setup_func to _dbus_spawn_async.
11625
11626         * doc/dbus-specification.sgml:
11627         Update specification.
11628
11629         * test/spawn-test.c: (setup_func), (main):
11630         Fix test.
11631
11632 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11633
11634         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11635         Added todo.
11636
11637 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11638
11639         * doc/.cvsignore:
11640         * doc/Makefile.am:
11641         * doc/dbus-test-plan.sgml:
11642         Add test plan document.
11643
11644         * test/Makefile.am:
11645         Fix distcheck.
11646
11647 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11648
11649         * dbus/dbus-message.c: (decode_header_data),
11650         (_dbus_message_loader_return_buffer):
11651         Set the header padding amount when loading a message.
11652
11653 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11654
11655         * bus/dispatch.c: (send_one_message):
11656         Only send broadcast messages to registered connections.
11657
11658         * dbus/dbus-message.c: (dbus_message_name_is):
11659         * dbus/dbus-message.h:
11660         New convenience function.
11661
11662         * dbus/dbus-transport-debug.c: (do_reading):
11663         Only dispatch one message per run.
11664
11665         * test/Makefile.am:
11666         * test/bus-test.c: (new_connection_callback), (die),
11667         (test_hello_client1_handler), (test_hello_client2_handler),
11668         (test_hello_replies), (main):
11669
11670         * test/bus-test-loop.[ch]:
11671         Add these.
11672
11673 2003-02-16  Havoc Pennington  <hp@pobox.com>
11674
11675         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11676         backward conditional
11677
11678 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11679
11680         * dbus/dbus-connection.c:
11681         Implement sent_message_with_reply. (with_reply_and block is still
11682         busted).
11683         Made dispatch_message not lose message if OOM.
11684
11685         * dbus/dbus-errors.h:
11686         Add NoReply error (for reply timeouts).
11687
11688 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11689
11690         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11691         Actually free keys and values when destroying hashtable.
11692
11693 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11694
11695         * dbus/dbus-auth.c: (client_try_next_mechanism):
11696         Plug a leak.
11697
11698         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11699         Return TRUE if there's no thread implementation around.
11700
11701         * glib/dbus-gmain.c: (free_source),
11702         (dbus_connection_hookup_with_g_main):
11703         Make sure to remove the GSource when the connection is finalized.
11704
11705 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11706
11707         * bus/dispatch.c: (bus_dispatch_message_handler):
11708         * dbus/dbus-errors.h:
11709         Return an error if someone tries to send a message to a service
11710         that doesn't exist.
11711
11712 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11713
11714         * bus/activation.c: (load_directory), (bus_activation_init),
11715         (bus_activation_activate_service):
11716         * bus/activation.h:
11717         * bus/driver.c:
11718         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11719         More work on the activation handling.
11720
11721         * dbus/dbus-errors.h:
11722         Add some error messages
11723
11724         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11725         * dbus/dbus-message.h:
11726         New function that creates an error message.
11727
11728         * dbus/dbus-protocol.h:
11729         Add ACTIVATE_SERVER message.
11730
11731         * dbus/dbus-server-unix.c: (unix_handle_watch),
11732         (_dbus_server_new_for_domain_socket):
11733         Call _dbus_fd_set_close_on_exec.
11734
11735         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11736         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11737         (_dbus_fd_set_close_on_exec):
11738         * dbus/dbus-sysdeps.h:
11739         Add _dbus_fd_set_close_on exec function. Also add function that checks
11740         that all open fds are set to close-on-exec and warns otherwise.
11741
11742         * dbus/dbus-transport-unix.c:
11743         (_dbus_transport_new_for_domain_socket):
11744         Call _dbus_fd_set_close_on_exec.
11745
11746 2003-02-16  Havoc Pennington  <hp@pobox.com>
11747
11748         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11749         allow people to avoid setting SIGPIPE to SIG_IGN
11750         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11751         we've been asked not to
11752
11753 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11754
11755         * dbus/dbus-list.c: (_dbus_list_append_link),
11756         (_dbus_list_prepend_link):
11757         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11758         (dbus_realloc):
11759         Warning fixes.
11760
11761 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11762
11763         * bus/Makefile.am:
11764         * bus/activation.c: (bus_activation_entry_free),
11765         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11766         * bus/activation.h:
11767         * bus/main.c: (main):
11768         Add simple activation support, doesn't work yet though.
11769
11770 2003-02-15   Zack Rusin  <zack@kde.org>
11771
11772         * qt/dbus-qthread.cpp:  small casting fix
11773
11774 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11775
11776         * dbus/dbus-errors.c: (dbus_set_error):
11777         * dbus/dbus-errors.h:
11778         Add a few errors and make dbus_set_error void.
11779
11780         * dbus/dbus-sysdeps.c:
11781         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11782         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11783         * dbus/dbus-sysdeps.h:
11784         Add _dbus_spawn_async.
11785
11786         * test/spawn-test.c: (main):
11787         Test for _dbus_spawn_async.
11788
11789 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11790
11791         * dbus/dbus-internals.h:
11792         Fix build without tests.
11793
11794         * dbus/dbus-list.c: (alloc_link):
11795         Fix a segfault when a malloc fails.
11796
11797         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11798         (dbus_malloc0), (dbus_realloc):
11799         Add support for malloc debugging.
11800
11801 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11802
11803         * dbus/dbus-threads.c:
11804         * dbus/dbus-threads.h:
11805         Add condvars. Remove static mutext from API.
11806         Implement static mutexes by initializing them from threads_init.
11807
11808         * glib/dbus-gthread.c:
11809         * qt/dbus-qthread.cpp:
11810         Update with the thread api changes.
11811
11812
11813         * dbus/dbus-list.c:
11814         * dbus/dbus-list.h:
11815         Turn StaticMutex into normal mutex + init function.
11816         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11817         _dbus_list_append_link, _dbus_list_prepend_link
11818
11819
11820         * dbus/dbus-sysdeps.c:
11821         * dbus/dbus-sysdeps.h:
11822         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11823         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11824
11825         * dbus/dbus-protocol.h:
11826         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11827
11828         * dbus/dbus-message.c:
11829         Make ref/unref atomic.
11830         Fix some docs.
11831
11832         * dbus/dbus-connection-internal.h:
11833         * dbus/dbus-connection.c:
11834         * dbus/dbus-connection.h:
11835         Make threadsafe.
11836         Change _peek to _borrow,_return & _steal_borrowed.
11837         Change disconnect callback to event.
11838         Make dbus_connection_dispatch_messages reentrant.
11839
11840         * dbus/dbus-transport.c:
11841         Don't ref the connection on calls to the transport
11842         implementation.
11843
11844         * dbus/dbus-message-handler.c:
11845         Make threadsafe.
11846
11847         * glib/dbus-gmain.c:
11848         Don't use peek_message anymore
11849
11850         * test/Makefile.am:
11851         * test/debug-thread.c:
11852         * test/debug-thread.h:
11853         Simple thread implementation that asserts() on deadlocks in
11854         single-threaded code.
11855
11856         * test/bus-test.c:
11857         (main) Call debug_threads_init.
11858
11859         * test/watch.c:
11860         Use disconnect message instead of disconnect callback.
11861
11862         * bus/connection.c:
11863         * bus/connection.h:
11864         Don't call dbus_connection_set_disconnect_function. Instead export
11865         bus_connection_disconnect.
11866
11867         * bus/dispatch.c:
11868         Call bus_connection_disconnect when we get a disconnected message.
11869
11870 2003-02-15  Havoc Pennington  <hp@pobox.com>
11871
11872         * dbus/dbus-message.c (dbus_message_new): fool around with the
11873         docs
11874
11875 2003-02-14  Havoc Pennington  <hp@pobox.com>
11876
11877         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11878
11879         * dbus/dbus-memory.c: fail if the debug functions indicate we
11880         should
11881
11882         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11883         (_dbus_decrement_fail_alloc_counter): debug functions to
11884         simulate memory allocation failures
11885
11886 2003-02-14  Havoc Pennington  <hp@pobox.com>
11887
11888         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11889         to DBusError
11890
11891 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11892
11893         * bus/driver.c: (bus_driver_handle_hello):
11894         * bus/driver.h:
11895         * bus/services.c: (bus_service_lookup):
11896         Reorder message sending so we get a more sane order.
11897
11898         * test/bus-test.c: (message_handler):
11899         Fix tyop.
11900
11901 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11902
11903         * bus/driver.c: (bus_driver_send_service_deleted),
11904         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11905         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11906         (bus_driver_send_welcome_message),
11907         (bus_driver_handle_list_services),
11908         (bus_driver_handle_acquire_service),
11909         (bus_driver_handle_service_exists):
11910         * dbus/dbus-bus.c: (dbus_bus_register_client),
11911         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11912         * dbus/dbus-errors.c: (dbus_result_to_string):
11913         * dbus/dbus-errors.h:
11914         * dbus/dbus-message.c: (dbus_message_append_args),
11915         (dbus_message_append_args_valist), (dbus_message_get_args),
11916         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11917         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11918         (dbus_message_iter_get_byte_array),
11919         (dbus_message_iter_get_string_array), (message_iter_test),
11920         (check_message_handling), (_dbus_message_test):
11921         * dbus/dbus-message.h:
11922         * test/bus-test.c: (main):
11923         Change fields to arguments in messages, so that they won't be
11924         confused with header fields.
11925
11926         * glib/test-dbus-glib.c: (main):
11927         Remove append_fields from hello message.
11928
11929 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11930
11931         * dbus/dbus-errors.c:
11932         * dbus/dbus-message.c:
11933         * dbus/dbus-string.c:
11934         Documentation fixes.
11935
11936 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11937
11938         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11939         (remove_timeout):
11940         Implement support for timeouts in dbus-glib.
11941
11942 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11943
11944         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11945         * dbus/dbus-message.c: (process_test_subdir):
11946         * test/break-loader.c: (find_breaks_based_on):
11947         Plug some memory leaks.
11948
11949 2003-02-13  Richard Hult  <rhult@codefactory.se>
11950
11951         * bus/main.c: Fix build.
11952
11953         * dbus/dbus-errors.h:
11954         * dbus/dbus-errors.c: Fix copyright for Anders.
11955
11956 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11957
11958         * bus/Makefile.am:
11959         Add utils.[ch]
11960
11961         * bus/connection.c: (bus_connection_foreach):
11962         Fix a warning.
11963
11964         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11965         (unescape_string), (new_section), (parse_section_start),
11966         (parse_key_value), (report_error), (bus_desktop_file_load),
11967         (bus_desktop_file_get_string):
11968         * bus/desktop-file.h:
11969         Use DBusError for error reporting.
11970
11971         * bus/dispatch.c: (send_one_message),
11972         (bus_dispatch_message_handler):
11973         * bus/driver.c: (bus_driver_send_service_deleted),
11974         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11975         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11976         (bus_driver_send_welcome_message),
11977         (bus_driver_handle_list_services),
11978         (bus_driver_handle_acquire_service),
11979         (bus_driver_handle_service_exists):
11980         * bus/loop.c: (bus_loop_run):
11981         * bus/main.c:
11982         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11983
11984         * bus/utils.c: (bus_wait_for_memory):
11985         * bus/utils.h:
11986         New files with general utility functions.
11987
11988         * dbus/dbus-internals.h:
11989         Remove _DBUS_HANDLE_OOM.
11990
11991 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11992
11993         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11994         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11995         * dbus/dbus-errors.h:
11996         Add DBusError structure.
11997
11998 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11999
12000         * test/data/valid-messages/standard-acquire-service.message:
12001         * test/data/valid-messages/standard-hello.message:
12002         * test/data/valid-messages/standard-list-services.message:
12003         * test/data/valid-messages/standard-service-exists.message:
12004         Add some standard messages.
12005
12006 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12007
12008         * bus/driver.c: (bus_driver_send_welcome_message),
12009         (bus_driver_handle_list_services),
12010         (bus_driver_handle_acquire_service),
12011         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12012         Update for API changes in libdbus.
12013
12014         * dbus/dbus-message.c: (dbus_message_new_reply):
12015         * dbus/dbus-message.h:
12016         Remove the name argument. The spec states that replies shouldn't
12017         have a name.
12018
12019 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12020
12021         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12022         (report_error), (bus_desktop_file_load), (lookup_section),
12023         (lookup_line), (bus_desktop_file_get_raw),
12024         (bus_desktop_file_get_string):
12025         * bus/desktop-file.h:
12026         Some fixes, and new functions for getting a key value from a section.
12027
12028 2003-02-13  Havoc Pennington  <hp@pobox.com>
12029
12030         * test/data/auth/fail-after-n-attempts.auth-script: new test
12031
12032         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12033         reject the client.
12034
12035 2003-02-13  Havoc Pennington  <hp@pobox.com>
12036
12037         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12038         dbus_credentials_match were backward
12039
12040         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12041         NO_CREDENTIALS and ROOT_CREDENTIALS
12042
12043         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12044         into here. Never process more commands after we've reached an
12045         end state; store further data as unused bytes.
12046
12047         * test/data/auth/*: add more auth tests
12048
12049         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12050         command to match exact string and EXPECT_UNUSED to match unused
12051         bytes
12052
12053         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12054
12055 2003-02-12  Havoc Pennington  <hp@pobox.com>
12056
12057         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12058         \r off of popped lines
12059
12060         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12061         scripts
12062
12063         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12064         SEND, append \r\n
12065
12066 2003-02-12  Havoc Pennington  <hp@pobox.com>
12067
12068         * dbus/Makefile.am: remove break-loader from the build, since it
12069         moved.
12070
12071         * configure.in: add --enable-gcov to turn on coverage profiling
12072         flags and disable optimization
12073
12074 2003-02-10  Havoc Pennington  <hp@pobox.com>
12075
12076         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12077         initial cut at test framework for DBusAuth from laptop.
12078         Doesn't quite work yet but it compiles and I need to get
12079         it off the 266mhz laptop. ;-)
12080
12081         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12082         fix a memleak in error case
12083
12084 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12085
12086         * bus/Makefile.am:
12087         * bus/desktop-file.c:
12088         * bus/desktop-file.h:
12089         Add a desktop file parser.
12090
12091 2003-02-11  Zack Rusin  <zack@kde.org>
12092
12093         * qt/message.[h|cpp]: sample implementation
12094         of the KDE wrapper for DBusMessage
12095
12096 2003-02-09  Zack Rusin  <zack@kde.org>
12097
12098         * test/bus-test.c: make_it_compile
12099         * doc/dbus-specification.sgml: minimal semantic fix
12100
12101 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12102
12103         Release 0.3
12104
12105         * NEWS: Update
12106
12107 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12108
12109         * dbus/Makefile.am:
12110         * dbus/dbus-break-loader.c:
12111         * test/Makefile.am:
12112         * test/break-loader.c:
12113         Move dbus-break-loader to test/ and rename it to break-loader.
12114
12115 2003-02-02  Havoc Pennington  <hp@pobox.com>
12116
12117         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12118         for code to manage cookies in your home directory
12119
12120         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12121
12122         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12123         to authenticate, then disconnect the client.
12124
12125 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12126
12127         * dbus/dbus-message.c (dbus_message_append_fields):
12128         Correct docs.
12129
12130 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12131
12132         * doc/dbus-specification.sgml:
12133         Update address format section.
12134
12135 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12136
12137         * test/Makefile.am:
12138         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12139         (message_handler), (new_connection_callback), (loop_quit),
12140         (loop_run), (main):
12141         Add bus test.
12142
12143 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12144
12145         * bus/driver.c: (bus_driver_handle_service_exists):
12146         Simplify the code a bit.
12147
12148         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12149         Fix a silly.
12150
12151 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12152
12153         * bus/Makefile.am:
12154         Add libdbus-daemon.la and link to it.
12155
12156 2003-02-01  James Willcox  <jwillcox@gnome.org>
12157
12158         * bus/driver.c: (bus_driver_handle_own_service):
12159         Actually include the service reply code in the message.
12160
12161 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12162
12163         * bus/driver.c: (bus_driver_handle_service_exists):
12164         Don't unref the incoming message.
12165
12166 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12167
12168         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12169
12170 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12171
12172         * dbus/dbus-server.c: (dbus_server_listen):
12173         * dbus/dbus-transport.c: (_dbus_transport_open):
12174         ifdef out the calls to the debug transport and server.
12175
12176 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12177
12178         * dbus/dbus-watch.c (dbus_watch_get_flags):
12179         Add note in the docs that ERROR or HANGUP won't be returned
12180         and are assumed always on.
12181
12182         * glib/dbus-gmain.c (add_watch):
12183         Always add IO_ERR | IO_HUP
12184
12185         * dbus/dbus-message.h:
12186         Add semicolon after dbus_message_iter_get_string_array().
12187         Makes qt code build again
12188
12189 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12190
12191         * bus/driver.c: (create_unique_client_name),
12192         (bus_driver_handle_hello):
12193         Don't take a name, just use a numeric id to identify
12194         each client.
12195
12196         * dbus/Makefile.am:
12197         * dbus/dbus-bus.c: (dbus_bus_register_client),
12198         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12199         * dbus/dbus-bus.h:
12200         Add new convenience functions for communicating with the bus.
12201
12202         * dbus/dbus-message.h:
12203
12204         * dbus/dbus-protocol.h:
12205         Fix a typo.
12206
12207 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12208
12209         * dbus/dbus-message.c (dbus_message_append_fields):
12210         Add some more doc comments.
12211
12212 2003-02-01  Havoc Pennington  <hp@pobox.com>
12213
12214         * dbus/dbus-break-loader.c (randomly_modify_length): change
12215         a 4-byte value in the message as if it were a length
12216
12217         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12218         execute bit on saved files
12219
12220 2003-02-01  Havoc Pennington  <hp@pobox.com>
12221
12222         * dbus/dbus-break-loader.c (main): new program to find messages
12223         that break the loader.
12224
12225         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12226         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12227
12228         * dbus/dbus-string.c (_dbus_string_set_byte): new
12229
12230 2003-01-31  Havoc Pennington  <hp@pobox.com>
12231
12232         * dbus/dbus-message.c: refactor the test code to be more general,
12233         in preparation for writing a "randomly permute test cases to
12234         try to break the loader" program.
12235
12236 2003-01-31  Havoc Pennington  <hp@pobox.com>
12237
12238         * doc/dbus-specification.sgml: work on the specification
12239
12240         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12241         the protocol version of the message.
12242
12243         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12244         no longer specifies that.
12245         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12246         1/2/3/4)
12247
12248         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12249         "break" for DBUS_TYPE_NIL, remove @todo
12250
12251 2003-01-31  Havoc Pennington  <hp@pobox.com>
12252
12253         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12254         just set_is_error/get_is_error as this is a commonly-used
12255         function, and write docs.
12256
12257 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12258
12259         * dbus/dbus-address.c: (dbus_address_entry_free):
12260         Free key and value lists.
12261
12262         * dbus/dbus-internals.c: (_dbus_type_to_string):
12263         Add the types we didn't have.
12264
12265         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12266         (_dbus_marshal_validate_arg):
12267         Add NIL types.
12268
12269         * dbus/dbus-message.c: (dbus_message_set_sender):
12270         Remove todo about being able to set sender to NULL.
12271
12272         (dbus_message_set_is_error_reply),
12273         (dbus_message_get_is_error_reply):
12274         * dbus/dbus-message.h:
12275         New functions.
12276
12277         * dbus/dbus-protocol.h:
12278         Add error reply flag.
12279
12280         * test/data/valid-messages/opposite-endian.message:
12281         Add NIL type to test.
12282
12283 2003-01-31  Havoc Pennington  <hp@pobox.com>
12284
12285         * doc/dbus-specification.sgml: fully specify the header.  Add
12286         flags and major protocol version, and change header/body len to
12287         unsigned.
12288
12289         * dbus/dbus-message-builder.c (append_saved_length): append length
12290         as uint32
12291
12292         * dbus/dbus-message.c (dbus_message_create_header): change header
12293         length and body length to unsigned. Add the new fields from the
12294         spec
12295         (_dbus_message_loader_return_buffer): unsigned header/body len
12296
12297 2003-01-30  Havoc Pennington  <hp@pobox.com>
12298
12299         * dbus/dbus-auth.c: rework to use only REJECTED, no
12300         MECHANISMS
12301
12302         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12303         use REJECTED, suggested by Mark McLoughlin
12304
12305 2003-01-30  Havoc Pennington  <hp@pobox.com>
12306
12307         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12308         a better way to report errors here. e.g.  "unix address lacks
12309         path" or something. also "no such file" when the path doesn't
12310         exist, etc.
12311
12312         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12313         leaking list nodes
12314         (dbus_parse_address): add @todo about documenting address format,
12315         and allowing , and ; to be escaped
12316
12317 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12318
12319         * dbus/Makefile.am:
12320         Add dbus-address.[ch]
12321
12322         * dbus/dbus-address.c: (dbus_address_entry_free),
12323         (dbus_address_entries_free), (create_entry),
12324         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12325         (dbus_parse_address), (_dbus_address_test):
12326         * dbus/dbus-address.h:
12327         New files for dealing with address parsing.
12328
12329         * dbus/dbus-connection.c:
12330         Document timeout functions.
12331
12332         * dbus/dbus-message.c:
12333         Document dbus_message_new_from_message.
12334
12335         * dbus/dbus-server-debug.c:
12336         Document.
12337
12338         * dbus/dbus-server.c: (dbus_server_listen):
12339         Parse address and use correct server implementation.
12340
12341         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12342         * dbus/dbus-string.h:
12343         New function with test.
12344
12345         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12346         * dbus/dbus-test.h:
12347         Add address tests.
12348
12349         * dbus/dbus-transport-debug.c:
12350         Document.
12351
12352         * dbus/dbus-transport.c: (_dbus_transport_open):
12353         Parse address and use correct transport implementation.
12354
12355 2003-01-30  Havoc Pennington  <hp@pobox.com>
12356
12357         * dbus/dbus-message.c: use message->byte_order instead of
12358         DBUS_COMPILER_BYTE_ORDER throughout.
12359         (dbus_message_create_header): pad header to align the
12360         start of the body of the message to 8-byte boundary
12361
12362         * dbus/dbus-marshal.h: make all the demarshalers take const
12363         DBusString arguments.
12364
12365         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12366         validate message args here, so we don't have to do slow validation
12367         later, and so we catch bad messages as they are incoming. Also add
12368         better checks on header_len and body_len. Also fill in
12369         message->byte_order
12370
12371         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12372         implemented properly)
12373         (_dbus_string_validate_nul): new function to check all-nul
12374
12375         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12376         get_arg_end_pos and remove all validation
12377         (_dbus_marshal_validate_arg): actually do validation here.
12378
12379 2003-01-29  Havoc Pennington  <hp@pobox.com>
12380
12381         * dbus/dbus-message.c (check_message_handling): fix assertion
12382         failure on set_client_serial
12383
12384 2003-01-28  Havoc Pennington  <hp@pobox.com>
12385
12386         * dbus/dbus-server-debug.c: Add doc section comments
12387
12388         * dbus/dbus-transport-debug.c: add doc section comments
12389
12390 2003-01-28  Havoc Pennington  <hp@redhat.com>
12391
12392         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12393         the reverse order from how I had it
12394         (_dbus_string_base64_encode): reverse encoding order. I was
12395         basically byteswapping everything during encoding.
12396
12397 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12398
12399         * dbus/dbus-connection-internal.h:
12400         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12401         (_dbus_connection_remove_timeout):
12402         Add functions for adding and removing timeouts.
12403
12404         * dbus/dbus-message.c: (dbus_message_new_from_message):
12405         Add new function that takes a message and creates an exact
12406         copy of it, but with the refcount set to 1.
12407         (check_message_handling):
12408         Fix build error.
12409
12410         * dbus/dbus-server-protected.h:
12411         * dbus/dbus-server.c: (_dbus_server_init_base),
12412         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12413         (dbus_server_set_timeout_functions):
12414         (_dbus_server_remove_timeout):
12415         New functions so that a server can add and remove timeouts.
12416
12417         (dbus_server_listen):
12418         Add commented out call to dbus_server_debug_new.
12419
12420         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12421         Actually set the handler, doh.
12422
12423         * dbus/dbus-transport.c: (_dbus_transport_open):
12424         Add commented out call to dbus_transport_debug_client_new.
12425
12426         * dbus/Makefile.am:
12427         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12428
12429 2003-01-28  Havoc Pennington  <hp@pobox.com>
12430
12431         * dbus/dbus-message.c (check_message_handling): function to check
12432         on the loaded message, iterates over it etc.
12433
12434 2003-01-28  Havoc Pennington  <hp@pobox.com>
12435
12436         * test/Makefile.am (dist-hook): fix make distdir
12437
12438         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12439
12440 2003-01-27  Havoc Pennington  <hp@pobox.com>
12441
12442         * dbus/dbus-mempool.c (time_for_size): replace printf with
12443         _dbus_verbose
12444
12445         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12446         empty lines; fix the SAVE_LENGTH stuff to be
12447         START_LENGTH/END_LENGTH so it actually works; couple other
12448         bugfixes
12449
12450         * test/Makefile.am (dist-hook): add dist-hook for .message files
12451
12452         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12453         can be constant or locked.
12454         (_dbus_string_free): allow freeing a const string as
12455         documented/intended
12456
12457         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12458
12459         * dbus/dbus-test-main.c (main): take an argument which is the
12460         directory containing test data
12461
12462         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12463         argument to this and load all the messages in test/data/
12464         checking that they can be loaded or not loaded as appropriate.
12465
12466 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12467
12468         * bus/dispatch.c: (bus_dispatch_message_handler):
12469         Dispatch messages sent to services.
12470
12471         * bus/driver.c: (bus_driver_send_service_deleted),
12472         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12473         (bus_driver_send_service_acquired):
12474         Add helper functions for sending service related messages.
12475
12476         (bus_driver_send_welcome_message):
12477         Send HELLO_REPLY instead of WELCOME.
12478
12479         (bus_driver_handle_list_services):
12480         Send LIST_SERVICES_REPLY instead of SERVICES.
12481
12482         (bus_driver_handle_own_service),
12483         (bus_driver_handle_service_exists):
12484         New message handlers.
12485
12486         (bus_driver_handle_message):
12487         Invoke new message handlers.
12488
12489         (bus_driver_remove_connection):
12490         Don't remove any services here since that's done automatically
12491         by bus_service_remove_owner now.
12492
12493         * bus/driver.h:
12494         New function signatures.
12495
12496         * bus/services.c: (bus_service_add_owner):
12497         Send ServiceAcquired message if we're the only primary owner.
12498
12499         (bus_service_remove_owner):
12500         Send ServiceAcquired/ServiceLost messages.
12501
12502         (bus_service_set_prohibit_replacement),
12503         (bus_service_get_prohibit_replacement):
12504         Functions for setting prohibit replacement.
12505
12506         (bus_service_has_owner):
12507         New function that checks if a connection is in the owner queue of
12508         a certain service.
12509
12510         * bus/services.h:
12511         Add new function signatures.
12512
12513         * dbus/dbus-list.c: (_dbus_list_test):
12514         Add tests for _dbus_list_remove_last and traversing the list backwards.
12515
12516         * dbus/dbus-list.h:
12517         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12518         go any further, so return NULL then.
12519
12520         * dbus/dbus-protocol.h:
12521         Add new messages, service flags and service replies.
12522
12523 2003-01-26  Havoc Pennington  <hp@pobox.com>
12524
12525         * dbus/dbus-message-builder.c: implement, completely untested.
12526
12527         * test/data/*: add data to be used in testing.
12528         ".message" files are our simple loadable text format.
12529         ".message-raw" will be binary dumps of messages.
12530
12531         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12532
12533 2003-01-26  Havoc Pennington  <hp@pobox.com>
12534
12535         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12536
12537         * dbus/dbus-errors.c (dbus_result_to_string): add
12538         file errors
12539
12540         * dbus/dbus-message-builder.c: new file, will contain code to load
12541         up messages from files. Not implemented yet.
12542
12543 2003-01-26  Havoc Pennington  <hp@pobox.com>
12544
12545         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12546         the sender by setting to NULL
12547
12548 2003-01-26  Havoc Pennington  <hp@pobox.com>
12549
12550         The unit tests pass, but otherwise untested.  If it breaks, the
12551         tests should have been better. ;-)
12552
12553         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12554         the connection.
12555
12556         * dbus/dbus-message.c: redo everything so we maintain
12557         message->header as the only copy of the various fields.
12558         This avoids the possibility of out-of-memory in some cases,
12559         for example dbus_message_lock() can't run out of memory anymore,
12560         and avoids extra copying. Figured I may as well go ahead and do
12561         this since it was busted for dbus_message_lock to not return
12562         failure on OOM, and dbus_message_write_header was totally
12563         unchecked for OOM. Also fixed some random other bugs.
12564
12565         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12566         that strings are nul-terminated. Also, end_pos can be equal
12567         to string length just not greater than, I think.
12568         (_dbus_marshal_set_int32): new function
12569         (_dbus_marshal_set_uint32): new function
12570         (_dbus_marshal_set_string): new function
12571
12572         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12573         a warning, init timeout_list to NULL
12574         (dbus_connection_send_message): don't use uninitialized variable
12575         "serial"
12576
12577         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12578
12579 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12580
12581         * bus/driver.c: (bus_driver_handle_hello),
12582         (bus_driver_send_welcome_message):
12583         Plug leaks
12584
12585 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12586
12587         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12588         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12589         (dbus_connection_unref):
12590         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12591         * dbus/dbus-message.c: (dbus_message_unref),
12592         Plug memory leaks.
12593
12594         (dbus_message_get_fields):
12595         Remove debugging printout.
12596
12597         (_dbus_message_loader_return_buffer):
12598         Don't store the header string.
12599
12600         (_dbus_message_test):
12601         Plug leaks.
12602
12603 2003-01-26  Richard Hult  <rhult@codefactory.se>
12604
12605         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12606         the file descriptor list, since it can change under us.
12607
12608 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12609
12610         * glib/dbus-gmain.c: (dbus_connection_prepare),
12611         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12612         (remove_watch), (dbus_connection_hookup_with_g_main):
12613         Rewrite the glib handling to use its own GSource instead of a
12614         GIOChannel so we can catch messages put in the queue while waiting
12615         for a reply.
12616
12617 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12618
12619         * bus/Makefile.am:
12620         * bus/connection.c: (connection_disconnect_handler),
12621         (connection_watch_callback), (bus_connection_setup):
12622         * bus/dispatch.c: (send_one_message),
12623         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12624         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12625         * bus/dispatch.h:
12626         * bus/driver.c: (bus_driver_send_service_deleted),
12627         (bus_driver_send_service_created), (bus_driver_handle_hello),
12628         (bus_driver_send_welcome_message),
12629         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12630         (bus_driver_handle_message):
12631         * bus/driver.h:
12632         Refactor code, put the message dispatching in its own file. Use
12633         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12634         is disconnected.
12635
12636 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12637
12638         * dbus/dbus-internals.h:
12639         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12640
12641         * dbus/dbus-message.c: (dbus_message_get_sender):
12642         * dbus/dbus-message.h:
12643         Implement dbus_message_get_sender.
12644
12645         * dbus/dbus-protocol.h:
12646         Add message and service defines.
12647
12648 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12649
12650         * dbus/dbus-connection.c: (dbus_connection_send_message):
12651         * dbus/dbus-message-internal.h:
12652         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12653         (dbus_message_write_header):
12654         Remove _dbus_messag_unlock and don't set the client serial on a
12655         message if one already exists.
12656
12657 2003-01-24  Havoc Pennington  <hp@pobox.com>
12658
12659         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12660         list_pool
12661
12662         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12663         on OOM
12664
12665 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12666
12667         * dbus/dbus-list.c: (alloc_link), (free_link):
12668         Use a memory pool for the links.
12669
12670 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12671
12672         * bus/connection.c: (bus_connection_foreach):
12673         * bus/connection.h:
12674         Add new bus_connection_foreach function.
12675
12676         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12677         Add function that broadcasts a message to all clients.
12678
12679         (bus_driver_send_service_created), (bus_driver_handle_hello),
12680         (bus_driver_send_welcome_message),
12681         (bus_driver_handle_list_services), (bus_driver_message_handler):
12682         Implement functions that take care of listing services, and notifying
12683         clients when new services are created.
12684
12685         * bus/services.c: (bus_services_list):
12686         * bus/services.h:
12687         Add new function that returns an array of strings with the currently
12688         registered services.
12689
12690         * glib/dbus-glib.h:
12691         * glib/dbus-gmain.c:
12692         Update copyright year.
12693
12694 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12695
12696         * dbus/dbus-connection.c: (dbus_connection_send_message):
12697         Unlock the message in case it was sent earlier.
12698
12699         (dbus_connection_send_message_with_reply_and_block):
12700         Remove the reply message from the list.
12701
12702         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12703         Set array_len and new_pos correctly.
12704
12705         (_dbus_marshal_test):
12706         Remove debug output.
12707
12708         * dbus/dbus-message-internal.h:
12709         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12710         New function that returns the reply serial.
12711
12712         (_dbus_message_unlock):
12713         New function that unlocks a message and resets its header.
12714
12715         (dbus_message_append_string_array),
12716         (dbus_message_get_fields_valist),
12717         (dbus_message_iter_get_field_type),
12718         (dbus_message_iter_get_string_array),
12719         (dbus_message_get_fields),
12720         (dbus_message_append_fields_valist):
12721         Handle string arrays.
12722
12723         (dbus_message_set_sender):
12724         Make this function public since the bus daemon needs it.
12725
12726         (decode_header_data):
12727         Set the reply serial to -1 initially.
12728
12729         * dbus/dbus-message.h:
12730         Add dbus_message_set_sender.
12731
12732 2003-01-24  Havoc Pennington  <hp@pobox.com>
12733
12734         * doc/dbus-specification.sgml: add some stuff
12735
12736 2003-01-22  Havoc Pennington  <hp@pobox.com>
12737
12738         * doc/dbus-specification.sgml: Start to document the protocol.
12739
12740 2003-01-22  Havoc Pennington  <hp@pobox.com>
12741
12742         * dbus/dbus-connection.c
12743         (dbus_connection_send_message_with_reply_and_block): add some @todo
12744
12745         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12746
12747 2003-01-21  Havoc Pennington  <hp@pobox.com>
12748
12749         (patch untested because can't compile)
12750
12751         * bus/driver.c (create_unique_client_name): make this function
12752         never recycle client names. Also, caller should initialize
12753         the DBusString.
12754
12755         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12756
12757 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12758
12759         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12760         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12761         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12762         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12763         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12764         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12765         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12766         * dbus/dbus-marshal.h:
12767         * dbus/dbus-protocol.h:
12768         Add support for marshalling and demarshalling integer, double
12769         and string arrays.
12770
12771 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12772
12773         * bus/Makefile.am:
12774         Add driver.[ch]
12775
12776         * bus/connection.c: (connection_disconnect_handler):
12777         Remove the connection from the bus driver's list.
12778
12779         (connection_watch_callback): Dispatch messages.
12780
12781         (free_connection_data): Free connection name.
12782
12783         (bus_connection_setup): Add connection to the bus driver's list.
12784         (bus_connection_remove_owned_service):
12785         (bus_connection_set_name), (bus_connection_get_name):
12786         Add functions for setting and getting the connection's name.
12787
12788         * bus/connection.h:
12789         Add function headers.
12790
12791         * bus/driver.c: (create_unique_client_name),
12792         (bus_driver_handle_hello_message),
12793         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12794         (bus_driver_add_connection), (bus_driver_remove_connection):
12795         * bus/driver.h:
12796         * bus/main.c:
12797         * bus/services.c: (bus_service_free):
12798         * bus/services.h:
12799         New file that handles communication and registreation with the bus
12800         itself.
12801
12802 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12803
12804         * dbus/dbus-connection.c: (dbus_connection_send_message):
12805         Add a new client_serial parameter.
12806
12807         (dbus_connection_send_message_with_reply):
12808         Remove a @todo since we've implemented the blocking function.
12809
12810         (dbus_connection_send_message_with_reply_and_block):
12811         New function that sends a message and waits for a reply and
12812         then returns the reply.
12813
12814         * dbus/dbus-connection.h:
12815         Add new functions.
12816
12817         * dbus/dbus-errors.c: (dbus_result_to_string):
12818         * dbus/dbus-errors.h:
12819         Add new DBUS_RESULT.
12820
12821         * dbus/dbus-message-internal.h:
12822         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12823         (_dbus_message_set_sender), (dbus_message_write_header),
12824         (dbus_message_new_reply), (decode_header_data),
12825         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12826         * dbus/dbus-message.h:
12827         Add new functions that set the reply serial and sender.
12828         Also marshal and demarshal them correctly and add test.
12829
12830         * dbus/dbus-protocol.h:
12831         Add new DBUS_MESSAGE_TYPE_SENDER.
12832
12833         * glib/dbus-glib.h:
12834         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12835         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12836         (dbus_connection_hookup_with_g_main):
12837         * glib/test-dbus-glib.c: (main):
12838         Rewrite to use GIOChannel and remove the GSource crack.
12839
12840         * test/echo-client.c: (main):
12841         * test/watch.c: (check_messages):
12842         Update for changed APIs
12843
12844 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12845
12846         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12847
12848         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12849         Create a DBusTimeoutList.
12850         (dbus_connection_set_timeout_functions): Add new function to
12851         set timeout callbacks
12852
12853         * dbus/dbus-connection.h: Add public DBusTimeout API.
12854
12855         * dbus/dbus-message.c: (dbus_message_get_service):
12856         * dbus/dbus-message.h:  New function.
12857
12858         * dbus/dbus-server.c: Fix small doc typo.
12859
12860         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12861
12862 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12863
12864         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12865         of the string, just as long as specified.
12866
12867 2003-01-19  Havoc Pennington  <hp@pobox.com>
12868
12869         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12870         new function
12871
12872         * dbus/dbus-server.c (dbus_server_set_max_connections)
12873         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12874         keep track of current number of connections, and add API for
12875         setting a max (but haven't implemented enforcing the max yet)
12876
12877 2003-01-18  Havoc Pennington  <hp@pobox.com>
12878
12879         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12880         reading/writing if read_watch != NULL or write_watch != NULL.
12881
12882         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12883         the message loader code to actually load message->header and
12884         message->body into the newly-created message.
12885
12886         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12887         in OOM case
12888
12889         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12890         (dbus_connection_get_max_message_size)
12891         (dbus_connection_set_max_live_messages_size)
12892         (dbus_connection_get_max_live_messages_size): implement some
12893         resource limitation functions
12894
12895         * dbus/dbus-resources.c: new file implementing some of the
12896         resource limits stuff
12897
12898         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12899         missing docs, add @todo to handle OOM etc.
12900
12901         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12902         docs
12903
12904 2003-01-18  Havoc Pennington  <hp@pobox.com>
12905
12906         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12907         connection if it hasn't been already.
12908
12909         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12910         replace with DisconnectFunction.
12911
12912 2003-01-18  Havoc Pennington  <hp@pobox.com>
12913
12914         Building --disable-verbose-mode --disable-asserts --disable-tests
12915         cuts the library from 112K to 45K or so
12916
12917         * configure.in: check for varargs macro support,
12918         add --enable-verbose-mode, --enable-asserts.
12919
12920         * dbus/dbus-internals.h (_dbus_assert): support
12921         DBUS_DISABLE_ASSERT
12922         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12923
12924 2003-01-18  Havoc Pennington  <hp@pobox.com>
12925
12926         * dbus/dbus-test.c: include config.h so that tests actually run
12927
12928         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12929         so the failure mode when that assumption fails will be plenty
12930         obvious.
12931
12932 2003-01-18  Havoc Pennington  <hp@pobox.com>
12933
12934         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12935
12936         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12937         the distribution
12938
12939         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12940         since we don't want to use those in make check
12941
12942 2003-01-15  Havoc Pennington  <hp@redhat.com>
12943
12944         Release 0.2
12945
12946         * NEWS: update
12947
12948 2003-01-15  Havoc Pennington  <hp@redhat.com>
12949
12950         * test/Makefile.am: fix so that test source code ends up in the
12951         distribution on make distcheck
12952
12953 2003-01-15  Havoc Pennington  <hp@redhat.com>
12954
12955         Release 0.1.
12956
12957         * NEWS: update
12958
12959 2003-01-15  Havoc Pennington  <hp@redhat.com>
12960
12961         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12962         fix build when --disable-tests
12963
12964         * Makefile.am (EXTRA_DIST): put HACKING in here
12965
12966         * HACKING: document procedure for making a tarball release.
12967
12968 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12969
12970         * bus/connection.c: (connection_error_handler),
12971         (bus_connection_setup):
12972         * bus/main.c: (main):
12973         Make sure that the DBusConnectionData struct is NULLed
12974         out to prevent a segfault.
12975
12976         * dbus/dbus-errors.c: (dbus_result_to_string):
12977         * dbus/dbus-errors.h:
12978         * dbus/dbus-message.c: (dbus_message_get_fields),
12979         (dbus_message_get_fields_valist), (_dbus_message_test):
12980         * dbus/dbus-message.h:
12981         Make dbus_message_get_fields return a result code so we can
12982         track invalid fields as well as oom.
12983
12984 2003-01-11  Havoc Pennington  <hp@pobox.com>
12985
12986         * configure.in: change --enable-test/--enable-ansi action-if-given
12987         to enable_foo=$enableval instead of enable_foo=yes
12988
12989 2003-01-08  Havoc Pennington  <hp@pobox.com>
12990
12991         * dbus/dbus-string.c (_dbus_string_align_length): new function
12992
12993         * dbus/dbus-test-main.c: move main() for test app here
12994         * dbus/dbus-test.c
12995         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12996         symbol to run tests, because dbus-test isn't in the main
12997         library
12998
12999         Code review nitpicks.
13000
13001         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13002         for people with narrow emacs ;-). Assert client_serial was filled
13003         in. Assert message->name != NULL.
13004         (dbus_message_append_fields): have "first_field_type" arg separate
13005         from va list, needed for C++ binding that also uses varargs IIRC
13006         and helps with type safety
13007         (dbus_message_new): add @todo about using DBusString to store
13008         service/name internally
13009         (dbus_message_new): don't leak ->service and ->name on OOM later
13010         in the function
13011         (dbus_message_unref): free the service name
13012         (dbus_message_get_fields): same change to varargs
13013         i.e. first_field_type
13014         (_dbus_message_loader_return_buffer): assert that the message data
13015         is aligned (if not it's a bug in our code). Put in verbose griping
13016         about why we set corrupted = TRUE.
13017         (decode_header_data): add FIXME that char* is evil.  Was going to
13018         add FIXME about evil locale-specific string.h strncmp, but just
13019         switched to wacky string-as-uint32 optimization. Move check for
13020         "no room for field name" above get_const_data_len() to avoid
13021         assertion failure in get_const_data_len if we have trailing 2
13022         bytes or the like. Check for service and name fields being
13023         provided twice. Don't leak service/name on error. Require field
13024         names to be aligned to 4 bytes.
13025
13026         * dbus/dbus-marshal.c: move byte swap stuff to header
13027         (_dbus_pack_int32): uscore-prefix
13028         (_dbus_unpack_int32): uscore-prefix
13029         (_dbus_unpack_uint32): export
13030         (_dbus_demarshal_string): add @todo complaining about use of
13031         memcpy()
13032         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13033         handling allowing corrupt data to go unchecked
13034
13035 2003-01-08  Havoc Pennington  <hp@redhat.com>
13036
13037         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13038         to the select() as needed for authentication. (should be using
13039         _dbus_poll() not select, but for another day)
13040
13041         * dbus/dbus.h: include dbus/dbus-protocol.h
13042
13043 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13044
13045         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13046         dbus-connection.h
13047
13048 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13049
13050         * dbus/dbus-internals.c: (_dbus_type_to_string):
13051         New function that returns a string describing a type.
13052
13053         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13054         * dbus/dbus-marshal.h:
13055         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13056         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13057         (dbus_message_iter_get_byte_array):
13058         * dbus/dbus-message.h:
13059         Add new convenience functions for appending and getting message fields.
13060         Also add demarshalling routines for byte arrays.
13061
13062 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13063
13064         * dbus/dbus-connection-internal.h:
13065         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13066         (_dbus_connection_get_next_client_serial),
13067         (dbus_connection_send_message):
13068         * dbus/dbus-internals.h:
13069         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13070         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13071         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13072         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13073         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13074         (_dbus_verbose_bytes), (_dbus_marshal_test):
13075         * dbus/dbus-marshal.h:
13076         * dbus/dbus-message-internal.h:
13077         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13078         (dbus_message_write_header), (_dbus_message_lock),
13079         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13080         (dbus_message_get_name), (dbus_message_append_int32),
13081         (dbus_message_append_uint32), (dbus_message_append_double),
13082         (dbus_message_append_string), (dbus_message_append_byte_array),
13083         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13084         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13085         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13086         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13087         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13088         (decode_header_data), (_dbus_message_loader_return_buffer),
13089         (message_iter_test), (_dbus_message_test):
13090         * dbus/dbus-message.h:
13091         * dbus/dbus-protocol.h:
13092         * dbus/dbus-test.c: (main):
13093         * dbus/dbus-test.h:
13094         * glib/test-dbus-glib.c: (message_handler), (main):
13095         * test/echo-client.c: (main):
13096         * test/watch.c: (check_messages):
13097         Make messages sendable and receivable for real.
13098
13099 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13100
13101         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13102         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13103         * dbus/dbus-message.c: (dbus_message_append_int32),
13104         (dbus_message_append_uint32), (dbus_message_append_double),
13105         (dbus_message_append_string), (dbus_message_append_byte_array):
13106         Handle OOM restoration.
13107
13108 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13109
13110         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13111         (_dbus_demarshal_string), (_dbus_marshal_test):
13112         * dbus/dbus-marshal.h:
13113         * dbus/dbus-message.c: (dbus_message_get_name),
13114         Document these functions.
13115
13116         (dbus_message_append_int32), (dbus_message_append_uint32),
13117         (dbus_message_append_double), (dbus_message_append_string),
13118         (dbus_message_append_byte_array):
13119         * dbus/dbus-message.h:
13120         Add functions for adding message fields of different types.
13121
13122         * dbus/dbus-protocol.h:
13123         Add the different types.
13124
13125 2003-01-05  Havoc Pennington  <hp@pobox.com>
13126
13127         * bus/connection.c: implement routines for handling connections,
13128         first thing is keeping a list of owned services on each connection
13129         and setting up watches etc.
13130
13131         * bus/services.c: implement a mapping from service names to lists
13132         of connections
13133
13134         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13135
13136         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13137         to use static mutexes for global data
13138
13139         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13140         collection of functions to set/get application-specific data
13141         on the DBusConnection.
13142
13143 2003-01-04  Havoc Pennington  <hp@pobox.com>
13144
13145         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13146         (_dbus_poll): new function
13147
13148         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13149         copied from GLib
13150
13151         * bus/loop.c: initial code for the daemon main loop
13152
13153 2003-01-04  Havoc Pennington  <hp@pobox.com>
13154
13155         * test/watch.c (error_handler): make it safe if the error handler
13156         is called multiple times (if we s/error handler/disconnect
13157         handler/ we should just guarantee it's called only once)
13158
13159         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13160         error handler on disconnect (it's quite possible we should
13161         just change the error handler to a "disconnect handler," I'm
13162         not sure we have any other meaningful errors)
13163
13164         * configure.in: check for getpwnam_r
13165
13166         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13167         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13168         mechanism as in SASL spec, using socket credentials
13169
13170         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13171         (_dbus_send_credentials_unix_socket): new function
13172
13173         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13174         dbus_accept()
13175         (_dbus_write): only check errno if <0 returned
13176         (_dbus_write_two): ditto
13177
13178 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13179
13180         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13181         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13182         (_dbus_marshal_test):
13183         * dbus/dbus-marshal.h:
13184         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13185         to _dbus_marshal_utf8_string. Also fix some tests.
13186
13187 2002-12-28  Harri Porten  <porten@kde.org>
13188
13189         * configure.in: added check for C++ compiler and a very cheesy
13190         check for the Qt integration
13191
13192         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13193
13194         * qt/Makefile.am: added
13195
13196         * qt/.cvsignore: added
13197
13198         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13199         latter, added #ifdef QT_THREAD_SUPPORT guard.
13200
13201         * dbus/Makefile.am: added missing headers for make dist
13202
13203 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13204
13205         * dbus/Makefile.am: fixup export-symbols-regex.
13206
13207 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13208
13209         * acinclude.m4: Add this file and put the
13210         PKG_CHECK_MODULE macro in it.
13211
13212 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13213
13214         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13215         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13216         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13217         (_dbus_marshal_test):
13218         Make the demarshalling routines align the pos argument.
13219         Add string marshalling tests and fix the obvious bugs
13220         discovered.
13221
13222 2002-12-26  Havoc Pennington  <hp@pobox.com>
13223
13224         * dbus/dbus-auth.c: fixes fixes fixes
13225
13226         * dbus/dbus-transport-unix.c: wire up support for
13227         encoding/decoding data on the wire
13228
13229         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13230         (_dbus_auth_decode_data): append to target string
13231         instead of nuking it.
13232
13233 2002-12-26  Havoc Pennington  <hp@pobox.com>
13234
13235         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13236         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13237         doh
13238
13239         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13240         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13241         now). Main point is because I wanted unpack_uint32 to implement
13242         _dbus_verbose_bytes
13243         (_dbus_verbose_bytes): new function
13244
13245         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13246
13247         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13248         mechanism to handle a corrupt message stream
13249         (_dbus_message_loader_new): fix preallocation to only prealloc,
13250         not prelengthen
13251
13252         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13253         (_dbus_string_test): enhance tests for copy/move and fix the
13254         functions
13255
13256         * dbus/dbus-transport-unix.c: Hold references in more places to
13257         avoid reentrancy problems
13258
13259         * dbus/dbus-transport.c: ditto
13260
13261         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13262         leak reference count in no-message case
13263
13264         * test/watch.c (do_mainloop): handle adding/removing watches
13265         during iteration over the watches. Also, ref the connection/server
13266         stored on a watch, so we don't try to mangle a destroyed one.
13267
13268         * dbus/dbus-transport-unix.c (do_authentication): perform
13269         authentication
13270
13271         * dbus/dbus-auth.c (get_state): add a state
13272         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13273         (_dbus_auth_get_unused_bytes): append the unused bytes
13274         to the passed in string, rather than prepend
13275
13276         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13277         the auth conversation DBusAuth
13278
13279         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13280         (_dbus_transport_new_for_domain_socket): when creating a
13281         transport, pass in whether it's a client-side or server-side
13282         transport so we know which DBusAuth to create
13283
13284 2002-12-03  Havoc Pennington  <hp@pobox.com>
13285
13286         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13287         _after_ finalizing the derived members
13288         (unix_connection_set): unref watch if we fail to add it
13289
13290         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13291         transport first, so that the connection owned by the
13292         transport will be valid as the transport finalizes.
13293
13294         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13295         if necessary, and remove watches from the connection.
13296
13297         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13298
13299 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13300
13301         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13302         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13303         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13304         (_dbus_marshal_test):
13305         * dbus/dbus-marshal.h:
13306         Add string marshal functions and have the demarshal functions
13307         return the new position.
13308
13309 2002-12-25  Havoc Pennington  <hp@pobox.com>
13310
13311         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13312         it is a simple protocol that just maps directly to SASL.
13313
13314         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13315         initial implementation, not actually used yet.
13316
13317         * dbus/dbus-string.c (_dbus_string_find): new function
13318         (_dbus_string_equal): new function
13319         (_dbus_string_base64_encode): new function
13320         (_dbus_string_base64_decode): new function
13321
13322 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13323
13324         * dbus/Makefile.am:
13325         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13326         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13327         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13328         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13329         * dbus/dbus-marshal.h:
13330         * dbus/dbus-protocol.h:
13331         * dbus/dbus-test.c: (main):
13332         * dbus/dbus-test.h:
13333         Add un-optimized marshalling/demarshalling routines.
13334
13335 2002-12-25  Harri Porten  <porten@kde.org>
13336
13337         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13338
13339 2002-12-24  Zack Rusin  <zack@kde.org>
13340
13341         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13342         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13343         main loop stuff
13344
13345 2002-12-24  Havoc Pennington  <hp@pobox.com>
13346
13347         * glib/dbus-gthread.c: fix include
13348
13349         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13350         I think glib API needs to change, though, as you don't
13351         want to use DBusMessageFunction, you want to use the
13352         DBusMessageHandler object. Probably
13353         dbus_connection_open_with_g_main_loop()
13354         and dbus_connection_setup_g_main_loop() or something like that
13355         (but think of better names...) that just create a connection
13356         that has watch/timeout functions etc. already set up.
13357
13358         * dbus/dbus-connection.c
13359         (dbus_connection_send_message_with_reply): new function just to
13360         show how the message handler helps us deal with replies.
13361
13362         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13363
13364         * dbus/dbus-string.c (_dbus_string_test): free a string that
13365         wasn't
13366
13367         * dbus/dbus-hash.c: use memory pools for the hash entries
13368         (rebuild_table): be more paranoid about overflow, and
13369         shrink table when we can
13370         (_dbus_hash_test): reduce number of sprintfs and write
13371         valid C89. Add tests for case where we grow and then
13372         shrink the hash table.
13373
13374         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13375
13376         * dbus/dbus-connection.c (dbus_connection_register_handler)
13377         (dbus_connection_unregister_handler): new functions
13378
13379         * dbus/dbus-message.c (dbus_message_get_name): new
13380
13381         * dbus/dbus-list.c: fix docs typo
13382
13383         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13384         an object representing a handler for messages.
13385
13386 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13387
13388         * glib/dbus-glib.h:
13389         * glib/dbus-gthread.c: (dbus_gthread_init):
13390         Don't use the gdbus prefix for public functions.
13391
13392 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13393
13394         * Makefile.am:
13395         * configure.in:
13396         Add GLib checks and fixup .pc files
13397
13398         * glib/Makefile.am:
13399         * glib/dbus-glib.h:
13400         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13401         (gdbus_connection_check), (gdbus_connection_dispatch),
13402         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13403         (dbus_connection_gsource_new):
13404         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13405         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13406         * glib/test-dbus-glib.c: (message_handler), (main):
13407         Add GLib support.
13408
13409 2002-12-15  Harri Porten  <porten@kde.org>
13410
13411         * autogen.sh: check for libtoolize before attempting to use it
13412
13413         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13414         struct.
13415
13416         * .cvsignore: ignore more stamp files
13417
13418         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13419
13420         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13421         without make install.
13422
13423 2002-12-15  Havoc Pennington  <hp@pobox.com>
13424
13425         * dbus/dbus-threads.c: add thread stubs that a higher library
13426         layer can fill in. e.g. the GLib wrapper might fill them in with
13427         GThread stuff. We still need to use this thread API to
13428         thread-safe-ize the library.
13429
13430 2002-12-12  Havoc Pennington  <hp@pobox.com>
13431
13432         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13433         below new interfaces and include fewer system headers.
13434
13435         * dbus/dbus-sysdeps.c (_dbus_read): new function
13436         (_dbus_write): new function
13437         (_dbus_write_two): new function
13438         (_dbus_connect_unix_socket): new function
13439         (_dbus_listen_unix_socket): new function
13440
13441         * dbus/dbus-message-internal.h: change interfaces to use
13442         DBusString
13443
13444 2002-12-11  Havoc Pennington  <hp@pobox.com>
13445
13446         * dbus/dbus-types.h: add dbus_unichar
13447
13448         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13449
13450         * dbus/dbus-connection.c (dbus_connection_send_message): return
13451         TRUE on success
13452
13453         * dbus/dbus-transport.c: include dbus-watch.h
13454
13455         * dbus/dbus-connection.c: include dbus-message-internal.h
13456
13457         * HACKING: add file with coding guidelines stuff.
13458
13459         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13460         handling here, for security purposes (as in vsftpd). Not actually
13461         using this class yet.
13462
13463         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13464         system/libc usage here, as in vsftpd, for ease of auditing (and
13465         should also simplify portability). Haven't actually moved all the
13466         system/libc usage into here yet.
13467
13468 2002-11-25  Havoc Pennington  <hp@pobox.com>
13469
13470         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13471         always print the first verbose message.
13472
13473 2002-11-24  Havoc Pennington  <hp@pobox.com>
13474
13475         * test/echo-client.c, test/echo-server.c: cheesy test
13476         clients.
13477
13478         * configure.in (AC_CHECK_FUNCS): check for writev
13479
13480         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13481         function
13482
13483         * dbus/dbus-list.c (_dbus_list_foreach): new function
13484
13485         * dbus/dbus-internals.c (_dbus_verbose): new function
13486
13487         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13488         representing a server that listens for connections.
13489
13490         * dbus/.cvsignore: create
13491
13492         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13493         public API for reporting errors
13494
13495         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13496         public object representing a connection that
13497         sends/receives messages. (Same object used for
13498         both client and server.)
13499
13500         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13501         Basic abstraction for different kinds of stream
13502         that we might read/write messages from.
13503
13504 2002-11-23  Havoc Pennington  <hp@pobox.com>
13505
13506         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13507         _DBUS_INT_MAX
13508
13509         * dbus/dbus-test.c (main): add list test, and include
13510         dbus-test.h as intended
13511
13512         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13513         (_dbus_hash_table_remove_int): return value indicates
13514         whether the entry existed to remove
13515
13516         * dbus/dbus-list.c: add linked list utility class,
13517         with docs and tests
13518
13519         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13520         array sometimes.
13521
13522 2002-11-23  Havoc Pennington  <hp@pobox.com>
13523
13524         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13525         DBUS_END_DECLS to nothing, that should fix this once and for all
13526
13527         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13528
13529         * dbus/dbus-message.c, dbus/dbus-hash.c:
13530         add some missing @brief
13531
13532 2002-11-23  Havoc Pennington  <hp@pobox.com>
13533
13534         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13535         to avoid confusing Doxygen
13536
13537         * dbus/dbus-hash.c: @} not }@
13538
13539         * dbus/dbus-message.c (struct DBusMessage): split out
13540         internals docs
13541
13542 2002-11-23  Havoc Pennington  <hp@pobox.com>
13543
13544         * configure.in: pile on more warning flags if using gcc
13545
13546         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13547         to document static functions
13548
13549         * configure.in: add summary to end of configure so it
13550         looks nice and attractive
13551
13552         * dbus/dbus-hash.c: finish implementation and write unit
13553         tests and docs
13554
13555         * configure.in: add --enable-tests to enable unit tests
13556
13557         * dbus/dbus-test.c: test program to run unit tests
13558         for all files in dbus/*, initially runs a test for
13559         dbus-hash.c
13560
13561         * dbus/dbus-internals.h: file to hold some internal utility stuff
13562
13563 2002-11-22  Havoc Pennington  <hp@redhat.com>
13564
13565         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13566         "ported" away from Tcl
13567
13568         * dbus/dbus-types.h: header for types such as dbus_bool_t
13569
13570 2002-11-22  Havoc Pennington  <hp@redhat.com>
13571
13572         * dbus/dbus.h: fixups for doc warnings
13573
13574         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13575         macros
13576         (QUIET): make it quiet so we can see warnings
13577
13578         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13579
13580 2002-11-22  Havoc Pennington  <hp@redhat.com>
13581
13582         * Makefile.am: include "Doxyfile" target in all-local
13583
13584         * configure.in: generate the Doxyfile
13585
13586         * Doxyfile.in: move Doxyfile here, so we can use
13587         configure to generate a Doxyfile with the right
13588         version number etc.
13589
13590 2002-11-22  Havoc Pennington  <hp@redhat.com>
13591
13592         * dbus/dbus-message.c: move inline docs into .c file
13593
13594         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13595         so all docs are under doc/
13596         (MAN_EXTENSION): generate man pages. Use extension
13597         ".3dbus" which matches ".3qt" on my system,
13598         I guess this is OK, I don't know really.
13599         (FILE_PATTERNS): look for .c files not .h, makes sense
13600         for plain C I think
13601
13602 2002-11-22  Havoc Pennington  <hp@pobox.com>
13603
13604         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13605         because any app can be a server, and any app can be a client,
13606         the bus is a special kind of server.
13607
13608 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13609
13610         * Doxyfile : adding. Still needs Makefile rules to be generated
13611         automatically (just run "doxygen" in the toplevel dir for now to
13612         generate docs)
13613
13614         * dbus/dbus-message.h : Adding sample docs (javadoc since
13615         resembles gtk-doc a little more)
13616
13617         * dbus/dbus.h : Adding sample docs
13618
13619 2002-11-21  Havoc Pennington  <hp@redhat.com>
13620
13621         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13622         so we can allow ourselves to include files directly,
13623         instead of having to use dbus.h
13624
13625         * dbus/dbus.h: fill in
13626
13627         * dbus/dbus-message.h: sketch out a sample header file.
13628         Include griping if you include it directly instead of
13629         via dbus.h
13630
13631         * dbus/dbus-macros.h: new file with macros for extern "C",
13632         TRUE/FALSE, NULL, etc.
13633
13634         * doc/file-boilerplate.c: put include guards in here
13635
13636 2002-11-21  Havoc Pennington  <hp@redhat.com>
13637
13638         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13639
13640         * COPYING: include the GPL as well, and license code
13641         under both AFL and GPL.
13642
13643 2002-11-21  Havoc Pennington  <hp@redhat.com>
13644
13645         * acconfig.h: get rid of this
13646
13647         * autogen.sh (run_configure): add --no-configure option
13648
13649         * configure.in: remove AC_ARG_PROGRAM to make
13650         autoconf complain less. add AC_PREREQ.
13651         add AC_DEFINE third arg.
13652
13653 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13654
13655         * doc/Makefile.am:
13656         Fix references so we can distcheck.
13657
13658 2002-11-21  Havoc Pennington  <hp@redhat.com>
13659
13660         * Initial module creation
13661