Patch from Timo Hoenig <thoenig@suse.de>.
[platform/upstream/dbus.git] / ChangeLog
1 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
2
3         Patch from Timo Hoenig <thoenig@suse.de>.
4
5         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
6         required during build to EXTRA_DIST.
7         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
8         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
9         * configure.in: Fix "make dist", take care that the Makefile for
10         qt/dbus is being generated.
11
12 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
13
14         * bus/bus.c: Fix eavesdropping on method calls
15
16 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
17
18         * configure.in:
19         * dbus/dbus-userdb-util.c:
20         Add Solaris console owner patch from Artem Kachitchkine
21
22 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
23
24         * qt/Makfile.am:
25         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
26         reorganisation. Thanks to Timo Hoenig for pointing this out.
27
28 2006-06-06  Robert McQueen  <robot101@debian.org>
29
30         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
31           call to dbus_g_type_get_struct.
32
33 2006-06-06  Robert McQueen  <robot101@debian.org>
34
35         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
36           pointers were put into a GPtrArray-based specialised collection, and
37           then freed along with the array. GValues which you add into
38           collections or maps which have the NOCOPY flag set are assumed to not
39           belong to the caller, so rather than the existing pointer-stealing
40           semantics, they are copied instead. Given that the main consumers of
41           this abstraction are the bindings themselves, I don't think this is
42           too bad, but others should watch their choice of take vs set_static.
43
44 2006-06-06  Robert McQueen  <robot101@debian.org>
45
46         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
47           of g_slist_prepend not being used. Fixed copying of slist-based
48           specialised collections, then wrote a test case and found that it was
49           all broken. Went on to fix iterating and appending too. Good thing
50           nobody uses this code yet.
51
52 2006-06-06  Robert McQueen  <robot101@debian.org>
53
54         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
55           the iterators use gvalue_take_ptrarray_value (the GValues themselves
56           are discarded without unsetting, so it makes no difference whether
57           we take or set_static). Remove cases for G_TYPE_POINTER because
58           there really is nothing useful we can do with them in our
59           specialised types - we *need* boxed copy/free functions at the very
60           least.
61
62 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
63
64         * qt/dbus: Add directory. I had forgotten to add this
65         yesterday after the move...
66
67         * qt/examples/Makefile.am:
68         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
69
70         * qt/tools/Makefile.am:
71         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
72         Added feature to get and set properties.
73         Added validation of service, object path and interface names.
74
75         * qt/tools/dbusidl2cpp.cpp: Two new features:
76         1) Allow specifying both the header and the source file names,
77         by separating them with a colon.
78         2) Don't write an interface output if the -p switch wasn't
79         given, but the -a was.
80
81         * qt/src/*: Fix usage of Iterators and ConstIterators.
82         Fix shadowing of variables by other variables (-Wshadow).
83         Fix keyword-cleanliness in headers.
84         Fix ASCII-cast (QLatin1String, QLatin1Char).
85         Fix validation of member names.
86         Add extra checking of introspection data during XML parsing.
87         Various bug fixes.
88
89 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
90
91         * dbus/Makefile.am:
92         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
93         qt/dbus/qdbus.h now.
94
95 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
96
97         * configure.in: Make --disable-qt actually do
98           something. Patch inspired by Zack Rusin.
99
100 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
101
102         * qt/: Update to Subversion r548032.
103         This includes a big reorganisation of the files inside the
104         subdir.
105
106 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
107
108         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
109         clear:  
110         "Failed to connect to socket <host>:<port> <error>" instead of
111         "Failed to connect to socket <host>: <error>:<port>"
112
113         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
114         for a tcp transport. 
115
116 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
117
118         * qt/*: Update the QtDBus bindings up to revision 546310 in
119         Subversion.
120         This adds the dbuscpp2xml tool, that parses a C++ header and
121         outputs a D-BUS Introspection XML.
122
123 2006-05-21  Havoc Pennington  <hp@redhat.com>
124
125         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
126         is not NULL when it shouldn't be. Also a couple of possible fixes
127         for #4637 though I don't understand why the bug happens, to be
128         honest... also the object constructor has an assert name != NULL
129         and the name is only currently NULL for peer-to-peer proxies that 
130         I don't think anyone uses? So it should be asserting.
131         Anyway, for now at least see if we get an earlier assertion failure.
132
133         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
134         apparently broken code to be sure the tests fail and someone 
135         will fix them...
136
137 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
138
139         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
140         and arrays when they had a single element: has_next returns
141         false, even before you read the element. So, instead, check
142         the array length.
143
144 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
145
146         * qt/qdbusmessage.cpp:
147         * qt/qdbustypehelper_p.h:
148         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
149         the list is a const-reference
150
151 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
152
153         * Adding old doc patch that never got applied
154         
155         * dbus/bus.c (dbus_bus_add_match): Add documentation
156
157         * doc/dbus-specification.xml: Add documentation for the match rules
158           and the AddMatch and RemoveMatch methods
159
160 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
161
162         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
163         call (r535506)
164
165         * qt/dbusidl2cpp.cpp:
166         * qt/qdbusabstractadaptor.cpp:
167         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
168         sibling of the QDBusAbstractAdaptor objects instead of the
169         parent. (r535848)
170
171         * qt/dbusidl2cpp.cpp:
172         * qt/qdbusabstractinterface.cpp:
173         * qt/qdbusabstractinterface.h:
174         * qt/qdbusabstractinterface_p.h:
175         * qt/qdbusinterface.cpp: Make properties in interfaces
176         actually work. The code that was generated would not compile,
177         due to moc calls to functions that did not exist. They now
178         shall. (r536571)
179
180 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
181
182         * Makefile.am:
183         * configure.in:
184         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
185         Thanks to Brad Hards for providing the patch
186
187 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
188
189         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
190         call. (r535506)
191
192 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
193
194         * qt/examples/dbus.cpp: Enhance error messages and use
195         QDBusInterfacePtr.
196
197 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
198
199         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
200         and disable the copy operators. (r533772, r534746)
201
202         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
203
204         * qt/qdbusabstractinterface.cpp:
205         * qt/qdbusabstractinterface.h: Change the default call mode to
206         not use the event loop. Add convenience call() methods that
207         take a CallMode parameter. (r534042)
208
209         * qt/qdbusconnection.h: Change the default call mode to not
210         use the event loop. (r534042)
211
212         * qt/qdbusinterface.cpp:
213         * qt/qdbusinterface.h: Add a method to tell us if the
214         interface is valid (since we don't return a null pointer
215         anymore) (r534099)
216
217         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
218         (r534101)
219
220         * qt/qdbusinternalfilters.cpp: Decouple the introspection
221         function in two so taht we get the chance to introspect
222         without having a QDBusMessage (r534102)
223
224         * qt/qdbusbus.h:
225         * qt/qdbusconnection.cpp:
226         * qt/qdbusconnection_p.h:
227         * qt/qdbusintegrator.cpp: Keep a list of our own names to
228         avoid a round-trip to the server when attempting to introspect
229         one of our own objects. Also make sure the filter functions
230         match the empty interface as well. (r534108)
231         Don't keep the connection names. Instead, trust the unique
232         connection name (r534111)
233         Remove event loop usage (r534112)
234
235 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
236
237         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
238         Brad Hards.
239
240 2006-04-28  Robert McQueen  <robot101@debian.org>
241
242         * glib/dbus-gproxy.c: Fix properties so that they can be given in
243         any order, making it easier for people who inherit from this
244         object.
245
246 2006-04-28  Robert McQueen  <robot101@debian.org>
247
248         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
249         of memory from within pointer arrays and lists. Fixes bug #6300.
250
251 2006-04-28  Robert McQueen  <robot101@debian.org>
252
253         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
254         generating struct signatures. Fixes bug #6083.
255
256 2006-04-28  Robert McQueen  <robot101@debian.org>
257
258         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
259         to qdbusconnection_p.moc.
260
261 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
262
263         * README, INSTALL: Doc fixes
264         Patch from Brad Hards <bradh at frogmouth.net>
265
266 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
267
268         * qt/examples/dbus.cpp: Use the new merged-interface mode for
269         the dynamic meta object. No need to guess which interface to
270         call.
271
272 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
273
274         * qt/qdbusconnection_p.h:
275         * qt/qdbusmetaobject.cpp:
276         * qt/qdbusmetaobject_p.h:
277         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
278         for the dynamic meta object. No need to guess which
279         interface to call.
280         * qt/qdbusabstractinterface_p.h:
281         * qt/qdbusconnection.cpp:
282         * qt/qdbusintegrator.cpp:
283         * qt/qdbusinterface.cpp:
284         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
285         Add a QDBusRef that looks and behaves like DCOPRef.
286
287 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
288
289         * dbus/dbus-connection.c: Interfaces are optional in method
290         calls, so don't give up if the interface parameter is NULL.
291         Patch reviewed by Havoc Pennington.
292
293 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
294
295         * qt/qdbusreply.h: Add default constructor and operator=
296           (r532625)
297         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
298           in public headers (r532952)
299         * qt/qdbusabstractinterface.cpp:
300         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
301           make it the default (r532951)
302
303 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
304
305         * dbus/dbus-connection.c: Fix asserts
306         Patch from Tim Moloney <t.moloney at verizon.net>
307
308 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
309
310         * mono/Connection.cs, mono/Message.cs: Check Target type
311         Patch from Aaron Bockover (abockover at novell.com)
312
313 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
314
315         * INSTALL: fine-tune the requirements for the Qt4 binding.
316
317 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
318
319         * tools/dbus-print-message.c: Added support for printing of all 
320           remaining data types. Fixed logic for indentation of compound
321           data types.
322         
323 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
324
325         * INSTALL: fill out content of file providing DBus specific
326           build installations, followed by generic Auto* INSTALL file
327           content
328         
329 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
330
331         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
332           Patch by Stefan Eilers. (r529537)
333
334 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
335
336         * qt/qdbusinternalfilters.cpp: Don't show the parent's
337           contents (r528208)
338
339 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
340
341         * qt/Makefile.am: fix the dependency for
342           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
343           not in qdbusconnection.cpp.
344           Thanks to Jakub Stachowski <stachowski@hypair.net> for
345           spotting this.
346
347 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
348
349         * qt/examples/listnames.cpp:
350         * qt/examples/Makefile.am: Three ways to list the names on the
351           bus.
352
353 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
354
355         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
356           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
357
358 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
359
360         Merge from Subversion:
361         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
362           something that exists (r526315)
363         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
364           slots/signals (r526316)
365         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
366           also return an unknown-method error if the parameters don't
367           match for org.freedesktop.DBus.Properties. (r526842)
368         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
369         * qt/qdbusintegrator.cpp: Restore the proper order of
370           delivery: don't make method returns be delivered on priority
371           (r528150)
372
373 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
374
375         * configure.in qt/Makefile.am: add qt/examples
376         * qt/examples: Add QtDBus example programs:
377           - hello: Hello, World
378           - ping: Simple method-calling program
379           - pong: Simple object-exporting program (not using adaptors)
380           - complexping: Interactive method-calling program 
381                 (also gets and sets properties).
382           - complexpong: Sample program exporting methods, signals and
383                 properties, using adaptors.
384           - dbus: Simple implementation of a generic method-calling
385                 program, similar to 'dbus-send', but with semantics
386                 similar to 'dcop'.
387           - chat: Simplistic chat program, implemented using signals
388                 and the system bus. Looks like IRC.
389
390 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
391
392         * configure.in: Detect QtGui (necessary for one of the
393           example programs). Note: this increases the minimum required
394           version of Qt to 4.1.3.
395
396 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
397
398         * test/qt/*: Sync with KDE Subversion revision 523647.
399         Update the testcases to the new API. Remove testcases for
400         classes that are no longer public or have been removed.
401
402 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
403
404         * qt/*: 
405         * dbus/qdbus.h: Sync with KDE Subversion revision
406         523647. Hopefully, this will be the last of the
407         source-incompatible changes. Documentation has been improved;
408         support for QList<basic-types> has been added; QDBusObject is
409         gone; QDBus(Abstract)Interface is now a QObject with
410         auto-generated meta-object; QDBusIntrospection is marked
411         private, since QMetaObject can be used now; lots of bugfixes.
412
413 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
414
415         Patch from Milosz Derezynski <internalerror at gmail.com>
416         
417         * configure.in:
418         Output the service directory in the configure summary
419
420         * dbus-1.pc.in:
421         Add session_bus_services_dir
422
423 2006-03-10  Ross Burton  <ross@openedhand.com>
424
425         * tools/dbus-print-message.c:
426         Add support for object paths and signatures.
427
428 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
429
430         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
431         config reload.
432         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
433         information caches
434         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
435         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
436         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
437         * dbus/dbus-userdb.h: Add function to flush all user/group information
438         caches.
439
440 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
441
442         * qt/dbusidl2cpp.cpp:
443         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
444         for dcopidl2cpp, found in the KDE installations (or the more
445         modern kalyptus): generate Qt4 C++ code for the input XML
446         introspection. Currently no IDL parsing.
447
448 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
449
450         * test/qt/*: Update the self-tests.
451
452 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
453
454         * qt/*: 
455         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
456         represents the first feature-complete version of the Qt4
457         bindings since I took ove maintainership.
458
459 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
460
461         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
462         dir. This is C++, so we can't use the DBus ones.
463
464 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
465
466         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
467         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
468
469 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
470
471         * dbus/dbus-connection.c: 
472         (_dbus_connection_block_pending_call):
473         Check to see if our data has already been read off the connection
474         by another blocking pending call before we block in poll.
475         (check_for_reply_and_update_dispatch_unlocked):
476         Code taken from _dbus_connection_block_pending_call - checks for
477         an already read reply and updates the dispatch if there is one.
478
479         * test/name-test/test-pending-call-dispatch.c:
480         New test for making sure we don't get stuck polling a 
481         dbus connection which has no data on the socket when
482         blocking out of order on two or more pending calls.
483
484 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
485
486         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
487         make/automake don't detect that we're talking about the same
488         .lo file if I specify the full path to the source files.
489
490 2006-02-26  Havoc Pennington  <hp@redhat.com>
491
492         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
493
494         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
495         session bus variable is unset, suggest "man dbus-launch" and "man
496         dbus-daemon" to figure out how to fix the problem
497
498 2006-02-25  Havoc Pennington  <hp@redhat.com>
499
500         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
501         should make this thing use the new glib options parser
502
503 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
504
505         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
506         .lo files taking moc sources.
507
508 2006-02-25  Havoc Pennington  <hp@redhat.com>
509
510         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
511         and install it as a public header
512
513 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
514
515         * Released 0.61
516
517 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
518         
519         * proxies.py: Fix the callchain
520
521 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
522         
523         * patch from Sjoerd Simons <sjoerd at debian.org>:      
524
525         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
526         dbus/dbus-sysdeps.c
527
528         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
529         call _dbus_group_info_free_allocated which causes infinite loop,
530         correctly call _dbus_group_info_free
531
532 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
533
534         * qt/qdbusinterface_p.h:
535         * qt/qdbusinterface.cpp: Use the standard
536         org.freedesktop.DBus.Method.NoReply annotation for the "async"
537         calls instead of creating one for us.
538
539         * qt/qdbusconnection_p.h:
540         * qt/qdbusintegrator.cpp: Remove debugging code.
541
542         * qt/qdbusintegrator.cpp:
543         * qt/qdbusmessage.cpp:
544         * qt/qdbusmessage_p.h:
545         * qt/qdbusmessage.h: Change the behaviour of automatic
546         reply-sending: now a reply is always sent, unless the caller
547         didn't request one or if the user slot has already sent one.
548
549 2006-02-16  Robert McQueen  <robot101@debian.org>
550
551         * configure.in: Patch from Debian packages by Sjoerd Simons
552         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
553         arguments so it's possible to build both bindings in the
554         same tree.
555
556         * qt/Makefile.am: Fix truncated value so that make dist works.
557
558 2006-02-16  Robert McQueen  <robot101@debian.org>
559
560         * acinclude.m4, configure.in: Patch from Brad Hards
561         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
562         improving quoting, re-ordering a few checks, and a few other
563         aesthetic tidy-ups.
564
565 2006-02-16  Robert McQueen  <robot101@debian.org>
566
567         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
568         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
569         assertion that the next element to read from the iter is fixed in
570         size. This is not the case when you are at the end of the iter,
571         because the next element type is INVALID.
572
573         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
574         a bogus assert which means that you may not initialise a 0-length
575         string unless you provide a non-NULL pointer. This prevented
576         you from marshalling messages containing zero-length arrays in
577         some cases.
578
579         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
580         from Rob to correct bogus asserts when trying to demarshal an
581         array and get_fixed_array got you 0 elements. Append nothing to
582         the GArray in this case.
583
584         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
585         an empty array via the glib bindings. Without all of the above
586         patches, this new test fails.
587
588 2006-02-16  Robert McQueen  <robot101@debian.org>
589
590         * glib/dbus-gmain.c: Make the previous commit compile.
591
592         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
593         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
594         specify sender_keyword="foo", path_keyword="bar" when adding
595         a signal listener, so that you can bind to signals generically
596         but still do something useful in your callback.
597
598         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
599         chars so that they're not cast to chars and made negative. Thanks
600         to Jakub Stachowski for reporting this and testing the fix.
601
602 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
603
604         * dbus/dbus-glib.h:
605         * glib/dbus-gmain.h:
606         (dbus_g_connection_open): new method for openning
607         a connection to an arbitrary address in the glib bindings
608
609         * ChangeLog: checkin last entry which doesn't seem to be commited
610
611 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
612
613         * tools/dbus-launch.c: Fixed sh syntax output
614
615 2006-02-13  Robert McQueen  <robot101@debian.org>
616
617         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
618         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
619         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
620         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
621         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
622         missing piece of the glib bindings jigsaw puzzle. This modifies
623         the existing specialised types to have N type parameters (rather
624         than the current 1 or 2 for arrays and dictionaries respectively).
625         You can then use this to get a glib type to represent any arbitrary
626         D-Bus struct type using dbus_g_type_get_struct. The only
627         implementation of these types is with GValueArrays as before,
628         but it's now possible to store these in arrays, emit them in
629         signals, etc.
630
631 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
632
633         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
634         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
635         <thiago.macieira at trolltech.com>
636
637 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
638
639         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
640         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
641
642 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
643
644         * bus/connection.c (bus_connections_expect_reply): Make
645         pending reply limit not common to all connections (Bug #5416)
646         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
647
648 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
649
650         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
651
652 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
653
654         * gcj/Makefile.am: point to correct jar command (Bug #4529)
655         patch from Doug Goldstein <cardoe at gentoo.org>
656
657 2006-02-09  Joe Shaw  <joeshaw@novell.com>
658
659         * mono/Arguments.cs: Fix a magic number in the mono bindings
660         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
661
662 2006-01-27  Robert McQueen  <robot101@debian.org>
663
664         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
665         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
666         when generating the client-side methods, instead of overloading
667         CSymbol which broke everything horribly. My apologies.
668
669 2006-01-27  Robert McQueen  <robot101@debian.org>
670
671         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
672         by me and Rob Taylor to add a simple_free function to D-Bus map
673         and collection types, which allows those types which can be freed
674         with a GDestroyNotify (such as GHashTables and GArrays, but not
675         GPtrArrays) to be stored as the values in hashtables.
676
677         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
678         Patch by Rob Taylor to add nested dicts to the glib tests to check
679         the above code works, and appears not to leak when called repeatedly.
680
681 2006-01-27  Robert McQueen  <robot101@debian.org>
682
683         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
684         to free a D-Bus allocated string with dbus_free () instead of
685         g_free ().
686
687 2006-01-27  Iain Holmes  <iain@openedhand.com>
688
689         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
690         method from being called multiple times.
691
692 2006-01-19  Robert McQueen  <robot101@debian.org>
693
694         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
695         <rob.taylor@collabora.co.uk> to add support for generating bindings
696         to arrays that are represented as GPtrArrays rather than GArrays (ie
697         size-variable things, such as strings, objects, structs, etc).
698
699 2006-01-05  Robert McQueen  <robot101@debian.org>
700
701         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
702         <ricardo.kekki@movial.fi> to make it possible to inherit from
703         DBusGProxy, by splitting the DBusGProxy struct into a public part and
704         a private part, and moving the setting of the DBusGProxyManager into a
705         connection property, allowing proper GObject construction.
706
707 2006-01-05  Robert McQueen  <robot101@debian.org>
708
709         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
710         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
711         annotations when generating glib client bindings.
712
713 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
714
715         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
716
717         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
718
719 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
720
721         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
722
723 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
724
725         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
726
727 2005-12-19  Ross Burton  <ross@openedhand.com>
728
729         * doc/dbus-tutorial.xml:
730         Document the Glib client-side bindings, and list all possible annotations.
731
732 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
733
734         * dbus/bus.c (dbus_bus_release_name): Add documentation
735
736 2005-12-06  Robert McQueen  <robot101@debian.org>
737
738         * python/service.py: s/sucessful/successful/ so we're allocating to
739         and reading from the same variable. Oops.
740
741 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
742
743         * Released 0.60
744
745 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
746
747         * test/qt/Makefile.am: build from srcdir
748
749         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
750         Note - this code is wrong and needs to be fixed by the Qt binding
751         developers.  The flags should be treated as bitfields and not enums.
752
753         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
754
755 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
756
757         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
758           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
759           in production code
760
761 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
762
763         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
764         method for getting messages off the bus in the absence of a
765         mainloop.  This method is much like 
766         dbus_connection_read_write_dispatch except it does not dispatch
767         the messages to a registered filter function.  Instead it
768         allows a developer to process messages by directly popping
769         them off the bus.
770
771 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
772
773         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
774         the parser to continue instead of returning error
775         (bus_desktop_file_load): Do not free parser data when
776         parse_section_start or parse_key_value fails because it was 
777         already freed by parser_free (patch from Carlos Garcia Campos  
778         <carlosgc at gnome.org>)
779
780 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
781
782         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
783         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
784         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
785         test/test-segfault.c, test/test-utils.c,
786         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
787         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
788         Various cleanup of dead code and compiler warnings (patch from
789         Kjartan Maraas <kmaraas at gnome.org>) 
790
791 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
792
793         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
794         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
795
796 2005-11-27  Robert McQueen  <robot101@debian.org>
797
798         * python/dbus_bindings.pyx: Repair my previous commit which reverted
799         part of the preceding one. Oops. Merge patch by Johan Hedberg
800         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
801         on big-endian platforms.
802
803         * test/python/test-client.py: Add some 16-bit integers to the test
804         values.
805
806 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
807
808         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
809         method return message for property getters
810
811 2005-11-27  Robert McQueen  <robot101@debian.org>
812
813         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
814         with type v of an instance of dbus.Variant(foo, type='x') caused
815         it to be boxed twice before sending over the bus.
816
817         * python/dbus_bindings.pyx, python/service.py,
818         test/python/test-client.py: Update the constants for the new
819         request_name flags, and update comments/test cases now that queueing
820         is the default action.
821
822 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
823
824         * configure.in:
825         - Change version to 0.60 for impending release
826         - upped the sonames because of ABI and API breakage
827
828 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
829
830         * configure.in: Add test/name-test/Makefile to the generated
831         Makefile list
832
833         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
834         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
835         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
836         not to queue an ower if it can't be the primary owner
837
838         * bus/bus.h: Add new internal BusOwner struct
839
840         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
841         to bus_registry_ensure and don't set the prohibit_replacement flag
842         since they are now set per BusOwner and not per name.
843         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
844         that returns the list of connections in a name's connection queue
845         
846         * bus/services.c (struct BusService): remove prohibit_replacement field
847         (struct BusOwner): new struct for keeping track of queued connections
848         and their associated flags for the queue
849         (struct BusRegistry): add a BusOwner memory pool
850         (bus_registry_new): initialize the BusOwner memory pool
851         (bus_registry_unref): free the BusOwner memory pool
852         (_bus_service_find_owner_link): new internal method for
853         searching the queue for a specific connection
854         (bus_owner_set_flags): new method for adding setting the flags on a
855         bus owner
856         (bus_owner_new): new method that creates a BusOwner object from the
857         pool and sets its flags
858         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
859         (bus_registry_ensure): Add the flags parameter
860         (bus_registry_acquire_service): Switch from using raw connections to
861         using the BusOwner struct
862         Add new state machine for dealing with the new set of flags
863         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
864         cancel_ownership, free_ownership_cancel_data, 
865         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
866         restore_ownership, free_ownership_restore_data, 
867         add_restore_ownership_to_transaction): Switch to using BusOwner 
868         instead of raw connections
869         (bus_service_add_owner): Add flags parameter
870         Switch to using BusOwner instead of raw connections
871         Add state machine for dealing with the new set of flags
872         (bus_service_swap_owner): Swaps the first and second owners in the
873         queue.  Used to make sure proper signals are sent when a service looses 
874         or gains primary ownership.  We never insert an owner at the top of the
875         queue.  Instead we insert it in the second position and then swap.
876         (bus_service_remove_owner): Remove the owner from the queue sending
877         out the NameLost and NameOwnerChanged signals if the we were the 
878         primary owner
879         (bus_service_get_primary_owners_connection): New method that extracts
880         the connection from the primary owner
881         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
882         connection
883         (bus_service_get_allow_replacement): Changed from the old 
884         bus_service_get_prohibit_replacement method.  Checks the flags of the 
885         primary owner and returns if it can be replaced or not
886         (bus_service_set_prohibit_replacement): removed
887         (bus_service_has_owner): returns TRUE if and owner with
888         the specified connection exists in the queue
889         
890         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
891         method that only compiles if tests are enabled.  Allows us to get the 
892         unique name of a connection so we can check it against the queue when
893         doing regression tests
894
895         * bus/activation.c (bus_activation_send_pending_auto_activate),
896         bus/dispatch.c (bus_dispatch),  
897         bus/driver.c (bus_driver_handle_get_service_owner, 
898         bus_driver_handle_get_connection_unix_user, 
899         bus_driver_handle_get_connection_unix_process_id,
900         bus_driver_handle_get_connection_selinux_security_context),
901         bus/signals.c (connection_is_primary_owner): 
902         use bus_service_get_primary_owners_connection instead of
903         bus_service_get_primary_owner
904
905         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
906         _dbus_listen_unix_socket): Calculate the length of the socket
907         path and use that instead of using a fixed length which was
908         causing socket names to contain many trailing Nul bytes.
909
910         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
911         (dbus_g_method_get_sender): New method for extracting the sender 
912         from a DBusGMethodInvocation
913         (dbus_g_method_return_get_reply): changed name to 
914         dbus_g_method_get_reply
915         (dbus_g_method_return_send_reply): changed name to
916         dbus_g_method_send reply
917
918         * doc/dbus-specification.xml: New docs that describe how the new
919         queueing system works and talks about the changes to the how
920         we specify socket names
921
922         * glib/examples/example-service.c, 
923         glib/examples/example-signal-emitter.c,
924         glib/examples/statemachine/statemachine-server.c:
925         Changed the RequestName flags to the new system
926
927         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
928         regression test suite for testing various states of the new
929         queueing system
930         
931 2005-11-15  Robert McQueen  <robot101@debian.org>
932
933         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
934         Taylor to add two methods, dbus_g_method_return_get_reply and
935         dbus_g_method_return_send_reply, to allow you to get the reply
936         message from a DBusGMethodInvocation, append arbitrary stuff to it,
937         and send it. The GLib bindings can't marshal a return value of
938         something like a(s) if the array is empty - ultimately they should be
939         made to heed the signature of the out arguments as the Python bindings
940         now can, but this is a workable interim solution which might have
941         other applications.
942
943 2005-11-15  Robert McQueen  <robot101@debian.org>
944
945         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
946         method to org.freedesktop.DBus to release a bus name or give up
947         waiting in the queue for it.
948
949         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
950         dbus_bus_release_name method to send the ReleaseName method calls.
951         Add constants for the return values to dbus/dbus-shared.h.
952
953         * doc/dbus-specification.xml: Document the new ReleaseName method
954         in the specification.
955
956         * python/dbus_bindings.pyx: Add a low-level python binding for the
957         release name method.
958
959         * python/exceptions.py, python/service.py: Make freeing BusName
960         objects release the name. Add a NameExistsException, and fix a
961         bug with creating UnknownMethodException.
962
963         * test/python/test-client.py: Add tests for freeing BusName
964         objects causing names to be released.
965
966 2005-11-14  Robert McQueen  <robot101@debian.org>
967
968         * python/service.py: Include the traceback in the error reply when we
969         send an exception over the bus. _BEST_ _PATCH_ _EVER_
970
971 2005-11-14  David Zeuthen  <davidz@redhat.com>
972
973         Patch from Timo Hoenig <thoenig@suse.de>.
974
975         * bus/bus.c: I've recently investigated why the automatic reload
976         of configuration files does not work as expected.
977
978         Currently, reloading configuration files does only work when
979         running dbus-daemon with --nodaemon.  If we are running as daemon
980         we're hitting a dnotify bug once we fork the process.
981
982         We're initializing the dnotify fds before calling fork().  Once
983         the child process forked it does still have the fds (and they
984         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
985         getting SIGIO as changes are made to the configuration files.
986
987         The attached patch moves the initialization of the dnotify fds to
988         process_config_postinit().  This is safe for all current code
989         paths and solves the dnotify disfunction.  If we're running
990         dbus-daemon as daemon the fds for dnotify are now being
991         initialized after fork() for the child process.
992
993         * configure.in: The current configure.in check for dnotify probes
994         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
995         match for 'xlinux', too. Additionally I have adapted the configure
996         option's style to match with the others.
997
998 2005-11-14  Robert McQueen  <robot101@debian.org>
999
1000         * python/decorators.py, python/service.py: Add a new argument to the
1001         dbus.service.method decorator called sender_keyword, which if set,
1002         specifies the name of an argument which will be provided the bus
1003         name of the method caller.
1004
1005         * test/python/test-client.py, test/python/test-service.py: Add a
1006         method and test to check the sender_keyword functionality.
1007
1008 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1009
1010         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1011         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1012         Simons <sjoerd at luon.net>)
1013
1014         * AUTHORS: Add Robert McQueen for his work on the Python
1015         Bindings and other parts of D-Bus
1016
1017 2005-11-07  Robert McQueen  <robot101@debian.org>
1018
1019         * python/decorators.py: Change emit_signal function to use the
1020         signature annotation of the signal when marhsalling the arguments from
1021         the service. Fix a bug where the code checking signature length
1022         against argument length referenced the wrong variable.
1023
1024         * python/introspect_parser.py: Avoid adding the type signature of
1025         signal arguments to any methods which occur after them in the
1026         introspection data (!) by making the parser a little more careful
1027         about its current state.
1028
1029         * python/service.py: Remove debug prints from last commit (again :D).
1030
1031         * test/python/test-client.py, test/python/test-service.py: Add test
1032         signals with signature decorators to test the strict marshalling code
1033         gives errors at the right time. Could do with checking the signals
1034         actually get emitted too, given that the test does nothing with
1035         signals at the moment...
1036
1037 2005-11-07  Robert McQueen  <robot101@debian.org>
1038
1039         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1040         instances to stop madness of creating new instances representing
1041         the same bus connection all the time, rendering any tracking of
1042         match rules and bus names quite meaningless. Caught a bug where
1043         the private argument to SessionBus() and friends was being passed
1044         in as use_default_mainloop by mistake. Still some problems with
1045         multiple dbus_binding.Connection instances representing the same
1046         low-level connection (eg when you use both SessionBus() and
1047         StarterBus() in same process), but it's a lot better now than it
1048         was.
1049
1050         * python/dbus_bindings.pyx: Add constants with the return values
1051         for bus_request_name().
1052
1053         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1054         and retrieve the same instances for the same name, so deletion can be
1055         done with refcounting. Also now throws some kind of error if you
1056         don't actually get the name you requested, unlike previously...
1057
1058         * test/python/test-client.py: Add tests for instance caching of buses
1059         and bus name objects.
1060
1061 2005-11-04  Robert McQueen  <robot101@debian.org>
1062
1063         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1064         marshalling of boolean values. Add some booleans to the values in
1065         the test client.
1066
1067         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1068         argument to the dbus.service.method decorator, which allows you to
1069         name arguments to take two callback functions for replying with
1070         return values or an exception.
1071
1072         * test/python/test-client.py, test/python/test-service.py: Add test
1073         case using asynchronous method reply functions, both return values and
1074         errors, and from within both the function itself and from a mainloop
1075         callback.
1076
1077         * python/decorators.py, python/service.py: Perform checking that the
1078         number of method/signal arguments matches the number of types in the
1079         signature at class loading time, not when you first introspect the
1080         class.
1081
1082         * python/service.py: Remove debug print left by the last commit.
1083
1084 2005-11-03  Robert McQueen  <robot101@debian.org>
1085
1086         * python/service.py: Heavy refactoring of method invocation, with
1087         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1088         in favour of a new _message_cb that uses seperate functions for
1089         looking up the method to call, marshalling the return values, and
1090         sending exceptions as errors, and is easier to follow as a
1091         consequence.  Fixes some corner cases about returning things that
1092         don't match your declared out_signature, allows exceptions to define
1093         _dbus_error_name and have it be sent over the bus as the error name,
1094         and paves the way for cool stuff like heeding the message no reply
1095         flag, asynchronous method implementations, informing the method of the
1096         sender, and including backtraces in the error messages.
1097
1098         * test/python/test-client.py: Catch and print exceptions thrown in the
1099         async callback tests, rather than passing them to the low-level
1100         bindings to be ignored in a noisy and frustrating manner.
1101
1102 2005-11-03  Robert McQueen  <robot101@debian.org>
1103
1104         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1105         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1106         tweak others to be consistent.
1107
1108         * test/python/test-client.py: Tweak output of testInheritance.
1109
1110 2005-10-29  Robert McQueen  <robot101@debian.org>
1111
1112         * python/service.py: Major changes to allow multiple inheritance
1113         from classes that define D-Bus interfaces:
1114         
1115          1. Create a new Interface class which is the parent class of
1116             Object, and make the ObjectType metaclass into InterfaceType.
1117         
1118          2. Patch written with Rob Taylor to replace use of method_vtable
1119             with code that walks the class's __MRO__ (method resolution order)
1120             to behave like Python does when invoking methods and allow
1121             overriding as you'd expect. Code is quite tricky because
1122             we have to find two methods, the one to invoke which has the
1123             right name and isn't decorated with the /wrong/ interface,
1124             and the one to pick up the signatures from which is decorated
1125             with the right interface.
1126         
1127             The same caveats apply as to normal multiple inheritance -
1128             this has undefined behaviour if you try and inherit from two
1129             classes that define a method with the same name but are
1130             decorated with different interfaces. You should decorate
1131             your overriding method with the interface you want.
1132         
1133          3. Replace grungy introspection XML generation code in the metaclass
1134             with dictionaries that cope correctly with multiple inheritance
1135             and the overriding of methods. This also uses the signature
1136             decorations to provide correct introspection data, including
1137             the debut appearance of the types of your return values. :D
1138
1139         * test/python/test-client.py, test/python/test-service.py: Add a test
1140         case to try invoking an method that overrides one inherited from a
1141         D-Bus interface class.
1142
1143 2005-10-29  Robert McQueen  <robot101@debian.org>
1144
1145         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1146         Add checking for the end of struct character when marshalling a
1147         struct in MessageIter.append_strict.
1148
1149         * python/examples/example-service.py,
1150         python/examples/gconf-proxy-service.py,
1151         python/examples/gconf-proxy-service2.py: Update to use gobject
1152         mainloop directly rather than appearing to depend on gtk.
1153
1154         * python/test/test-client.py, python/test/test-server.py: Remove
1155         obsolete and broken test scripts for old bindings. We have up to date
1156         and working tests in test/python/.
1157
1158 2005-10-29  Robert McQueen  <robot101@debian.org>
1159
1160         * python/decorators.py: Add optional arguments to the method and
1161         signal decorators to allow you to specify the signature of arguments
1162         and return values. Preserve the doc strings of signal functions in the
1163         decorated version, for pydoc and friends.
1164
1165         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1166         parse_signature_block function with an iterable dbus.Signature()
1167         type. Fix a bug in MessageIter.append_strict where you could append
1168         anything by claiming it was a string.
1169
1170         * python/service.py: Use the out_signature decoration on methods to
1171         marshal return values, meaning you no longer require dbus.Array()
1172         or dbus.Dictionary() to indicate the type when returning empty
1173         arrays or dictionaries. Fix a bug where exceptions which are defined
1174         in __main__ are not turned into error replies.
1175
1176         * test/python/test-client.py, test/python/test-service.py: Add test
1177         for correct marshalling of return values according to out_signature.
1178         Fix a bug in the async call test where the error_handler is missing a
1179         self argument.
1180
1181 2005-10-29  Robert McQueen  <robot101@debian.org>
1182
1183         * glib/Makefile.am, glib/examples/Makefile.am,
1184         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1185         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1186
1187         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1188
1189         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1190         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1191         the command line.
1192
1193 2005-10-27  Ross Burton  <ross@openedhand.com>
1194
1195         * dbus/dbus-marshal-header.c:
1196         Remove dead code.
1197
1198         * glib/dbus-gobject.c:
1199         Stop compiler warning.
1200
1201 2005-10-25  Ross Burton  <ross@openedhand.com>
1202
1203         * dbus/dbus-auth.c:
1204         * dbus/dbus-server-unix.c:
1205         * dbus/dbus-transport-unix.c:
1206         * glib/dbus-gmain.c:
1207         * glib/dbus-gobject.c:
1208         Add some const keywords.
1209
1210 2005-10-25  Ross Burton  <ross@openedhand.com>
1211
1212         * doc/dbus-specification.xml:
1213         Document the NoReply annotation.
1214
1215         * glib/dbus-binding-tool-glib.h:
1216         * glib/dbus-binding-tool-glib.c:
1217         Respect the NoReply annotation.
1218
1219 2005-10-24  Robert McQueen <robot101@debian.org>
1220
1221         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1222         derive from unicode instead of str, and encode/decode UTF-8 when
1223         marshalling/unmarshalling bus messages
1224
1225         * python/introspect_parser.py: encode introspection data as UTF-8
1226         before passing the buffer into libxml2
1227
1228         * test/python/test-client.py: add unicode test strings
1229
1230         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1231         ignore generated python test files
1232
1233 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1234
1235         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1236         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1237         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1238
1239         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1240         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1241         when constructing struct signatures
1242
1243         * python/_dbus.py (Bus): handle private connections using the
1244         private keyword in the constructor. defaults to private=False
1245         (Bus::close): new method to close a connection to the bus
1246
1247         * python/dbus_bindings.pyx (Connection::close): renamed method
1248         was previously called disconnect
1249         (bus_get): now supports getting a private connection
1250
1251         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1252         keyword is set to True.  if it is, execute the method without waiting
1253         for a reply
1254         (ProxyObject::_introspect_execute_queue): new method for executing
1255         all the pending methods that were waiting for the introspect to
1256         finish.  this is called when introspect either succeeds or fails
1257         (ProxyObject::_introspect_error_handler): call queued methods
1258
1259 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1260
1261         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1262         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1263
1264         * python/service.py (Object::_message_cb): handle exceptions correctly
1265         by sending them over the wire to the calling app.  This makes sure
1266         the client returns immediately instead of waiting the 15 seconds to
1267         timeout.
1268
1269         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1270         Add a test to benchmark how long it takes to introspect a service and 
1271         call a method which returns a large element (pretty fast)
1272
1273         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1274         method which pushes a lot of data
1275
1276 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1277
1278         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1279         reclaim memory outside of the loop and use del istead of just setting
1280         the key to None
1281
1282 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1283
1284         * python/service.py (ObjectType::_reflect_on_signal): Always close
1285         signal tag even when there are no arguments
1286
1287 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1288
1289         * configure.in: Set mono, mono-docs and Qt3 to default
1290         to no instead of auto when building.  These bindings do not
1291         have full time maintainers and will not be supported for the
1292         1.0 release.
1293
1294 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1295
1296         patches from Michael Krivoruchko <misha at sun.com>: 
1297         
1298         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1299         _dbus_connection_message_sent, 
1300         _dbus_connection_send_preallocated_unlocked_no_update, 
1301         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1302         is NULL when calling _dbus_verbose
1303
1304         * configure.in: check for functions getpeerucred and getpeereid
1305
1306         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1307         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1308         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1309         Patch was only tested on Solaris 10 x86 so it might be issues
1310         with other platforms (i.e. BSDs and MacOSX)
1311         
1312
1313 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1314
1315         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1316         instead of marshal basic so we can handle recursive types in a variant
1317
1318         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1319         in variants
1320
1321         * test/glib/test-service-glib.c, test-service-glib.xml
1322         (my_object_echo_variant [EchoVariant], 
1323         my_object_process_variant_of_array_of_ints123
1324         [ProcessVariantOfArrayOfInts123]): 
1325         Add two test methods
1326
1327         * python/introspect_parser.py: New module for parsing introspect
1328         data.
1329
1330         * python/dbus_bindings.pyx:
1331         (various places): when throwing errors fix to use errormsg instead 
1332         of message local variable because Pyrex can get confused with other 
1333         message variables (initial patch by Robert McQueen 
1334         <robert.mcqueen at collabora.co.uk>)
1335         (MessageIter::parse_signature_block): new method for getting the next
1336         block in a signiture.
1337         (MessageIter::append_strict): new method for appending values strictly
1338         using the passed in signature instead of guessing at the type
1339         (MessageItter:: append_dict, append_struct, append_array): use 
1340         signatures to marshal children if the signature is available
1341         
1342         * python/exceptions.py (IntrospectionParserException): new exception
1343
1344         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1345         introspected signatures if available, else we fall back to the
1346         old way of doing things.
1347         (ProxyObject::_introspect_reply_handler ): parse introspection data
1348         
1349         * python/service.py (ObjectType::_reflect_on_method): Properly
1350         terminate <method> if there are no args in the reflection data
1351
1352         * test/python/test-client.py: add tests for talking with the GLib
1353         test server.  This gives us better coverage for introspection since
1354         python to python will always generate arguments as variants.  It also
1355         allows us to test the robustness of the GLib bindings and interlanguage
1356         communications.
1357
1358         
1359 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1360
1361         * bus/driver.c (bus_driver_handle_introspect): Add signals
1362         to the introspect data. (patch from Daniel P. Berrange 
1363         <dan at berrange.com>)
1364
1365         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1366         
1367         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1368         _dbus_connection_run_builtin_filters): Changed these to
1369         be unlock_no_update functions and call 
1370         _dbus_connection_send_unlocked_no_update instead of
1371         dbus_connection_send to avoid locking errors.
1372         
1373         * doc/TODO: Removed the make Ping test TODO
1374         
1375 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1376
1377         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1378         We now copy the message from a DBusError and then free 
1379         the error object befor throwing the error
1380
1381         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1382         DBusBindingOutputMode enum which was causing a warning.
1383         #include <time.h> so using time_t is explicitly defined
1384
1385 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1386
1387         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1388         - dbus/dbus-bus.c
1389         (internal_bus_get): new method that take over the heavy lifting
1390         of dbus_bus_get and adds the ability to get a private connection
1391         to the bus
1392         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1393         interface as in previous versions
1394         (dbus_bus_get_private): new method that is a wrapper to 
1395         internal_bus_get to get a private connection to the bus
1396
1397         - dbus/dbus-bus.h
1398         (dbus_bus_get_private): add as a public libdbus interface
1399
1400         - dbus-1.pc.in: output system_bus_default_address and 
1401         sysconfdir variables so apps can use them when compiling
1402
1403 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1404         * dbus/qt: New Qt bindings
1405
1406 2005-09-12  Waldo Bastian  <bastian@kde.org>
1407
1408         * dbus/dbus-marshal-validate.c,
1409         doc/dbus-specification.xml, test/Makefile.am,
1410         test/test-names.c: allow hyphens in bus names.
1411
1412 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1413
1414         * test/data/auth/fallback.auth-script: we don't
1415         retry the EXTERNAL method when we know its going
1416         to fail anymore.
1417
1418 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1419
1420         * dbus/dbus-connection-internal.h: rename
1421         (add|remove|toggle)_(watch|timeout) to unlocked()
1422         
1423         * dbus/dbus-connection.c: ditto.
1424         
1425         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1426         Update some callers for the renaming.
1427
1428 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1429
1430         * dbus/dbus-auth.c: (record_mechanisms): don't
1431         retry the first auth mechanism because we know
1432         we're just going to get rejected again.
1433         
1434         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1435         Fix thinko ... and what a nasty little bugger to
1436         track down you were ...
1437
1438         * dbus/dbus-connection.c:
1439         (_dbus_connection_add_watch),
1440         (_dbus_connection_remove_watch): add note about
1441         these needing the connection to be locked.
1442         (_dbus_connection_get_dispatch_status_unlocked):
1443         set status to DATA_REMAINS when we queue the
1444         disconnected message.
1445         
1446         * bus/dispatch.c:
1447         (bus_dispatch): fix warning.
1448         (check_existent_service_no_auto_start):
1449         Expect ChildSignaled error too.
1450         (check_existent_hello_from_self): fix another
1451         couple of warnings.
1452         
1453 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1454
1455         Patches from James Willcox <snorp@snorp.net>
1456
1457         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1458
1459         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1460         support array "out" parameters.
1461
1462         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1463         for 16-bit int support.
1464
1465 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1466
1467         * Released 0.50
1468
1469         * Patch from Steve Grubb:
1470         - bus/activation.c (bus_activation_service_reload_test): clean up
1471         some indentation
1472         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1473         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1474         buffer overflows in the test suite.  This is non critical because
1475         it can not be exploited and this code is only run when doing a 
1476         make check.
1477
1478         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1479         - configure.in: Don't check and link against kdecore, only qt headers
1480         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1481         - gcj/org/freedesktop/dbus/Makefile.am:
1482         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1483         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1484         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1485         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1486         - tools/Makefile.am: Add platform extentions to binaries 
1487         (i.e. .exe on windows)
1488
1489         * configure.in: 
1490         - Make it so if no suitable version of python is found we only 
1491         disable building python instead of exiting the configure script
1492         - Require version 2.4 of glib for glib bindings
1493         - Up version to 0.50
1494
1495         * python/__init__.py: Sync version with libdbus to (0,50,0)
1496         
1497 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1498
1499         * dbus/dbus-object-tree.c (find_subtree_recurse):
1500         a couple of optimizations (bug #710):
1501         - do a binary search in the tree
1502         - insert a new child at the right place directly, no need for
1503           qsort anymore
1504         - do the "double alloc" thing when allocating children
1505
1506 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1507
1508         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1509
1510         * python/dbus_bindings.pyx: Memory management foo
1511         (global): remove hacky _user_data_references global list
1512         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1513         tuples. Unref user_data
1514         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1515         (Connection::__del__): Remove and replace with __dealloc__ method
1516         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1517         to keep tuple from being deallocated instead of the global var hack
1518         (Connection::register_object_path): Stuff user_data into a tuple.
1519         Use Py_INCREF to keep tuple from being deallocated instead of the 
1520         global var hack
1521         (Connection::register_fallback): Stuff user_data into a tuple.
1522         Use Py_INCREF to keep tuple from being deallocated instead of the 
1523         global var hack
1524         (GIL_safe_pending_call_notification): Don't unref the message
1525         because it gets unreffed when going out of scope.  Py_XDECREF
1526         the user_data
1527         (PendingCall::__del__): Remove and replace with __dealloc__ method
1528         (PendingCall::set_notify): ref the pending call because we will
1529         need it to stick around for when the notify callback gets called
1530         (Message::__del__): Remove and replace with __dealloc__ method
1531
1532         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1533         gthreads_init to match up with the dbus call
1534
1535         * python/glib.py (init_threads): Changed to threads_init to match
1536         up with gobject.threads_init().  init_threads is kept for backwards
1537         compat but will most likely be deprecated in the future
1538
1539         * test/python/test-client.py: 
1540         - revamp to use Python's unittest functionality
1541         - add async call tests
1542         - setup threads in glib and dbus so we make sure locks are working
1543         
1544 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1545
1546         * python/dbus_bindings.pyx 
1547         (_pending_call_notification, cunregister_function_handler, 
1548         cmessage_function_handler): All callback functions have been rearranged 
1549         to workaround a bug in Pyrex when working with the GIL which is Python's 
1550         global lock when dealing with threads.  They have been split into
1551         a wrapper function (which assumes the name of the old function) and
1552         a _GIL_safe_<function name> function which contains the functionality
1553         of the old function.  This ensures that Pyrex does not write code
1554         the lock is released.
1555         
1556
1557 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1558
1559         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1560         GIL global lock when calling back into Python
1561
1562 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1563
1564         * Release 0.36.2
1565
1566         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1567
1568         * bus/policy.c (bus_policy_allow_user): change default "user is
1569         allowed" to be "user has same uid as the bus itself"; any
1570         allow/deny rules will override.
1571
1572         * bus/session.conf.in: don't allow all users, since now by default
1573         the user that ran the bus can connect.
1574
1575 2005-08-26  Colin Walters  <walters@verbum.org>
1576
1577         * tools/dbus-print-message.c (print_message): Flush stdout
1578         after printing a message, so that redirecting to a file, then
1579         hitting Ctrl-C works.
1580
1581 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1582
1583         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1584         (EmptyMessage): new class that subclasses Message.  This is a workaround
1585         to a Pyrex bug that fails to call __del__ when the Message object goes out
1586         of scope.  For some reason subclassing Message fixes this bug
1587         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1588         - s/Message(_create=0)/EmptyMessage everywhere else
1589         
1590         * test/python/test-{server|client}.py: add the python/.libs directory
1591         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1592         get picked up from the system
1593
1594 2005-08-25  Colin Walters  <walters@verbum.org>
1595
1596         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1597         to Ryan Lortie for the suggestion.
1598
1599 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1600
1601         * test/python: Add python regression test
1602
1603         * configure.in: Add test/python/Makefile
1604
1605         * test/Makefile.am: Add the python directory to SUBDIRS
1606
1607 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1608
1609         * Release 0.36.1
1610
1611         * python/_dbus.py: 
1612         (Interface::connect_to_signal): propigate keywords for match on args
1613         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1614
1615         * python/proxies.py (ProxyObject::connect_to_signal):
1616         propigate keywords for match on args
1617
1618         * Makefile.am: point everything to pyexecdir since python borks
1619         on multilib
1620
1621 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1622
1623         * Release 0.36
1624
1625 2005-08-23  Colin Walters  <walters@verbum.org>
1626
1627         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1628
1629 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1630
1631         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1632         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1633         of defining DBusConnection ourselves.
1634
1635 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1636
1637         * python/dbus.pth: New path file to fix up problems when installing
1638         c libraries to lib64 and python files to lib.
1639
1640         * python/Makefile.am: install dbus.pth in the correct spot
1641
1642 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1643         * ChangeLog: clean up my last entry a bit
1644
1645         * doc/introspect.xsl: New stylesheet for converting introspection data
1646         into browser renderable xhtml. Contributed by Lennart Poettering.
1647
1648         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1649         Poettering.
1650
1651         * doc/dbus-tutorial.xml: 
1652         - Add Colin Walter to the Authors section for authoring the GLib
1653         section
1654         - Add descriptions of the new signature and type functionality
1655         in the Python complex type mapping section
1656         - Add a sidenote on the new args matching functionality in 
1657         the Python bindings
1658         - Fixed up some of the examples to use the gobject.MainLoop
1659         instead of gtk.main
1660         
1661         * python/_dbus.py:
1662         (Bus::_create_args_dict): New. Converts a hash of arg matches
1663         to a more useable format
1664         (Bus::add_signal_receiver): add a **keywords parameter for catching
1665         arg match parameters
1666         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1667         arg match parameters
1668         
1669         * python/matchrules.py:
1670         (MatchTree::exec_matches): Check for arg matches
1671         (SignalMatchRule::add_args_match): New method
1672         (SignalMatchRule::execute): Added args_list parameter as an optimization
1673         so we don't have to marshal the args more than once
1674         (SignalMatchRule::match_args_from_list): New method that checks to see
1675         if the rule's arg matches match an argument list.  Only arguments
1676         set in the rule are checked.
1677         (SignalMatchRule::match_args_from_rule): New method that checks to see
1678         if the rule's arg matches match another rule's.  All args have to match
1679         in order for this method to return true.  If either rule has more args
1680         then it is not a match.
1681         (SignalMatchRule::is_match): Add args match
1682         (SignalMatchRule::repr): Add args to the final output if they exist
1683
1684 2005-08-17  Ross Burton  <ross@burtonini.com>
1685
1686         * glib/dbus-gproxy.c:
1687         (dbus_g_proxy_call_no_reply): unref the message once sent.
1688         (dbus_g_proxy_call): protect against NULL proxy.
1689
1690 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1691
1692         * python/__init__.py: Version updated (0, 43, 0)
1693         
1694         * python/dbus_bindings.pyx: 
1695         - Fixed type objects to have self passed into __init__
1696         - Added the Variant type
1697         - Add the ability to specify types or signatures for Array, Variant 
1698         and Dictionary
1699         (Connection::send_with_reply_handlers): return a PendingCall object
1700         (_pending_call_notification): handle the case when an error is returned 
1701         without an error message in the body
1702         (MessageIter::get_boolean): return True or False instead of an integer
1703         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1704         and add checks for objects with embeded signatures or types (Array, 
1705         Variant and Dictionary)
1706         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1707         (MessageIter::append_dict): handle embeded types or signatures
1708         (MessageIter::append_array): handle embeded types or signatures
1709         (MessageIter::append_variant): new method
1710         
1711         * python/proxies.py:
1712         (DeferedMethod): New. Dummy executable object used when queuing calls 
1713         blocking on introspection data
1714         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1715         or shorter timeouts for method calls
1716         (ProxyObject): Add first pass at an introspection state machine
1717         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1718         introspection. 
1719         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1720         the usual mechanisms for sending messages.  This is to avoid a deadlock
1721         where the Intospect call would be queued waiting for the Introspect 
1722         call to finish ;-)
1723         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1724         when introspection returns with no error
1725         (ProxyObject::_introspect_error_handler): New.  This method is called 
1726         when introspection encounters an error
1727         (ProxyObject::__getattr__): Code to handle different introspection 
1728         states.  Queue async calls or block blocking calls if we are 
1729         introspecting.  Pass through as normal if we are not or are done with 
1730         introspecting.
1731         
1732         * python/service.py: Import signal and method from decorators.py
1733
1734         * python/types.py: Add Variant type
1735
1736 2005-08-16  Colin Walters  <walters@verbum.org>
1737
1738         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1739         DBusError message is NULL.
1740
1741 2005-08-09  Havoc Pennington  <hp@redhat.com>
1742
1743         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1744         malloc'd copy of the name parameter
1745
1746 2005-08-09  Havoc Pennington  <hp@redhat.com>
1747
1748         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1749         warning if the reply serial is set to 0
1750
1751 2005-08-04  Colin Walters  <walters@verbum.org>
1752
1753         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1754         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1755         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1756         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1757         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1758         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1759         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1760         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1761         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1762         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1763         
1764         Prefix name with _ to ensure they're not exported.  All callers
1765         updated.
1766
1767         * glib/dbus-gvalue.c (typecode_to_gtype)
1768         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1769         (signature_iter_to_g_type_dict)
1770         (signature_iter_to_g_type_array)
1771         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1772         (dbus_gtypes_from_arg_signature):
1773         Move to dbus-gsignature.c.
1774
1775         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1776         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1777         (dbus_binding_tool_output_glib_client): Ditto.
1778
1779         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1780         and dbus-gsignature.h
1781
1782         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1783         unused variable.
1784
1785 2005-08-03  Colin Walters  <walters@verbum.org>
1786
1787         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1788         catch any incompatible changes accidentally made.
1789
1790 2005-08-03  Havoc Pennington  <hp@redhat.com>
1791
1792         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1793         typo, from Julien Puydt
1794
1795         * bus/connection.c (bus_connection_disconnected): we were always
1796         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1797
1798 2005-08-01  Colin Walters  <walters@verbum.org>
1799
1800         Patch from Joe Markus Clarke:   
1801         
1802         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1803         use-after-free.
1804
1805 2005-08-01  Colin Walters  <walters@verbum.org>
1806         
1807         Patch from Joe Markus Clarke:   
1808         
1809         * tools/dbus-send.c (main): 
1810         
1811         Don't use C99 style initializers (bug #3933).
1812         
1813 2005-08-01  Colin Walters  <walters@verbum.org>
1814
1815         Patch from Joe Markus Clarke:   
1816
1817         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1818         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1819         * glib/dbus-gobject.c (write_interface):
1820
1821         Don't use C99 style initializers (bug #3933).
1822
1823 2005-07-31  Havoc Pennington  <hp@redhat.com>
1824
1825         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1826         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1827
1828 2005-07-30  Havoc Pennington  <hp@redhat.com>
1829
1830         * fix a bunch of Doxygen warnings and mistakes
1831
1832 2005-07-30  Havoc Pennington  <hp@redhat.com>
1833
1834         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1835         DBUS_BUILD_TESTS since it's now used in production code
1836
1837 2005-07-29  Havoc Pennington  <hp@redhat.com>
1838
1839         * test/glib/test-profile.c (write_junk): initialize the junk
1840         buffer so valgrind doesn't have a breakdown
1841
1842 2005-07-29  Havoc Pennington  <hp@redhat.com>
1843
1844         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1845         (match_rule_matches): remove unused arg
1846         (test_matching): add tests for match_rule_matches()
1847
1848         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1849         do arg0='foo' arg5='bar' in the match rules
1850         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1851
1852         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1853
1854 2005-07-29  Ross Burton  <ross@openedhand.com>
1855
1856         * dbus/dbus-connection.c:
1857         Don't create a DBusCondVar which is never used.
1858
1859 2005-07-27  Ross Burton  <ross@openedhand.com>
1860
1861         * dbus/dbus-message.c:
1862         Reduce the size of the maximum cached message to 10K.
1863
1864 2005-07-25  Ross Burton  <ross@openedhand.com>
1865
1866         * glib/dbus-gproxy.c:
1867         Remove matches when all proxies are unregistered.
1868
1869 2005-07-24  Colin Walters  <walters@verbum.org>
1870
1871         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1872         typedata; recursive arrays won't have it.
1873
1874         * test/glib/test-dbus-glib.c:
1875         * test/glib/test-service-glib.c:
1876         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1877         
1878 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1879
1880         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1881         proxies.py, service.py: Cleanup of code after running it through the
1882         pyflakes code checker mostly dealing with undefined names.  
1883         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1884
1885 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1886
1887         * NEWS: Update to 0.35.2
1888
1889 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1890
1891         * python/_dbus.py: Remove import of the dbus.services
1892         module as it no longer exists (patch from Dimitur Kirov)
1893
1894         * python/service.py (Object::__init__): Fixed typo
1895         s/name/bus_name (patch from Dimitur Kirov)
1896
1897         * python/examples/example-signal-emitter.py: import dbus.glib
1898         to get the main loop and use glib mainloop instead of gtk so
1899         X doesn't have to be running.
1900
1901         * python/examples/example-signal-recipient.py: import dbus.glib
1902         to get the main loop and use glib mainloop instead of gtk so
1903         X doesn't have to be running. Import the decorators module
1904         directly.
1905
1906         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1907         didn't pick up on but are needed to build
1908
1909         * configure.in: upped version to 0.35.2
1910
1911         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1912         added Colin Walters' SELinux API rename patch from head 
1913         s/unix sercurity context/selinux security context/
1914
1915 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1916
1917         * python/Makefile.am: dbus_binding.pxd.in should be included 
1918         in EXTRA_DIST not dbus_binding.pxd
1919         fix up $(srcdir) hopefully for the last time
1920
1921         * NEWS: Update to 0.35.1
1922
1923 2005-07-16  Colin Walters  <walters@verbum.org>
1924
1925         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1926         from bus_driver_handle_get_connection_unix_security_context.  Update for
1927         error usage.
1928         (message_handlers): Update for renames.
1929
1930         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1931         _dbus_string_init failure correctly.
1932         (bus_selinux_append_context): Convert SID to context.  Append it
1933         as a byte array.
1934         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1935         hasn't been called.
1936
1937         * bus/selinux.h: Update prototype.
1938
1939         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1940         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1941
1942 2005-07-15  Colin Walters  <walters@verbum.org>
1943
1944         * doc/TODO: Add note about convenience wrappers.
1945
1946 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1947
1948         * NEWS: Update to 0.35
1949
1950 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1951
1952         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1953         so distcheck doesn't fail
1954
1955         * glib/examples/Makefile.am: Add example-service.xml and 
1956         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1957
1958         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1959         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1960
1961         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1962         compiler looks in the right places during distcheck
1963
1964 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1965
1966         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1967         to fail
1968
1969 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1970
1971         * python/examples/example-service.py,
1972         python/examples/example-signal-emitter.py: Fixed up examples
1973         for API changes
1974
1975 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1976
1977         * python/__init__.py: Upped to version (0,42,0) because of
1978         the API change
1979
1980 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1981
1982         * ChangeLog: fix date in last entry
1983
1984         * configure.in, bus/system.conf.in: add the ability to configure 
1985         the system bus user at compiletime with the --with-dbus-user flag
1986         (patch from Kristof Vansant)
1987
1988 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1989
1990         * bus/dispatch.c, test/test-service.c: Add testcase
1991         for sending messages to oneself (TODO item).
1992
1993         * python/service.py (class Object): Swap ordering of bus_name 
1994         and object_path parameters to better support inheritance.
1995
1996         * doc/dbus-tutorial.xml: change Python docs to reflect change
1997         in parameter ordering and fix the inheritance section.
1998
1999         * doc/TODO: remove sending message to oneself TODO item
2000
2001 2005-07-15  Ross Burton  <ross@openedhand.com>
2002
2003         * glib/dbus-gproxy.c:
2004         Fix a leak when calling methods via the proxy.
2005
2006 2005-07-15  Colin Walters  <walters@verbum.org>
2007
2008         * bus/selinux.c (bus_selinux_append_context): Wrap in
2009         HAVE_SELINUX.
2010
2011 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2012
2013         * python/_dbus.py (Bus::remove_signal_receiver):
2014         don't add a callback to the match if none has been passed in
2015         
2016         * python/matchrules.py (SignalMatchTree::remove): if the rule
2017         being matched does not have a callback treat it as a wildcard
2018         fix matching logic
2019
2020         * doc/dbus-tutorial.xml: Add Python tutorial
2021
2022 2005-07-14  Colin Walters  <walters@verbum.org>
2023
2024         * bus/driver.c
2025         (bus_driver_handle_get_connection_unix_security_context): New function.
2026         (message_handlers): Add.
2027
2028         * bus/selinux.c (bus_selinux_append_context): New function; appends
2029         security context to message.
2030
2031         * bus/selinux.h: Prototype.
2032
2033         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2034
2035 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2036
2037         * bus/activation.c: clean up all tabs to be 8 spaces 
2038         (bus_activation_activate_service): make sure we clean up
2039         if activation fails
2040
2041         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2042         (check_shell_fail_service_auto_start): New function
2043         tests to make sure we get fail properly when trying to auto start a service
2044         with a faulty command line
2045         (check_shell_service_success_auto_start): New function tests to make sure
2046         auto started services get the arguments on the command line
2047
2048         * test/test-shell-service.c: Added service for testing auto-starting with 
2049         command line arguments
2050
2051         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2052         test/data/valid-service-files/debug-shell-echo-success.service.in:
2053         Added service files for testing auto-starting with command line arguments
2054
2055         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2056
2057 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2058
2059         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2060         
2061         * dbus/Makefile.am: added new files to build.
2062
2063         * bus/activation.c (bus_activation_activate_service): support
2064         activation commands with parameters.
2065
2066         * test/shell-test.c: added test program for the shell parsing
2067         code.
2068
2069 2005-07-13  David Zeuthen  <davidz@redhat.com>
2070
2071         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2072         64 bit signed and unsigned parameters
2073
2074 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2075
2076         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2077
2078         * python/service.py (class Name): renamed BusName to make it clearer
2079         what the object is for (a name on the bus)
2080
2081         * python/examples/example-service.py,
2082         python/examples/example-signal-emitter.py: change the Name object to
2083         BusName
2084
2085 2005-07-12  Colin Walters  <walters@verbum.org>
2086
2087         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2088
2089         * tools/dbus-launch.c: Include sys/select.h.
2090
2091 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2092         * python/dbus_bindings.pyx.in: removed
2093
2094         * python/dbus_bindings.pyx: Added.
2095         - Fixed some memleaks (patch from 
2096         Sean Meiners <sean.meiners@linspireinc.com>)
2097         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2098         own pxd file (Pyrex definition)
2099         - Broke out glib dependancies into its own pyx module
2100         
2101         * python/dbus_bindings.pdx: Added.
2102         - Defines C class Connection for exporting to other modules
2103
2104         * python/dbus_glib_bindings.pyx: Added.
2105         - New module to handle lowlevel dbus-glib mainloop integration
2106
2107         * python/glib.py: Added.
2108         - Registers the glib mainloop when you import this module
2109
2110         * python/services.py: Removed (renamed to service.py)
2111         
2112         * python/service.py: Added.
2113         - (class Server): renamed Name
2114
2115         * python/__init__.py: Bump ro version (0,41,0)
2116         -don't import the decorators or service module
2117         by default.  These now reside in the dbus.service namespace
2118
2119         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2120         setup function on creation 
2121
2122         * python/examples/example-service.py,
2123         python/examples/example-signal-emitter.py: update examples
2124
2125         * python/examples/gconf-proxy-service.py,
2126         python/examples/gconf-proxy-service2.py: TODO fix these up
2127
2128         * doc/TODO: Addition
2129         - Added a Python Bindings 1.0 section
2130         - added "Add match on args or match on details to match rules"
2131
2132
2133 2005-07-12  Colin Walters  <walters@verbum.org>
2134
2135         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2136         (statemachine-glue.h): 
2137         * glib/examples/Makefile.am (example-service-glue.h) 
2138         (example-signal-emitter-glue.h): 
2139         * glib/Makefile.am (dbus-glib-error-switch.h): 
2140         Add libtool --mode=execute so we use the built library instead
2141         of any installed one.
2142
2143 2005-07-11  Colin Walters  <walters@verbum.org>
2144
2145         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2146         (dbus_g_value_types_init): Remove assertion.
2147         (dbus_g_value_get_g_type, dbus_g_value_open)
2148         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2149         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2150         functions related to DBusGValue.  Now we marshal/demarshal
2151         structures as GValueArray.
2152         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2153         structures.
2154         (signature_iter_to_g_type_array): Don't call
2155         signature_iter_to_g_type_struct.
2156         (signature_iter_to_g_type_struct): Delete.
2157         (dbus_gvalue_to_signature): Delete.
2158         (dbus_gvalue_to_signature): New function with same name as other
2159         one; we can convert structures to signatures.
2160         (demarshal_valuearray): New function.
2161         (get_type_demarshaller): Use it.
2162         (demarshal_recurse): Delete.
2163         (marshal_proxy): New function.
2164         (marshal_map): Warn if we can't determine signature from type.
2165         (marshal_collection_ptrarray): Ditto.
2166         (marshal_collection_array): Ditto.
2167         (get_type_marshaller): Use marshal_valuearray.
2168         (marshal_recurse): Delete.
2169         (_dbus_gvalue_test): Add some tests.
2170
2171         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2172         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2173         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2174         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2175         (dbus_g_value_free): Remove prototypes.
2176
2177         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2178         G_TYPE_VALUE_ARRAY.
2179
2180         * glib/examples/example-service.c:
2181         * glib/examples/example-client.c: Implement GetTuple.
2182
2183         * test/glib/test-dbus-glib.c:
2184         * test/glib/test-service-glib.c:
2185         * test/glib/test-service-glib.xml: Add structure tests.
2186
2187 2005-07-10  Colin Walters  <walters@verbum.org>
2188
2189         * doc/TODO: Knock off some GLib items with this patch.
2190
2191         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2192         (_dbus_gvalue_signals_error): New functions.
2193
2194         * glib/dbus-gvalue-utils.h: Prototype them.
2195
2196         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2197         and change to not output const/retval flags for input args.  All
2198         callers updated.
2199         (invoke_object_method): Refactor to handle return values.  Add
2200         some more comments in various places.  Remove debug g_print.
2201
2202         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2203
2204         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2205         Handle G_TYPE_NONE.
2206         (compute_gsignature): New function; refactored from code from
2207         compute_marshaller and compute_marshaller_name.  Enhance to
2208         handle return values and async ops more cleanly.  Update for
2209         async ops returning NONE instead of BOOLEAN.
2210         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2211         and output appropriate string.
2212         (generate_glue): Handle return value annotation.  Also don't dump
2213         constness flag for input arguments.
2214
2215         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2216         files shared between installed library and utilities.
2217         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2218         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2219         binding tool can access gtype utility functions.
2220
2221         * test/glib/test-service-glib.c: 
2222         * test/glib/test-service-glib.xml: 
2223         * test/glib/test-dbus-glib.c: Add some tests for return values.
2224
2225 2005-07-09  Colin Walters  <walters@verbum.org>
2226
2227         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2228         argument if available, not method.
2229
2230         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2231         (invoke_object_method): First, remove some redundant
2232         GValues (object_value, error_value) in favor of working on
2233         array directly.  Second, rework constness to be less buggy.
2234         Now we iterate directly over the argument metadata instead
2235         of parallel iterating over output signature and metadata.
2236
2237         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2238
2239         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2240         annotation on input args.
2241         
2242 2005-07-09  Colin Walters  <walters@verbum.org>
2243
2244         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2245         Define.
2246
2247         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2248         annotation.
2249
2250         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2251         (method_dir_signature_from_object_info): Handle arg_iterate change.
2252         (write_interface): Ditto.
2253         (lookup_object_info): Don't barf if format_version is > 0.
2254         (invoke_object_method): Handle arg constness.
2255
2256         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2257         (arg_info_new): Create.
2258         (arg_info_unref): Destroy.
2259         (arg_info_get_annotations, arg_info_get_annotation) 
2260         (arg_info_add_annotation): New functions.
2261
2262         * glib/dbus-gidl.h: Prototype them.
2263
2264         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2265         args, disallow them in properties.
2266         (parse_annotation): Handle arg annotations.
2267
2268         * test/glib/test-service-glib.xml: 
2269         * test/glib/test-service-glib.c: Update to make some methods
2270         const.
2271
2272 2005-07-08  Colin Walters  <walters@verbum.org>
2273
2274         * test/glib/test-service-glib.xml: 
2275         * test/glib/test-service-glib.c:
2276         * test/glib/test-dbus-glib.c: Test a{sv}.
2277
2278         * glib/examples/statemachine/statemachine.c:
2279         * glib/examples/statemachine/statemachine-server.c:
2280         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2281         add progress bar, etc.
2282
2283         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2284         needed anymore due to generic array/map marshalling.
2285         (dbus_g_value_types_init): Don't register basic arrays or the
2286         string/string hash.
2287         (dbus_gtype_from_signature_iter): Don't try to recurse into
2288         variants.
2289         (dbus_gtype_to_signature): Check collection/map before type
2290         metadata.
2291         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2292         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2293         generic map creation/append functions instead of hash table
2294         specifically.
2295         (get_type_demarshaller): Handle maps.
2296         (demarshal_collection): Dispatch on collection type to either
2297         demarshal_collection_ptrarray or demarshal_collection_array.
2298         (get_type_marshaller): Handle maps.
2299         (marshal_collection): Dispatch collection type to either
2300         marshal_collection_ptrarray or marshal_collection_array.
2301         (_dbus_gvalue_test): New test.
2302
2303         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2304         (hash_free_from_gtype): Use it to free GValues.
2305         (hashtable_append): New function.
2306         (ptrarray_append): Fix prototype.
2307         (slist_append): Ditto.
2308         (_dbus_gvalue_utils_test): Extend tests.
2309
2310         * glib/dbus-gtype-specialized.c
2311         (dbus_g_type_specialized_init_append): Renamed from
2312         dbus_g_type_specialized_collection_init_append.  Remove const from
2313         value, since we steal it.
2314         (dbus_g_type_specialized_map_append): New function.
2315
2316         * glib/dbus-gtype-specialized.h: Update prototypes.
2317         Add DBusGTypeSpecializedMapAppendFunc.
2318
2319         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2320         _dbus_gvalue_test.
2321         
2322         * glib/dbus-gtest.h: Prototype it.
2323
2324 2005-07-08  Ross Burton  <ross@openedhand.com>
2325
2326         * dbus/dbus-glib.h:
2327         Add DBysGAsyncData for the async bindings.
2328
2329         * glib/dbus-binding-tool-glib.c:
2330         Re-enable the async bindings.
2331
2332         * test/glib/test-dbus-glib.c:
2333         Add a test for the generated async bindings.
2334
2335 2005-07-08  Colin Walters  <walters@verbum.org>
2336
2337         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2338         connection concept.
2339         
2340 2005-07-08  Colin Walters  <walters@verbum.org>
2341         
2342         * tools/Makefile.am: Kill of print-introspect in favor of using
2343         dbus-send --print-reply=literal.
2344
2345         * test/glib/test-service-glib.xml: 
2346         * test/glib/test-service-glib.c (my_object_get_objs): New test
2347         for "ao".
2348
2349         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2350         (main): Test GetObjs.
2351
2352         * glib/examples/statemachine/Makefile.am:
2353         * glib/examples/statemachine/sm-marshal.list:
2354         * glib/examples/statemachine/statemachine-client.c:
2355         * glib/examples/statemachine/statemachine-server.c:
2356         * glib/examples/statemachine/statemachine-server.xml:
2357         * glib/examples/statemachine/statemachine.c:
2358         * glib/examples/statemachine/statemachine.h:
2359         * glib/examples/statemachine/statemachine.xml:
2360
2361         New example.
2362
2363         * glib/examples/example-service.c (main): Move invocation
2364         of dbus_g_object_type_install_info earlier, to emphasize it
2365         should only be done once.
2366
2367         * glib/examples/example-signal-emitter.c (main): Ditto.
2368
2369         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2370
2371         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2372         (dbus_gvalue_marshal): Update prototypes.
2373
2374         * glib/dbus-gvalue.c: Update all marshalling functions to take
2375         const GValue instead of GValue.
2376         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2377         types.
2378         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2379         change.
2380         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2381         Return a newly-allocated string.
2382         (demarshal_proxy, demarshal_object_path, demarshal_object)
2383         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2384         we get the wrong types from message.
2385         (get_type_demarshaller): New function, extracted from
2386         dbus_gvalue_demarshal.
2387         (demarshal_collection): New function, demarshals generic
2388         collection.
2389         (dbus_gvalue_demarshal): Just invoke result of
2390         get_type_demarshaller.  Throw error if we don't have one.
2391         (marshal_garray_basic): Abort on OOM.
2392         (get_type_marshaller): New function, extracted from
2393         dbus_gvalue_marshal.
2394         (collection_marshal_iterator, marshal_collection): New functions;
2395         implements generic marshalling for an iteratable specialized
2396         collection.
2397         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2398
2399         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2400         G_TYPE_STRING.
2401         (ptrarray_value_from_gvalue): Ditto.
2402         (ptrarray_append, ptrarray_free): New functions.
2403         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2404         (slist_append, slist_end_append, slist_free): New functions.
2405         (dbus_g_type_specialized_builtins_init): Add append fuctions
2406         for GPtrArray and GSList.  Register GSList.
2407         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2408
2409         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2410         New.
2411         (dbus_g_type_specialized_collection_init_append)
2412         (dbus_g_type_specialized_collection_append)
2413         (dbus_g_type_specialized_collection_end_append): Prototype.
2414         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2415         end_append_func.
2416
2417         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2418         (dbus_g_type_specialized_collection_append) 
2419         (dbus_g_type_specialized_collection_end_append): New functions.
2420         (dbus_g_type_map_value_iterate): Take const GValue.
2421         (dbus_g_type_collection_value_iterate): Ditto.
2422
2423         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2424         _dbus_gvalue_utils_test.
2425         
2426         * glib/dbus-gtest.h: Prototype it.
2427
2428         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2429         using uninitialized owner_list.
2430         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2431         public API.
2432         (dbus_g_proxy_end_call_internal): Update to use error set
2433         from dbus_gvalue_demarshal instead of setting it here.
2434         (dbus_g_proxy_begin_call): Move return_if_fail here.
2435
2436         * glib/dbus-gobject.c (write_interface): Update for
2437         dbus_gtype_to_signature returning new string.
2438
2439         * configure.in: Add glib/examples/statemachine.
2440
2441 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2442
2443         * configure.in: Add a configure option, --with-console-auth-dir
2444         
2445         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2446         new setting.  Patch from Kay Sievers.
2447
2448 2005-07-06  Colin Walters  <walters@verbum.org>
2449
2450         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2451         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2452         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2453         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2454         Delete in favor of dbus_g_proxy_begin_call and
2455         dbus_g_proxy_cancel_call.
2456         (DBusGProxyCall, DBusGProxyCallNotify): New.
2457         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2458         data, and destroy function.  This replaces
2459         dbus_g_pending_call_set_notify.
2460         (dbus_g_proxy_cancel_call): Prototype.
2461         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2462
2463         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2464         pending_calls map.
2465         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2466         internal proxy for calls to the bus. Remove
2467         pending_nameowner_calls, now the internal proxy keeps track.
2468         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2469         pending_nameowner_calls.
2470         (got_name_owner_cb): Update prototype, and use
2471         dbus_g_proxy_end_call.
2472         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2473         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2474         favor of using internal proxy.
2475         (dbus_g_proxy_manager_unregister): Update to use
2476         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2477         (dbus_g_proxy_init): Initialize pending calls map.
2478         (dbus_g_proxy_constructor): New.
2479         (dbus_g_proxy_class_init): Add get/set property functions,
2480         constructor, and add NAME, PATH, and INTERFACE properties.
2481         (cancel_pending_call): New function.
2482         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2483         cancel them.
2484         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2485         (GPendingNotifyClosure): New structure.
2486         (d_pending_call_notify, d_pending_call_free): Moved here from
2487         dbus-glib.c.
2488         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2489         ordering.
2490         (manager_begin_bus_call): New internal function for talking to
2491         internal bus proxy.
2492         (dbus_g_proxy_new): Construct object using GObjet properties.
2493         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2494         Create closure of same, and insert call into map of pending calls.
2495         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2496         call.  Look up pending call in current set.  Remove it when we've
2497         completed.
2498         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2499         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2500         and destroy function directly.
2501         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2502         (dbus_g_proxy_call): Invoke with NULL callback.
2503         (dbus_g_proxy_cancel_call): New function, replaces
2504         dbus_g_pending_call_cancel.
2505
2506         * glib/dbus-gparser.c (validate_signature): Fix call to
2507         dbus_set_g_error.
2508
2509         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2510         New quark for attaching metadata to GType.
2511         (info_hash): Delete.
2512         (lookup_object_info): Look up using quark.
2513         (dbus_g_object_type_install_info): Check that a type is classed,
2514         not that it's an object.  Also just install type data using quark
2515         instead of using global hash.
2516
2517         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2518         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2519         (GPendingNotifyClosure): Delete.
2520         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2521         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2522
2523         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2524         client method generation until we can fix it...
2525         
2526         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2527         (load_from_service_thread_func): Ditto.
2528
2529         * tools/dbus-names-model.c (struct NamesModel): Hold
2530         DBusGProxyCall.
2531         (have_names_notify): Update prototype, use
2532         dbus_g_proxy_cancel_call.
2533         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2534
2535         * tools/dbus-monitor.c (filter_func): Update for print_message
2536         API change.
2537
2538         * test/glib/test-dbus-glib.c: Add more tests for async
2539         invocations.  Update many begin_call/end_call pairs to just use
2540         dbus_g_proxy_call.
2541
2542         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2543         allows us to dump print-introspect.c.
2544
2545         * tools/dbus-print-message.h (print_message): Add literal argument
2546         to print_message which is intended to allow printing arguments without
2547         metadata like "string=".
2548
2549         * tools/dbus-print-message.c (print_iter): Add literal argument.
2550         (print_message): Allow printing string messages literally.
2551
2552 2005-07-05  Colin Walters  <walters@verbum.org>
2553
2554         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2555         Remove value refcount leak, original patch from Jorn Baayen
2556         <jorn@openedhand.com>.  Also remove useless extra value in favor
2557         of prepending to value array directly.
2558
2559 2005-07-02  Colin Walters  <walters@verbum.org>
2560
2561         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2562
2563 2005-07-01  Colin Walters  <walters@verbum.org>
2564
2565         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2566         
2567         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2568         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2569         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2570         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2571
2572 2005-06-30  Colin Walters  <walters@verbum.org>
2573
2574         * test/glib/test-dbus-glib.c:
2575         * test/glib/test-service-glib.c:
2576         * test/glib/test-service-glib.xml: Update tests for new error
2577         setting bits, also add async tests (patch from Ross Burton).
2578
2579         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2580         DBUS_GLIB_THREADS_LIBS.
2581
2582         * glib/dbus-gproxy.c (get_name_owner)
2583         (dbus_g_pending_call_end_valist): Ditto.
2584
2585         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2586         domain (GQuark) to DBusGErrorInfo.  
2587         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2588         quark in error_metadata.  Take message interface as default
2589         error message interface.
2590         (gerror_to_dbus_error_message): Pass message interface.
2591         (dbus_set_g_error): Resurrected.
2592         (dbus_g_error_info_free): New function.
2593         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2594         of _peek to actually create the object class if it hasn't been
2595         created yet.
2596         (dbus_g_error_domain_register): New function.
2597
2598         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2599
2600         * glib/dbus-gparser.c (validate_signature): Ditto.
2601
2602         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2603         (dbus_g_error_domain_register): Prototype.
2604
2605         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2606         Update tests.
2607
2608 2005-06-29  Colin Walters  <walters@verbum.org>
2609
2610         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2611         DBUS_TYPE_G_OBJECT_PATH.
2612
2613         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2614         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2615         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2616         (dbus_g_object_path_get_g_type): New function.
2617         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2618         to DBUS_TYPE_G_OBJECT_PATH by default.
2619         (demarshal_proxy): Remove unused name variable.
2620         (demarshal_object_path, marshal_object_path): New functions.
2621         (demarshal_proxy_array, marshal_proxy_array): Delete.
2622         
2623         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2624         DBUS_TYPE_G_OBJECT_PATH to char *.
2625         (dbus_g_type_get_lookup_function): Map builtin
2626         DBUS_TYPE_G_OBJECT_PATH.
2627
2628         * test/glib/test-dbus-glib.c
2629         * test/glib/test-service-glib.c (my_object_objpath): 
2630         Adapt tests to new object path marshalling.
2631
2632 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2633
2634         * configure.in: force check for Python >= 2.4
2635
2636 2005-06-29  Colin Walters  <walters@verbum.org>
2637         
2638         Patch from Ross Burton <ross@openedhand.com>
2639         
2640         * glib/dbus-gobject.c (invoke_object_method): Unset object
2641         value in all cases, not only in async case.
2642
2643 2005-06-29  Colin Walters  <walters@verbum.org>
2644
2645         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2646         name_call for keeping track of any outgoing GetNameOwner call.
2647         Also add for_owner and associated.
2648         (struct _DBusGProxyManager): Add owner_names, which is hash table
2649         that maps a base name to a list of names it owns (that we're
2650         interested in).  Add pending_nameowner_calls which is a list of
2651         all outstanding GetNameOwner; avoids us having to iterate over
2652         every proxy.  Add unassociated_proxies which keeps track of name
2653         proxies with no associated name owner.
2654         (dbus_g_proxy_manager_unref): Destroy owner_names.
2655         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2656         name refcounts.
2657         (find_name_in_info, name_owner_foreach)
2658         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2659         (dbus_g_proxy_manager_monitor_name_owner)
2660         (dbus_g_proxy_manager_unmonitor_name_owner)
2661         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2662         New functions; they manipulate the owner_names mapping.
2663         (got_name_owner_cb): New function.
2664         (get_name_owner): New function, extracted from
2665         dbus_g_proxy_new_for_name_owner.
2666         (dbus_g_proxy_manager_register): For now we need to keep track of
2667         all NameOwnerChanged.  Also if the proxy is for a name, if we
2668         don't already know the name owner, queue a new GetNameOwner
2669         request and add it to our list of unassociated proxies.  Otherwise
2670         inc the refcount.
2671         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2672         cancel any pending GetNameOwner call, etc.
2673         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2674         the owner_names mapping to look up the current names for the
2675         signal source, and dispatch to any proxies for that name.
2676         (dbus_g_proxy_new): Initialize new members.
2677         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2678         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2679         (dbus_g_pending_call_end_valist): New function, extracted from
2680         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2681         but want to use the GLib infrastructure.  Also note how many
2682         arguments in reply were over.
2683         (dbus_g_pending_call_end): New function, just call
2684         dbus_g_pending_call_end_valist.
2685         (dbus_g_proxy_end_call_internal): Just call
2686         dbus_g_pending_call_end_valist.
2687
2688         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2689         of builtin marshaller for STRING_STRING_STRING.
2690
2691         * test/glib/test-dbus-glib.c: 
2692         * test/glib/test-service-glib.c:
2693         * test/glib/test-service-glib.xml:
2694         Extend tests to cover name proxies, destruction of owner proxies,
2695         etc.
2696         
2697         * glib/examples/example-signal-recipient.c
2698         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2699         
2700         * tools/dbus-send.c (main): Print D-BUS error name in addition
2701         to message.
2702
2703 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2704
2705         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2706         cmessage_function_handler): Patch from 
2707         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2708         by using the Py_GILState_Ensure/Release to synchronize with the
2709         python runtime.
2710         
2711 2005-06-28  Ray Strode  <rstrode@redhat.com>
2712
2713         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2714         babysitter helper process on last unref, bug #2813.
2715
2716 2005-06-27  Colin Walters  <walters@verbum.org>
2717
2718         * test/glib/test-dbus-glib.c: 
2719         * test/glib/test-service-glib.c:
2720         * test/glib/test-service-glib.xml:
2721         Test hash table signal emitting.
2722
2723         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2724         types to their fundamental basis types, since this is what
2725         marshallers operate on.  Also add an entry for VOID__BOXED.
2726         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2727
2728 2005-06-26  Havoc Pennington  <hp@redhat.com>
2729
2730         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2731         from Don Park
2732
2733 2005-06-26  Colin Walters  <walters@verbum.org>
2734
2735         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2736         (dbus_g_error_set): New public function from its ashes; used by
2737         both service-side method implementation and GLib bindings
2738         internals.
2739         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2740         (_dbus_glib_test): Add some tests.
2741
2742         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2743
2744         * test/glib/test-service-glib.c (my_object_throw_error): Use
2745         dbus_g_error_set.
2746
2747         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2748         errors thrown by dbus_g_error_set.
2749
2750         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2751
2752         * glib/dbus-gparser.c (validate_signature): Ditto.
2753
2754         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2755         (dbus_g_proxy_end_call_internal): Ditto.
2756
2757         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2758         converts DBUS_ERROR_x to DBUS_GERROR_x.
2759         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2760
2761         * doc/TODO: Remove error TODO.
2762
2763         * doc/dbus-tutorial.xml: Update with documentation about error
2764         handling.
2765
2766         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2767         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2768         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2769
2770 2005-06-22  Colin Walters  <walters@verbum.org>
2771         
2772         Patch from Ross Burton <ross@openedhand.com>
2773
2774         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2775
2776 2005-06-20  Colin Walters  <walters@verbum.org>
2777
2778         * configure.in: Add glib/examples.
2779
2780         * glib/Makefile.am: Add examples/
2781
2782         * glib/examples/.cvsignore
2783         * glib/examples/Makefile.am
2784         * glib/examples/example-client.c
2785         * glib/examples/example-service.c
2786         * glib/examples/example-service.xml
2787         * glib/examples/example-signal-emitter.c
2788         * glib/examples/example-signal-emitter.xml
2789         * glib/examples/example-signal-recipient.c:
2790         New files; GLib binding examples, ported from
2791         python/examples.
2792
2793 2005-06-20  Colin Walters  <walters@verbum.org>
2794
2795         * dbus/dbus-glib.h: 
2796         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2797         dbus_g_proxy_call.
2798
2799         * glib/dbus-binding-tool-glib.c: 
2800         * doc/dbus-tutorial.xml: 
2801         * test/glib/test-dbus-glib.c: Update for rename.
2802         
2803 2005-06-20  Colin Walters  <walters@verbum.org>
2804
2805         Patch suggested by Ross Burton <ross@openedhand.com>
2806
2807         * glib/dbus-gobject.c (export_signals): Free signal name.
2808         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2809         memory leak.  Add a bit of documentation.
2810         (dbus_g_method_return_error): Free context, and note we do
2811         so.
2812
2813 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2814
2815         * dbus/dbus-glib.h:
2816         * glib/dbus-gobject.c:
2817         * glib/dbus-gproxy.c:
2818         * glib/dbus-gvalue.c: Predeclare structs as 
2819         typedef struct _Something Something instead of 
2820         typedef struct Something Something, so we can 
2821         redeclare the prototypes. Other GNOME libraries 
2822         do this already.
2823
2824 2005-06-17  Colin Walters  <walters@verbum.org>
2825
2826         * tools/dbus-names-model.c (have_names_notify): Fix call
2827         to dbus_g_proxy_end_call.
2828         
2829 2005-06-17  Colin Walters  <walters@verbum.org>
2830
2831         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2832         spew warnings if we get malformed remote signals.
2833
2834         * glib/dbus-gobject.c (propsig_iterate): New function.
2835         (lookup_object_info): New function, extracted from
2836         lookup_object_and_method.
2837         (introspect_properties, introspect_signals): Delete; these
2838         are merged into write_interface.
2839         (write_interface): Write out signals and properties here;
2840         dump the org.gtk.object stuff and use the interface given
2841         in the introspection data blob.  Also fix up property XML.
2842         (lookup_values): New function.
2843         (introspect_interfaces): Gather a mapping from interface to a
2844         list of its methods, signals, and properties, then write out
2845         each interface.
2846         (lookup_object_and_method): Use lookup_object_info.
2847         (struct DBusGSignalClosure): Add interface.
2848         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2849         we can just use the constant data.
2850         (dbus_g_signal_closure_finalize): Don't free signal name.
2851         (signal_emitter_marshaller): Use interface from signal closure.
2852         (export_signals): Only export signals mentioned in introspection
2853         blob.
2854         (dbus_g_connection_register_g_object): Warn if we have no
2855         introspection data for an object.
2856         (funcsig_equal): Remove unused variable.
2857         (dbus_g_object_register_marshaller): Take varargs instead of
2858         list.
2859         (dbus_g_object_register_marshaller_array): New function,
2860         extracted from old dbus_g_object_register_marshaller.
2861
2862         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2863         signals and property data.
2864         (write_quoted_string): New function, extracted from generate_glue.
2865         (generate_glue): Write signals and properties to introspection
2866         blob.
2867
2868         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2869         exported_signals and exported_properties.
2870         (dbus_g_object_register_marshaller): Update prototype.
2871         (dbus_g_object_register_marshaller_array): Prototype.
2872         
2873         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2874
2875         * test/glib/test-service-glib.c: Add new test signals and method
2876         to emit them.
2877
2878         * test/glib/test-service-glib.xml: Add some test signals.
2879
2880         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2881         and my-object-marshal.h
2882         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2883         my-object-marshal.c.
2884         (my-object-marshal.c, my-object-marshal.h): Implement.
2885
2886         * test/glib/.cvsignore: Update.
2887
2888         * doc/TODO: Remove two GLib TODO items fixed by this
2889         patch.
2890
2891 2005-06-16  Colin Walters  <walters@verbum.org>
2892
2893         * doc/TODO: Update for GLib bindings.
2894         
2895 2005-06-16  Colin Walters  <walters@verbum.org>
2896
2897         * glib/dbus-binding-tool-glib.c:
2898         * glib/dbus-gobject.c:
2899         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2900         from Ross Burton, for his GLib bindings work.
2901
2902 2005-06-16  Colin Walters  <walters@verbum.org>
2903
2904         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2905         to iterate instead of walking to G_TYPE_INVALID.
2906
2907         Patch based on a patch from Ryan Gammon.
2908
2909 2005-06-16  Colin Walters  <walters@verbum.org>
2910
2911         * bus/bus.c (bus_context_new): Set parser to NULL
2912         after we unref it (Patch from Chris Boscolo, #2174).
2913         
2914 2005-06-16  Colin Walters  <walters@verbum.org>
2915
2916         * python/dbus_bindings.pyx.in: Import size_t,
2917         __int64_t, __uint64_t, and __signed.
2918
2919         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2920         Define cmsg struct, output it.
2921         (_dbus_read_credentials_unix_socket):
2922         Use cmsg struct.
2923         
2924         Patch from Joe Markus Clarke for FreeBSD support.
2925         
2926 2005-06-16  Colin Walters  <walters@verbum.org>
2927
2928         * tools/dbus-send.c (append_array): Use strtok.
2929         (append_dict): New function.
2930         (type_from_name): New function, extracted from main.
2931         (main): Handle sending dicts.
2932
2933         * tools/dbus-print-message.c (print_iter): Print dict
2934         entries.
2935         
2936 2005-06-16  Colin Walters  <walters@verbum.org>
2937
2938         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2939         values as the empty string (#2948).
2940         
2941 2005-06-16  Colin Walters  <walters@verbum.org>
2942
2943         * dbus/Makefile.am:
2944         * mono/doc/Makefile.am:
2945         * test/glib/Makefile.am:
2946
2947         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2948
2949 2005-06-16  Colin Walters  <walters@verbum.org>
2950
2951         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2952         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2953
2954         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2955         Increment pointer after swapping fixed array.  Add assertion
2956         for array length.
2957                 
2958 2005-06-15  Colin Walters  <walters@verbum.org>
2959
2960         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2961         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2962         
2963 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2964
2965         * NEWS: Update to 0.34
2966
2967 2005-06-15  David Zeuthen  <davidz@redhat.com>
2968
2969         * configure.in (LT_CURRENT): Revert back to 1 as the library
2970         hasn't changed and we've certainly not committed to protocol
2971         stability yet.  All this does is to break ABI. See commit note
2972         from hp@redhat.com 2005-05-05 for details.
2973         
2974 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2975
2976         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2977         (_dbus_connection_run_builtin_filters): New method
2978         (dbus_connection_dispatch): Run the builtin filters which in turn
2979         runs the peer filter which handles Ping messages.
2980
2981         * doc/TODO: 
2982          - Ping isn't handled: This patch fixes it
2983          
2984          - Add a test case for the Ping message: added TODO item
2985
2986 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2987
2988         * dbus/dbus-message.c:
2989         (dbus_message_has_path): New method
2990         (dbus_message_has_interface): New method
2991         (dbus_message_has_member): New method
2992
2993         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2994         New method
2995
2996         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2997         the keyring directory is private to the user
2998
2999         * doc/TODO:
3000          - The convenience functions in dbus-bus.h should perhaps have
3001          the signatures that they would have if they were autogenerated
3002          stubs. e.g. the acquire service function. We should also evaluate
3003          which of these functions to include, in light of the fact that
3004          GLib/Qt native stubs will probably also exist.: Punted
3005
3006          - add dbus_message_has_path(), maybe has_member/interface:
3007          fixed in this patch
3008
3009          - in dbus-keyring.c, enforce that the keyring dir is not
3010          world readable/writable: Fixed in this patch
3011
3012 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3013
3014         * dbus/dbus-marshal-validate.h: Added a new validation
3015         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3016         out of memory errors when validating signitures
3017
3018         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3019         in places where we previously used DBUS_VALID and a FALSE return 
3020         value to indicate OOM
3021         
3022         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3023         Use a stack to track the number of elements inside containers.  The 
3024         stack values are then used to validate that dict entries have only two
3025         elements within them.
3026         (validate_body_helper): check the reason for failure when validating
3027         varients
3028         
3029         * dbus/dbus-message.c (load_message): use 
3030         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3031         DBUS_VALID and a FALSE return value to indicate OOM
3032
3033         * doc/TODO: remove "- validate dict entry number of fields" as this
3034         patch fixes it
3035
3036 2005-06-14  David Zeuthen  <davidz@redhat.com>
3037
3038         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3039         watches (if applicable) and add new watches
3040
3041         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3042         (main): Setup SIGIO signal handler if using D_NOTIFY
3043
3044         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3045
3046         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3047         (merge_included): Also merge conf_dirs list
3048         (bus_config_parser_unref): Clear conf_dirs list
3049         (include_dir): Add directory to conf_dirs list
3050         (bus_config_parser_get_conf_dirs): New function
3051
3052         * bus/dir-watch.[ch]: New files
3053
3054         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3055
3056         * configure.in: Add checks for D_NOTIFY on Linux
3057
3058 2005-06-14  Colin Walters  <walters@verbum.org>
3059
3060         * glib/dbus-binding-tool-glib.c:
3061         * glib/dbus-gobject.c:
3062         * glib/dbus-gvalue.c: Fix indentation and brace style.
3063         
3064 2005-06-14  Ross Burton <ross@openedhand.com>.
3065
3066         * glib/dbus-glib.h: Make DBusGMethodInvocation
3067         a private structure.  Rearrange prototypes a bit.
3068         
3069         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3070         documentation for first_arg_type.
3071         
3072         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3073         here, add documentation.  Move dbus_g_method_return
3074         and dbus_g_method_return_error into public API
3075         section.
3076
3077 2005-06-14  Colin Walters  <walters@verbum.org>
3078
3079         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3080         Add missing return statements, noticed by Ross Burton.
3081         
3082 2005-06-13  Ross Burton <ross@openedhand.com>.
3083
3084         * glib/dbus-gobject.c: Handle errors on message
3085         demarshalling by sending error message back.
3086         * glib/dbus-gvalue.c: Initialize return variables.
3087
3088 2005-06-13  Colin Walters  <walters@verbum.org>
3089
3090         * glib/Makefile.am: Fix thinko in last patch.
3091
3092 2005-06-13  Colin Walters  <walters@verbum.org>
3093
3094         * glib/Makefile.am: Move dbus-gtype-specialized.c
3095         and dbus-gtype-specialized.h into a _HEADERS variable,
3096         install them.
3097
3098 2005-06-12  Colin Walters  <walters@verbum.org>
3099
3100         Async signals and various bugfixes and testing by
3101         Ross Burton <ross@openedhand.com>.
3102
3103         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3104         (dbus_gvalue_genmarshal_name_from_type)
3105         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3106         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3107         (dbus_g_value_types_init, dbus_gtype_from_signature)
3108         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3109         (dbus_gtypes_from_arg_signature): New function prototypes.
3110         (dbus_gvalue_demarshal): Take context and error arguments.
3111         (dbus_gvalue_demarshal_variant): New function.
3112         (dbus_gvalue_demarshal_message): New function.
3113         (dbus_gvalue_store): Delete.
3114
3115         * glib/dbus-gvalue.c:
3116
3117         File has been almost entirely rewritten; now we special-case
3118         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3119         hash tables correctly, etc.  Full support for recursive values
3120         is not yet complete.
3121
3122         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3123         argument of signal to G_TYPE_POINTER since we now pass a
3124         structure.
3125         (lookup_g_marshaller): Delete in favor of
3126         _dbus_gobject_lookup_marshaller.
3127         (marshal_dbus_message_to_g_marshaller): Use
3128         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3129         to handle remote signal callbacks.
3130         (dbus_g_proxy_new_from_proxy): New function; creates a new
3131         DBusGProxy by copying an existing one.
3132         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3133         (dbus_g_proxy_get_path): New functions.
3134         (dbus_g_proxy_marshal_args_to_message): New function;
3135         factored out of existing code.
3136         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3137         from a varargs array.
3138         (dbus_g_proxy_begin_call_internal): New function.
3139         (dbus_g_proxy_end_call_internal): New function.
3140         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3141         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3142         after collecting args into value array.
3143         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3144         invoke dbus_g_proxy_end_call_internal.
3145         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3146         end_call_internal.
3147         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3148         types.
3149         (array_free_all): New function.
3150         (dbus_g_proxy_add_signal): Take GTypes.
3151
3152         * glib/dbus-gobject.h:
3153         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3154         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3155         Prototype.
3156
3157         * glib/dbus-gobject.c: Add a global marshal_table hash which
3158         stores mappings from type signatures to marshallers.  Change lots
3159         of invocations of dbus_gtype_to_dbus_type to
3160         dbus_gtype_to_signature.
3161         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3162         (introspect_signals): Fix test for query.return_type.
3163         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3164         (invoke_object_method): Many changes.  Handle asynchronous
3165         invocations.  Convert arguments with
3166         dbus_gvalue_demarshal_message.  Handle errors.  Use
3167         DBusSignatureIter instead of strlen on args. Handle all arguments
3168         generically.  Special-case variants.
3169         (dbus_g_method_return, dbus_g_method_return_error): New function.
3170         (DBusGSignalClosure): New structure, closes over signal
3171         information.
3172         (dbus_g_signal_closure_new): New function.
3173         (dbus_g_signal_closure_finalize): New function.
3174         (signal_emitter_marshaller): New function; is special marshaller
3175         which emits signals on bus.
3176         (export_signals): New function; introspects object signals and
3177         connects to them.
3178         (dbus_g_object_type_install_info): Take GType instead of
3179         GObjectClass.
3180         (dbus_g_connection_register_g_object): Invoke export_signals.
3181         (dbus_g_connection_lookup_g_object): New function.
3182         (DBusGFuncSignature) New structure; used for mapping type
3183         signatures to marshallers.
3184         (funcsig_hash): New function; hashes DBusGFuncSignature.
3185         (funcsig_equal): New function; compares DBusGFuncSignature.
3186         (_dbus_gobject_lookup_marshaller): New function.
3187         (dbus_g_object_register_marshaller): New function; used to
3188         register a marshaller at runtime for a particular signature.
3189
3190         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3191
3192         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3193         which notes a server method implementation should be
3194         asynchronous.
3195
3196         * glib/dbus-binding-tool-glib.c
3197         (dbus_binding_tool_output_glib_server): Call
3198         dbus_g_value_types_init.
3199         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3200         variants specially.
3201         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3202         of a lookup function.
3203         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3204         (write_untyped_out_args): New method; write output arguments.
3205         (write_formal_declarations_for_direction): Function for
3206         writing prototypes.
3207         (write_formal_parameters_for_direction): Function for
3208         writing implementations.
3209         (write_typed_args_for_direction): Function for writing
3210         arguments prefixed with GTypes.
3211         (write_async_method_client): Write out async version
3212         of method.
3213
3214         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3215         (dbus_g_type_get_marshal_name): Move mapping from GType
3216         to marshal name into here.
3217         (dbus_g_type_get_c_name): Move into here.
3218         (compute_marshaller): Convert signature to type with
3219         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3220         (compute_marshaller_name): Ditto.
3221         (compute_marshaller): Handle async signal annotations.
3222         (gather_marshallers): Return if we don't have a known
3223         prefix.
3224         (generate_glue): Collect introspection blob here, and
3225         write all of the blob at the end.  This allows an object
3226         with multiple interfaces to work.
3227         Mark async methods in introspection blob.
3228
3229         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3230         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3231         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3232
3233         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3234         avoids people accidentally using DBUS_TYPE_* which should
3235         not be necessary anymore.
3236         Do include dbus-gtype-specialized.h, which are utilities
3237         for GLib container types.
3238         Add various #defines for types such as
3239         DBUS_TYPE_G_BOOLEAN_ARRAY.
3240         (DBusGValueIterator, DBusGValue): Define, not fully used
3241         yet.
3242         (dbus_g_value_get_g_type): Type for recursive value.
3243         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3244         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3245         (dbus_g_value_free): Prototypes.
3246         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3247         (dbus_g_proxy_set_interface): Prototype.
3248         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3249         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3250         types.
3251         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3252         Accessors.
3253         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3254         doing async invocations.
3255         (dbus_g_method_return, dbus_g_method_return_error):
3256         Prototypes.
3257         * doc/dbus-tutorial.xml: Update GLib section.
3258         
3259         * tools/dbus-viewer.c (load_child_nodes): Update
3260         for new invocation type of dbus_g_proxy_end_call.
3261         (load_from_service_thread_func): Ditto.
3262
3263         * tools/print-introspect.c (main): Ditto.
3264
3265         * tools/dbus-names-model.c (have_names_notify)
3266         (names_model_reload, names_model_set_connection)
3267         Use GTypes.
3268
3269         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3270         needed since Python bindings use GLib bindings.
3271
3272         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3273         Add --prefix argument.
3274
3275         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3276         unneeded --ignore-unsupported arg.
3277         
3278         * test/glib/test-service-glib.c: 
3279         * test/glib/test-service-glib.xml:
3280         * test/glib/test-dbus-glib.c: Add many more tests.
3281
3282 2005-06-06  David Zeuthen  <davidz@redhat.com>
3283
3284         * doc/TODO: Add item about need to remove deprecated functions.
3285
3286         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3287
3288         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3289         to repair the ABI which was broken with the last commit.
3290
3291 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3292
3293         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3294         (dbus_connection_disconnect): renamed to dbus_connection_close 
3295         for API symmetry with dbus_connection_open
3296         (_dbus_connection_open_internal): 
3297         s/dbus_connection_disconnect/dbus_connection_close
3298
3299         * dbus/dbus-bus.c (dbus_bus_get):
3300         s/dbus_connection_disconnect/dbus_connection_close
3301
3302         * bus/connection.c (bus_connections_unref, 
3303         bus_connections_setup_connection, bus_connections_expire_incomplete):
3304         s/dbus_connection_disconnect/dbus_connection_close
3305
3306         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3307         kill_client_connection_unchecked, check_hello_connection):
3308         s/dbus_connection_disconnect/dbus_connection_close
3309
3310         * bus/bus.c (new_connection_callback):
3311         s/dbus_connection_disconnect/dbus_connection_close
3312
3313         * tools/dbus-send.c (main):
3314         s/dbus_connection_disconnect/dbus_connection_close
3315
3316         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3317         s/dbus_connection_disconnect/dbus_connection_close
3318         
3319         * test/test-service.c (path_message_func, filter_func):
3320         s/dbus_connection_disconnect/dbus_connection_close
3321         
3322         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3323         
3324 2005-05-25  Colin Walters  <walters@verbum.org>
3325
3326         * dbus/dbus-protocol.h: Move various bus service #defines such
3327           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3328           dbus/dbus-shared.h.
3329         * dbus/dbus-shared.h: Various defines moved here.
3330         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3331
3332 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3333
3334         * python/__init__.py: Python bindings deserve a minor version
3335         update.  Upped to (0, 40, 2)
3336
3337 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3338
3339         * python/decorators.py: add explicitly_pass_message decorator
3340         for passing in the dbus message as keyword for edge case signal
3341         handling
3342
3343         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3344         to conform with what dbus expects for match rules
3345         (SignalMatchRule.execute): add the dbus message as a keyword
3346         if the signal handler has requested it
3347
3348         * python/examples/example/signal-recipient.py: added some more
3349         examples on how to hook up to signals
3350
3351 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3352
3353         * python/decorators.py: import dbus_bindings
3354
3355         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3356         SignalMatchNode): new classes that implement wildcard signal
3357         callback matching using a tree lookup. Heavily modified from a
3358         patch sent by Celso Pinto (fd.o bug #3241)
3359
3360         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3361         use new match classes to handle signals.
3362
3363 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3364         
3365         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3366
3367 2005-05-18  Havoc Pennington  <hp@redhat.com>
3368
3369         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3370         gettext. Not really worth requiring yet perhaps, but any
3371         production quality 1.0 would require it so we should go ahead and
3372         get things set up. We do have a couple token calls to
3373         bindtextdomain in the code already.
3374
3375 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3376
3377         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3378         when using recursive g_main_loops
3379
3380         * python/_dbus.py (class Bus): add the ProxyObjectClass
3381         alias for ProxyObject to make it easier for the Twisted 
3382         networking framework to integrate dbus.
3383
3384         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3385         alias for ProxyMethod to make it easier for the Twisted 
3386         networking framework to integrate dbus. 
3387
3388 2005-05-11  Ross Burton  <ross@openedhand.com>
3389
3390         * glib/dbus-glib-tool.c: Add --prefix argument.
3391         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3392         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3393         Add prefix argument.
3394         (generate_glue): Pass prefix argument down.
3395         (dbus_binding_tool_output_glib_server): Pass prefix to
3396         glib-genmarshal.
3397         
3398 2005-05-11  Colin Walters  <walters@verbum.org>
3399
3400         * tools/dbus-send.c (append_array): New function.
3401         (append_arg): Broken out from main.
3402         (main): Add cheesy hack to send arrays and variants.
3403         (usage): Update.
3404         * tools/dbus-print-message.c (print_iter): Broken out
3405         from main.
3406
3407 2005-05-11  Colin Walters  <walters@verbum.org>
3408
3409         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3410         New function, returns signature string for signature iter.
3411         * dbus/dbus-signature.h: Prototype it.
3412         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3413         New function, returns signature string for message iter.
3414         (dbus_message_iter_get_array_len): New function, returns
3415         length of array.
3416         (dbus_message_iter_get_fixed_array): Fix assertion; this
3417         function should be used when the iter is pointing to the
3418         contents of an array
3419         * dbus/dbus-message.h: Prototypes.
3420         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3421         New function; returns length of an array.
3422         * dbus/dbus-marshal-recursive.h: Prototype it.
3423         
3424 2005-05-11  Colin Walters  <walters@verbum.org>
3425
3426         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3427         compilation error.
3428         
3429 2005-05-08  Havoc Pennington  <hp@redhat.com>
3430
3431         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3432         daemon's pid, not the parent's pid, to the file descriptor.
3433         Reported by Taj Morton.
3434
3435 2005-05-05  Havoc Pennington  <hp@redhat.com>
3436
3437         * configure.in (LT_*): add notes on how the libtool versioning
3438         works to save thinking. Increment soname to indicate protocol
3439         breakage (though really the library interface hasn't changed I
3440         guess)
3441
3442         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3443         verify the GUID received from server matches what we were
3444         expecting, if we had an expectation
3445
3446         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3447         (_dbus_auth_get_guid_from_server): new function
3448         (send_begin): parse the OK args
3449
3450         * doc/dbus-specification.xml: add GUID to the auth protocol
3451
3452 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3453
3454         * Fix my name in previous changelog ;)
3455
3456         * python/proxies.py (ProxyObject.__getattr__): add further patch
3457         from Anthony Baxter to throw an AttributeError when python 
3458         __special__ functions are called instead of marshling them over 
3459         the bus (Bug#1685 comment 3).
3460
3461 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3462
3463         * python/Makefile.am: changed to use pyexecdir for the binding
3464         shared libraries (Bug#2494)
3465
3466         * python/exceptions.py: bring exceptions over from the bindings
3467         so they can be used in applications (Bug#2036)
3468         Make all exceptions derive from DBusException
3469
3470         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3471         of classes so that print obj doesn't throw an exception (Bug #1685)
3472
3473 2005-05-03  Ross Burton  <ross@openedhand.com>
3474
3475         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3476         Return if we get an error during registration.  Set up a
3477         weak reference on object to unregister if object is destroyed.
3478         (unregister_gobject): New function.
3479         
3480 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3481
3482         * python/dbus_bindings.pyx.in: 
3483         - added new type classes for hinting to the marashaler what type 
3484         to send over the wire
3485         - added int16 and uint16 marshalers
3486         - Fixed a bug in the type constants that caused int32 to go out
3487         as uint16 over the wire
3488         * python/dbus.py: split up into different files and renamed _dbus.py
3489         * python/__init__.py, python/_util.py, python/decorators.py, 
3490         python/exceptions.py, python/proxies.py, python/services.py,
3491         python/types.py: new files split off from dbus.py
3492         * python/Makefile.am: Add new files, remove dbus.py and 
3493         install all python files to <python module dir>/dbus
3494         * python/examples/*: Added #!/usr/bin/env python to the top of
3495         every example.  Patch provided by Tatavarty Kalyan
3496
3497 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3498
3499         * NEWS: Update to 0.33
3500
3501 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3502
3503         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3504         method for doing async calls
3505         (_pending_call_notification): New C function for handling pendning call
3506         callbacks
3507         (set_notify): New method for setting pending call notification
3508         
3509         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3510         Async capabilities added to remote method calls
3511         (Sender): class removed
3512         (RemoteService): class removed
3513         (ObjectTree): class removed for now
3514         (RemoteObject): Renamed to ProxyObject
3515         (RemoteMethod): Renamed to ProxyMethod
3516         (method): Decorator added for decorating python methods as dbus methods
3517         (signal): Decorator added for decorating python methods as signal emitters
3518         (ObjectType): Metaclass added for generating introspection data and the
3519         method callback vtable
3520         (Interface): Wrapper class added to wrap objects in a dbus interface
3521         (Object): Uses ObjectType as its metaclass and exports Introspect
3522         of the org.freedesktop.DBus.Introspectable interface
3523         (ValidationException, UnknownMethodException): new exceptions
3524
3525         * python/examples/*: Modified to fit with the new bindings
3526
3527 2005-04-23  Havoc Pennington  <hp@redhat.com>
3528
3529         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3530         reported by Tony Houghton
3531
3532         * test/test-service.c (main): test
3533         dbus_connection_get_object_path_data()
3534
3535         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3536         the exact_match
3537         (_dbus_object_tree_get_user_data_unlocked): new function used by
3538         dbus_connection_get_object_path_data()
3539         (do_register): add assertion test for get_user_data_unlocked
3540         (object_tree_test_iteration): more tests
3541
3542         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3543         new function from Dan Reed to let you get the user data from 
3544         dbus_connection_register_object_path()
3545
3546 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3547
3548         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3549         in numerous places that did not account for the NULL terminator
3550         (signature_from_seed): changed the manual string copy loop to 
3551         just use strcpy instead
3552         make check should now pass
3553
3554 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3555
3556         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3557         so that it allows messages that are not signals to pass in 
3558         NULL as the interface.
3559
3560 2005-04-18  David Zeuthen  <davidz@redhat.com>
3561
3562         * glib/dbus-gmain.c (io_handler_destroy_source): 
3563         (timeout_handler_destroy_source, connection_setup_free): 
3564         Also unref the source to avoid memory leaks.
3565
3566 2005-04-13  David Zeuthen  <davidz@redhat.com>
3567
3568         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3569         more reasonable, yet still totally arbitrary, value :-). 
3570
3571 2005-04-13  David Zeuthen  <davidz@redhat.com>
3572
3573         * doc/TODO: Added an "important for 1.0" item about selinux
3574         allow/deny messages
3575
3576 2005-04-13  David Zeuthen  <davidz@redhat.com>
3577
3578         * bus/selinux.c: Add c-file-style to top of file
3579         (log_audit_callback): Don't free the data here anymore
3580         (bus_selinux_check): Don't take spid and tpid since appending
3581         that to auxdata may OOM.
3582         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3583         to the caller if we are OOM by taking an error object.
3584         (bus_selinux_allows_send): -do-
3585
3586         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3587         and bus_selinux_allows_send
3588
3589         * bus/bus.c (bus_context_check_security_policy): Pass error and
3590         pass on OOM thrown by bus_selinux_allows_send()
3591
3592         * bus/services.c (bus_registry_acquire_service): Pass error and
3593         pass on OOM thrown by bus_selinux_allows_acquire_service()
3594
3595 2005-04-13  Havoc Pennington  <hp@redhat.com>
3596
3597         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3598         message at a time to avoid monopolizing the main loop, bug 
3599         #2953 from Benjamin Otte
3600
3601 2005-04-09  Havoc Pennington  <hp@redhat.com>
3602
3603         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3604         possible overlap, fix from Daniel Reed
3605         (fixup_alignment): fix signedness warnings
3606         (_dbus_string_append_unichar): ditto
3607
3608 2005-04-09  Havoc Pennington  <hp@redhat.com>
3609
3610         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3611
3612         * glib/dbus-glib-tool.c (main): fix warning
3613
3614         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3615
3616         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3617         add a new function that can be used in simple applications that
3618         don't have a main loop and are willing to block
3619
3620 2005-04-05  David Zeuthen  <davidz@redhat.com>
3621
3622         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3623
3624         * glib/dbus-gmain.c:
3625         (io_handler_destroy_source): Remove from list of IO handlers
3626         of the ConnectionSetup object
3627         (timeout_handler_destroy_source): -do- for timeout handlers
3628         (io_handler_source_finalized): Don't remove from list since
3629         we now do that in io_handler_destroy_source(). Renamed from
3630         io_handler_source_destroyed
3631         (timeout_handler_source_destroyed): -do- for timeout handlers
3632         (connection_setup_free): It is now safe to iterate over all
3633         IO and timeout handlers as the _destroy_source removes them
3634         from the list synchronously
3635
3636 2005-03-30  Havoc Pennington  <hp@redhat.com>
3637
3638         * configure.in: change check to gtk 2.4
3639
3640         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3641         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3642         to 2.4
3643
3644 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3645
3646         * News: Update 0.32
3647
3648         * HACKING: Fixed realease instructions.  configure.in should be updated to
3649           the next release by the person who made the last release.
3650
3651 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3652
3653         * python/lvalue_cast_post_process.py - removed.  Patch has been
3654           submitted to Pyrex maintainers that fixes gcc4.0 errors
3655
3656         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3657
3658 2005-03-24  Daniel Reed  <n@ml.org>
3659
3660         * tools/Makefile.am: Make print-introspect and
3661         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3662
3663 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3664
3665         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3666
3667         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3668           had in Red Hat packages for a while but for some reason never 
3669           got merged upstream
3670           (_dbus_is_a_number): New checks if a string
3671           can be converted to a number and does the conversion if it can
3672           (_dbus_user_database_lookup): Add check to see if the given username
3673           is a udi.  This allows udi's to be used instead of usernames in the
3674           config file.
3675           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3676           is a gdi.  This allows gdi's to be used instead of groupnames in the
3677           config file.
3678
3679 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3680
3681         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3682           code so that it compiles with gcc4.0
3683
3684         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3685           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3686           results back to dbus_binding.c
3687
3688 2005-03-20  Colin Walters  <walters@verbum.org>
3689
3690         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3691
3692         * configure.in: Require GTK+ 2.6.
3693         
3694 2005-03-20  Colin Walters  <walters@verbum.org>
3695
3696         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3697
3698 2005-03-17  Tom Parker  <palfrey@tevp.net>
3699
3700         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3701         print DBUS_UID_UNSET; instead print passed username.  Also
3702         be sure to actually use gid looked up in cache.
3703         
3704         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3705         for DBUS_GID_UNSET and groupname.
3706
3707 2005-03-17  Colin Walters  <walters@verbum.org>
3708
3709         * bus/print-introspect.c: Move to tools/.
3710         * bus/run-with-tmp-session-bus.sh: Ditto.
3711         
3712         * glib/Makefile.am (dbus-glib-bindings.h): Move
3713         generation to tools/Makefile.am.
3714
3715         * test/glib/run-test.sh: Update to handle move
3716         of run-with-tmp-session-bus.sh.
3717
3718         * test/glib/test-service-glib.c: Update to handle
3719         move of dbus-glib-bindings.h.
3720
3721         * tools/print-introspect.c: Moved here
3722         from bus/, and ported to GLib bindings.
3723
3724         * tools/run-with-tmp-session-bus.sh: Moved here
3725         from bus/.
3726
3727         * tools/Makefile.am: Generate dbus-glib-bindings.h
3728         and dbus-bus-introspect.xml here.
3729
3730         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3731         Update.
3732
3733 2005-03-17  Colin Walters  <walters@verbum.org>
3734
3735         * bus/driver.c (write_args_for_direction): Use
3736         _dbus_string_get_const_data to retrieve string;
3737         _dbus_string_get_const_data_len doesn't actually return
3738         a NULL-terminated substring.
3739
3740         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3741         (main): Change to use org_freedesktop_DBus_request_name
3742         instead of using g_proxy_begin_call/end_call.
3743
3744 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3745
3746         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3747         generating the finalizer.  Fixes from Ben Maurer.
3748
3749 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3750
3751         * mono/BusDriver.cs: Update method names: ListServices
3752         becomes ListNames; GetOwner becomes GetNameOwner.
3753
3754         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3755         onto the eval stack when removing the delegate.
3756
3757 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3758
3759         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3760         LT_CURRENT.  Set it to the autoconf variable.
3761                                                                                 
3762         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3763         classes that disconnects the signal handler delegate from the
3764         service object.  Fixes a big leak of proxy objects on the
3765         client side of things.  Patch from Ben Maurer
3766         <bmaurer@ximian.com>
3767
3768 2005-03-12  Colin Walters  <walters@verbum.org>
3769
3770         * bus/driver.c (write_args_for_direction): New function,
3771         parses a type signature into arguments and outputs to
3772         XML.
3773         (bus_driver_handle_introspect): Use it instead of
3774         hardcoding XML for certain signatures.
3775         
3776         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3777         dependency on dbus-daemon.
3778
3779         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3780         argument, pass it to dbus_binding_tool_output_glib_client.
3781
3782         * glib/dbus-binding-tool-glib.c
3783         (generate_client_glue): Protect against multiple inclusion.
3784         (dbus_binding_tool_output_glib_client): Add
3785         G_BEGIN_DECLS/G_END_DECLS.
3786
3787         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3788         Change to just take iface prefix directly.
3789         (write_formal_parameters): Clarify error message.
3790         (check_supported_parameters): New function; checks to see type
3791         signatures of method parameters are supported.
3792         (generate_client_glue): Handle ignore_unsupported flag.
3793         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3794         parameter.
3795
3796         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3797         --ignore-unsupported by default until glib bindings
3798         support arrays.
3799
3800 2005-03-11  Colin Walters  <walters@verbum.org>
3801
3802         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3803         install it.
3804
3805         * bus/print-introspect.c: New file; prints introspection
3806         data for a given name and object path.
3807
3808         * bus/run-with-tmp-session-bus.sh: New file, refactored
3809         from test/glib/run-test.sh.  Creates a temporary session
3810         bus and runs another program.
3811
3812         * test/glib/run-test.sh: Refactor to invoke
3813         run-with-tmp-session-bus.sh.
3814
3815         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3816         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3817         macros instead of hardcoding.
3818
3819         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3820
3821 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3822
3823         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3824         this unref; it doesn't match up evenly in some codepaths.
3825         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3826         this evenly matches with the ref near the top of this function.
3827
3828 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3829
3830         * dbus/dbus-object-tree.c
3831         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3832         and we try to unregister a path that's not registered, still go
3833         through the process of unlocking and don't just return.
3834
3835 2005-03-09  Colin Walters  <walters@verbum.org>
3836
3837         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3838         to this are generated for client-side wrappers.  Invokes a
3839         D-BUS method and returns reply values.  
3840
3841         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3842         function; writes signature string for argument direction.
3843         (write_args_for_direction): Change to pass input values directly
3844         instead of via address, and fix indentation.
3845         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3846         make generated wrappers inlineable.
3847
3848         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3849         note about using dbus_type_is_fixed.
3850
3851         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3852         dbus/dbus-signature.c as dbus_type_is_fixed.
3853
3854         All callers updated.
3855
3856         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3857         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3858
3859         * dbus/dbus-signature.h: Prototype.
3860
3861         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3862         error printf code.
3863
3864         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3865         appropriate instead of just freeing it.
3866         (main): Free returned strings using g_free.
3867
3868         * test/glib/Makefile.am (test-service-glib-glue.h)
3869         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3870
3871         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3872         simply maps a simple D-BUS type to GType.
3873         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3874         GType.
3875         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3876         initialize the value with it.
3877         (dbus_gvalue_binding_type_from_type): Unused, delete.
3878         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3879         various types instead of unmarshalling to value data directly.
3880         Remove can_convert boolean.
3881         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3882         returning directly instead of using can_convert boolean.
3883         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3884         Stores a GValue in a pointer to a value of its corresponding C
3885         type.
3886
3887         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3888         add dbus_gvalue_store.
3889
3890 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3891
3892         Fix a bunch of lifecycle and memory management problems
3893         in the mono bindings.
3894
3895         * mono/Arguments.cs (Arguments): Implement IDisposable
3896
3897         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3898         strictly a static class.
3899
3900         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3901         delegates into this file.
3902         (Connection): Implement IDisposable.
3903         (Dispose): Disconnect the connection and set the raw connection
3904         pointer to IntPtr.Zero.
3905         (~Connection): Call Dispose().
3906         (RegisterObjectPath): Added.  Manages the registration of object
3907         paths so we can cleanly disconnect them at dispose/finalize time.
3908         (UnregisterObjectPath): Ditto.
3909         (set_RawConnection): Unregister all of the object paths when
3910         changing the underlying DBusConnection.  Add them back onto the
3911         new connection, if any.
3912
3913         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3914         more unmanaged resources anymore, so it's not necessary.  Move all
3915         the DBusObjectPathVTable stuff out of here.
3916         (Handler): Save references to our delegates so that they don't get
3917         finalized.  Call Connection.RegisterObjectPath() instead of
3918         dbus_connection_register_object_path() directly.
3919         (Message_Called): Dispose the message after we're finished with
3920         it.
3921
3922         * mono/Message.cs (Message): Implement IDisposable.
3923         (Dispose): Dispose the Arguments, and set the RawMessage to
3924         IntPtr.Zero.
3925         (SendWithReplyAndBlock): We own the ref to the reply that comes
3926         back from dbus_connection_send_with_reply_and_block() so add a
3927         comment about that and unref it after we've constructed a managed
3928         MethodReturn class around it.  Fixes a big, big leak.
3929
3930         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3931         method.
3932         (BuildSignalHandler): After we've sent the Signal message, dispose
3933         of it.
3934         (BuildMethod): Dispose of the method call and reply messages after
3935         we've sent the message and extracted the data we want from the
3936         reply.
3937
3938         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3939         anymore.
3940         (Service_FilterCalled): Dispose of the message after we're
3941         finished with it.
3942
3943 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3944
3945         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3946         After we attach our pending call to the connection, unref
3947         it.  Fixes a leak.
3948  
3949         * mono/Connection.cs (set_RawConnection): Disconnect our
3950         filter and match callbacks from the old connection and
3951         reconnect them to the new connection, if any.
3952
3953         * mono/DBusType/Array.cs: "Code" is a static member, so
3954         don't use "this" to refer to it.  Fix for stricter checking
3955         in Mono 1.1.4.
3956  
3957         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3958         object path that we pass into unmanaged code.
3959  
3960         * mono/DBusType/String.cs (Append): Don't leak the string
3961         that we pass into unmanged code.
3962
3963 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3964         * NEWS: Update for 0.31
3965
3966         * configure.in: Release 0.31
3967         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3968
3969         * qt/Makefile.am: fixed build
3970
3971         * dbus/Makefile.am: soname bump for libdbus
3972
3973         * glib/Makefile.am: soname bump for libdbus-glib
3974
3975 2005-03-05  Havoc Pennington  <hp@redhat.com>
3976
3977         * dbus/dbus-sysdeps.c:
3978         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3979         value
3980         (_dbus_generate_random_bytes_buffer): fix return value
3981
3982         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3983         checks actually work, from Tom Parker <fdo@tevp.net>
3984
3985 2005-03-01  Colin Walters  <walters@verbum.org>
3986
3987         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3988         functions copied from dbus-glib-tool.c.
3989         (main): Convert lots of error code to use them.
3990         Also add some testing for introspection bits.
3991
3992 2005-03-01  Colin Walters  <walters@verbum.org>
3993         
3994         * doc/TODO: Remove introspection signature TODO.
3995
3996 2005-02-27  Colin Walters  <walters@verbum.org>
3997
3998         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3999         Change return value to const char * instead of int so we can do
4000         full signatures.
4001         (struct PropertyInfo, struct ArgInfo): Store char *.
4002         (property_info_new, arg_info_new): Update parameters, strdup.
4003         (property_info_unref, arg_info_unref): Free.
4004
4005         * glib/dbus-gidl.h: Update prototypes.
4006
4007         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4008         (validate_signature): New function, just validates signature and
4009         sets GError.
4010         (parse_property, parse_arg): Invoke validate_signature.  Store
4011         signature instead of just type code.
4012
4013         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4014         function to return a primary type for a signature, dropping
4015         information about types in container types.
4016         (dbus_gvalue_genmarshal_name_from_type)
4017         (dbus_gvalue_binding_type_from_type)
4018         (dbus_gvalue_ctype_from_type): Update to take full signature
4019          instead of type code.
4020         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4021
4022         * glib/dbus-gvalue.h: Update prototypes for above.
4023
4024         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4025         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4026         (introspect_properties, introspect_signals, write_interface):
4027         Update to handle signatures, and remove usage of
4028         _dbus_gutils_type_to_string.
4029         (handle_introspect): Print out type codes instead of e.g. "string"
4030         in hardcoded introspection XML; also use x_AS_STRING constants
4031         instead of hardcoding in string.
4032
4033         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4034         to string.  Remove usage of _dbus_gutils_type_to_string.
4035
4036         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4037
4038         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4039         deletion.
4040         
4041         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4042         (compute_marshaller_name, generate_glue): Handle signature change
4043         to string.
4044         (write_formal_parameters, write_args_for_direction): Ditto, and
4045         remove FIXME.
4046
4047         * tools/dbus-tree-view.c (type_to_string): Delete.
4048         (info_set_func_text): Update to print full signatures.
4049
4050         * test/glib/test-service-glib.xml: Change types to new
4051         introspection format.
4052
4053 2005-02-26  Havoc Pennington  <hp@redhat.com>
4054
4055         * doc/TODO: remove the "guid" item
4056
4057         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4058         (with_bus_thread_func): use open_private
4059
4060         * dbus/dbus-connection.c (dbus_connection_open_private): new
4061         function that works like the old dbus_connection_open()
4062         (dbus_connection_open): now returns an existing connection if
4063         possible
4064
4065         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4066         through the GUID to the transport
4067
4068         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4069         GUID in hex-encoded form.
4070
4071         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4072         pass GUID argument in to the transport
4073
4074         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4075         guid argument
4076
4077         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4078
4079         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4080
4081 2005-02-25  Havoc Pennington  <hp@redhat.com>
4082
4083         * doc/dbus-specification.xml: document the GUID thing
4084
4085         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4086         globally unique ID for the server, and put a "guid=hexencoded"
4087         field in the address
4088
4089         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4090
4091         * dbus/dbus-message.c: ditto
4092
4093         * dbus/dbus-dataslot.c: ditto
4094
4095         * dbus/dbus-list.c: ditto
4096
4097         * dbus/dbus-internals.h: wait, just include
4098         dbus-threads-internal.h here
4099         
4100         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4101         use in main library
4102
4103         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4104
4105 2005-02-24  Colin Walters  <walters@verbum.org>
4106
4107         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4108
4109 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4110
4111         * glib/Makefile.am: added dbus-gobject.h to sources list
4112         so distcheck doesn't fail
4113         
4114 2005-02-24  Havoc Pennington  <hp@redhat.com>
4115
4116         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4117         you must disconnect before unref, since locking and other things
4118         are screwed up otherwise. Fix assorted other locking stuff.
4119
4120         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4121         fix compilation
4122
4123         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4124         into a private header and don't export from the library
4125
4126         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4127
4128 2005-02-24  Colin Walters  <walters@verbum.org>
4129         
4130         * dbus/dbus-signature.c: New file; implements various functions
4131         related to type signatures.  Includes an interator for parsing,
4132         validation functions.
4133         (dbus_type_is_basic): Moved here from
4134         dbus-marshal-basic.c:_dbus_type_is_basic.
4135         (dbus_type_is_container): Moved here from
4136         dbus-marshal-basic.c:_dbus_type_is_container.
4137
4138         All callers of _dbus_type_is_container and _dbus_type_is_basic
4139         updated, and include dbus-signature.h.
4140
4141         * dbus/dbus-signature.h: New file; prototypes for the above.
4142
4143         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4144         dbus-signature.h.
4145
4146         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4147         function factored out of _dbus_first_type_in_signature.
4148         (_dbus_first_type_in_signature_c_str): New function; returns first
4149         type code for a type signature character.
4150
4151         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4152         handle function moves.
4153
4154         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4155
4156         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4157         function; skips to next complete type in type signature.
4158         Implemented using previous skip_one_complete_type.  Now
4159         skip_one_complete_type just delegates to
4160         _dbus_type_signature_next.
4161
4162         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4163         to dbus-signature.c
4164         (_dbus_type_is_container): Ditto.
4165
4166         * doc/dbus-specification.xml: Update introspection sample to
4167         use real type signatures.
4168
4169         * dbus/dbus-test.h: Prototype signature test.
4170
4171         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4172         signature tests.
4173
4174         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4175
4176 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4177
4178         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4179         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4180
4181 2005-02-21  Colin Walters  <walters@verbum.org>
4182
4183         * dbus/dbus-test-main.c (main): Take optional specific test
4184         argument.
4185
4186         * dbus/dbus-test.c (run_test): New function, runs a test function
4187         with no data directory.
4188         (run_data_test): Like above, but takes data directory.
4189         (dbus_internal_do_not_use_run_tests): Take
4190         specific test argument.  Replace lots of cut n' paste code
4191         with run_test and run_data_test.
4192
4193         * dbus/dbus-test.h: Update prototype for
4194         dbus_internal_do_not_use_run_tests.
4195
4196 2005-02-20  Havoc Pennington  <hp@redhat.com>
4197
4198         Fix bugs reported by Daniel P. Berrange
4199         
4200         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4201         (protected_change_watch): new function
4202         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4203         (_dbus_server_add_watch): change to work like the
4204         dbus-connection.c equivalents; like those, probably kind of
4205         busted, but should at least mostly work for now
4206         (dbus_server_disconnect): drop the lock if we were already
4207         disconnected, patch from Daniel P. Berrange
4208
4209         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4210         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4211         same stuff
4212
4213         * doc/TODO: todo about unscrewing this mess
4214
4215 2005-02-19  Colin Walters  <walters@verbum.org>
4216
4217         * glib/dbus-binding-tool-glib.c
4218         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4219
4220         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4221         as errno.h and sys/stat.h.
4222         (lose): New function, prints error with
4223         newline and exits.
4224         (lose_gerror): Similar, but takes GError for message.
4225         (main): Add --output argument to specify output file to write to,
4226         instead of always printing to stdout.  In this mode, determine
4227         timestamps on source files to see whether any are newer than the
4228         target file.  If not, exit.  Also convert a number of error
4229         messages to use lose (since it's shorter), and switch to using
4230         g_io_channel_shutdown.
4231
4232 2005-02-19  Havoc Pennington  <hp@redhat.com>
4233
4234         * glib/dbus-gobject.c
4235         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4236
4237         * glib/dbus-glib.c: fix doxygen warnings
4238
4239         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4240         is found on an <arg>
4241
4242 2005-02-17  Colin Walters  <walters@verbum.org>
4243
4244         * glib/dbus-gobject.h: Don't export
4245         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4246         
4247         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4248         (invoke_object_method): Handle it.
4249
4250         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4251         Handle rename.
4252         
4253 2005-02-17  Colin Walters  <walters@verbum.org>
4254
4255         * bus/.cvsignore, doc/.cvsignore
4256         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4257         Update.
4258
4259 2005-02-17  Colin Walters  <walters@verbum.org>
4260         
4261         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4262         Rename to DBUS_SERVICE_DBUS.
4263         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4264         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4265         Change the value from "org.freedesktop.Local"
4266         to "org.freedesktop.DBus.Local".
4267         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4268         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4269         DBUS_INTERFACE_INTROSPECTABLE.
4270         Change the value from "org.freedesktop.Introspectable"
4271         to "org.freedesktop.DBus.Introspectable".
4272         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4273         DBUS_INTERFACE_PROPERTIES.
4274         Change the value from "org.freedesktop.Properties"
4275         to "org.freedesktop.DBus.Properties".
4276         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4277         DBUS_INTERFACE_PEER.
4278         Change the value from "org.freedesktop.Peer"
4279         to "org.freedesktop.DBus.Peer".
4280         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4281         DBUS_INTERFACE_LOCAL.
4282         Change the value from "org.freedesktop.Local"
4283         to "org.freedesktop.DBus.Local".
4284
4285         All other users of those constants have been changed.
4286
4287         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4288
4289         * glib/dbus-gobject.c (handle_introspect): Use constants.
4290
4291         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4292
4293 2005-02-17  Colin Walters  <walters@verbum.org>
4294
4295         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4296         (parse_node, parse_interface, parse_method, parse_signal)
4297         (parse_property, parse_annotation): Lose if we're currently in an
4298         annotation.
4299         (parse_annotation): New function.
4300         (parser_start_element, parser_end_element): Handle annotation.
4301         (parse_method, parse_interface): Remove support for c_name attribute,
4302         switch to annotations.
4303
4304         * glib/dbus-gidl.h (interface_info_get_binding_names)
4305         (method_info_get_binding_names)
4306         (interface_info_get_binding_name, method_info_get_binding_name)
4307         (interface_info_set_binding_name, method_info_set_binding_name):
4308         Remove.
4309         (interface_info_get_annotations, method_info_get_annotations)
4310         (interface_info_get_annotation, method_info_get_annotation)
4311         (interface_info_add_annotation, method_info_add_annotation):
4312         Prototype.
4313
4314         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4315         for "bindings".
4316         (struct MethodInfo): Ditto.
4317         Straightfoward conversion of binding methods into annotation methods
4318         as prototyped.
4319
4320         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4321
4322         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4323
4324         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4325         Use new annotation API.
4326
4327         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4328         annotation element.
4329         
4330         * doc/dbus-specification.xml: Discuss introspection annotations,
4331         include list of well-known annotations.
4332
4333         * test/glib/test-service-glib.xml: Make validate against new DTD.
4334
4335 2005-02-17  Colin Walters  <walters@verbum.org>
4336
4337         This patch is based on initial work from
4338         Paul Kuliniewicz <kuliniew@purdue.edu>.
4339
4340         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4341         initialization of GValue from dbus type to here.
4342         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4343         for the "glib-genmarshal" program from a DBus type.
4344         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4345         into the C name for it we use in the glib bindings.
4346         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4347         glib C type (not GValue).
4348         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4349
4350         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4351         from dbus-gobject.c.
4352
4353         * glib/dbus-gutils.h: Prototype it.
4354
4355         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4356         (marshal_dbus_message_to_g_marshaller): Use new shared function
4357         dbus_glib_marshal_dbus_message_to_gvalue_array.
4358
4359         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4360         Will be changed once we have annotations.
4361
4362         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4363         GStaticRWLock.  Callers updated.
4364         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4365         (string_table_next): New function for iterating over zero-terminated
4366         string value array.
4367         (string_table_lookup): New function; retrieves specific entry in
4368         array.
4369         (get_method_data): New function; look up method data in object data chunk.
4370         (object_error_domain_prefix_from_object_info)
4371         (object_error_code_from_object_info): New functions, but not implemented yet.
4372         (method_interface_from_object_info): New function; retrieve interface name.
4373         (method_name_from_object_info): New function; retrieve method name.
4374         (method_arg_info_from_object_info): New function; retrieve argument data.
4375         (arg_iterate): New function; iterates over serialized argument data.
4376         (method_dir_signature_from_object_info): New function; returns a
4377         GString holding type signature for arguments for just one
4378         direction (input or output).
4379         (method_input_signature_from_object_info)
4380         (method_output_signature_from_object_info): New functions.
4381         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4382         converts dbus message arguments into a GValue array.  Used for both
4383         signal handling and method invocation.
4384         (struct DBusGlibWriteIterfaceData): New utility structure.
4385         (write_interface): New function; generate introspection XML for
4386         an interface.
4387         (introspect_interfaces): New function; gathers all interface->methods,
4388         generates introspection XML for them.
4389         (handle_introspect): Invoke introspect_interfaces.
4390         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4391         (lookup_object_and_method): New function; examines an incoming message
4392         and attempts to match it up (via interface, method name, and argument
4393         signature) with a known object and method.
4394         (gerror_domaincode_to_dbus_error_name): New function; converts a
4395         GError domain and code into a DBus error name.  Needs GError data
4396         added to object introspection to work well.
4397         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4398         GError.
4399         (invoke_object_method): New function to invoke an object method
4400         looked up via lookup_object_and_method.  Parses the incoming
4401         message, turns it into a GValue array, then invokes the marshaller
4402         specified in the DBusGMethodInfo.  Creates a new message with
4403         either return values or error message as appropriate.
4404         (gobject_message_function): Invoke lookup_object_and_method and
4405         invoke_object_method.
4406
4407         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4408         (enum DBusBindingOutputMode): New enum for binding output modes.
4409         (pretty_print): Print binding names.
4410         (dbus_binding_tool_error_quark): GError bits.
4411         (version): Fix typo.
4412         (main): Create GIOChannel for output.  Parse new --mode argument,
4413         possible values are "pretty-print", "glib-server", "glib-client".
4414         Use mode to invoke appropriate function.
4415         
4416         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4417
4418         * glib/dbus-glib-tool.h: New header, just includes GError bits
4419         for now.
4420
4421         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4422         maps binding style to name.
4423         (struct MethodInfo): Ditto.
4424         (get_hash_keys, get_hash_key): Utility function, returns keys for
4425         a GHashTable.
4426         (interface_info_new, method_info_new): Initialize bindings.
4427         (interface_info_unref, method_info_unref): Destroy bindings.
4428         (method_info_get_binding_names, method_info_get_binding_name)
4429         (interface_info_get_binding_names, interface_info_get_binding_name):
4430         Functions for retrieving binding names.
4431         (method_info_set_binding_name, interface_info_set_binding_name):
4432         Functions for setting binding names.
4433
4434         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4435         for glib binding generation.
4436
4437         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4438         and client-side glib glue generation.
4439
4440         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4441         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4442         dbus-glib-tool.h.
4443
4444         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4445         of using GClosureMarshal directly.
4446         (struct DBusGObjectInfo): Add n_infos member.
4447
4448         * test/glib/test-service-glib.xml: New file; contains introspection data
4449         for MyTestObject used in test-service-glib.c.
4450
4451         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4452         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4453         (my_object_uppercase, my_object_many_args): New test methods.
4454         (main): Use dbus_g_object_class_install_info to include generated object
4455         info.
4456
4457         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4458         as well as client-side bindings.
4459
4460         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4461         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4462         using both the dbus_gproxy stuff directly as well as the generated bindings.
4463
4464 2005-02-15  Havoc Pennington  <hp@redhat.com>
4465
4466         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4467         complete a pending call, don't run filters first.
4468
4469         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4470         dbus_pending_call_steal_reply
4471
4472         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4473         _dbus_connection_block_pending_call
4474         (dbus_pending_call_get_reply): change to steal_reply and return a
4475         ref
4476
4477         * dbus/dbus-connection.c
4478         (dbus_connection_send_with_reply_and_block): port to work in terms
4479         of DBusPendingCall
4480         (_dbus_connection_block_pending_call): replace block_for_reply
4481         with this
4482
4483 2005-02-14  Havoc Pennington  <hp@redhat.com>
4484
4485         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4486         properly handle looking up group information by name; fix 
4487         from j@bootlab.org
4488
4489 2005-02-13  Havoc Pennington  <hp@redhat.com>
4490
4491         * dbus/dbus-connection.c (dbus_connection_return_message) 
4492         (dbus_connection_borrow_message): hold dispatch lock while message
4493         is outstanding
4494         (_dbus_connection_block_for_reply): hold dispatch lock while we
4495         block for the reply, so nobody steals our reply
4496         (dbus_connection_pop_message): hold the dispatch lock while we
4497         pluck the message
4498
4499 2005-02-13  Havoc Pennington  <hp@redhat.com>
4500
4501         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4502         (_dbus_connection_release_dispatch)
4503         (_dbus_connection_acquire_io_path)
4504         (_dbus_connection_release_io_path): make the mutex and condvar
4505         control access to the "acquired" flag. Drop the connection lock
4506         while waiting on the condvar. Hopefully these are baby steps in
4507         roughly the right direction.
4508
4509 2005-02-13  Havoc Pennington  <hp@redhat.com>
4510
4511         * dbus/dbus-connection.c: use separate mutexes for the condition
4512         variables; this is some kind of baseline for sanity, but the
4513         condition variables still aren't used correctly afaict
4514
4515 2005-02-13  Havoc Pennington  <hp@redhat.com>
4516
4517         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4518         fix a double-unlock
4519
4520         * dbus/dbus-connection.c
4521         (_dbus_connection_detach_pending_call_unlocked): add this
4522
4523         Initial semi-correct pass through to fix thread locking; there are
4524         still some issues with the condition variable paths I'm pretty
4525         sure
4526         
4527         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4528         lock/unlock calls
4529
4530         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4531         rename to add _unlocked
4532         (struct DBusConnection): move "dispatch_acquired" and
4533         "io_path_acquired" to use only one bit each.
4534         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4535         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4536         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4537         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4538         (_dbus_connection_remove_timeout) 
4539         (_dbus_connection_toggle_timeout): drop lock when calling out to
4540         user functions; done in a hacky/bad way.
4541         (_dbus_connection_send_and_unlock): add a missing unlock
4542         (_dbus_connection_block_for_reply): add a missing unlock
4543
4544         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4545         drop lock in a hacky probably unsafe way to call out to user
4546         function
4547
4548 2005-02-12  Havoc Pennington  <hp@redhat.com>
4549
4550         * tools/dbus-tree-view.c (info_set_func_text): display more
4551         details on args
4552
4553         * bus/driver.c (bus_driver_handle_list_services): list the bus
4554         driver
4555
4556         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4557
4558         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4559         (method_info_get_n_args): new function
4560
4561 2005-02-12  Havoc Pennington  <hp@redhat.com>
4562
4563         * bus/driver.c (bus_driver_handle_introspect): add introspection
4564         for bus driver
4565
4566 2005-02-12  Havoc Pennington  <hp@redhat.com>
4567
4568         * bus/driver.c: put the signature of each bus driver method in the
4569         table of handlers and check it on incoming calls; this isn't
4570         really useful, but going to add introspect support in a minute.
4571
4572 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4573
4574         * mono/Connection.cs: The unpredictability of finalizers in mono
4575         prevents us from deterministically disconnecting the filters from
4576         the Service class's finalizer, so move tracking of filters and
4577         matches here.  Add API for that.
4578
4579         * mono/Service.cs: Remove the code, add code which calls the
4580         methods now on the Connection class.
4581
4582 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4583
4584         * python/dbus.py (class Sender): added to support dbus signals better
4585         (Bus::add_signal_receiver): added expand_args parameter which defaults
4586         to True.  When expand args is True the signal handler will pass the 
4587         message arguments as parameters to the signal handler.  If False
4588         revert to previous behavior where the signal handler must get the
4589         argument list from the message.  This is to help port applications
4590         like HAL that have a tendancy to send variable length argument lists.
4591         self._match_rule_to_receivers is now a dict of dicts.
4592         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4593         removing it from a list
4594         (Bus::_signal_func): change signal handlers so that interface,
4595         signal_name, service, path and message are packed into a Sender
4596         object and that is passed to the handler.  If expand_args is True
4597         extract the args list from the message and append it to the parameter
4598         list
4599         
4600         * python/dbus_bindings.pyx.in (class Signature): added to support 
4601         signiature types
4602         (MessageIter::__init__): changed iteration limit to match D-BUS
4603         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4604         STRUCT and VARIENT type support
4605         (MessageIter::python_value_to_dbus_sig): made recursive to support
4606         recursive types
4607         (MessageIter::append*): added Signature, dict, tuple 
4608         support
4609
4610         * python/examples/example-client.py: added examples of getting tuples
4611         and dicts
4612
4613         * python/examples/example-service.py: added examples of sending tuples
4614         and dicts
4615
4616         * python/examples/example-signal-recipient.py: Fixed to handle new
4617         signal callback format
4618
4619 2005-02-10  Havoc Pennington  <hp@redhat.com>
4620
4621         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4622         (call dbus_g_proxy_add_signal)
4623
4624         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4625         escape the hostname
4626         (_dbus_server_new_for_domain_socket): escape the path
4627
4628         * dbus/dbus-address.c (dbus_address_escape_value): new
4629         (dbus_address_unescape_value): new
4630         (dbus_parse_address): unescape values
4631
4632         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4633
4634         * doc/dbus-specification.xml: explain how to escape values in
4635         addresses
4636
4637 2005-02-10  Havoc Pennington  <hp@redhat.com>
4638
4639         * dbus/dbus-message-factory.c (generate_special): modify test to
4640         avoid using a non-basic dict key
4641
4642         * dbus/dbus-marshal-validate-util.c: add test for the below
4643
4644         * doc/dbus-specification.xml: require that dict keys are a basic
4645         type
4646
4647         * dbus/dbus-marshal-validate.c
4648         (_dbus_validate_signature_with_reason): require that dict key is a
4649         basic type
4650
4651 2005-02-10  Havoc Pennington  <hp@redhat.com>
4652
4653         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4654         change to be _and_unlock instead of _unlocked
4655
4656         * dbus/dbus-connection.c
4657         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4658         have no_update so we can find this bug quickly in future
4659
4660 2005-02-10  Havoc Pennington  <hp@redhat.com>
4661
4662         * dbus/dbus-message-util.c (verify_test_message): tests for string
4663         array
4664
4665         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4666         support for arrays of string/signature/path
4667
4668 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4669
4670         * dbus/dbus-connection.c
4671         (_dbus_connection_queue_received_message_link,
4672         _dbus_connection_message_sent): Add the path to
4673         the verbose output.
4674         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4675         _dbus_connection_send_preallocated_unlocked(), updated the
4676         dispatch status, and unlocks.  Fixes a bug where certain
4677         situations (like a broken pipe) could cause a Disconnect message
4678         to not be sent, tricking the bus into thinking a service was still
4679         there when the process had quit.
4680         (_dbus_connection_send_preallocated): Call
4681         _dbus_connection_send_preallocated_and_unlock().
4682         (_dbus_connection_send_and_unlock): Added.  Calls
4683         _dbus_connection_send_preallocated_and_unlock().
4684         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4685         (dbus_connection_send_with_reply): Update the dispatch status and
4686         unlock.
4687
4688         * mono/Service.cs (~Service): Added.  Removes the filter so that
4689         we don't get unmanaged code calling back into a GCed delegate.
4690         (RemoveFilter); Added.
4691
4692 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4693
4694         * dbus/dbus-message.c (dbus_message_iter_open_container):
4695         - Removed check for iterator type being an array because
4696         get_arg_type does not work with writer iterators
4697         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4698
4699 2005-02-07  Havoc Pennington  <hp@redhat.com>
4700
4701         * doc/dbus-specification.xml: some more language cleanups; add
4702         stuff about how to deal with invalid protocol and extension
4703         points; add _ to allowed chars in auth commands; add EXTENSION_
4704         auth command prefix
4705
4706 2005-02-06  Havoc Pennington  <hp@redhat.com>
4707
4708         * s/expected/required/ in a couple places for clarity
4709
4710 2005-02-07  Colin Walters  <walters@verbum.org>
4711
4712         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4713         sender or proposed_recipient.
4714
4715 2005-02-06  Havoc Pennington  <hp@redhat.com>
4716
4717         * dbus/dbus-message-factory.c (generate_special): more tests
4718
4719         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4720         array length that exceeds the maximum
4721
4722 2005-02-05  Havoc Pennington  <hp@redhat.com>
4723
4724         * dbus/dbus-message-factory.c (generate_special): more test cases,
4725         increasing coverage
4726
4727         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4728         reason why a signature was invalid
4729
4730         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4731         skip the length of the string before we look at it in validation
4732
4733         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4734         equal_substring
4735
4736         * dbus/dbus-message.c (_dbus_message_loader_new): default
4737         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4738
4739 2005-02-05  Havoc Pennington  <hp@redhat.com>
4740
4741         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4742         if the signature of a variant was empty
4743         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4744         struct with no element type)
4745
4746         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4747         mangled messages to break things
4748
4749 2005-02-04  Havoc Pennington  <hp@redhat.com>
4750
4751         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4752         g_quark_try_string() so it actually can return 0
4753         (dbus_g_proxy_connect_signal): ditto
4754
4755 2005-02-04  Havoc Pennington  <hp@redhat.com>
4756
4757         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4758         bogus warning
4759         (tristring_from_message): assert cleanly on null path/interface
4760         (should not be possible though I decided later)
4761         (dbus_g_proxy_dispose): move proxy manager unregistration here
4762         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4763         g_return_if_fail() checks
4764
4765 2005-02-04  Havoc Pennington  <hp@redhat.com>
4766
4767         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4768
4769         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4770         (with some minor changes)
4771
4772         * doc/dbus-specification.xml: add deprecated attribute to
4773         introspection format
4774
4775 2005-01-31  Havoc Pennington  <hp@redhat.com>
4776
4777         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4778         think it's sort of right
4779
4780 2005-01-30  Havoc Pennington  <hp@redhat.com>
4781
4782         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4783
4784 2005-01-30  Havoc Pennington  <hp@redhat.com>
4785
4786         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4787
4788         * autogen.sh: change to autotools 1.9
4789
4790         * glib/dbus-gproxy.c: completely change how signals work
4791         (dbus_g_proxy_add_signal): new function to specify signature of a
4792         signal
4793         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4794         and g_warning if the incoming message has the wrong signature.
4795
4796 2005-01-30  Havoc Pennington  <hp@redhat.com>
4797
4798         * tools/dbus-names-model.c (have_names_notify): fix this
4799
4800         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4801         up the string array handling a bit 
4802
4803 2005-01-30  Havoc Pennington  <hp@redhat.com>
4804
4805         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4806         (dbus_g_pending_call_cancel): new function
4807
4808         * dbus/dbus-glib.h: move GType decls for connection/message here;
4809         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4810         here, just kind of rationalizing how we handle all that
4811
4812         * tools/dbus-names-model.c: new file for a tree model listing the
4813         services on a bus
4814
4815         * tools/dbus-tree-view.c (model_new): use proper typing on the
4816         model rows
4817
4818 2005-01-30  Havoc Pennington  <hp@redhat.com>
4819
4820         * glib/dbus-gmain.c: add a custom GSource back that just checks
4821         whether the message queue has anything in it; otherwise, there are 
4822         cases where we won't see messages in the queue since there was no 
4823         IO visible to the glib main loop
4824
4825         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4826         increase default message timeout to 25 seconds
4827
4828 2005-01-30  Havoc Pennington  <hp@redhat.com>
4829
4830         * test/glib/test-profile.c (no_bus_stop_server): remove the
4831         warning about the g_warning that I just fixed
4832
4833         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4834         custom source, seems to be a lot easier to understand and work
4835         better.
4836
4837 2005-01-30  Havoc Pennington  <hp@redhat.com>
4838
4839         I think this main loop thing is conceptually broken, but here are 
4840         some band aids. I'll maybe rewrite it in a minute.
4841         
4842         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4843         custom GSource, so don't pass it in; confusing
4844         (gsource_server_finalize, gsource_connection_finalize): add
4845         finalize handlers that remove all the watches.  
4846
4847 2005-01-30  Havoc Pennington  <hp@redhat.com>
4848
4849         * glib/dbus-gobject.c (introspect_properties): fix the XML
4850         generated
4851
4852         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4853         which effectively detects the use of freed messages
4854
4855         * glib/dbus-gobject.c (handle_introspect): modify and return the
4856         reply message instead of the incoming message
4857
4858         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4859         gee, maybe it should SEND THE XML instead of just making a string
4860         and freeing it again ;-)
4861
4862         * tools/dbus-print-message.c (print_message): improve printing of
4863         messages
4864
4865         * configure.in: add debug-glib.service to the output
4866
4867 2005-01-30  Havoc Pennington  <hp@redhat.com>
4868
4869         dbus-viewer introspected and displayed the bus driver
4870         
4871         * dbus/dbus-object-tree.c 
4872         (object_tree_test_iteration): add tests for a handler registered on "/"
4873
4874         * dbus/dbus-object-tree.c
4875         (_dbus_decompose_path): fix to handle path "/" properly
4876         (run_decompose_tests): add tests for path decomposition
4877         
4878         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4879         properly
4880
4881         * glib/dbus-gobject.c (handle_introspect): fix quotes
4882
4883         * test/glib/run-test.sh: support launching the bus, then running
4884         dbus-viewer
4885
4886         * test/glib/test-service-glib.c (main): put in a trivial gobject
4887         subclass and register it on the connection
4888
4889         * bus/driver.c (bus_driver_handle_introspect): implement
4890         introspection of the bus driver service
4891
4892         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4893         identifiers, doctype decl
4894
4895         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4896         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4897         returning the service unchanged.
4898         (bus_driver_handle_message): remove old check for reply_serial in
4899         method calls, now the message type deals with that
4900         (bus_driver_handle_message): handle NULL interface
4901
4902         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4903
4904         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4905         -1 for len
4906
4907         * tools/dbus-viewer.c: add support for introspecting a service on
4908         a bus
4909
4910         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4911         (dbus_g_pending_call_unref): add
4912
4913 2005-01-29  Havoc Pennington  <hp@redhat.com>
4914
4915         * tools/dbus-tree-view.c: add support for displaying properties.
4916         (run dbus-viewer with an introspect xml file as arg, then resize
4917         the window so the tree elements show up, not sure what that is)
4918
4919         * glib/dbus-gobject.c (handle_introspect): return
4920         org.freedesktop.Properties and org.freedesktop.Introspectable
4921         interfaces when we are introspected.
4922
4923         * doc/dbus-specification.xml: allow empty interface name when 
4924         Get/Set a property
4925
4926 2005-01-29  Havoc Pennington  <hp@redhat.com>
4927
4928         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4929         though it uses glib, it could be extended for any binding in
4930         principle
4931
4932         * glib/dbus-gobject.c (gobject_message_function): change to the
4933         new way properties work
4934
4935         * dbus/dbus-protocol.h: add the new interfaces
4936
4937         * doc/dbus-specification.xml: document the introspection format,
4938         Introspectable interface, and add an org.freedesktop.Properties
4939         interface.
4940
4941         * glib/dbus-gparser.c: add support for a <property> element
4942
4943         * glib/dbus-gidl.c: add PropertyInfo
4944
4945         * glib/dbus-gobject.c (handle_introspect): put the outermost
4946         <node> outside the signal and property descriptions.
4947         (introspect_properties): export properties as <property> rather
4948         than as method calls
4949
4950 2005-01-28  Havoc Pennington  <hp@redhat.com>
4951
4952         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4953         related to authentication protocol
4954
4955 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4956
4957         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4958                 - BUS_ACTIVATION -> BUS_STARTER
4959                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4960                 - class MessageIter (__init__): Added recursion checking 
4961                 so we throw a nice error instead of just disconnecting from the
4962                 bus.
4963                 (get): Added arg_type parameter for recursion.
4964                 Removed the nil type
4965                 Added signiture type placeholder (not implemented)
4966                 Added struct type placeholder (not implemented)
4967                 Added varient type placeholder (not implemented)
4968                 Commented out dict type for now     
4969                 (get_element_type): renamed from get_array_type
4970                 (get_*): changed to use the dbus_message_iter_get_basic API
4971                 (get_*_array): removed in favor of recursive get_array method
4972                 (get_array): new recursive method which calls get to marshal
4973                 the elements of the array
4974                 (value_to_dbus_sig): New method returns the corrasponding
4975                 dbus signiture to a python value
4976                 (append): Comment out dict handling for now
4977                 Handle lists with the new recursive API
4978                 Comment out None handling for now
4979                 (append_nil): removed
4980                 (append_*): changed to use dbus_message_iter_append_basic API
4981                 (append_*_array): removed in favor of recursive append_array 
4982                 method
4983                 (__str__): Make it easier to print out recursive iterators
4984                 for debugging
4985                 - class Message (__str__): moved type inspection to the
4986                 MessageIter class' __str__ method
4987                 (get_iter): Added an append parameter wich defaults to False
4988                 If True use the new API's to create an append iterator
4989
4990         * python/dbus.py: Update to use new bindings API
4991                 - TYPE_ACTIVATION -> TYPE_STARTER
4992                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4993                 - class ActivationBus -> class StarterBus
4994                 - class RemoteObject (__call__): get an append iterator
4995                 - (_dispatch_dbus_method_call): get an append iterator
4996                 - class Object (emit_signal): get an append iterator
4997
4998         * python/examples/: Fixed up the examples to work with the new API
4999                 
5000 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5001
5002         * configure.in: Bump version up to 0.30.
5003
5004         * HACKING: Add a release item to bump the version number up after 
5005         a release.
5006
5007 2005-01-28  Havoc Pennington  <hp@redhat.com>
5008
5009         * doc/dbus-specification.xml: update to describe 16-bit types and
5010         dict entries
5011
5012         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5013         assertion
5014
5015         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5016         type
5017
5018         * dbus/dbus-marshal-recursive.c: implement
5019
5020 2005-01-27  Havoc Pennington  <hp@redhat.com>
5021
5022         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5023
5024         * configure.in: find the right type for 16 and 32 bit ints as well
5025         as 64
5026
5027         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5028         the 16-bit types so people don't have to stuff them in 32-bit or
5029         byte arrays.
5030
5031 2005-01-27  Havoc Pennington  <hp@redhat.com>
5032
5033         * dbus/dbus-message.c: byteswap the message if you init an
5034         iterator to read/write from it
5035         
5036         * dbus/dbus-marshal-byteswap.c: new file implementing 
5037         _dbus_marshal_byteswap()
5038
5039         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5040
5041 2005-01-26  Havoc Pennington  <hp@redhat.com>
5042         
5043         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5044         build, apparently - nobody noticed?)
5045         
5046 2005-01-26  Havoc Pennington  <hp@redhat.com>
5047
5048         * dbus/dbus-marshal-recursive.h: remove todo comment
5049
5050 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5051
5052         * Land the mono binding changes to conform to the new APIs.
5053
5054         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5055         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5056
5057         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5058         type code as a string.
5059         (InitAppending): Rename dbus_message_append_iter_init() to
5060         dbus_message_iter_init_append().
5061
5062         * mono/BusDriver.cs: Rename ServiceEventHandler to
5063         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5064         Rename ServiceOwnerChanged to NameOwnerChanged.
5065
5066         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5067         underlying C call.
5068
5069         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5070
5071         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5072         dbus_bus_acquire_service() to dbus_bus_request_name().
5073
5074         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5075         of Type.UnderlyingSystemType to get the correct element type for
5076         the array.
5077         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5078         dbus_message_get_{element|arg}_type() instead of
5079         dbus_message_iter_init_array_iterator().
5080         (Append): Replace dbus_message_iter_append_array() with
5081         dbus_message_iter_open_container() and
5082         dbus_message_iter_close_container().
5083
5084         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5085         types have been removed.
5086         
5087         * mono/DBusType/*.cs: Replace calls of
5088         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5089         but specify the type in the DllImport extern declaration.  Ditto
5090         for dbus_message_iter_append_[type]() ->
5091         dbus_message_iter_append_basic().
5092
5093         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5094         NameOwnerChangedHandler.
5095
5096 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5097
5098         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5099                 - get_base_service -> get_unique_name
5100                 - bus_get_base_service -> bus_get_unique_name
5101                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5102                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5103                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5104                 - bus_activate_service -> bus_start_service_by_name
5105                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5106                 - bus_acquire_service -> bus_request_name
5107                 - dbus_bus_acquire_service -> dbus_bus_request_name
5108                 - bus_service_exists -> bus_name_has_owner
5109                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5110
5111         * python/dbus.py: Rename of methods
5112                 - activate_service -> start_service_by_name
5113                 - bus_acquire_service -> bus_request_name
5114                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5115                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5116
5117         
5118 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5119
5120         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5121         signature for the method that can't be found.
5122
5123         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5124         the message has any arguments, we need to call
5125         _dbus_type_reader_get_current_type(), not
5126         _dbus_type_reader_has_next().
5127
5128 2005-01-24  Havoc Pennington  <hp@redhat.com>
5129
5130         * dbus/dbus-message-factory.c: more testing of message validation
5131
5132         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5133         header
5134
5135 2005-01-23  Havoc Pennington  <hp@redhat.com>
5136
5137         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5138         get this all working, not many tests in the framework yet though
5139
5140 2005-01-22  Havoc Pennington  <hp@redhat.com>
5141
5142         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5143         tutorial, based on work from David Wheeler.
5144
5145 2005-01-21  Havoc Pennington  <hp@redhat.com>
5146
5147         * dbus/dbus-bus.c: add more return_if_fail checks
5148
5149         * dbus/dbus-message.c (load_message): have the "no validation"
5150         mode (have to edit the code to toggle the mode for now though)
5151
5152         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5153         skips all validation; I want to use this at least for benchmark
5154         baseline, I'm not sure if it should be a publicly-available switch.
5155
5156 2005-01-21  Havoc Pennington  <hp@redhat.com>
5157
5158         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5159         toplevel doxygen group as the low-level API stuff
5160
5161         * dbus/dbus.h: note that libdbus is the low-level API
5162
5163 2005-01-20  Havoc Pennington  <hp@redhat.com>
5164
5165         * update-dbus-docs.sh: script to update docs on the web site, only
5166         works for me though. neener.
5167
5168 2005-01-20  Havoc Pennington  <hp@redhat.com>
5169
5170         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5171         code can reveal bugs in it
5172
5173 2005-01-20  Havoc Pennington  <hp@redhat.com>
5174
5175         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5176         select() version, patches from Tor Lillqvist
5177
5178 2005-01-20  Havoc Pennington  <hp@redhat.com>
5179
5180         * doc/dbus-tutorial.xml: replace > with &gt;
5181
5182         * bus/services.c (bus_registry_acquire_service): validate the name
5183         and return a better error if it's no good.
5184
5185         * doc/dbus-specification.xml: note NO_AUTO_START change
5186
5187         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5188         from AUTO_START, we're toggling the default
5189
5190         * bus/dispatch.c: adapt the tests to change of auto-start default
5191
5192 2005-01-18  Havoc Pennington  <hp@redhat.com>
5193
5194         * rename dbus-daemon-1 to dbus-daemon throughout
5195
5196 2005-01-18  Havoc Pennington  <hp@redhat.com>
5197
5198         * Throughout, grand renaming to strip out the use of "service",
5199         just say "name" instead (or "bus name" when ambiguous).  Did not
5200         change the internal code of the message bus itself, only the
5201         programmer-facing API and messages.
5202         
5203         * doc/dbus-specification.xml: further update the message bus section
5204         
5205         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5206         in error case
5207
5208 2005-01-17  Havoc Pennington  <hp@redhat.com>
5209
5210         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5211         ever
5212
5213         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5214         "invalid name character" not only non-ASCII
5215
5216         * doc/dbus-specification.xml: further update spec, message bus 
5217         parts are still out-of-date but the marshaling etc. stuff is now
5218         accurate-ish
5219
5220 2005-01-17  Havoc Pennington  <hp@redhat.com>
5221
5222         * doc/dbus-specification.xml: partially update spec
5223
5224 2005-01-17  Havoc Pennington  <hp@redhat.com>
5225
5226         * Throughout, align variant bodies according to the contained
5227         type, rather than always to 8. Should save a fair bit of space in
5228         message headers.
5229         
5230         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5231         fix handling of case where p == end
5232
5233         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5234
5235 2005-01-17  Havoc Pennington  <hp@redhat.com>
5236
5237         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5238
5239         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5240         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5241         are marshaling/unmarshaling a boolean.
5242
5243 2005-01-16  Havoc Pennington  <hp@redhat.com>
5244
5245         This is about it on what can be disabled/deleted from libdbus
5246         easily, back below 150K anyhow. Deeper cuts are more work than 
5247         just turning the code off as I've done here.
5248         
5249         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5250         signed int convenience funcs
5251
5252         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5253         verbose mode
5254
5255         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5256         things out of libdbus
5257
5258         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5259         
5260         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5261         tests-enabled-only, though it should probably be deleted)
5262
5263         * dbus/dbus-message-util.c: same stuff
5264
5265         * dbus/dbus-auth-util.c: same stuff
5266
5267 2005-01-16  Havoc Pennington  <hp@redhat.com>
5268
5269         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5270
5271         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5272         way for stripping down dbus-userdb.c stuff included in libdbus.
5273         Rename _dbus_parse_uid for consistency.
5274
5275 2005-01-16  Havoc Pennington  <hp@redhat.com>
5276
5277         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5278         name the assertion failed in
5279
5280         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5281         (_dbus_return_val_if_fail): assert that the name of the function
5282         containing the check doesn't start with '_', since we only want to 
5283         use checks on public functions
5284         
5285         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5286         checks to assertions
5287
5288         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5289         change checks to asserts for private function
5290
5291         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5292         to asserts for private function
5293
5294         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5295         broken assertion that was breaking make check
5296         (_dbus_type_reader_array_is_empty): remove this rather than fix
5297         it, was only used in assertions
5298
5299 2005-01-16  Havoc Pennington  <hp@redhat.com>
5300
5301         * test/unused-code-gc.py: hacky script to find code that's used
5302         only by the bus (not libdbus) or used only by tests or not used at
5303         all. It has some false alarms, but looks like we can clean up a
5304         lot of size from libdbus.
5305
5306         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5307         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5308         
5309 2005-01-16  Havoc Pennington  <hp@redhat.com>
5310
5311         * Add and fix docs according to Doxygen warnings throughout
5312         source.
5313         
5314         * dbus/dbus-marshal-recursive.c
5315         (_dbus_type_reader_array_is_empty): change this to just call
5316         array_reader_get_array_len() and make it static
5317
5318         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5319         from get_array_type
5320         (dbus_message_iter_init_append): rename from append_iter_init
5321
5322         * dbus/dbus-marshal-recursive.c
5323         (_dbus_type_reader_get_element_type): rename from
5324         _dbus_type_reader_get_array_type
5325
5326 2005-01-15  Havoc Pennington  <hp@redhat.com>
5327
5328         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5329
5330         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5331         when DBUS_DISABLE_ASSERT
5332         (_dbus_marshal_set_basic): be sure we align for the string length
5333
5334         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5335         this look faster
5336
5337         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5338         inline macro version
5339         (_dbus_string_set_byte): provide inline macro version
5340
5341 2005-01-15  Havoc Pennington  <hp@redhat.com>
5342
5343         * Land the new message args API and type system.
5344
5345         This patch is huge, but the public API change is not 
5346         really large. The set of D-BUS types has changed somewhat, 
5347         and the arg "getters" are more geared toward language bindings;
5348         they don't make a copy, etc.
5349
5350         There are also some known issues. See these emails for details
5351         on this huge patch:
5352         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5353         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5354         
5355         * dbus/dbus-marshal-*: all the new stuff
5356
5357         * dbus/dbus-message.c: basically rewritten
5358
5359         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5360         freed blocks to be all non-nul bytes so using freed memory is less
5361         likely to work right
5362
5363         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5364         DBUS_FAIL_MALLOC=N environment variable, so you can do
5365         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5366         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5367         thorough.
5368
5369         * qt/message.cpp: port to the new message args API
5370         (operator<<): use str.utf8() rather than str.unicode()
5371         (pretty sure this is right from the Qt docs?)
5372
5373         * glib/dbus-gvalue.c: port to the new message args API
5374
5375         * bus/dispatch.c, bus/driver.c: port to the new message args API
5376
5377         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5378         "locked" flag to TRUE and align_offset to 0; I guess we never
5379         looked at these anyhow, but seems cleaner.
5380
5381         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5382         move allocation padding macro to this header; use it to implement
5383         (_DBUS_STRING_STATIC): ability to declare a static string.
5384
5385         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5386         change to return TRUE if the interface is not set.
5387
5388         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5389         to dbus-marshal-validate.[hc]
5390
5391         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5392         dbus-internals.c
5393
5394         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5395         to dbus-marshal-*.[hc]
5396
5397         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5398         function here from dbus-marshal.c
5399
5400 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5401
5402         * NEWS: Update for 0.23.
5403
5404         * configure.in: Release 0.23.
5405
5406 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5407
5408         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5409         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5410         behind.
5411
5412         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5413         uninstall"
5414
5415         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5416         is an enum, get the enum's underlying type.  Another mono
5417         1.1.3 fix.
5418
5419 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5420
5421         Patch from Sjoerd Simons <sjoerd@luon.net>
5422
5423         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5424         DESTDIR.  It breaks stuff.
5425
5426 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5427
5428         Patch from Tambet Ingo <tambet@ximian.com>
5429
5430         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5431         calling type.GetElementType().  The code previously depended on
5432         broken Mono behavior, which was fixed in Mono 1.1.3.
5433
5434         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5435         Activator.CreateInstance() so that the class's constructor is
5436         called with the right parameters.
5437
5438 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5439
5440         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5441
5442         * dbus/dbus-connection.c
5443         (_dbus_connection_queue_received_message_link): Call
5444         _dbus_connection_remove_timeout() instead of the _locked()
5445         variant, since it's always called from
5446         _dbus_connection_handle_watch(), which handles the locking.
5447         Removed the _locked() variant since it's no longer used.
5448
5449 2005-01-03  Havoc Pennington  <hp@redhat.com>
5450
5451         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5452         return
5453         
5454 2004-12-26  Havoc Pennington  <hp@redhat.com>
5455
5456         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5457
5458 2005-01-03  Havoc Pennington  <hp@redhat.com>
5459
5460         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5461         floating point
5462
5463         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5464
5465 2005-01-02  Havoc Pennington  <hp@redhat.com>
5466
5467         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5468
5469 2005-01-01  Havoc Pennington  <hp@redhat.com>
5470
5471         * configure.in: add -Wfloat-equal
5472
5473 2005-01-01  Havoc Pennington  <hp@redhat.com>
5474
5475         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5476         for a variety of reasons '==' doesn't do this.
5477
5478 2004-12-31  Havoc Pennington  <hp@redhat.com>
5479
5480         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5481         I keep wishing I had
5482
5483 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5484
5485         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5486
5487 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5488
5489         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5490         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5491         dbus-protocol.h.  Because they are defines and not enums they are not
5492         autogenerated.
5493
5494 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5495
5496         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5497         dbus_bus_activate_service
5498
5499         * python/dbus.py (Bus.activate_service): activate a service on the
5500         bus.
5501
5502 2004-12-24  Havoc Pennington  <hp@redhat.com>
5503
5504         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5505         file format has also changed and I haven't adapted to that yet
5506         
5507         * Makefile.am: load .gcno files from latest gcc
5508
5509 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5510         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5511
5512         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5513         lowlevel binding
5514
5515         * python/dbus.py (get_unix_user): Added binding to 
5516         call dbus_bindings.bus_get_unix_user
5517
5518         * python/extract.py: Modified the proto_pat regex to
5519         handle unsigned long
5520
5521 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5522
5523         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5524         better POSIX compliance.
5525
5526 2004-12-19  Havoc Pennington  <hp@redhat.com>
5527
5528         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5529         (_dbus_string_insert_8_aligned): new functions
5530
5531         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5532
5533 2004-12-18  Havoc Pennington  <hp@redhat.com>
5534
5535         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5536         macro
5537
5538         * dbus/dbus-message.c: fix a comment, and add a still-unused
5539         not-implemented function
5540
5541         * dbus/dbus-marshal.h: fix comment
5542
5543         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5544
5545 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5546
5547         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5548         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5549         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5550         Type.UnderlyingSystemType to get the actual system type
5551         underneath.  This code previously depended on the broken Mono
5552         behavior, which was fixed in 1.1.3.
5553
5554 2004-11-27  Havoc Pennington  <hp@redhat.com>
5555
5556         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5557         are disabled
5558         (_dbus_string_get_const_data): inline when asserts are disabled
5559
5560         * dbus/dbus-message.c: record the _dbus_current_generation of
5561         creation so we can complain if dbus_shutdown() is used improperly.
5562         Do this only if checks are enabled.
5563
5564         * dbus/dbus-connection.c: ditto
5565         
5566 2004-11-26  Havoc Pennington  <hp@redhat.com>
5567
5568         * test/glib/test-profile.c: add with_bus mode to profile echoes
5569         that go through the bus.
5570
5571         * test/glib/run-test.sh: add ability to run test-profile
5572
5573         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5574         config file reload.
5575
5576 2004-11-26  Havoc Pennington  <hp@redhat.com>
5577
5578         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5579         thing was implemented
5580
5581 2004-11-26  Havoc Pennington  <hp@redhat.com>
5582
5583         * test/glib/test-profile.c: tweak a bit, add support for some
5584         made-up minimal malloc overhead with plain sockets, since in 
5585         real life some sort of buffers are unavoidable thus we could 
5586         count them in the theoretical best case
5587
5588 2004-11-26  Havoc Pennington  <hp@redhat.com>
5589
5590         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5591         where I was trying to cache one too many messages
5592
5593 2004-11-26  Havoc Pennington  <hp@redhat.com>
5594
5595         * dbus/dbus-message.c: reimplement message cache as an array which 
5596         makes the cache about twice as fast and saves maybe 1.5% overall
5597
5598 2004-11-26  Havoc Pennington  <hp@redhat.com>
5599
5600         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5601         message cache lock here
5602
5603 2004-11-26  Havoc Pennington  <hp@redhat.com>
5604
5605         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5606         the "char byte_order" next to each other to save 4 bytes
5607         (dbus_message_new_empty_header): reduce preallocation, since the
5608         message cache should achieve a similar effect
5609         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5610         message cache that keeps a few DBusMessage around in a pool,
5611         another 8% speedup or so.
5612
5613         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5614
5615 2004-11-25  Havoc Pennington  <hp@redhat.com>
5616
5617         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5618         to write, without reading or blocking, try it before the poll()
5619         and skip the poll() if nothing remains to write. This is about a
5620         3% speedup in the echo client/server
5621
5622 2004-11-25  Havoc Pennington  <hp@redhat.com>
5623
5624         The primary change here is to always write() once before adding
5625         the write watch, which gives us about a 10% performance increase.
5626         
5627         * dbus/dbus-transport-unix.c: a number of modifications to cope
5628         with removing messages_pending
5629         (check_write_watch): properly handle
5630         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5631         messages_pending stuff
5632         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5633         AUTHENTICATED cases
5634         (unix_handle_watch): after writing, see if the write watch can be
5635         removed
5636         (unix_do_iteration): assert that write_watch/read_watch are
5637         non-NULL rather than testing that they aren't, since they 
5638         aren't allowed to be NULL. check_write_watch() at the end so 
5639         we add the watch if we did not finish writing (e.g. got EAGAIN)
5640
5641         * dbus/dbus-transport-protected.h: remove messages_pending call,
5642         since it resulted in too much inefficient watch adding/removing; 
5643         instead we now require that the transport user does an iteration 
5644         after queueing outgoing messages, and after trying the first
5645         write() we add a write watch if we got EAGAIN or exceeded our 
5646         max bytes to write per iteration setting
5647
5648         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5649         function
5650
5651         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5652         freed and then accessed, valgrind flagged this bug, fix it
5653
5654         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5655         as the last valid field plus 1, where really it is equal to the
5656         last valid field. Corrects some message corruption issues.
5657
5658         * dbus/dbus-mainloop.c: verbosity changes
5659
5660         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5661         instead of aborting in one of the test codepaths
5662
5663         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5664         caused not printing the pid ever again if a verbose was missing
5665         the newline at the end
5666         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5667
5668         * dbus/dbus-connection.c: verbosity changes; 
5669         (dbus_connection_has_messages_to_send): new function
5670         (_dbus_connection_message_sent): no longer call transport->messages_pending
5671         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5672         try to write() immediately, so we can avoid the write watch. This
5673         is the core purpose of this patchset
5674         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5675         dump the outgoing message queue, so nobody will get confused
5676         trying to send them or thinking stuff is pending to be sent
5677
5678         * bus/test.c: verbosity changes
5679
5680         * bus/driver.c: verbosity/assertion changes
5681
5682         * bus/dispatch.c: a bunch of little tweaks to get it working again
5683         because this patchset changes when/where you need to block.
5684
5685 2004-11-23  Havoc Pennington  <hp@redhat.com>
5686
5687         * test/glib/test-profile.c: modify to accept a plain_sockets
5688         argument in which case it will bench plain sockets instead of
5689         libdbus, for comparison purposes.
5690
5691 2004-11-22  Havoc Pennington  <hp@redhat.com>
5692
5693         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5694         threads for more time, so sysprof can get a grip on it.
5695
5696         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5697         pointless variable
5698
5699 2004-11-13  Havoc Pennington  <hp@redhat.com>
5700
5701         * test/glib/test-profile.c: fix this thing up a bit
5702
5703         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5704         preallocation sizes by a fair bit; not sure if this will be an
5705         overall performance win or not, but it does reduce reallocs.
5706
5707         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5708         the test hack that forced constant realloc if asserts are
5709         disabled, so we can profile sanely. Sprinkle in some
5710         _DBUS_UNLIKELY() which are probably pointless, but before I
5711         noticed the real performance problem I put them in.
5712         (_dbus_string_validate_utf8): micro-optimize this thing a little
5713         bit, though callgrind says it didn't help; then special-case
5714         ascii, which did help a lot; then be sure we detect nul bytes as
5715         invalid, which is a bugfix.
5716         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5717         superstition; use memset to nul the padding instead of a manual
5718         loop.
5719         (_dbus_string_get_length): inline this as a
5720         macro; it showed up in the profile because it's used for loop
5721         tests and so forth
5722
5723 2004-11-10  Colin Walters  <walters@verbum.org>
5724
5725         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5726         for extra paranoia.
5727
5728 2004-11-09  Colin Walters  <walters@verbum.org>
5729
5730         * dbus/dbus-string.c (_dbus_string_get_length): New
5731         function, writes DBusString to C buffer.
5732
5733         * dbus/dbus-string.h: Prototype it.
5734
5735         * dbus/dbus-message.c (dbus_message_type_to_string): New
5736         function, converts message type into C string.
5737
5738         * dbus/dbus-message.h: Prototype it.
5739
5740         * bus/selinux.c (bus_selinux_check): Take source pid,
5741         target pid, and audit data.  Pass audit data to
5742         avc_has_perm.
5743         (log_audit_callback): New function, appends extra
5744         audit information.
5745         (bus_selinux_allows_acquire_service): Also take
5746         service name, add it to audit data.
5747         (bus_selinux_allows_send): Also take message
5748         type, interface, method member, error name,
5749         and destination, and add them to audit data.
5750         (log_cb): Initialize func_audit.
5751         
5752         * bus/selinux.h (bus_selinux_allows_acquire_service)
5753         (bus_selinux_allows_send): Update prototypes 
5754
5755         * bus/services.c (bus_registry_acquire_service): Pass
5756         service name to bus_selinux_allows_acquire_service.
5757
5758         * bus/bus.c (bus_context_check_security_policy): Pass
5759         additional audit data.  Move assignment of dest
5760         to its own line.
5761
5762 2004-11-07  Colin Walters  <walters@verbum.org>
5763
5764         * dbus/dbus-transport-unix.c (do_authentication): Always
5765         initialize auth_completed.
5766         
5767 2004-11-07  Colin Walters  <walters@verbum.org>
5768
5769         * bus/bus.c (load_config): Break into three
5770         separate functions: process_config_first_time_only,
5771         process_config_every_time, and process_config_postinit.
5772         (process_config_every_time): Move call of
5773         bus_registry_set_service_context_table into
5774         process_config_postinit.
5775         (process_config_postinit): New function, does
5776         any processing that needs to happen late
5777         in initialization (and also on reload).
5778         (bus_context_new): Instead of calling load_config,
5779         open config parser here and call process_config_first_time_only
5780         and process_config_every_time directly.  Later, after
5781         we have forked but before changing UID,
5782         invoke bus_selinux_full_init, and then call
5783         process_config_postinit.
5784         (bus_context_reload_config): As in bus_context_new,
5785         load parse file inside here, and call process_config_every_time
5786         and process_config_postinit.
5787
5788         * bus/services.h, bus/services.c
5789         (bus_registry_set_service_context_table): Rename
5790         from bus_registry_set_sid_table.  Take string hash from config
5791         parser, and convert them here into SIDs.
5792
5793         * bus/config-parser.c (struct BusConfigParser): Have
5794         config parser only store a mapping of service->context
5795         string.
5796         (merge_service_context_hash): New function.
5797         (merge_included): Merge context string hashes instead
5798         of using bus_selinux_id_table_union.
5799         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5800         simply create a new string hash.
5801         (bus_config_parser_unref): Unref it.
5802         (start_selinux_child): Simply insert strings into hash,
5803         don't call bus_selinux_id_table_copy_over.
5804
5805         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5806         (bus_selinux_id_table_copy_over): Delete.
5807
5808 2004-11-03  Colin Walters  <walters@verbum.org>
5809
5810         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5811         variables.
5812         
5813 2004-11-03  Colin Walters  <walters@verbum.org>
5814
5815         * bus/test-main.c (test_pre_hook): Fix test logic,
5816         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5817
5818 2004-11-02  Colin Walters  <walters@redhat.com>
5819
5820         * bus/selinux.c (bus_selinux_init): Split into two functions,
5821         bus_selinux_pre_init and bus_selinux_post_init.
5822         (bus_selinux_pre_init): Just determine whether SELinux is
5823         enabled.
5824         (bus_selinux_post_init): Do everything else.
5825
5826         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5827         config file, and bus_selinux_post_init after.  This ensures that
5828         we don't lose the policyreload notification thread that
5829         bus_selinux_init created before forking previously.
5830         
5831         * bus/test-main.c (test_pre_hook): Update for split.
5832
5833 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5834
5835         Patch from Johan Fischer <linux@fischaz.com>
5836         
5837         * mono/doc/Makefile.am (install-data-local): Added directory
5838         install for DESTDIR
5839
5840 2004-10-29  Colin Walters  <walters@redhat.com>
5841
5842         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5843         parameter for fd to write pid to.       
5844
5845         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5846         
5847         * bus/bus.c (bus_context_new): Pass print_pid_fd
5848         to _dbus_become_daemon (bug #1720)
5849
5850 2004-10-29  Colin Walters  <walters@redhat.com>
5851
5852         Patch from Ed Catmur <ed@catmur.co.uk>
5853
5854         * mono/doc/Makefile.am (install-data-local): Handle
5855         DESTDIR.
5856
5857 2004-10-29  Colin Walters  <walters@redhat.com>
5858
5859         * bus/.cvsignore, qt/.cvsignore: Update.
5860
5861 2004-10-29  Colin Walters  <walters@redhat.com>
5862
5863         Patch from Kristof Vansant <de_lupus@pandora.be>
5864
5865         * configure.in: Detect Slackware.
5866         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5867         * bus/rc.messagebus.in: New file.
5868
5869 2004-10-29  Colin Walters  <walters@redhat.com>
5870
5871         * tools/dbus-monitor.c (filter_func): Return
5872         DBUS_HANDLER_RESULT_HANDLED in filter function
5873         for now.  See:
5874         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5875
5876 2004-10-29  Colin Walters  <walters@redhat.com>
5877
5878         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5879
5880         * bus/services.c (bus_registry_acquire_service): 
5881         Correctly retrieve service name from DBusString
5882         for printing.
5883
5884 2004-10-29  Colin Walters  <walters@redhat.com>
5885
5886         * dbus/dbus-glib.h: Update documentation to not
5887         refer to internal APIs.
5888
5889 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5890
5891         * mono/Arguments.cs (GetDBusTypeConstructor):
5892         type.UnderlyingSystemType will return "System.Byte" if you do it
5893         on "byte[]", which is not what we want.  So check the type.IsArray
5894         property and use System.Array instead.
5895
5896 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5897
5898         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5899         the DBusUserInfo structure since this is passed into the function.
5900         This would cause a double free when the function that allocated
5901         the structure would try to free it when an error occured.
5902
5903         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5904         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5905         for service activation to avoid 32bit/64bit parallel install issues
5906
5907 2004-10-21  Colin Walters  <walters@verbum.org>
5908
5909         * AUTHORS: Fix my email address, the @gnu.org one
5910         has been bouncing for some time.  Also add J5.
5911         
5912 2004-10-21  Colin Walters  <walters@verbum.org>
5913
5914         * dbus/dbus-transport-unix.c (do_authentication): Return
5915         authentication status to callers.
5916         (unix_handle_watch): If we completed authentication this round,
5917         don't do another read.  Instead wait until the next iteration,
5918         after we've read any pending data in the auth buffer.
5919         (unix_do_iteration): Ditto.
5920         (unix_handle_watch): Updated for new do_authentication prototype.
5921
5922 2004-10-18  Colin Walters  <walters@verbum.org>
5923
5924         * bus/selinux.c (bus_selinux_enabled): Handle
5925         --disable-selinux case.
5926         
5927 2004-10-18  Colin Walters  <walters@verbum.org>
5928
5929         * bus/selinux.h: Add bus_selinux_enabled.
5930         
5931         * bus/selinux.c (bus_selinux_enabled): Implement it.
5932         
5933         * bus/config-parser.c (struct include): Add
5934         if_selinux_enabled member.
5935         (start_busconfig_child): Parse if_selinux_enabled
5936         attribute for include.
5937         (bus_config_parser_content): Handle it.
5938
5939         * bus/session.conf.in, bus/system.conf.in: Add
5940         inclusion of context mapping to default config files;
5941         conditional on SELinux being enabled.
5942         
5943         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5944         
5945         * test/data/invalid-config-files/badselinux-1.conf, 
5946         test/data/invalid-config-files/badselinux-2.conf:
5947         Test files for bad syntax.
5948         
5949 2004-10-17  Colin Walters  <walters@verbum.org>
5950
5951         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5952         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5953         format specifier mismatches.
5954
5955 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5956
5957         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5958         format string.
5959
5960         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5961         pointer (bug #1540, Leonardo Boiko).
5962
5963 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5964
5965         * mono/BusDriver.cs: Changed BusDriver struct to remove
5966         the ServiceCreated and ServiceDeleted events and replace them
5967         with the new ServiceOwnerChanged event.
5968
5969         * mono/example/BusListener.cs: Added a new example program,
5970         which listens for and reports any ServiceOwnerChanged events
5971         on the bus driver.
5972
5973         * mono/example/Makefile.am (DESTDIR): Build changes for the
5974         new BusListener.cs example.
5975
5976 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5977
5978         * bus/signals.c (bus_match_rule_parse): validate the components of
5979         match rules (bug #1439).
5980
5981         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5982
5983 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5984
5985         * doc/dbus-specification.xml: document ServiceOwnerChanged
5986         signal.
5987         
5988         * bus/driver.c, bus/driver.h, bus/services.c: Use
5989         ServiceOwnerChanged signal instead of ServiceCreated and
5990         ServiceDeleted.
5991         
5992         * bus/dispatch.c: update testcase for the new signal.
5993
5994 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5995
5996         Patch from Nat Friedman <nat@novell.com>
5997
5998         * mono/Makefile.am: A number of small build fixes to allow "make
5999         distcheck" to succeed.
6000
6001         * mono/example/Makefile.am: "make distcheck" fixes.
6002
6003         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6004         key in @srcdir@.
6005
6006         * test/Makefile.am: "make distcheck" fixes.
6007
6008 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6009
6010         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6011
6012         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6013
6014         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6015         messages after the first one (bug #1389).
6016         
6017         * bus/dispatch.c (check_double_hello_message): add a test case for
6018         the double hello message bug.
6019         (check_existent_service_activation): fix check of spawning error.
6020         
6021 2004-09-16  David Zeuthen  <david@fubar.dk>
6022
6023         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6024
6025 2004-09-12  David Zeuthen  <david@fubar.dk>
6026
6027         Patch from Kay Sievers <kay.sievers@vrfy.org>
6028
6029         * bus/bus.c (bus_context_new):
6030         * bus/bus.h:
6031         * bus/main.c (usage)
6032         (main):
6033         Add commandline option --nofork to override configuration file
6034         setting.
6035
6036 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6037
6038         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6039         compilers don't like it (bug #974).
6040
6041 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6042
6043         * qt/connection.*: Applied patch by Jérôme Lodewyck
6044         <lodewyck@clipper.ens.fr> to integrate an existing
6045         connection into the Qt eventloop
6046
6047 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6048
6049         * mono/BusDriver.cs: Added.  This is a class for interacting with
6050         the org.freedesktop.DBus service.
6051
6052         * mono/Message.cs: Added a mechanism to expose the message that is
6053         currently being dispatched via the static Message.Current
6054         property.  Added Message.Sender and Message.Destination
6055         properties.
6056
6057         * mono/Handler.cs: Expose the dispatched message via
6058         Message.Current when handling method calls.
6059
6060         * mono/Service.cs: Expose the dispatched message via
6061         Message.Current when handling signal emissions.
6062         
6063         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6064         Connection.BaseService property.
6065
6066 2004-08-28  Havoc Pennington  <hp@redhat.com>
6067
6068         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6069
6070         More fixes from Steve Grubb
6071         
6072         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6073         (_dbus_listen_tcp_socket): fix fd leak
6074
6075         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6076         EINTR to a bit lower in the code
6077
6078 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6079
6080         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6081         TRUE if we are inquiring about the existence of the built-in
6082         org.freedesktop.DBus service.
6083
6084 2004-08-25  John Palmieri  <johnp@redhat.com>
6085         * bus/config-parser.c:
6086         (struct PolicyType): Add POLICY_CONSOLE
6087         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6088         (start_busconfig_child): Sets up console element when
6089         <policy at_console=""> is encountered in a policy file
6090         (append_rule_from_element): Convert console elements to console
6091         rules.
6092
6093         * bus/policy.c: 
6094         (bus_policy_create_client_policy): Add console rules to the client
6095         policy based on if the client is at the console
6096         (bus_policy_append_console_rule): New function for adding a
6097         console rule to a policy
6098         (bus_policy_merge): Handle console rule merging
6099
6100         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6101         where we check for console user files
6102         
6103         * dbus/dbus-sysdeps.c:
6104         (_dbus_file_exists): New function which checks if the given
6105         file exists
6106         (_dbus_user_at_console): New function which does the system
6107         specific process of checking if the user is at the console
6108
6109         * dbus/dbus-userdb.c:
6110         (_dbus_is_console_user): New function converts a UID to user name
6111         and then calls the system specific _dbus_user_at_console to 
6112         see if the user is at the console and therefor a console user
6113
6114 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6115
6116         * bus/config-parser.c (set_limit):
6117         * bus/dbus-daemon-1.1.in:
6118         * test/data/valid-config-files/many-rules.conf: set the
6119         max_match_rules_per_connection limt from the config file. 
6120
6121         * doc/busconfig.dtd: update the DTD.
6122
6123         * bus/driver.c: remove some unused variables.
6124
6125 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6126
6127         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6128         it's been replaced by dbus_g_bus_get
6129
6130 2004-08-23  Colin Walters  <walters@redhat.com>
6131
6132         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6133
6134         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6135
6136         * bus/selinux.c: Create a thread for policy reload notification.
6137         (bus_selinux_get_policy_root): Implement.
6138
6139         * bus/config-parser.c (start_busconfig_child)
6140         (bus_config_parser_content): Support SELinux-root relative
6141         inclusion.
6142
6143         * configure.in <HAVE_SELINUX>: Add -lpthread.
6144         
6145         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6146         (test_post_hook): Move memory checking into here.
6147         (test_pre_hook, test_post_hook): Move SELinux checks in
6148         here, but conditional on a DBUS_TEST_SELINUX environment
6149         variable.  Unfortunately we can't run the SELinux checks
6150         as a normal user, since they won't have any permissions
6151         for /selinux.  So this will have to be tested manually
6152         for now, until we have virtualization for most of
6153         libselinux.
6154         
6155 2004-08-23  Havoc Pennington  <hp@redhat.com>
6156
6157         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6158         drop supplementary groups, suggested by Steve Grubb
6159
6160 2004-08-20  Colin Walters  <walters@redhat.com>
6161
6162         * bus/config-parser.c (start_busconfig_child): Remove some unused
6163         variables.
6164         
6165         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6166         warning.
6167
6168 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6169
6170         * configure.in: If --enable-mono is passed in, if we can't find
6171         mono error out.
6172
6173         * mono/Makefile.am: Use /gacutil to install assemblies into the
6174         GAC and not /root.
6175
6176 2004-08-12  Havoc Pennington  <hp@redhat.com>
6177
6178         * NEWS: update for 0.22
6179
6180         * configure.in: release 0.22
6181
6182 2004-08-11  Colin Walters  <walters@redhat.com>
6183
6184         * tools/dbus-send.c (main, usage): Add --reply-timeout
6185         argument.
6186
6187 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6188
6189         * bus/bus.c (process_config_first_time_only): get rid of an unused
6190         DBusError that was causing a memoy leak (bug #989).
6191
6192         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6193         fix compilation on Solaris/Forte C (bug #974)
6194
6195         * bus/main.c (main): plug two minuscule memleaks.
6196
6197 2004-08-10  Havoc Pennington  <hp@redhat.com>
6198
6199         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6200
6201 2004-08-09  Havoc Pennington  <hp@redhat.com>
6202
6203         * COPYING: switch to Academic Free License version 2.1 instead of
6204         2.0, to resolve complaints about patent termination clause.
6205
6206 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6207
6208         * README: added documentation for the --enable-python 
6209         configure switch.
6210
6211 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6212
6213         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6214         _unref in the SELinux support.
6215
6216         * doc/busconfig.dtd: update DTD for SELinux support.
6217
6218         * bus/config-loader-libxml.c: fix error handler and parser
6219         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6220
6221         * configure.in: remove the warning about libxml2.
6222
6223         * dbus/dbus-bus.c: silence doxygen warning.
6224
6225 2004-07-31  Colin Walters  <walters@redhat.com>
6226
6227         * configure.in: Move #error in SELinux check to its own line.
6228
6229 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6230
6231         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6232         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6233         dbus_error_set.
6234
6235         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6236         broken by the change in the _SET_OOM macros.
6237
6238 2004-07-31  Colin Walters  <walters@redhat.com>
6239
6240         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6241         BUS_SET_OOM.
6242
6243 2004-07-31  Colin Walters  <walters@redhat.com>
6244
6245         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6246         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6247         AC_MSG_CHECKING.
6248
6249 2004-07-24  Havoc Pennington  <hp@redhat.com>
6250
6251         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6252
6253         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6254         functionality
6255
6256         * configure.in: add --enable-selinux
6257         
6258         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6259
6260         * bus/main.c (main): initialize and shut down selinux
6261
6262         * bus/connection.c: store SELinux ID on each connection, to avoid 
6263         repeated getting of the string context and converting it into 
6264         an ID
6265
6266         * bus/bus.c (bus_context_get_policy): new accessor, though it
6267         isn't used
6268         (bus_context_check_security_policy): check whether the security
6269         context of sender connection can send to the security context of
6270         recipient connection
6271
6272         * bus/config-parser.c: add parsing for <selinux> and <associate>
6273         
6274         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6275         implement dbus_connection_get_unix_fd()
6276
6277         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6278         function, used by the selinux stuff
6279         
6280 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6281
6282         * bus/config-loader-libxml.c: complete the implementation of
6283         libxml backend for config file loader. Doesn't work with full OOM
6284         test yet. 
6285         
6286         * configure.in: change error when selecting libxml into a warning.
6287         
6288         * test/data/invalid-config-files: add two non-well-formed XML
6289         files. 
6290         
6291         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6292         
6293         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6294         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6295         be necessary to read all the buffer. (bug #894)
6296
6297         * bus/activation.c (bus_activation_activate_service): fix a
6298         potential assertion failure (bug #896). Small optimization in the
6299         case of auto-activation messages.
6300
6301         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6302         add test case for byte-through-vararg bug (#901). patch by Kimmo
6303         Hämäläinen. 
6304
6305 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6306
6307         * python/dbus.py:
6308         * python/dbus_bindings.pyx.in:
6309         Add dbus.init_gthreads (), allow emit_signal to pass
6310         arguments to the signal.
6311         
6312 2004-07-24  Havoc Pennington  <hp@redhat.com>
6313
6314         * AUTHORS: add some people, not really comprehensively, let me
6315         know if I missed you
6316
6317 2004-07-24  Havoc Pennington  <hp@redhat.com>
6318
6319         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6320         Owen
6321
6322         * test/Makefile.am (DIST_SUBDIRS): here also
6323
6324 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6325
6326         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6327         breaking build on Solaris, reported by Farhad Saberi on the ML.
6328
6329         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6330         va_arg invocation to account for integer promotion in the case of
6331         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6332
6333         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6334         _dbus_list_get_first_link, not _dbus_list_get_first.
6335
6336         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6337
6338         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6339         handler functions so that the asserts in _dbus_object_subtree_unref
6340         do not fail.
6341
6342         * dbus/dbus-transport-unix.c (do_reading):
6343         _dbus_transport_queue_messages return value is of type
6344         dbus_bool_t, not DBusDispatchStatus.
6345         
6346 2004-07-19  David Zeuthen  <david@fubar.dk>
6347
6348         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6349
6350         * bus/dispatch.c:
6351         (check_get_connection_unix_user): Debug says GetProperty; but the
6352         method is called GetConnectionUnixUser
6353         (check_get_connection_unix_process_id): New function
6354         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6355         also call check_get_connection_unix_process_id()
6356         
6357         * bus/driver.c:
6358         (bus_driver_handle_get_connection_unix_process_id): New function,
6359         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6360         interface
6361         
6362         * dbus/dbus-auth.c:
6363         (handle_server_data_external_mech): Set pid from the credentials
6364         obtained from the socket
6365         
6366         * dbus/dbus-connection.c:
6367         (dbus_connection_get_unix_process_id): New function
6368         
6369         * dbus/dbus-connection.h: 
6370         Add prototype for dbus_connection_get_unix_process_id
6371         
6372         * dbus/dbus-transport.c:
6373         (_dbus_transport_get_unix_process_id): New function
6374         
6375         * dbus/dbus-transport.h:
6376         Add prototype for _dbus_transport_get_unix_process_id
6377         
6378 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6379
6380         * dbus/dbus-message.c: Message counter fix, patch by Christian
6381         Hammond <chipx86@gnupdate.org>
6382
6383 2004-07-18  Seth Nickell  <seth@gnome.org>
6384
6385         * python/dbus.py:
6386         * python/dbus_bindings.pyx.in:
6387         * python/tests/test-client.py:
6388
6389         Add dbus.ByteArray and dbus_bindings.ByteArray
6390         types so that byte streams can be passed back.
6391
6392         Give jdahlin the heaps of credit that are so
6393         rightfully his.
6394         
6395 2004-07-12  Seth Nickell  <seth@gnome.org>
6396
6397         * python/dbus.py:
6398
6399         Add message argument to the default object_method_handler
6400         function.
6401         
6402         * python/dbus_bindings.pyx.in:
6403
6404         Automatically return NIL when passed an empty list
6405         (we can't pass back a list since lists are typed
6406         and we don't have any idea what type the the client
6407         intended the list to be... :-( )
6408         
6409 2004-07-10  Seth Nickell  <seth@gnome.org>
6410
6411         * python/examples/Makefile.am:
6412
6413         Fix distcheck breakage caused by new examples.
6414
6415 2004-07-10  Seth Nickell  <seth@gnome.org>
6416
6417         * python/dbus.py:
6418
6419         Add "message" argument to service-side dbus.Object
6420         methods. This will break existing services written
6421         using the python bindings, but will allow extraction
6422         of all the message information (e.g. who its from).
6423
6424         Add improved "object oriented" signal handling/emission.
6425         
6426         * python/examples/example-service.py:
6427
6428         Nix this example.
6429         
6430         * python/examples/example-signal-emitter.py:
6431         * python/examples/example-signal-recipient.py:
6432
6433         Two new examples that show how to emit and receive
6434         signals using the new APIs.
6435         
6436         * python/examples/example-signals.py:
6437         * python/examples/gconf-proxy-service.py:
6438         * python/examples/gconf-proxy-service2.py:
6439
6440         Add "message" argument to service methods.
6441
6442 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6443
6444         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6445         * dbus/bus.c (dbus_bus_get_unix_user)
6446         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6447         method of org.freedesktop.DBus interface.
6448
6449         * bus/dispatch.c: test case
6450
6451 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6452
6453         * python/Makefile.am: switched include directory from glib/ to dbus/
6454         since dbus-glib.h moved
6455  
6456 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6457
6458         * configure.in: prevent building the gcj stuff and libxml loader
6459         since they are broken.
6460
6461 2004-06-20  Havoc Pennington  <hp@redhat.com>
6462
6463         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6464         codes from the dbus error names
6465         
6466         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6467         as dbus/dbus-glib.h and that breakage is now visible due to 
6468         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6469         
6470         * glib/dbus-glib.h: s/gproxy/g_proxy/
6471
6472         * dbus/dbus-shared.h: new header to hold stuff shared with
6473         binding APIs
6474         
6475         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6476         than dbus-errors.h
6477
6478         * glib/dbus-glib.h (dbus_set_g_error): move to
6479         dbus-glib-lowlevel.h
6480
6481         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6482         of stuff to enable this
6483
6484         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6485
6486         * a bunch of other changes with the same basic "separate glib 
6487         bindings from dbus.h" theme
6488         
6489 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6490
6491         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6492
6493         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6494
6495 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6496
6497         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6498         the reply value of the ServiceExists message.
6499
6500 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6501
6502         * python/dbus_bindings.pyx.in: No longer need to parse path
6503         elements and pass them as arrays of strings.  The C API now
6504         accepts plain path strings.
6505         (_build_parsed_path): removed 
6506
6507 2004-06-07  Havoc Pennington  <hp@redhat.com>
6508
6509         * doc/TODO: remove auto-activation item since it's done; sort
6510         items by importance/milestone
6511
6512 2004-06-07  Havoc Pennington  <hp@redhat.com>
6513
6514         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6515         random signature when using REQUIRED_FIELDS (this hack won't work
6516         in the long term)
6517
6518         * dbus/dbus-message.c: change the signature to be a header field,
6519         instead of message->signature special-case string. Incremental
6520         step forward. Then we can fix up code to send the signature in the
6521         message, then fix up code to validate said signature, then fix up
6522         code to not put the typecodes inline, etc.
6523         (load_one_message): don't make up the signature after the fact
6524         (decode_header_data): require signature field for the known
6525         message types
6526
6527         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6528
6529         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6530
6531 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6532
6533         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6534
6535         * mono/Handler.cs: Updated to follow new path argument for
6536         (un-)registering objects.
6537
6538         * mono/example/Makefile.am:
6539         * mono/Makefile.am:
6540         * configure.in: Bumped required version for mono and use new -pkg
6541         syntax for deps
6542
6543 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6544
6545         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6546         registration functions take the path argument as char* instead of
6547         char**.
6548
6549         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6550         split off the path decompostion part of
6551         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6552         warnings. 
6553
6554         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6555         
6556 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6557  
6558         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6559         machine approach.  A state is implemented as a function that
6560         handles incoming events as specified for that state.
6561         
6562         * doc/dbus-specification.xml: Update auth protocol state machine
6563         specification to match implementation.  Remove some leftover
6564         base64 examples.
6565
6566 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6567
6568         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6569         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6570         quiet doxygen.
6571
6572         * Doxyfile.in: remove deprecated options.
6573
6574         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6575         glib/test-thread.h, glib/test-thread-client.c,
6576         glib/test-thread-server.c, glib/test-profile.c,
6577         glib/test-dbus-glib.c: remove these unused files.
6578
6579 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6580
6581         * dbus/dbus-object-tree.c
6582         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6583         non-fallback handlers (bug #684).
6584         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6585         (find_subtree_recurse): report wether the returned subtree is an
6586         exact match or a "fallback" match higher up in the tree.
6587         (object_tree_test_iteration): update test case.
6588
6589 2004-06-01  Seth Nickell  <seth@gnome.org>
6590
6591         * python/dbus_bindings.pyx.in:
6592         * python/tests/test-client.py:
6593
6594         Round off basic type support. Add dicts (yay!), and 
6595         remaining array types.
6596
6597         Make MessageIter more general so it works for dicts too.
6598
6599         Mark all loop variables as C integers.
6600         
6601 2004-05-31  Havoc Pennington  <hp@redhat.com>
6602
6603         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6604         "in" before "out"
6605
6606         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6607
6608         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6609         option that runs the tests, and start filling in some code
6610         including for starters just dumping the interfaces to stdout
6611
6612         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6613
6614         * test/data/valid-introspection-files/lots-of-types.xml: test of
6615         an example introspection file
6616
6617         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6618         "node" (I think...)
6619
6620 2004-05-31  Seth Nickell  <seth@gnome.org>
6621
6622         * python/dbus_bindings.pyx.in:
6623         * python/tests/test-client.py:
6624
6625         Test Suite: 1
6626         Python Bindings: 0
6627
6628         Fix string array memory trashing bug... oops...
6629
6630 2004-05-30  Seth Nickell  <seth@gnome.org>
6631
6632         * python/dbus.py:
6633
6634         Add a nicer-but-less-flexible alternate API for handling 
6635         calls to virtual objects in dbus.ObjectTree.
6636
6637         Screw up the argument order to the dbus.Object constructor
6638         for consistency with dbus.ObjectTree (and to make dbus_methods
6639         optional for future extension)
6640         
6641         * python/examples/Makefile.am:
6642         * python/examples/gconf-proxy-service.py:
6643         * python/examples/gconf-proxy-service2.py:
6644
6645         Alternate implementation of gconf-proxy-service using the
6646         nicer dbus.ObjectTree API.
6647         
6648         * python/examples/example-service.py:
6649         * python/tests/test-server.py
6650
6651         Reverse the argument order to deal with dbus.Object constructor
6652         changes.
6653         
6654 2004-05-30  Seth Nickell  <seth@gnome.org>
6655
6656         * python/examples/example-client.py:
6657         * python/examples/example-service.py:
6658
6659         Take it back. Lists seem to work but they're broken
6660         in the test suite. Make the base examples use
6661         lists (works fine).
6662
6663 2004-05-30  Seth Nickell  <seth@gnome.org>
6664
6665         * python/dbus_bindings.pyx.in:
6666         * python/tests/test-client.py:
6667
6668         Add some more tests and fix errors that crop up.
6669         Unfortunately, currently it seems like marshalling
6670         and unmarshalling of lists is completely broken :-(
6671
6672 2004-05-30  Seth Nickell  <seth@gnome.org>
6673
6674         * python/dbus_bindings.pyx.in:
6675
6676         Add support for ObjectPath type.
6677
6678         * python/dbus.py:
6679
6680         Refactor message handling code to a common function.
6681         
6682         * python/tests/test-client.py:
6683         * python/tests/test-server.py:
6684
6685         Add tests that check to make sure values of all types
6686         can be echoed from a service w/o mangling.
6687         
6688 2004-05-29  Seth Nickell  <seth@gnome.org>
6689
6690         * python/dbus.py:
6691
6692         Add ObjectTree class which allows implementation
6693         of trees of "virtual" objects. Basically the python
6694         wrapper for "register_fallback".
6695         
6696         * python/examples/Makefile.am
6697         * python/examples/gconf-proxy-client.py:
6698         * python/examples/gconf-proxy-service.py:
6699
6700         Implement a simple GConf proxy service that supports
6701         get/set on string and int GConf keys using the ObjectTree.
6702         
6703 2004-05-29  Seth Nickell  <seth@gnome.org>
6704
6705         * python/dbus.py:
6706         * python/examples/example-client.py:
6707         * python/examples/example-service.py:
6708         * python/examples/list-system-services.py:
6709
6710         Add SessionBus, SystemBus and ActivationBus classes
6711         so you don't need to know the special little BUS_TYPE
6712         flag.
6713         
6714 2004-05-29  Havoc Pennington  <hp@redhat.com>
6715
6716         * bus/config-parser.c (process_test_valid_subdir): temporarily
6717         stop testing config parser OOM handling, since expat has issues
6718         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6719
6720         * bus/dbus-daemon-1.1.in: change requested_reply to
6721         send_requested_reply/receive_requested_reply so we can send the
6722         replies, not just receive them.
6723
6724         * bus/config-parser.c: parse the new
6725         send_requested_reply/receive_requested_reply
6726
6727         * bus/policy.c (bus_client_policy_check_can_send): add
6728         requested_reply argument and use it
6729
6730         * bus/bus.c (bus_context_check_security_policy): pass through
6731         requested_reply status to message send check
6732
6733         * bus/system.conf.in: adapt to requested_reply change
6734         
6735 2004-05-28  Havoc Pennington  <hp@redhat.com>
6736
6737         * test/glib/test-service-glib.c (main): remove unused variable
6738
6739         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6740
6741         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6742         from the enum, no longer in use.
6743
6744         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6745         works right.
6746
6747         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6748         whether error_name passed in is a valid error name.
6749
6750 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6751
6752         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6753         OBJECT_PATH and OBJECT_PATH_ARRAY
6754
6755 2004-05-28  Seth Nickell  <seth@gnome.org>
6756
6757         * python/examples/Makefile.am:
6758
6759         Forget to add Makefile.am. Do not pass go.
6760
6761 2004-05-28  Michael Meeks  <michael@ximian.com>
6762
6763         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6764         fix no int64 case.
6765
6766         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6767
6768         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6769         (_dbus_message_iter_get_basic_type_array): impl.
6770         drastically simplify ~all relevant _get methods to use these.
6771         (_dbus_message_iter_append_basic_array),
6772         (dbus_message_iter_append_basic): impl
6773         drastically simplify ~all relevant _append methods to use these.
6774
6775         * dbus/dbus-message-builder.c (parse_basic_type) 
6776         (parse_basic_array, lookup_basic_type): impl.
6777         (_dbus_message_data_load): prune scads of duplicate /
6778         cut & paste coding.
6779
6780         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6781         (_dbus_demarshal_basic_type): implement,
6782         (demarshal_and_validate_len/arg): beef up debug.
6783         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6784
6785 2004-05-27  Seth Nickell  <seth@gnome.org>
6786
6787         * configure.in:
6788         * python/Makefile.am:
6789
6790         Include the example python apps in the tarball.
6791         
6792         * python/examples/list-system-services.py
6793
6794         Add a python new example that fetches the list of services
6795         from the system bus.
6796         
6797 2004-05-27  Seth Nickell  <seth@gnome.org>
6798
6799         * python/dbus.py:
6800         * python/dbus_bindings.pyx.in:
6801
6802         Fix failure to notify that a signal was not handled,
6803         resulted in hung functions.
6804         
6805 2004-05-25  Colin Walters  <walters@redhat.com>
6806
6807         * tools/dbus-monitor.c (main): Monitor all types of messages.
6808
6809 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6810
6811         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6812         which unregisters the object path and disposes the handler.
6813
6814 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6815  
6816         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6817          
6818         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6819         operands to && so we call dbus_message_iter_next () for the last
6820         argument also.
6821
6822 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6823
6824         * dbus/dbus-object-tree.c
6825         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6826         children even if the requested path isn't registered.
6827         (object_tree_test_iteration): test object_tree_list_registered.
6828
6829         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6830         it to 0.
6831         
6832 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6833
6834         * doc/TODO: Remove resolved items.
6835
6836         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6837         field.
6838         
6839         * bus/connection.c (bus_connections_expect_reply): Enforce the
6840         per-connection limit on pending replies.
6841         
6842         Patch from Jon Trowbridge <trow@ximian.com>:
6843  
6844         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6845         up a watch that triggers a config reload when one end of the pipe
6846         becomes readable.
6847         (signal_handler): Instead of doing the config reload in our SIGHUP
6848         handler, just write to the reload pipe and let the associated
6849         watch handle the reload when control returns to the main loop.
6850  
6851         * bus/driver.c (bus_driver_handle_reload_config): Added.
6852         Implements a ReloadConfig method for requesting a configuration
6853         file reload via the bus driver.
6854  
6855 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6856
6857         * HACKING: Updated release instructions concerning the wiki page.
6858
6859 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6860
6861         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6862         filter against auth->allowed_mechs; we only add allowed mechs in
6863         record_mechanisms().
6864  
6865         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6866         ALLOWED_MECHS to auth-script format so we can set the list of
6867         allowed mechanisms.
6868  
6869         * data/auth/client-out-of-mechanisms.auth-script: New test to
6870         check client disconnects when it is out of mechanisms to try.
6871  
6872         * dbus/dbus-auth.c (process_command): Remove check for lines
6873         longer that 1 MB; we only buffer up maximum 16 kB.
6874  
6875         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6876         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6877         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6878         assume there might be unused bytes.
6879  
6880         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6881         client-out-of-mechs, it is handled in process_reject(). Move check
6882         for max failures to send_rejected(), as it's a server-only thing.
6883
6884         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6885         send_auth(), send_data(), send_rejected(), send_error(),
6886         send_ok(), send_begin() and send_cancel().
6887
6888 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6889
6890         Remove base64 encoding, replace with hex encoding. Original patch
6891         from trow@ximian.com, added error handling.
6892
6893         * dbus/dbus-string.c (_dbus_string_base64_encode)
6894         (_dbus_string_base64_decode): Remove.
6895         (_dbus_string_hex_decode): Add end_return argument so we can
6896         distinguish between OOM and invalid hex encoding.
6897         (_dbus_string_test): Remove base64 tests and add test case for
6898         invalid hex.
6899
6900         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6901         Replace base64 with hex.
6902
6903         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6904         for invalid hex encoded data in auth protocol.
6905
6906 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6907
6908         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6909         leak.
6910
6911 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6912
6913         * mono/dbus-sharp.dll.config.in: Added for GAC
6914         * mono/dbus-sharp.snk: Added for GAC
6915         * mono/Assembly.cs.in: Added for GAC
6916         * mono/Makefile.am: Changes for GAC installation        
6917         * configure.in: Added refs for dbus-sharp.dll.config.in and
6918         Assembly.cs.in. More fixes for mono testing
6919         * mono/example/Makefile.am: Changed var to CSC
6920         * Makefile.am: Changed flag name to DBUS_USE_CSC
6921
6922 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6923
6924         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6925         * mono/doc/*: Added documentation framework
6926         * configure.in: Added monodoc check
6927         * README: Added description of mono configure flags
6928
6929 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6930
6931         * doc/dbus-specification.xml: Added a "Required" column to the 
6932         header fields table and changed the "zero or more" verbage in
6933         the above paragraph to read "The header must contain the required 
6934         named header fields and zero or more of the optional named header 
6935         fields".
6936         * test/data/invalid-messages/*.message: Added the required PATH 
6937         named header field to the tests so that they don't fail on 
6938         'Missing path field'
6939
6940 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6941
6942         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6943         the stack by implicitly defining variable and parameter types and
6944         removing the hack of defining C pointers as python objects and later
6945         casting them.
6946
6947 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6948
6949         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6950
6951 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6952
6953         * mono/DBusType/Dict.cs: Handle empty dicts
6954         * mono/DBusType/Array.cs: Handle empty arrays
6955         * mono/Arguments.cs: Handle empty arguments
6956
6957 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6958
6959         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6960         field
6961
6962 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6963
6964         * test/data/valid-messages/standard-*.message: Update message
6965         test scripts to new header field names.
6966
6967 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6968
6969         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6970         overflow to times_we_did_each_thing array which would chop off the
6971         first character of the failure_dir string. Increased the size of
6972         the array to 7 to reflect the number of random mutation functions
6973         we have.
6974
6975 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6976
6977         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6978         unix_server->watch here, it is unreffed in disconnect.
6979         (_dbus_server_new_for_tcp_socket): convert NULL host to
6980         "localhost" here so we don't append NULL to address.
6981         
6982         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6983         various addresses, including tcp with no explicit host.
6984
6985 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6986
6987         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6988         fix incorrect setting of .name_offset in the HeaderField (it was
6989         off by two bytes, positioned right after the name and typecode)
6990
6991         * bus/bus.c (bus_context_new, bus_context_unref): test before
6992         calling dbus_server_free_data_slot and _dbus_user_database_unref
6993         in case of an error.
6994
6995         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6996         by libdbus-gtool.
6997
6998 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6999
7000         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7001         _dbus_poll() instead of select().
7002
7003 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7004
7005         * bus/main.c (signal_handler): Reload the configuration files
7006         on SIGHUP.
7007         (main): Set up our SIGHUP handler.
7008
7009         * bus/bus.c (struct BusContext): Store the config file, user and
7010         fork flag in the BusContext.
7011         (process_config_first_time_only): Added.  Contains the code
7012         (previously in bus_context_new) for setting up the BusContext from
7013         the BusConfigParser that should only be run the first time the
7014         config files are read.
7015         (process_config_every_time): Added.  Contains the code (previously
7016         in bus_context_new) for setting up the BusContext from the
7017         BusConfigParser that should be run every time the config files are
7018         read.
7019         (load_config): Added.  Builds a BusConfigParser from the config
7020         files and passes the resulting structure off to
7021         process_config_first_time_only (assuming this is the first time)
7022         and process_config_every_time.
7023         (bus_context_new): All of the config-related code has been moved
7024         to process_config_first_time_only and process_config_every_time.
7025         Now this function just does the non-config-related initializations
7026         and calls load_config.
7027         (bus_context_reload_config): Added.
7028
7029 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7030
7031         * bus/driver.c (bus_driver_handle_get_service_owner):
7032         implement a GetServiceOwner method.
7033         * doc/dbus-specification.xml: document it.
7034         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7035         
7036         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7037         implement, using the bus GetServiceOwner method.
7038
7039         * test/glib/test-dbus-glib.c:
7040         use dbus_gproxy_new_for_service_owner so that we can receive the
7041         signal. 
7042
7043 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7044
7045         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7046         dbus/dbus-message.c, dbus/dbus-protocol.h
7047         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7048
7049         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7050         dbus/dbus-message.c, dbus/dbus-protocol.h
7051         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7052
7053         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7054         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7055         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7056
7057         * doc/dbus-specification.xml (Header Fields Table):
7058         s/SERVICE/DESTINATION
7059         s/SENDER_SERVICE/SENDER
7060
7061
7062 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7063
7064         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7065         a few seconds.
7066
7067 2004-04-13  Michael Meeks  <michael@ximian.com>
7068
7069         * glib/dbus-gobject.c (handle_introspect): split out
7070         (introspect_properties): this.
7071         (handle_introspect): implement this.
7072
7073         * test/glib/Makefile.am: use the absolute path so the bus
7074         daemon's chdir ("/") doesn't kill us dead.
7075
7076         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7077
7078 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7079
7080         * bus/config-parser.c (struct BusConfigParser): Added
7081         included_files field.
7082         (seen_include): Added.  Checks whether or not a file has already
7083         been included by any parent BusConfigParser.
7084         (bus_config_parser_new): Copy the parent's included_files.
7085         (include_file): Track which files have been included, and fail on
7086         circular inclusions.
7087         (process_test_valid_subdir): Changed printf to report if we are
7088         testing valid or invalid conf files.
7089         (all_are_equiv): Changed printf to be a bit clearer about
7090         what we are actually doing.
7091         (bus_config_parser_test): Test invalid configuration files.
7092
7093 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7094
7095         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7096         argument.  If non-null, the newly-constructed BusConfigParser will
7097         be initialized with the parent's BusLimits instead of the default
7098         values.
7099         (include_file): When including a config file, pass in
7100         the current parser as the parent and then copy the BusLimits
7101         from the included BusConfigParser pack to the current parser.
7102         (process_test_valid_subdir): Renamed from process_test_subdir.
7103         (process_test_equiv_subdir): Added.  Walks through a directory,
7104         descending into each subdirectory and loading the config files
7105         it finds there.  If any subdirectory contains two config files
7106         that don't produce identical BusConfigParser structs, fail.
7107         For now, the BusConfigParser's BusPolicies are not compared.
7108         (bus_config_parser_test): Call both process_test_valid_subdir and
7109         process_test_equiv_subdir.
7110
7111         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7112         argument and pass it along to the call to bus_config_parser_new.
7113         Also made a few small changes to allow this code to compile.
7114
7115         * bus/config-loader-expat.c (bus_config_load): Take a parent
7116         argument and pass it along to the call to bus_config_parser_new.
7117
7118         * bus/bus.c (bus_context_new): Load the config file
7119         with a NULL parent argument.
7120
7121 2004-03-29  Michael Meeks  <michael@ximian.com>
7122
7123         * glib/dbus-gobject.c (introspect_properties): split
7124         out, fix mangled 'while' flow control.
7125         (introspect_signals): implement.
7126         (handle_introspect): update.
7127
7128 2004-03-29  Michael Meeks  <michael@ximian.com>
7129
7130         * glib/dbus-gobject.c (set_object_property): split out / 
7131         re-work, use the property type, and not the message type(!)
7132         (get_object_property): ditto.
7133
7134         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7135         (dbus_gvalue_marshal): make this code re-usable, needed
7136         for signals too, also on both proxy and server side.
7137         Re-write for more efficiency / readability.
7138
7139 2004-03-29  Michael Meeks  <michael@ximian.com>
7140
7141         * dbus/dbus-message.c
7142         (dbus_message_new_error_printf): impl.
7143
7144         * dbus/dbus-connection.c
7145         (dbus_connection_unregister_object_path): fix warning.
7146
7147         * configure.in: fix no-mono-installed situation.
7148
7149 2004-03-27  Havoc Pennington  <hp@redhat.com>
7150
7151         Patch from Timo Teräs:
7152         
7153         * tools/dbus-send.c (main): if --print-reply, assume type is
7154         method call; support boolean type args
7155         
7156         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7157         bunch of memleak and logic bugs
7158         
7159 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7160
7161         * mono/Arguments.cs:
7162         * mono/Introspector.cs:
7163         * mono/Handler.cs:
7164         * mono/InterfaceProxy.cs:
7165         * mono/Message.cs
7166         * mono/ProxyBuilder.cs:
7167         * mono/Service.cs:
7168         Added InterfaceProxy class to avoid building proxies for every
7169         object.
7170
7171         * dbus-message.h:
7172         * dbus-message.c (dbus_message_append_args_valist)
7173         (dbus_message_iter_get_object_path)
7174         (dbus_message_iter_get_object_path_array)
7175         (dbus_message_iter_append_object_path)
7176         (dbus_message_iter_append_object_path_array):
7177         Added object_path iter functions to handle OBJECT_PATH arguments
7178         
7179 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7180
7181         First checkin of mono bindings.
7182         * configure.in:
7183         * Makefile.am:
7184         Build stuff for the bindings
7185         * dbus-sharp.pc.in: Added for pkgconfig
7186         
7187 2004-03-21  Havoc Pennington  <hp@redhat.com>
7188
7189         * test/test-service.c (main): remove debug spew
7190
7191 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7192
7193         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7194         arrays
7195
7196         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7197         (dbus_message_iter_init_array_iterator)
7198         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7199         indicate whether the iterator is empty
7200
7201         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7202         warnings
7203
7204 2004-03-19  Havoc Pennington  <hp@redhat.com>
7205
7206         * NEWS: 0.21 updates
7207
7208         * configure.in: 0.21
7209
7210         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7211         
7212         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7213         you don't need pyrex to make dist
7214
7215         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7216         sources; run moc
7217         
7218 2004-03-18  Richard Hult  <richard@imendio.com>
7219
7220         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7221         (dbus_message_set_auto_activation): Add doxygen docs.
7222
7223 2004-03-16  Richard Hult  <richard@imendio.com>
7224
7225         * bus/activation.c: (bus_activation_service_created),
7226         (bus_activation_send_pending_auto_activation_messages),
7227         (bus_activation_activate_service):
7228         * bus/activation.h:
7229         * bus/dispatch.c: (bus_dispatch),
7230         (check_nonexistent_service_auto_activation),
7231         (check_service_auto_activated),
7232         (check_segfault_service_auto_activation),
7233         (check_existent_service_auto_activation), (bus_dispatch_test):
7234         * bus/driver.c: (bus_driver_handle_activate_service):
7235         * bus/services.c: (bus_registry_acquire_service):
7236         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7237         (dbus_message_get_auto_activation):
7238         * dbus/dbus-message.h:
7239         * dbus/dbus-protocol.h: Implement auto-activation.
7240         
7241         * doc/dbus-specification.xml: Add auto-activation to the spec.
7242
7243 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7244
7245         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7246         fix a bug with CUSTOM types.
7247
7248         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7249         a unit test for this bug (used to fail).
7250
7251 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7252
7253         * bus/activation.c:
7254         (babysitter_watch_callback): notify all pending activations waiting for
7255           the same exec that the activation failed.
7256         (bus_activation_activate_service): shortcut the activation if we 
7257           already waiting for the same executable to start up.
7258
7259 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7260
7261         * bus/activation.c: 
7262         - Added service file reloading. 
7263           Each service files directory is kept in an hash table in 
7264           BusActivation and each BusActivationEntry knows what .service-file it
7265           was read from. So when you try to activate a service the bus will 
7266           check if it's been updated, removed or if new .service-files has 
7267           been installed.
7268         - Test code at the bottom for the service file reloading.
7269         * bus/test-main.c: (main):
7270         * bus/test.h:
7271         - added service reloading test.
7272         * dbus/dbus-sysdeps.c: 
7273         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7274
7275 2004-03-08  Michael Meeks  <michael@ximian.com>
7276
7277         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7278         bail immediately if disconnected, to avoid busy loop.
7279
7280         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7281         cleanup cut/paste/inefficiency.
7282
7283 2004-03-01  David Zeuthen  <david@fubar.dk>
7284
7285         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7286         bug where args were used twice. This bug resulted in a segfault
7287         on a Debian/PPC system when starting the messagebus daemon. Include
7288         dbus-sysdeps.h for DBUS_VA_COPY
7289
7290         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7291
7292         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7293         appropriate va_copy implementation. From GLib
7294         
7295 2004-02-24  Joe Shaw  <joe@ximian.com>
7296
7297         * bus/services.c (bus_registry_acquire_service): We need to pass
7298         in the service name to dbus_set_error() to prevent a crash.
7299
7300 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7301
7302         * AUTHORS: Reveal my True identity.
7303
7304 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7305
7306         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7307         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7308
7309 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7310
7311         * doc/TODO: Added not about better error check of configuration files.
7312
7313 2003-12-02  Richard Hult  <richard@imendio.com>
7314
7315         * Update AFL version to 2.0 throughout the source files to reflect
7316         the update that was done a while ago.
7317
7318 2003-12-02  Richard Hult  <richard@imendio.com>
7319
7320         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7321         wrote_dict_key to FALSE on the iter that the dict is appended to,
7322         just like when appending other types. Fixes a bug where a dict
7323         couldn't be put inside a dict.
7324         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7325         (message_iter_test, _dbus_message_test): Add test case for dict
7326         inside dict.
7327
7328 2003-12-01  David Zeuthen  <david@fubar.dk>
7329
7330         * python/dbus.py: Add the actual message when calling the reciever
7331         of a signal such that parameters can be inspected. Add the method
7332         remove_signal_receiver
7333         
7334 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7335
7336         * bus/*.[ch]:
7337         * dbus/*.[ch]:
7338         * glib/*.[ch]: Made ref functions return the pointer
7339
7340 2003-11-25  Zack Rusin  <zack@kde.org>
7341
7342         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7343
7344         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7345         wrappers,
7346
7347         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7348         the Integrator and to better fit with the server,
7349
7350 2003-11-24  Zack Rusin  <zack@kde.org>
7351
7352         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7353         the integrator handles it now
7354
7355         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7356         since QTimer wasn't really meant to be used the way DBusTimeout is
7357
7358 2003-11-24  Zack Rusin  <zack@kde.org>
7359
7360         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7361         Integrator class which integrates D-BUS with the Qt event loop,
7362
7363         * qt/connection.h, qt/connection.cpp: Move all the code which
7364         was dealing with D-BUS integration to the Integrator class,
7365         and start using Integrator,
7366
7367 2003-11-23  Zack Rusin  <zack@kde.org>
7368
7369         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7370         wrapper
7371
7372         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7373         switching namespaces to DBusQt, reworking the class,
7374
7375         * Makefile.cvs: switching dependencies so that it matches KDE 
7376         schematics,
7377         
7378         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7379         the library
7380
7381 2003-11-19  Havoc Pennington  <hp@redhat.com>
7382
7383         * NEWS: update
7384
7385         * configure.in: bump version to 0.20
7386
7387         * configure.in (have_qt): add yet another place to look for qt
7388         (someone hand trolltech a .pc file...)
7389
7390 2003-11-01  Havoc Pennington  <hp@redhat.com>
7391
7392         * doc/dbus-specification.xml: add state machine docs on the auth
7393         protocol; just a first draft, I'm sure it's wrong.      
7394
7395 2003-10-28  David Zeuthen  <david@fubar.dk>
7396
7397         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7398         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7399         
7400 2003-10-28  Havoc Pennington  <hp@redhat.com>
7401
7402         * dbus/dbus-message.c (get_next_field): delete unused function
7403
7404 2003-10-28  Havoc Pennington  <hp@redhat.com>
7405
7406         * bus/expirelist.c (do_expiration_with_current_time): detect
7407         failure of the expire_func due to OOM
7408
7409         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7410
7411         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7412         NoReply error that's now created by the bus when the service exits
7413
7414 2003-10-28  Havoc Pennington  <hp@redhat.com>
7415
7416         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7417         tests for set_path, set_interface, set_member, etc.
7418
7419         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7420
7421         * dbus/dbus-message.c (set_string_field): always just delete and
7422         re-append the field; accept NULL for deletion
7423         (re_align_fields_recurse): reimplement
7424         
7425 2003-10-26  Havoc Pennington  <hp@redhat.com>
7426
7427         * dbus/dbus-connection.c: fix docs to properly describe the
7428         disconnected message
7429         (_dbus_connection_notify_disconnected): remove this function; 
7430         we can't synchronously add the disconnected message, we have to 
7431         do it after we've queued any remaining real messages
7432         (_dbus_connection_get_dispatch_status_unlocked): queue the
7433         disconnect message only if the transport has finished queueing all
7434         its real messages and is disconnected.
7435         (dbus_connection_disconnect): update the dispatch status here
7436
7437 2003-10-22  Havoc Pennington  <hp@redhat.com>
7438
7439         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7440
7441         * bus/connection.c (bus_transaction_send_from_driver): set the
7442         destination to the connection's base service
7443
7444 2003-10-20  Havoc Pennington  <hp@redhat.com>
7445
7446         hmm, make check is currently not passing.
7447         
7448         * doc/dbus-specification.xml: add requirement that custom type
7449         names follow the same rules as interface names.
7450
7451         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7452         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7453         'map'
7454
7455         * doc/dbus-specification.xml: update type codes to match
7456         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7457         CUSTOM. Add type OBJECT_PATH to the spec.
7458
7459 2003-10-17  Havoc Pennington  <hp@redhat.com>
7460
7461         * bus/driver.c (create_unique_client_name): use "." as separator
7462         in base service names instead of '-'
7463
7464         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7465         byte at the end of the string
7466
7467         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7468         optimization macros since string validation seems to be a slow
7469         point.
7470         
7471         * doc/dbus-specification.xml: restrict valid
7472         service/interface/member/error names. Add test suite code for the
7473         name validation.
7474
7475         * dbus/dbus-string.c: limit service/interface/member/error names 
7476         to [0-9][A-Z][a-z]_
7477
7478         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7479         format arg to verbose spew
7480
7481         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7482         memory, return instead of g_error
7483
7484         * test/test-service.c (path_message_func): support emitting a
7485         signal on request
7486
7487         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7488         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7489         assuming the activation bus was the session bus so that services
7490         started manually will still register.
7491         (init_connections_unlocked): fix so that in OOM situation we get
7492         the same semantics when retrying the function
7493         
7494         * test/test-service.c (main): change to use path registration, to
7495         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7496         than DBUS_BUS_SESSION
7497
7498 2003-10-16  Havoc Pennington  <hp@redhat.com>
7499
7500         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7501
7502         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7503         coverage of the tests
7504         (coverage-report.txt): don't move the .da and .bbg files around
7505
7506 2003-10-16  Havoc Pennington  <hp@redhat.com>
7507
7508         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7509         to put there
7510
7511 2003-10-16  Havoc Pennington  <hp@redhat.com>
7512
7513         * bus/connection.c (bus_pending_reply_expired): either cancel or
7514         execute, not both
7515         (bus_connections_check_reply): use unlink, not remove_link, as we
7516         don't want to free the link; fixes double free mess
7517
7518         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7519         where no reply was received
7520
7521         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7522         fix a refcount leak
7523
7524         * bus/signals.c (match_rule_matches): add special cases for the
7525         bus driver, so you can match on sender/destination for it.
7526
7527         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7528         DBUS_PRINT_BACKTRACE is set
7529
7530         * dbus/dbus-internals.c: add pid to assertion failure messages
7531
7532         * dbus/dbus-connection.c: add message type code to the debug spew
7533
7534         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7535         sender=foo not service=foo
7536
7537         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7538         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7539         DBUS_ACTIVATION_ADDRESS instead
7540
7541         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7542         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7543
7544         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7545         context struct
7546
7547         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7548         (dbus_message_iter_get_object_path_array): new function (half
7549         finished, disabled for the moment)
7550         
7551         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7552         DBUS_MESSAGE_TYPE_ERROR
7553
7554         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7555         avoid redirecting stderr to /dev/null
7556         (babysit): close stdin if not doing the "exit_with_session" thing
7557
7558         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7559         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7560         stdout/stdin, so things don't get confused
7561         
7562         * bus/system.conf.in: fix to allow replies, I modified .conf
7563         instead of .conf.in again.
7564
7565 2003-10-14  David Zeuthen  <david@fubar.dk>
7566
7567         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7568         argtype to arg_type when raising unknown arg type exception.
7569         Changed type list to reflect the changes in dbus-protocol.h so 
7570         the bindings actually work.
7571
7572 2003-10-14  Havoc Pennington  <hp@redhat.com>
7573
7574         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7575         to have a bug keeping it from outputting the .da files sometimes
7576         (string_get_string): don't append garbage nul bytes to the string.
7577
7578 2003-10-15  Seth Nickell  <seth@gnome.org>
7579
7580         * python/Makefile.am:
7581
7582         Include dbus_h_wrapper.h in the dist tarball.
7583
7584 2003-10-14  Havoc Pennington  <hp@redhat.com>
7585
7586         * bus/bus.c (bus_context_check_security_policy): revamp this to
7587         work more sanely with new policy-based requested reply setup
7588
7589         * bus/connection.c (bus_transaction_send_from_driver): set bus
7590         driver messages as no reply
7591
7592         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7593         requested_reply attribute on allow/deny rules
7594
7595         * bus/system.conf: add <allow requested_reply="true"/>
7596
7597         * bus/driver.c (bus_driver_handle_message): fix check for replies
7598         sent to the bus driver, which was backward. How did this ever work
7599         at all though? I think I'm missing something.
7600
7601         * dbus/dbus-message.c (decode_header_data): require error and
7602         method return messages to have a reply serial field to be valid
7603         (_dbus_message_loader_queue_messages): break up this function;
7604         validate that reply serial and plain serial are nonzero; 
7605         clean up the OOM/error handling.
7606         (get_uint_field): don't return -1 from this
7607         (dbus_message_create_header): fix signed/unsigned bug
7608
7609         * bus/connection.c (bus_connections_expect_reply): save serial of
7610         the incoming message, not reply serial
7611
7612 2003-10-14  Havoc Pennington  <hp@redhat.com>
7613
7614         * bus/connection.c: implement pending reply tracking using
7615         BusExpireList
7616
7617         * bus/bus.c (bus_context_check_security_policy): verify that a
7618         reply is pending in order to allow a reply to be sent. Deny 
7619         messages of unknown type.
7620
7621         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7622
7623         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7624         (bus_context_get_reply_timeout): new
7625
7626 2003-10-13  Seth Nickell  <seth@gnome.org>
7627
7628         * python/Makefile.am:
7629
7630         Pass "make distcheck": remove a couple files from DIST_FILES
7631         that weren't included in the final version.
7632
7633 2003-10-12  Havoc Pennington  <hp@pobox.com>
7634
7635         Added test code that 1) starts an actual bus daemon and 2) uses
7636         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7637         more testing possible, but this is the basic framework.
7638         
7639         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7640         empty proxy lists from the proxy list hash
7641
7642         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7643         couple of return_if_fail checks
7644
7645         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7646         to allocate, so everything is cleared to NULL as it should be.
7647
7648         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7649         source as data to dbus_connection_set_timeout_functions() as the 
7650         timeout functions expected
7651
7652         * test/glib/run-test.sh: add a little script to start up a message
7653         bus and run tests using it
7654
7655         * tools/dbus-launch.1: updates
7656
7657         * tools/dbus-launch.c (main): add --config-file option
7658
7659         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7660         that could never be reached.
7661
7662         * dbus/dbus-message.c (dbus_message_new_method_return) 
7663         (dbus_message_new_error, dbus_message_new_signal): set the
7664         no-reply-expected flag on all these. Redundant, but may
7665         as well be consistent.
7666
7667 2003-10-11  Havoc Pennington  <hp@pobox.com>
7668
7669         * test/decode-gcov.c (function_solve_graph): make broken block
7670         graph a nonfatal error since it seems to be broken. Need to debug
7671         this.
7672
7673         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7674         can't just check type > INVALID < LAST anymore
7675
7676         * dbus/dbus-message.c (dbus_message_get_signature): new function
7677         (dbus_message_has_signature): new function
7678         (struct DBusMessage): add signature field (right now it isn't sent
7679         over the wire, just generated on the fly)
7680         (dbus_message_copy): copy the signature, and init strings to
7681         proper length to avoid some reallocs
7682         (dbus_message_iter_init_array_iterator): return void, since it
7683         can't fail
7684         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7685         (_dbus_message_loader_queue_messages): add silly temporary hack to
7686         fill in message->signature on load
7687
7688         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7689         characters, so they are relatively human-readable.
7690
7691 2003-10-11  Havoc Pennington  <hp@pobox.com>
7692
7693         * dbus/dbus-message.c (_dbus_message_test): add more test
7694         coverage, but #if 0 for now since they uncover a bug 
7695         not fixed yet; I think in re_align_field_recurse()
7696         (re_align_field_recurse): add FIXME about broken assertion
7697
7698         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7699
7700         * bus/connection.c: share a couple code bits with expirelist.c
7701
7702         * bus/expirelist.h, bus/expirelist.c: implement a generic
7703         expire-items-after-N-seconds facility, was going to share between
7704         expiring connections and replies, decided not to use for expiring
7705         connections for now.
7706
7707         * COPYING: include AFL 2.0 (still need to change all the file headers)
7708
7709 2003-10-09  Havoc Pennington  <hp@redhat.com>
7710
7711         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7712         gcc 3.3. Not that we do anything about it yet.
7713
7714         * bus/signals.c (bus_match_rule_parse): impose max length on the
7715         match rule text
7716
7717         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7718
7719 2003-10-09  Havoc Pennington  <hp@redhat.com>
7720
7721         Make matching rules theoretically work (add parser).
7722         
7723         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7724         the case where destination is explicitly specified as bus driver
7725         and someone else is eavesdropping.
7726         
7727         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7728         definition of eavesdropping and assertion
7729
7730         * tools/dbus-send.c (main): use dbus_message_type_from_string
7731
7732         * bus/signals.c (bus_match_rule_parse): implement
7733
7734         * dbus/dbus-message.c (dbus_message_type_from_string): new
7735
7736         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7737
7738 2003-10-02  Havoc Pennington  <hp@pobox.com>
7739
7740         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7741         dbus_gproxy_oneway_call
7742
7743         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7744         (dbus_server_setup_with_g_main): fix to allow calling them more
7745         than once on the same args
7746         (dbus_bus_get_with_g_main): new function
7747
7748 2003-10-02  Havoc Pennington  <hp@redhat.com>
7749
7750         * doc/dbus-tutorial.xml: write some stuff
7751
7752 2003-09-29  Havoc Pennington  <hp@pobox.com>
7753
7754         * configure.in: split checks for Doxygen from XML docs, check for
7755         xmlto
7756
7757         * doc/Makefile.am: XML-ify all the docs, and add a blank
7758         dbus-tutorial.xml
7759
7760 2003-09-29  Havoc Pennington  <hp@pobox.com>
7761
7762         * Merge dbus-object-names branch. To see the entire patch 
7763         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7764         it's huuuuge though.
7765         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7766         
7767 2003-09-28  Havoc Pennington  <hp@pobox.com>
7768
7769         * HACKING: update to reflect new server
7770
7771 2003-09-26  Seth Nickell  <seth@gnome.org>
7772
7773         * python/dbus.py:
7774         * python/examples/example-signals.py:
7775
7776         Start implementing some notions of signals. The API
7777         is really terrible, but they sort of work (with the
7778         exception of being able to filter by service, and to
7779         transmit signals *as* a particular service). Need to
7780         figure out how to make messages come from the service
7781         we registered :-(
7782         
7783         * python/dbus_bindings.pyx.in:
7784
7785         Removed duplicate message_handler callbacks.
7786         
7787 2003-09-25  Havoc Pennington  <hp@redhat.com>
7788
7789         * bus/session.conf.in: fix my mess
7790
7791 2003-09-25  Havoc Pennington  <hp@pobox.com>
7792
7793         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7794
7795 2003-09-25  Seth Nickell  <seth@gnome.org>
7796
7797         * python/examples/example-service.py:
7798
7799         Johan notices complete wrong code in example-service, but
7800         completely wrong in a way that works exactly the same (!).
7801         Johan is confused, how could this possibly work? Example
7802         code fails to serve purpose of making things clear.
7803         Seth fixes.
7804
7805 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7806
7807         * doc/dbus-specification.sgml: don't require header fields
7808         to be 4-byte aligned and specify that fields should be
7809         distinguished from padding by the fact that zero is not
7810         a valid field name.
7811         
7812         * doc/TODO: remove re-alignment item and add item to doc
7813         the OBJECT_PATH type.
7814         
7815         * dbus/dbus-message.c:
7816         (HeaderField): rename the original member to value_offset
7817         and introduce a name_offset member to keep track of where
7818         the field actually begins.
7819         (adjust_field_offsets): remove.
7820         (append_int_field), (append_uint_field),
7821         (append_string_field): don't align the start of the header
7822         field to a 4-byte boundary.
7823         (get_next_field): impl finding the next marhsalled field
7824         after a given field.
7825         (re_align_field_recurse): impl re-aligning a number of
7826         already marshalled fields.
7827         (delete_field): impl deleting a field of any type and
7828         re-aligning any following fields.
7829         (delete_int_or_uint_field), (delete_string_field): remove.
7830         (set_int_field), (set_uint_field): no need to re-check
7831         that we have the correct type for the field.
7832         (set_string_field): ditto and impl re-aligning any
7833         following fields.
7834         (decode_header_data): update to take into account that
7835         the fields aren't 4-byte aligned any more and the new
7836         way to distinguish padding from header fields. Also,
7837         don't exit when there is too much header padding.
7838         (process_test_subdir): print the directory.
7839         (_dbus_message_test): add test to make sure a following
7840         field is re-aligned correctly after field deletion.
7841         
7842         * dbus/dbus-string.[ch]:
7843         (_dbus_string_insert_bytes): rename from insert_byte and
7844         allow the insert of multiple bytes.
7845         (_dbus_string_test): test inserting multiple bytes.
7846
7847         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7848         warning note to docs about having to re-align any
7849         marshalled values following the string.
7850         
7851         * dbus/dbus-message-builder.c:
7852         (append_string_field), (_dbus_message_data_load):
7853         don't align the header field.
7854         
7855         * dbus/dbus-auth.c: (process_test_subdir): print the
7856         directory.
7857         
7858         * test/break-loader.c: (randomly_add_one_byte): upd. for
7859         insert_byte change.
7860         
7861         * test/data/invalid-messages/bad-header-field-alignment.message:
7862         new test case.
7863         
7864         * test/data/valid-messages/unknown-header-field.message: shove
7865         a dict in the unknown field.
7866
7867 2003-09-25  Seth Nickell  <seth@gnome.org>
7868
7869         * python/dbus.py:
7870         * python/dbus_bindings.pyx.in:
7871
7872         Handle return values.
7873         
7874         * python/examples/example-client.py:
7875         * python/examples/example-service.py:
7876
7877         Pass back return values from the service to the client.
7878         
7879 2003-09-24  Seth Nickell  <seth@gnome.org>
7880
7881         * python/dbus.py:
7882
7883         Connect Object methods (when you are sharing an object) up... pass
7884         in a list of methods to be shared. Sharing all the methods just
7885         worked out too weird. You can now create nice Services over the
7886         DBus in Python. :-)
7887         
7888         * python/dbus_bindings.pyx.in:
7889
7890         Keep references to user_data tuples passed into C functions so 
7891         Python doesn't garbage collect on us.
7892
7893         Implement MethodReturn and Error subclasses of Message for creating
7894         DBusMessage's of those types.
7895         
7896         * python/examples/example-client.py:
7897         * python/examples/example-service.py:
7898
7899         Simple example code showing both how create DBus services and objects,
7900         and how to use them.
7901
7902 2003-09-23  Havoc Pennington  <hp@pobox.com>
7903
7904         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7905
7906 2003-09-23  Havoc Pennington  <hp@redhat.com>
7907
7908         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7909         (dbus_gproxy_disconnect_signal): implement
7910         (dbus_gproxy_manager_remove_signal_match): implement
7911         (dbus_gproxy_manager_add_signal_match): implement
7912         (dbus_gproxy_oneway_call): implement
7913
7914 2003-09-23  Havoc Pennington  <hp@pobox.com>
7915
7916         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7917         subclass. This means dropping the transparent thread safety of the
7918         proxy; you now need a separate proxy per-thread, or your own
7919         locking on the proxy. Probably right anyway.
7920         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7921
7922 2003-09-22  Havoc Pennington  <hp@redhat.com>
7923
7924         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7925
7926 2003-09-21  Seth Nickell  <seth@gnome.org>
7927
7928         First checkin of the Python bindings.
7929         
7930         * python/.cvsignore:
7931         * python/Makefile.am:
7932         * python/dbus_bindings.pyx.in:
7933         * python/dbus_h_wrapper.h:
7934
7935         Pieces for Pyrex to operate on, building a dbus_bindings.so
7936         python module for low-level access to the DBus APIs.
7937         
7938         * python/dbus.py:
7939
7940         High-level Python module for accessing DBus objects.
7941
7942         * configure.in:
7943         * Makefile.am:
7944
7945         Build stuff for the python bindings.
7946
7947         * acinclude.m4:
7948
7949         Extra macro needed for finding the Python C header files.
7950
7951 2003-09-21  Havoc Pennington  <hp@pobox.com>
7952
7953         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7954         implementing the proxy manager, didn't get very far.
7955
7956         * dbus/dbus-bus.c (dbus_bus_add_match): new
7957         (dbus_bus_remove_match): new
7958
7959         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7960         path_name argument; adjust the other not-yet-implemented 
7961         gproxy constructors to be what I think they should be.
7962
7963 2003-09-21  Havoc Pennington  <hp@pobox.com>
7964
7965         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7966         by default for message bus connections.
7967
7968         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7969         exit_on_disconnect flag is set and we process the disconnected
7970         signal.
7971         (dbus_connection_set_exit_on_disconnect): new function
7972
7973 2003-09-21  Havoc Pennington  <hp@pobox.com>
7974
7975         Get matching rules mostly working in the bus; only actually
7976         parsing the rule text remains. However, the client side of
7977         "signal connections" hasn't been started, this patch is only the
7978         bus side.
7979         
7980         * dbus/dispatch.c: fix for the matching rules changes
7981         
7982         * bus/driver.c (bus_driver_handle_remove_match)
7983         (bus_driver_handle_add_match): send an ack reply from these
7984         method calls
7985
7986         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7987         arguments, reported by Seth Nickell
7988
7989         * bus/config-parser.c (append_rule_from_element): support
7990         eavesdrop=true|false attribute on policies so match rules 
7991         can be prevented from snooping on the system bus.
7992
7993         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7994         and "destination" in attribute names; fix some docs bugs; 
7995         add eavesdrop=true|false attribute
7996
7997         * bus/driver.c (bus_driver_handle_add_match)
7998         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7999         messages
8000
8001         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8002         rid of broadcast service concept, signals are just always broadcast
8003
8004         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8005         mostly implement matching rules stuff (currently only exposed as signal
8006         connections)
8007
8008 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8009
8010         * doc/dbus-specification.sgml: Change the header field name
8011         to be an enum and update the rest of the spec to reference
8012         the fields using the conventinal name.
8013
8014         * dbus/dbus-protocol.h: update to reflect the spec.
8015
8016         * doc/TODO: add item to remove the 4 byte alignment requirement.
8017         
8018         * dbus/dbus-message.c: Remove the code to generalise the
8019         header/body length and serial number header fields as named
8020         header fields so we can reference field names using the 
8021         protocol values.
8022         (append_int_field), (append_uint_field), (append_string_field):
8023         Append the field name as a byte rather than four chars.
8024         (delete_int_or_uint_field), (delete_string_field): reflect the
8025         fact that the field name and typecode now occupy 4 bytes instead
8026         of 8.
8027         (decode_string_field), (decode_header_data): update to reflect
8028         protocol changes and move the field specific encoding from
8029         decode_string_field() back into decode_header_data().
8030         
8031         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8032         Add utility to aid debugging.
8033         
8034         * dbus/dbus-message-builder.c:
8035         (append_string_field), (_dbus_message_data_load): Update to
8036         reflect protocol changes; Change the FIELD_NAME directive
8037         to HEADER_FIELD and allow it to take the field's conventional
8038         name rather than the actual value.
8039         
8040         * test/data/*/*.message: Update to use HEADER_FIELD instead
8041         of FIELD_NAME; Always align the header on an 8 byte boundary
8042         *before* updating the header length.
8043
8044 2003-09-15  Havoc Pennington  <hp@pobox.com>
8045
8046         * dbus/dbus-pending-call.c: add the get/set object data
8047         boilerplate as for DBusConnection, etc. Use generic object data
8048         for the notify callback.
8049
8050         * glib/dbus-gparser.c (parse_node): parse child nodes
8051
8052         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8053         
8054         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8055         contain functions shared between the convenience lib and the
8056         installed lib
8057
8058         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8059         -export-symbols-regex to the GLib library
8060
8061         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8062         fix the locking in here, and add a default handler for
8063         Introspect() that just returns sub-nodes.
8064
8065 2003-09-14  Havoc Pennington  <hp@pobox.com>
8066
8067         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8068         rather than gfoo consistent
8069
8070         * glib/dbus-gproxy.h: delete for now, move contents to
8071         dbus-glib.h, because the include files don't work right since we
8072         aren't in the dbus/ subdir.
8073         
8074         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8075         (dbus_gproxy_end_call): finish
8076         (dbus_gproxy_begin_call): finish
8077
8078         * glib/dbus-gmain.c (dbus_set_g_error): new
8079
8080         * glib/dbus-gobject.c (handle_introspect): include information
8081         about child nodes in the introspection
8082
8083         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8084         function to help in implementation of introspection
8085
8086         * dbus/dbus-object-tree.c
8087         (_dbus_object_tree_list_registered_and_unlock): new function
8088
8089 2003-09-12  Havoc Pennington  <hp@pobox.com>
8090
8091         * glib/dbus-gidl.h: add common base class for all the foo_info
8092         types
8093
8094         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8095         similar to kdcop
8096
8097         * test/Makefile.am: try test srcdir -ef . in addition to test
8098         srcdir = ., one of them should work (yeah lame)
8099         
8100         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8101         library
8102         
8103         * glib/dbus-gparser.h: make description_load routines return
8104         NodeInfo* not Parser*
8105
8106         * Makefile.am (SUBDIRS): build test dir after all library dirs
8107
8108         * configure.in: add GTK+ detection
8109
8110 2003-09-07  Havoc Pennington  <hp@pobox.com>
8111
8112         * Make Doxygen contented.
8113
8114 2003-09-07  Havoc Pennington  <hp@pobox.com>
8115
8116         * doc/dbus-specification.sgml: more updates
8117
8118 2003-09-06  Havoc Pennington  <hp@pobox.com>
8119
8120         * doc/dbus-specification.sgml: partial updates
8121
8122         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8123         zillionth time; hopefully I edited the right file this time.
8124
8125         * bus/config-parser.c (append_rule_from_element): support
8126         send_type, send_path, receive_type, receive_path
8127
8128         * bus/policy.c: add message type and path to the list of things
8129         that can be "firewalled"
8130
8131 2003-09-06  Havoc Pennington  <hp@pobox.com>
8132
8133         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8134         (dbus_connection_register_object_path): make this not handle
8135         messages to paths below the given path
8136
8137 2003-09-03  Havoc Pennington  <hp@pobox.com>
8138
8139         * test/glib/Makefile.am: add this with random glib-linked test
8140         programs
8141
8142         * glib/Makefile.am: remove the random test programs from here,
8143         leave only the unit tests
8144
8145         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8146         uscore/javacaps conversion, and fix     
8147         (get_object_property, set_object_property): change to .NET
8148         convention for mapping props to methods, set_FooBar/get_FooBar, 
8149         since one language has such a convention we may as well copy it. 
8150         Plus real methods in either getFooBar or get_foo_bar style won't 
8151         collide with this convention.
8152
8153 2003-09-01  Havoc Pennington  <hp@pobox.com>
8154
8155         * glib/dbus-gparser.c: implement
8156
8157         * glib/dbus-gobject.c: start implementing skeletons support
8158
8159         * configure.in: when disabling checks/assert, also define
8160         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8161
8162 2003-09-01  Havoc Pennington  <hp@pobox.com>
8163
8164         * glib/Makefile.am: rearrange a bunch of files and get "make
8165         check" framework set up
8166
8167 2003-08-31  Havoc Pennington  <hp@pobox.com>
8168
8169         * fix build with --disable-tests
8170
8171 2003-08-30  Havoc Pennington  <hp@pobox.com>
8172
8173         * dbus/dbus-connection.c: purge DBusMessageHandler
8174
8175         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8176         use callbacks everywhere
8177
8178 2003-08-30  Havoc Pennington  <hp@pobox.com>
8179
8180         * test/data/valid-config-files/system.d/test.conf: change to 
8181         root for the user so warnings don't get printed
8182
8183         * dbus/dbus-message.c: add dbus_message_get_path,
8184         dbus_message_set_path
8185         
8186         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8187         dispatching to a path
8188
8189         * dbus/dbus-string.c (_dbus_string_validate_path): add
8190
8191         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8192         (_dbus_marshal_object_path): implement
8193
8194         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8195         to contain the path to the target object
8196         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8197         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8198
8199 2003-08-30  Havoc Pennington  <hp@pobox.com>
8200
8201         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8202
8203 2003-08-29  Havoc Pennington  <hp@pobox.com>
8204
8205         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8206         registered
8207         (struct DBusObjectSubtree): shrink this
8208         a lot, since we may have a lot of them
8209         (_dbus_object_tree_free_all_unlocked): implement
8210         (_dbus_object_tree_dispatch_and_unlock): implement
8211
8212 2003-08-29  Havoc Pennington  <hp@pobox.com>
8213
8214         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8215
8216 2003-08-28  Havoc Pennington  <hp@pobox.com>
8217
8218         purge DBusObjectID
8219         
8220         * dbus/dbus-connection.c: port to no ObjectID, create a
8221         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8222
8223         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8224         everything except UnregisterFunction and MessageFunction
8225         
8226         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8227         add DBUS_TYPE_OBJECT_PATH
8228         
8229         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8230         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8231         path-based object IDs
8232
8233 2003-08-25  Havoc Pennington  <hp@pobox.com>
8234
8235         Just noticed that dbus_message_test is hosed, I wonder when I
8236         broke that. I thought make check was passing earlier...
8237         
8238         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8239         container tree, will replace most of dbus-object-registry
8240
8241         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8242         screwup
8243
8244 2003-08-19  Havoc Pennington  <hp@pobox.com>
8245
8246         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8247         (dbus_message_is_error): fix this function
8248
8249         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8250         match
8251
8252         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8253         reflect clarified man page
8254         (bus_client_policy_check_can_send): ditto
8255         
8256         * bus/session.conf.in: fixup
8257
8258         * bus/system.conf.in: fixup
8259
8260 2003-08-18  Havoc Pennington  <hp@redhat.com>
8261
8262         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8263
8264         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8265         dumb bug created earlier (wrong order of args to
8266         decode_header_data())
8267         
8268         * tools/dbus-send.c: port
8269
8270         * tools/dbus-print-message.c (print_message): port
8271
8272         * test/data/*messages: port all messages over
8273         
8274         * dbus/dbus-message-builder.c: support including 
8275         message type
8276         
8277         * bus/driver.c: port over
8278         
8279         * bus/dispatch.c: port over to new stuff
8280
8281         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8282         rename disconnect signal to "Disconnected"
8283
8284 2003-08-17  Havoc Pennington  <hp@pobox.com>
8285
8286         This doesn't compile yet, but syncing up so I can hack on it from
8287         work. What are branches for if not broken code? ;-)
8288         
8289         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8290         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8291         DBUS_HEADER_FIELD_ERROR_NAME
8292         
8293         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8294         for the interface+member pairs
8295         (string_hash): change to use g_str_hash algorithm
8296         (find_direct_function, find_string_function): refactor these to
8297         share most code.
8298         
8299         * dbus/dbus-message.c: port all of this over to support 
8300         interface/member fields instead of name field
8301
8302         * dbus/dbus-object-registry.c: port over
8303         
8304         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8305         from _dbus_string_validate_name
8306
8307         * bus/dbus-daemon-1.1: change file format for the 
8308         <deny>/<allow> stuff to match new message naming scheme
8309
8310         * bus/policy.c: port over
8311
8312         * bus/config-parser.c: parse new format
8313         
8314 2003-08-16  Havoc Pennington  <hp@pobox.com>
8315
8316         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8317         broken assertion
8318
8319         * glib/dbus-gproxy.c: some hacking
8320
8321 2003-08-15  Havoc Pennington  <hp@redhat.com>
8322
8323         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8324
8325         * dbus/dbus-connection.c
8326         (dbus_connection_send_with_reply_and_block): factor out internals;
8327         change to convert any error replies to DBusError instead of 
8328         returning them as a message
8329
8330 2003-08-15  Havoc Pennington  <hp@pobox.com>
8331
8332         * dbus/dbus-connection.c, 
8333         dbus/dbus-pending-call.c: Finish the pending call stuff
8334
8335 2003-08-14  Havoc Pennington  <hp@redhat.com>
8336
8337         * dbus/dbus-pending-call.c: start on new object that will replace
8338         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8339         replies
8340
8341         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8342         with remote interfaces
8343
8344         * dbus/dbus-gidl.c: do the boring boilerplate in here
8345         
8346 2003-08-12  Havoc Pennington  <hp@pobox.com>
8347
8348         * bus/dispatch.c (bus_dispatch): make this return proper 
8349         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8350
8351         * dbus/dbus-errors.c (dbus_set_error): use
8352         _dbus_string_append_printf_valist
8353
8354         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8355         (_dbus_string_append_printf): new
8356
8357         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8358         UNKNOWN_METHOD
8359
8360         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8361         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8362         message is unhandled.
8363
8364 2003-08-11  Havoc Pennington  <hp@pobox.com>
8365
8366         * bus/test.c (client_disconnect_handler): change to return
8367         HANDLED (would have been REMOVE_MESSAGE)
8368
8369         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8370         HANDLED/NOT_YET_HANDLED instead of
8371         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8372         should be used.
8373
8374 2003-08-10  Havoc Pennington  <hp@pobox.com>
8375
8376         * tools/dbus-send.c (main): add --type argument, for now
8377         supporting only method_call and signal types.
8378
8379         * tools/dbus-print-message.c: print message type
8380
8381         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8382         init connection->objects
8383
8384         * doc/dbus-specification.sgml: fix sgml
8385
8386         * bus/*.c: port over to object-instance API changes
8387
8388         * test/test-service.c: ditto
8389         
8390         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8391         name, we will have to fix up the rest of the code to also handle
8392         this
8393         (dbus_message_new): generic message-creation call
8394         (set_string_field): allow appending name field
8395
8396 2003-08-06  Havoc Pennington  <hp@pobox.com>
8397
8398         * dbus/dbus-object-registry.c: implement signal connection 
8399         and dispatch
8400
8401         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8402
8403         * dbus/dbus-internals.c (_dbus_memdup): new function
8404
8405 2003-08-02  Havoc Pennington  <hp@pobox.com>
8406
8407         * dbus/dbus-message.c (dbus_message_get_no_reply)
8408         (dbus_message_set_no_reply): add these and remove
8409         set_is_error/get_is_error
8410
8411         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8412         remove the ERROR flag, since there's now an ERROR type
8413
8414 2003-08-01  Havoc Pennington  <hp@pobox.com>
8415
8416         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8417         implement
8418
8419         * dbus/dbus-message.c (dbus_message_get_type): new function
8420
8421         * doc/dbus-specification.sgml: add "type" byte to messages
8422
8423 2003-08-01  Havoc Pennington  <hp@pobox.com>
8424
8425         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8426         a message type enum to distinguish kinds of message
8427         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8428         that need not be replied to
8429
8430 2003-08-01  Havoc Pennington  <hp@pobox.com>
8431
8432         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8433         (unpack_8_octets): fix no-64-bit-int bug
8434
8435         * dbus/dbus-object-registry.c (validate_id): validate the 
8436         connection ID bits, not just the instance ID.
8437
8438         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8439         the connection-global 33 bits of the object ID
8440
8441         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8442         object ID in the new way
8443
8444         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8445         define server/client/instance bits.
8446
8447 2003-07-30  Havoc Pennington  <hp@pobox.com>
8448
8449         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8450         build
8451
8452 2003-07-13  Havoc Pennington  <hp@pobox.com>
8453
8454         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8455         fields to DBusObjectVTable and DBusObjectInfo
8456
8457 2003-07-12  Havoc Pennington  <hp@pobox.com>
8458
8459         * dbus/dbus-object-registry.c: implement unit test,
8460         fix bugs discovered in process
8461
8462         * dbus/dbus-connection.c: remove handler_table and
8463         register_handler(), add DBusObjectRegistry usage
8464
8465         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8466         (dbus_object_id_set_null): new functions
8467
8468 2003-07-08  Havoc Pennington  <hp@pobox.com>
8469
8470         * dbus/dbus-object.c: implement some of this
8471
8472         * dbus/dbus-object-registry.c
8473         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8474         param
8475         (_dbus_object_registry_new): handle OOM
8476
8477 2003-07-08  Havoc Pennington  <hp@pobox.com>
8478
8479         * dbus/dbus-object.h: sketch out an API for registering objects
8480         with a connection, that allows us to use as little as 24 bytes
8481         per object and lets application code represent an object in 
8482         any conceivable way.
8483
8484         * dbus/dbus-object-registry.c: implement the hard bits of the
8485         DBusConnection aspect of object API. Not yet wired up.
8486         
8487 2003-07-06  Havoc Pennington  <hp@pobox.com>
8488
8489         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8490         (_dbus_marshal_object_id): new
8491         (_dbus_demarshal_object_id): new
8492         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8493         consolidate identical switch cases. Don't conditionalize handling
8494         of DBUS_TYPE_UINT64, need to handle the type always.
8495         (_dbus_marshal_validate_arg): consolidate identical cases, and
8496         handle DBUS_TYPE_OBJECT_ID
8497
8498         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8499
8500         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8501
8502 2003-09-28  Havoc Pennington  <hp@pobox.com>
8503
8504         * real 0.13 release
8505
8506 2003-09-28  Havoc Pennington  <hp@pobox.com>
8507
8508         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8509         to work with Debian db2html
8510
8511 2003-09-28  Havoc Pennington  <hp@pobox.com>
8512
8513         * configure.in: 0.13
8514
8515         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8516         stylesheet-images for benefit of Debian
8517         
8518         Change back to using filesystem-linked sockets for the system
8519         bus, so only root can create the default system bus address.
8520         
8521         * bus/system.conf.in: change to use
8522         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8523
8524         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8525         from here.
8526
8527         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8528         here, and AC_DEFINE DBUS_SYSTEM_PATH
8529
8530 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8531
8532         * doc/TODO:
8533         * doc/busconfig.dtd:
8534         Add busconfig DTD.
8535         
8536 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8537
8538         * doc/dbus-specification.sgml:
8539         Add activation reply values.
8540         
8541 2003-08-05  Havoc Pennington  <hp@redhat.com>
8542
8543         * configure.in: 0.12
8544
8545 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8546
8547         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8548         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8549         (add_watch), (remove_watch), (create_source):
8550         Refcount fds, fixes some reentrancy issues.
8551         
8552 2003-07-30  Havoc Pennington  <hp@redhat.com>
8553
8554         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8555         bus address to be abstract if we have abstract sockets
8556
8557         * NEWS: update
8558
8559 2003-07-28  Havoc Pennington  <hp@redhat.com>
8560
8561         * bus/messagebus.in: fix to avoid processname/servicename 
8562         confusion, from Michael Kearey
8563         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8564         
8565 2003-07-23  Havoc Pennington  <hp@pobox.com>
8566
8567         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8568         fix from Andy Hanton to remove broken "+1"
8569
8570 2003-07-16  Havoc Pennington  <hp@pobox.com>
8571
8572         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8573         babysitter process, as suggested by Thomas Leonard, so 
8574         an "eval `dbus-launch --exit-with-session`" will actually 
8575         return
8576
8577 2003-07-16  Havoc Pennington  <hp@pobox.com>
8578
8579         * configure.in: print out EXPANDED_* variables in the summary at
8580         the end; clean up the code that computes EXPANDED_ variables and
8581         get the ones using exec_prefix right. Should make things work
8582         when you build without --prefix
8583
8584 2003-06-29  Havoc Pennington  <hp@pobox.com>
8585
8586         * mono/Test.cs (class Test): fire up a main loop and run it
8587
8588         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8589         done once, the app has to do it
8590
8591 2003-06-26  Havoc Pennington  <hp@pobox.com>
8592
8593         * mono/Connection.cs: set up connection with the glib main loop
8594
8595 2003-07-01  Havoc Pennington  <hp@redhat.com>
8596
8597         * doc/dbus-specification.sgml: clarify the format of a type code,
8598         change suggested by Jim Blandy
8599
8600 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8601
8602         * doc/Makefile.am:
8603         * tools/Makefile.am: Don't assume srcdir == builddir.
8604
8605         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8606         the allocated block.
8607         (_dbus_memory_test): New function.
8608         * dbus/dbus-test.h: Add _dbus_memory_test ().
8609         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8610
8611         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8612         of %c%c%c%c.
8613         (dbus_message_new): Remove obsolete @todo.
8614
8615         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8616         (_dbus_marshal_set_uint64): Fix comment.
8617
8618         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8619         hardcode FIELD_REPLY_SERIAL.
8620
8621         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8622         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8623
8624         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8625         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8626
8627 2003-06-24  Havoc Pennington  <hp@pobox.com>
8628
8629         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8630
8631 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8632
8633         * configure.in:
8634         * gcj/.cvsignore:
8635         * gcj/Hello.java:
8636         * gcj/Makefile.am:
8637         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8638         * gcj/org/.cvsignore:
8639         * gcj/org/Makefile.am:
8640         * gcj/org/freedesktop/.cvsignore:
8641         * gcj/org/freedesktop/Makefile.am:
8642         * gcj/org/freedesktop/dbus/.cvsignore:
8643         * gcj/org/freedesktop/dbus/Makefile.am:
8644         * gcj/org/freedesktop/dbus/Message.java: (Message),
8645         (Message.Message):
8646         * gcj/org/freedesktop/dbus/natMessage.cc:
8647         Fix the build system.
8648
8649 2003-06-22  Havoc Pennington  <hp@pobox.com>
8650
8651         * mono/Connection.cs: add more bindings
8652
8653         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8654         more than once.
8655
8656 2003-06-22  Havoc Pennington  <hp@pobox.com>
8657
8658         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8659         Start wrapping more stuff.
8660
8661 2003-06-22  Havoc Pennington  <hp@pobox.com>
8662
8663         * mono/Message.cs: implement Message.Wrap() that ensures we only
8664         have a single C# wrapper per DBusMessage, assuming it works which
8665         it probably doesn't.
8666
8667         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8668         (dbus_message_free_data_slot): new
8669         (dbus_message_set_data): new
8670         (dbus_message_get_data): new
8671
8672 2003-06-22  Havoc Pennington  <hp@pobox.com>
8673
8674         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8675         (_dbus_data_slot_allocator_alloc): rework these to keep a
8676         reference count on each slot and automatically manage a global
8677         slot ID variable passed in by address
8678
8679         * bus/bus.c: convert to new dataslot API
8680
8681         * dbus/dbus-bus.c: convert to new dataslot API
8682
8683         * dbus/dbus-connection.c: convert to new dataslot API
8684
8685         * dbus/dbus-server.c: convert to new dataslot API
8686
8687         * glib/dbus-gmain.c: ditto
8688
8689         * bus/test.c: ditto
8690
8691         * bus/connection.c: ditto
8692
8693 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8694
8695         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8696         after the gcj checks so that the correct configuration tags
8697         will be added to libtool.
8698
8699         * dbus-glib-1.pc.in: No need to specify any includes since
8700         dbus-1.pc.in has those.
8701
8702 2003-06-22  Havoc Pennington  <hp@pobox.com>
8703
8704         * mono/*, gcj/*, configure.in, Makefile.am:
8705         Check in makefiles and subdirs for mono and gcj bindings.
8706         Neither binding actually exists, just trying to get through
8707         all the build and other boring bits.
8708
8709 2003-06-21  Philip Blundell  <philb@gnu.org>
8710
8711         * tools/dbus-monitor.1: Updated.
8712
8713         * tools/dbus-send.1: Likewise.
8714
8715 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8716
8717         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8718         for hangup and error after checking read so we won't discard
8719         pending data if both hangup and read are set.
8720
8721 2003-06-19  Philip Blundell  <philb@gnu.org>
8722
8723         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8724
8725         * tools/dbus-send.c: Accept both --system and --session.
8726
8727         * tools/dbus-monitor.c: Same here.
8728
8729 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8730
8731         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8732         from C++ (Patch by Miloslav Trmac).
8733
8734 2003-06-15  Joe Shaw  <joe@assbarn.com>
8735
8736         * configure.in: Check for socklen_t.
8737
8738         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8739
8740         * test/test-segfault.c: Add #include <sys/time.h>
8741
8742         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8743         dbus-launch needs it.
8744
8745 2003-06-09  Havoc Pennington  <hp@redhat.com>
8746
8747         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8748         SUN_LEN, it breaks abstract socket usage
8749
8750         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8751         starts of lines.
8752
8753 2003-06-04  Havoc Pennington  <hp@pobox.com>
8754
8755         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8756         using unix:abstract=/foo, and when listening in a tmpdir
8757         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8758
8759         * dbus/dbus-transport.c (_dbus_transport_open): support
8760         unix:abstract=/foo
8761
8762         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8763         support abstract sockets
8764
8765         * dbus/dbus-transport-unix.c
8766         (_dbus_transport_new_for_domain_socket): support abstract sockets
8767
8768         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8769         toggle as an argument, implement abstract namespace support
8770         (_dbus_listen_unix_socket): ditto
8771
8772         * configure.in: add --enable-abstract-sockets and implement
8773         a configure check for autodetection of the right value.
8774
8775 2003-06-01  Havoc Pennington  <hp@pobox.com>
8776
8777         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8778         in /tmp (though on Linux this will end up being useless,
8779         when we add abstract namespace support)
8780
8781         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8782         subst'ing it
8783
8784 2003-05-28  Colin Walters  <walters@verbum.org>
8785
8786         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8787
8788 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8789
8790         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8791
8792 2003-05-17  Colin Walters  <walters@gnu.org>
8793
8794         * tools/dbus-send.c: Don't exit with an error code if --help was
8795         passed.  Default to using the session bus instead of the system
8796         one.
8797
8798         * tools/dbus-launch.c: Ditto.
8799
8800         * tools/dbus-monitor.c: Ditto.
8801
8802         * tools/dbus-send.1: Update with new arguments.
8803
8804         * tools/dbus-launch.c: Emit code to export variables.  New
8805         arguments -s and -c to specify shell syntax, and a bit of code to
8806         autodetect syntax.  Also, allow specifying a program to run.
8807
8808         * tools/dbus-launch.1: Update with new arguments.
8809
8810         * tools/dbus-send.1: Ditto.
8811
8812         * tools/dbus-monitor.1: Ditto.
8813
8814 2003-05-17  Havoc Pennington  <hp@pobox.com>
8815
8816         * bus/config-parser.c (merge_included): merge in policies from
8817         child configuration file.
8818
8819         * bus/policy.c (bus_policy_merge): function to merge two policies
8820         together
8821
8822 2003-05-16  Havoc Pennington  <hp@redhat.com>
8823
8824         * dbus/dbus-connection.c: disable verbose lock spew
8825
8826         * tools/dbus-send.c: add --print-reply command line option
8827
8828         * tools/dbus-print-message.h (print_message): new util function
8829         shared by dbus-send and dbus-monitor
8830
8831         * tools/dbus-monitor.c (handler_func): exit on disconnect
8832
8833         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8834         disconnected, don't try to use the read_watch
8835
8836         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8837         so we can find this bug more easily
8838
8839 2003-05-16  Havoc Pennington  <hp@redhat.com>
8840
8841         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8842         NULL as DBusHashTable is annoyingly likely to do.
8843
8844 2003-05-16  Colin Walters  <walters@verbum.org>
8845
8846         * tools/dbus-monitor.c: Add --session argument and usage()
8847         function.
8848
8849         * tools/dbus-monitor.1: Update with new --session arg.
8850
8851         * bus/Makefile.am (install-data-hook): Create
8852         $(libdir)/dbus-1.0/services so that the session bus is happy.
8853
8854 2003-05-15  Havoc Pennington  <hp@redhat.com>
8855
8856         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8857         on non-x86. ifdef's are evil.
8858
8859 2003-05-15  Havoc Pennington  <hp@redhat.com>
8860
8861         * configure.in: 0.11
8862
8863         * NEWS: update
8864
8865         * bus/Makefile.am (initddir): apparently we are supposed to put
8866         init scripts in /etc/rc.d/init.d not /etc/init.d
8867
8868         * bus/Makefile.am: remove the "you must --enable-tests to make
8869         check" as it broke distcheck
8870
8871         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8872
8873 2003-05-13  James Willcox  <jwillcox@gnome.org>
8874
8875         * configure.in:
8876         * bus/activation.c: (bus_activation_service_created),
8877         (bus_activation_activate_service):
8878         * bus/driver.c: (bus_driver_send_service_deleted),
8879         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8880         (bus_driver_send_service_acquired),
8881         (bus_driver_send_welcome_message),
8882         (bus_driver_handle_list_services):
8883         * bus/session.conf.in:
8884         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8885         (dbus_bus_service_exists), (dbus_bus_activate_service):
8886         * dbus/dbus-bus.h:
8887
8888         Add some convenience API which lets you activate a service, and did a
8889         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8890         and dbus_message_get_args()
8891
8892 2003-05-11  Havoc Pennington  <hp@pobox.com>
8893
8894         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8895         calling _dbus_marshal_validate_arg() for every byte in a byte
8896         array, etc.
8897
8898         * dbus/dbus-message-handler.c: use atomic reference counting to
8899         reduce number of locks slightly; the global lock in here sucks
8900
8901         * dbus/dbus-connection.c
8902         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8903         update_dispatch_status that can be called with lock held; then use
8904         in a couple places to reduce locking/unlocking
8905         (dbus_connection_send): hold the lock over the whole function
8906         instead of acquiring it twice.
8907
8908         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8909
8910         * bus/connection.c (bus_connections_setup_connection): fix access
8911         to already-freed memory.
8912
8913         * dbus/dbus-connection.c: keep a little cache of linked list
8914         nodes, to avoid using the global linked list alloc lock in the
8915         normal send-message case. Instead we just use the connection lock
8916         that we already have to take.
8917
8918         * dbus/dbus-list.c (_dbus_list_find_last): new function
8919
8920         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8921         change to use a struct for the atomic type; fix docs,
8922         they return value before increment, not after increment.
8923
8924         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8925         (_dbus_string_append_8_aligned): new functions to try to
8926         microoptimize this operation.
8927         (reallocate_for_length): break this out of set_length(), to
8928         improve profile info, and also so we can consider inlining the
8929         set_length() part.
8930
8931         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8932         strings with some preallocation, cuts down on our calls to realloc
8933         a fair bit. Though if we can get the "move entire string to empty
8934         string" optimization below to kick in here, it would be better.
8935
8936         * dbus/dbus-string.c (_dbus_string_move): just call
8937         _dbus_string_move_len
8938         (_dbus_string_move_len): add a special case for moving
8939         an entire string into an empty string; we can just
8940         swap the string data instead of doing any reallocs.
8941         (_dbus_string_init_preallocated): new function
8942
8943 2003-05-11  Havoc Pennington  <hp@pobox.com>
8944
8945         Write a "test-profile" that does echo client-server with threads;
8946         profile reveals lock contention, memcpy/realloc of buffers, and
8947         UTF-8 validation as hot spots. 20% of lock contention eliminated
8948         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8949         contention is global mempool locks for GList and DBusList.
8950
8951         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8952         x86 implementation
8953
8954         * dbus/dbus-connection.c (struct DBusConnection): use
8955         dbus_atomic_t for the reference count
8956
8957         * dbus/dbus-message.c (struct DBusMessage): declare
8958         dbus_atomic_t values as volatile
8959
8960         * configure.in: code to detect ability to use atomic integer
8961         operations in assembly, from GLib patch
8962
8963         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8964         time, tired of it being wrong in threads and forked processes
8965
8966         * glib/test-profile.c: a little program to bounce messages back
8967         and forth between threads and eat CPU
8968
8969         * dbus/dbus-connection.c: add debug spew macros for debugging
8970         thread locks; include config.h at top; fix deadlock in
8971         dbus_connection_flush()
8972
8973 2003-05-08  Havoc Pennington  <hp@pobox.com>
8974
8975         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8976         data from getting written, and there wasn't a good reason to
8977         use _exit really.
8978
8979         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8980         dbus_verbose lines in test coverage
8981         (main): add list of functions sorted by # of untested blocks
8982         to the coverage report
8983
8984         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8985
8986         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8987
8988         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8989         extend test coverage
8990
8991         * test/data/auth/cancel.auth-script: test canceling an
8992         authentication
8993
8994         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8995         aren't used. in CVS history if we end up needing them.
8996
8997 2003-05-04  Havoc Pennington  <hp@pobox.com>
8998
8999         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9000         unit test
9001
9002         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9003         function, which assumed length was in # of strings, not bytes
9004
9005         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9006         missing coverage
9007
9008         * dbus/dbus-connection.c
9009         (_dbus_connection_queue_received_message): disable function for
9010         now, we are only using it in test mode
9011
9012         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9013         remove a mistaken FIXME
9014
9015 2003-05-04  Havoc Pennington  <hp@pobox.com>
9016
9017         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9018         unlock mutex on successful return, patch from Anders Gustafsson
9019
9020 2003-05-04  Havoc Pennington  <hp@pobox.com>
9021
9022         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9023         Anders Gustafsson
9024
9025 2003-05-04  Havoc Pennington  <hp@pobox.com>
9026
9027         * tools/dbus-launch.c: implement
9028
9029         * bus/main.c (main), bus/bus.c (bus_context_new):
9030         implement --print-pid and --fork
9031
9032 2003-05-03  Havoc Pennington  <hp@redhat.com>
9033
9034         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9035         the address had no value, and add to test suite. Fix and
9036         regression test from Miloslav Trmac
9037
9038 2003-05-03  Havoc Pennington  <hp@pobox.com>
9039
9040         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9041         watch is invalid when handled
9042
9043         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9044         dbus-launch utility to launch the bus from a shell script.  Didn't
9045         actually implement dbus-launch yet, it's just a placeholder still.
9046
9047 2003-05-03  Havoc Pennington  <hp@pobox.com>
9048
9049         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9050         daemon; also documents daemon config file, so replaces
9051         doc/config-file.txt. Corrected some stuff from config-file.txt in
9052         the process of moving it.
9053
9054 2003-05-03  Havoc Pennington  <hp@pobox.com>
9055
9056         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9057         add some man pages
9058
9059 2003-05-03  Colin Walters  <walters@verbum.org>
9060
9061         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9062         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9063
9064         * Makefile.am: Update to use new .pc versioning scheme.
9065
9066 2003-05-02  Havoc Pennington  <hp@redhat.com>
9067
9068         * bus/system.conf.in: allow send/receive to/from message bus
9069         service
9070
9071 2003-04-30  Havoc Pennington  <hp@redhat.com>
9072
9073         * configure.in: print a note when building with unit tests and
9074         without assertions
9075
9076 2003-04-30  Havoc Pennington  <hp@redhat.com>
9077
9078         * Makefile.am: add a check-local that complains if you didn't
9079         configure with --enable-tests
9080
9081 2003-04-29  Havoc Pennington  <hp@redhat.com>
9082
9083         * glib/dbus-gmain.c: docs cleanups
9084
9085         * dbus/dbus-types.h: add docs on int64 types
9086
9087         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9088         public API docs section
9089
9090 2003-04-29  Havoc Pennington  <hp@redhat.com>
9091
9092         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9093         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9094         parallel install API version, not with the D-BUS package version.
9095
9096         * HACKING: move some of README over here
9097
9098         * README: updates, and document API/ABI policy
9099
9100         * configure.in: reindentation
9101
9102 2003-04-29  Havoc Pennington  <hp@redhat.com>
9103
9104         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9105         to use this library" to be sure people have the right
9106         expectations.
9107
9108 2003-04-28  Havoc Pennington  <hp@redhat.com>
9109
9110         * configure.in: add --enable-docs which by default is auto yes if
9111         doxygen and db2html found, no otherwise; but can be forced on/off
9112
9113         * doc/Makefile.am: conditionalize whether to build docs on
9114         --enable-docs
9115
9116 2003-04-28  Havoc Pennington  <hp@redhat.com>
9117
9118         * configure.in: 0.10
9119
9120         * NEWS: update
9121
9122         * bus/system.conf.in: add <includedir>system.d</includedir>
9123
9124         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9125         username was provided but not uid
9126
9127         * bus/config-parser.c (struct BusConfigParser): keep track of
9128         whether the parser is toplevel or was included; change some
9129         of the error handling if it's included.
9130
9131 2003-04-27  Havoc Pennington  <hp@pobox.com>
9132
9133         Unbreak my code...
9134
9135         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9136         report correct status if we finish processing authentication
9137         inside this function.
9138
9139         * bus/activation.c (try_send_activation_failure): use
9140         bus_transaction_send_error_reply
9141
9142         * bus/connection.c (bus_connection_get_groups): return an error
9143         explaining the problem
9144
9145         * bus/bus.c (bus_context_check_security_policy): implement
9146         restriction here that inactive connections can only send the
9147         hello message. Also, allow bus driver to send anything to
9148         any recipient.
9149
9150         * bus/connection.c (bus_connection_complete): create the
9151         BusClientPolicy here instead of on-demand.
9152         (bus_connection_get_policy): don't return an error
9153
9154         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9155         sender field in message being replied to
9156
9157         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9158         causing it to return FALSE always
9159
9160         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9161         we checked sender rather than destination
9162
9163 2003-04-25  Havoc Pennington  <hp@redhat.com>
9164
9165         test suite is slightly hosed at the moment, will fix soon
9166
9167         * bus/connection.c (bus_connections_expire_incomplete): fix to
9168         properly disable the timeout when required
9169         (bus_connection_set_name): check whether we can remove incomplete
9170         connections timeout after we complete each connection.
9171
9172         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9173         probably still broken.
9174
9175         * bus/services.c (bus_registry_acquire_service): implement max
9176         number of services owned, and honor allow/deny rules on which
9177         services a connection can own.
9178
9179         * bus/connection.c (bus_connection_get_policy): report errors here
9180
9181         * bus/activation.c: implement limit on number of pending
9182         activations
9183
9184 2003-04-25  Havoc Pennington  <hp@redhat.com>
9185
9186         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9187         where we used >= 0 instead of != DBUS_UID_UNSET.
9188
9189 2003-04-25  Havoc Pennington  <hp@redhat.com>
9190
9191         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9192         were toggled without add/remove, fix from Anders Gustafsson
9193
9194 2003-04-24  Havoc Pennington  <hp@redhat.com>
9195
9196         * test/data/valid-config-files/basic.conf: add <limit> tags to
9197         this test
9198
9199         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9200         <limit> tag in configuration file.
9201
9202 2003-04-24  Havoc Pennington  <hp@redhat.com>
9203
9204         * bus/dispatch.c: somehow missed some name_is
9205
9206         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9207         (_dbus_timeout_set_interval): new
9208
9209         * bus/connection.c (bus_connections_setup_connection): record time
9210         when each connection is first set up, and expire them after the
9211         auth timeout passes.
9212
9213 2003-04-24  Havoc Pennington  <hp@redhat.com>
9214
9215         * dbus/dbus-message.c (dbus_message_name_is): rename
9216         (dbus_message_service_is): rename
9217         (dbus_message_sender_is): rename
9218         (dbus_message_get_service): rename
9219
9220 2003-04-24  Havoc Pennington  <hp@redhat.com>
9221
9222         * configure.in: add --enable-checks
9223
9224         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9225
9226         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9227         to use thread locks.
9228         (_dbus_connection_handler_destroyed_locked): move some private
9229         functions into proper docs group
9230
9231         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9232         _dbus_return_val_if_fail
9233
9234         Throughout: use dbus_return_if_fail
9235
9236 2003-04-23  James Willcox  <jwillcox@gnome.org>
9237
9238         * glib/dbus-glib.h:
9239         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9240         (dbus_connection_setup_with_g_main),
9241         (dbus_server_setup_with_g_main):
9242         * glib/test-dbus-glib.c: (main):
9243         * glib/test-thread-client.c: (main):
9244         * glib/test-thread-server.c: (new_connection_callback), (main):
9245         * tools/dbus-monitor.c: (main):
9246
9247         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9248         and dbus_server_setup_with_g_main().
9249
9250 2003-04-20  Havoc Pennington  <hp@pobox.com>
9251
9252         * doc/dbus-specification.sgml: document the restrictions on
9253         message and service names
9254
9255 2003-04-22  Havoc Pennington  <hp@redhat.com>
9256
9257         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9258         support, and do some code cleanups to share more code and
9259         speed up array marshal/demarshal.
9260
9261         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9262
9263         * configure.in: generate dbus-arch-deps.h
9264
9265         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9266         64-bit typecodes
9267
9268 2003-04-22  Havoc Pennington  <hp@redhat.com>
9269
9270         * test/data/valid-messages/opposite-endian.message: fix test
9271         to use proper type for rply field
9272
9273         * test/data/invalid-messages: add tests for below validation
9274
9275         * dbus/dbus-message.c (decode_header_data): validate field types,
9276         and validate that named fields are valid names
9277         (decode_name_field): consider messages in the
9278         org.freedesktop.Local. namespace to be invalid.
9279
9280         * dbus/dbus-string.c (_dbus_string_validate_name): new
9281
9282 2003-04-19  Havoc Pennington  <hp@pobox.com>
9283
9284         * bus/driver.c (bus_driver_handle_hello): check limits and
9285         return an error if they are exceeded.
9286
9287         * bus/connection.c: maintain separate lists of active and inactive
9288         connections, and a count of each. Maintain count of completed
9289         connections per user. Implement code to check connection limits.
9290
9291         * dbus/dbus-list.c (_dbus_list_unlink): export
9292
9293         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9294         number of bytes in the message queue for a connection
9295
9296 2003-04-18  Havoc Pennington  <hp@pobox.com>
9297
9298         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9299
9300         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9301         memleaks
9302
9303         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9304         on realloc be sure to update the pointer in the keyring
9305
9306         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9307         offset to avoid writing to unallocated memory
9308
9309         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9310         try the next mechanism, so we properly handle OOM
9311
9312         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9313         on OOM.
9314         (_dbus_keyring_new): fix OOM bug
9315         (_dbus_keyring_new_homedir): always set error; impose a maximum
9316         number of keys we'll load from the file, mostly to speed up the
9317         test suite and make its OOM checks more useful, but also for
9318         general sanity.
9319
9320         * dbus/dbus-auth.c (process_error_server): reject authentication
9321         if we get an error from the client
9322         (process_cancel): on cancel, send REJECTED, per the spec
9323         (process_error_client): send CANCEL if we get an error from the
9324         server.
9325
9326 2003-04-18  Havoc Pennington  <hp@pobox.com>
9327
9328         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9329         debug spew
9330
9331         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9332         handling problem
9333
9334         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9335         about DBUS_TEST_HOMEDIR once
9336
9337         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9338         the environment
9339
9340         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9341         config file so we test the right thing
9342
9343         Throughout: assorted docs improvements
9344
9345 2003-04-18  Havoc Pennington  <hp@pobox.com>
9346
9347         * glib/dbus-gmain.c: adapt to watch changes
9348
9349         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9350
9351         * dbus/dbus-server.h: remove dbus_server_handle_watch
9352
9353         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9354
9355         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9356         like DBusTimeout, so we don't need dbus_connection_handle_watch
9357         etc.
9358
9359 2003-04-17  Havoc Pennington  <hp@redhat.com>
9360
9361         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9362         database usage so it all goes via the DBusUserDatabase cache.
9363
9364 2003-04-17  Havoc Pennington  <hp@redhat.com>
9365
9366         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9367         there was an OOM watch we skipped, we always return TRUE so we
9368         iterate again to have a look at it again. Fixes test suite hang.
9369         Code rearrangement also lets us lose some memset and only iterate
9370         over callbacks once.
9371
9372         * bus/driver.c (bus_driver_handle_message): sense of test for
9373         reply was backward
9374
9375 2003-04-16  Havoc Pennington  <hp@pobox.com>
9376
9377         * doc/dbus-specification.sgml: make spec say serials are unsigned
9378
9379         * dbus/dbus-message.h: change message serials to unsigned
9380
9381         * dbus/dbus-connection.c: adapt to message serials being unsigned
9382
9383 2003-04-15  Havoc Pennington  <hp@pobox.com>
9384
9385         * bus/bus.c: create and keep around a shared DBusUserDatabase
9386         object.
9387
9388         * bus/connection.c (bus_connection_get_groups): don't cache
9389         groups for user in the connection object, since user database
9390         object now does that.
9391
9392 2003-04-16  Havoc Pennington  <hp@redhat.com>
9393
9394         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9395         list of size counters
9396         (_dbus_message_loader_putback_message_link): put back a popped link
9397
9398         * dbus/dbus-connection.c
9399         (dbus_connection_set_max_live_messages_size): rename
9400         max_received_size
9401         (dbus_connection_get_outgoing_size): get size of outgoing
9402         queue
9403         (_dbus_connection_set_connection_counter): remove this cruft
9404
9405 2003-04-14  Havoc Pennington  <hp@redhat.com>
9406
9407         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9408         caching, but at some point we might want to be able to use a
9409         different database.
9410
9411         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9412         SHA1 conf file to test the sha1 auth mechanism, since the regular
9413         test always uses EXTERNAL when available.
9414
9415         * configure.in,
9416         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9417         add conf file that requires use of sha1 auth
9418
9419 2003-04-13  Havoc Pennington  <hp@pobox.com>
9420
9421         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9422         from Philip Blundell to send messages and monitor them.
9423
9424 2003-04-13  Havoc Pennington  <hp@pobox.com>
9425
9426         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9427         callbacks
9428
9429         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9430         users
9431
9432         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9433         fix to only recover unused bytes if we're already authenticated
9434         (_dbus_transport_get_is_authenticated): fix to still mark us
9435         authenticated if there are unused bytes.
9436
9437         * bus/dispatch.c: implement security policy checking
9438
9439         * bus/connection.c (bus_transaction_send_from_driver): new
9440
9441         * bus/bus.c (bus_context_check_security_policy): new
9442
9443         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9444         now we just set the DBusError and it gets converted to an error
9445         reply.
9446
9447         * bus/connection.c (allow_user_function): enable code using actual
9448         data from the config file
9449
9450         * bus/policy.c (list_allows_user): handle wildcard rules for
9451         user/group connection perms
9452
9453 2003-04-13  Havoc Pennington  <hp@pobox.com>
9454
9455         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9456
9457         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9458
9459         * bus/policy.c (bus_policy_append_mandatory_rule)
9460         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9461         (bus_policy_append_group_rule): new functions
9462
9463 2003-04-12  Havoc Pennington  <hp@pobox.com>
9464
9465         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9466
9467         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9468         the pid/gid/uid, just for paranoia.
9469
9470         * test/break-loader.c (randomly_do_n_things): find a byte
9471         containing a type code, and randomly change it to a different
9472         type code.
9473
9474 2003-04-12  Havoc Pennington  <hp@pobox.com>
9475
9476         * bus/policy.h: change BusPolicy to be the thing from the config
9477         file, and rename old BusPolicy to BusClientPolicy
9478
9479         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9480         match change in how policy works
9481
9482         * dbus/dbus-internals.h: mark assert_not_reached as
9483         __attribute((noreturn))__
9484
9485 2003-04-11  Havoc Pennington  <hp@redhat.com>
9486
9487         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9488         the broadcast service. Use boolean return for ServiceExists.
9489
9490 2003-04-11  Havoc Pennington  <hp@redhat.com>
9491
9492         * configure.in: add another directory to look for qt in.
9493
9494 2003-04-11  Havoc Pennington  <hp@redhat.com>
9495
9496         * AUTHORS: add Colin Walters
9497
9498 2003-04-11  Havoc Pennington  <hp@redhat.com>
9499
9500         * NEWS: update
9501
9502         * configure.in: 0.9
9503
9504 2003-04-11  Havoc Pennington  <hp@redhat.com>
9505
9506         * bus/messagebus.in: remove pid file when stopping the
9507         message bus, since the bus won't have privileges to remove it
9508         itself.
9509
9510 2003-04-11  Havoc Pennington  <hp@redhat.com>
9511
9512         * bus/bus.c (bus_context_new): move credentials change after
9513         creating pidfile
9514
9515 2003-04-11  Havoc Pennington  <hp@pobox.com>
9516
9517         * test/decode-gcov.c: add "below average functions" to the
9518         coverage report, and change how some of the code works.
9519
9520         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9521         not in the coverage stats.
9522
9523         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9524         couple places so running the test suite doesn't result in megaspam.
9525
9526 2003-04-11  Havoc Pennington  <hp@pobox.com>
9527
9528         * bus/dispatch.c (check_existent_service_activation): accept a no
9529         memory error in a place we didn't before
9530
9531         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9532         in case the first one failed," since the test suite is less
9533         broken now.
9534
9535 2003-04-10  Havoc Pennington  <hp@pobox.com>
9536
9537         * bus/dispatch.c (check_segfault_service_activation): add test
9538         for launching an executable that just crashes.
9539
9540         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9541         don't leave a million cores. We'll see how portable this is.
9542
9543 2003-04-10  Havoc Pennington  <hp@pobox.com>
9544
9545         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9546         the possible parent failures before we fork, so that we don't
9547         fail to create a babysitter after creating the child.
9548
9549         * bus/activation.c (bus_activation_activate_service): kill child
9550         if we don't successfully complete the activation.
9551
9552 2003-04-10  Havoc Pennington  <hp@redhat.com>
9553
9554         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9555         the connection if it's disconnected
9556
9557         * bus/activation.c (bus_activation_service_created): use new
9558         transaction features to roll back removal of pending activation if
9559         we don't successfully create the service after all. Don't remove
9560         pending activation if the function fails.
9561
9562         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9563         (_dbus_list_insert_after_link): new code to facilitate
9564         services.c fixes
9565
9566         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9567         new functionality, so we can preallocate the ability to insert
9568         into a hash table.
9569
9570         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9571         allowing us to put custom hooks in a transaction to be used for
9572         cancelling said transaction
9573
9574         * doc/dbus-specification.sgml: add some discussion of secondary
9575         service owners, and disallow zero-length service names
9576
9577         * bus/services.c (bus_registry_acquire_service): new function,
9578         splits out part of bus_driver_handle_acquire_service() and fixes
9579         a bug where we didn't remove the service doing the acquiring
9580         from the secondary queue if we failed to remove the current owner
9581         from the front of the queue.
9582
9583 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9584
9585         * doc/dbus-specification.sgml:
9586         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9587
9588 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9589
9590         * bus/.cvsignore:
9591         * glib/.cvsignore:
9592         * test/.cvsignore:
9593         Added files to cvsignore
9594
9595         * dbus/dbus-message.h:
9596         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9597         Make get_named() take two out argument and return a boolean.
9598         (dbus_message_iter_get_args_valist):
9599         Update usage of get_named().
9600         (dbus_message_iter_append_byte):
9601         Fix typo
9602         (dbus_message_iter_append_named)
9603         Fix typo
9604         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9605         More tests.
9606
9607 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9608
9609         * dbus/dbus-marshal.[ch]:
9610         Add array_type_pos argument to _dbus_marshal_validate_arg.
9611         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9612
9613         * dbus/dbus-message.[ch]:
9614         Multi-dimensional arrays have full type specification in the
9615         outermost array. Iter code re-arranged to handle this.
9616         Added some more iter tests.
9617
9618         * doc/dbus-specification.sgml:
9619         Add me to authors.
9620         Remove old FIXME.
9621         Update new array encoding description.
9622         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9623
9624         * test/data/invalid-messages/array-with-mixed-types.message:
9625         * test/data/valid-messages/array-of-array-of-uint32.message:
9626         Change to the new array format.
9627
9628         * test/data/invalid-messages/too-short-dict.message:
9629         Fix bug in test.
9630
9631         * test/data/valid-messages/recursive-types.message:
9632         Fix up and extend test.
9633
9634 2003-04-10  Havoc Pennington  <hp@pobox.com>
9635
9636         * bus/dispatch.c: lots of fixes
9637
9638         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9639         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9640         that was crack, broke the test service.
9641
9642         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9643         handling to avoid piling up errors if we get a failure on the
9644         first address.
9645
9646         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9647         pid in assertion failures.
9648
9649         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9650         to some fixed size of file descriptor array. Don't return TRUE
9651         anytime a timeout exists, that led to lots of busy loop silliness
9652         in the tests.
9653
9654 2003-04-09  Havoc Pennington  <hp@redhat.com>
9655
9656         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9657         I'd checked this in earlier but hadn't.
9658
9659 2003-04-09  Havoc Pennington  <hp@redhat.com>
9660
9661         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9662         the activation test (man this is getting old!)
9663
9664 2003-04-09  Havoc Pennington  <hp@redhat.com>
9665
9666         * test/test-utils.c: use dispatch status function to fix this up
9667
9668         * bus/connection.c (connection_watch_callback): don't dispatch
9669         from here
9670         (connection_timeout_callback): don't dispatch from here
9671         (bus_connections_setup_connection): set the dispatch status function
9672         (bus_connection_disconnected): unset it
9673
9674         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9675         used to add a connection to be dispatched
9676         (_dbus_loop_iterate): do the dispatching at the end of each
9677         iteration
9678
9679         * dbus/dbus-connection.c
9680         (dbus_connection_set_dispatch_status_function): new function
9681         allowing us to fix up main loop usage
9682         (_dbus_connection_last_unref): free all the various function
9683         user data
9684         (dbus_connection_dispatch): call the DispatchStatusFunction
9685         whenever this function returns
9686         (dbus_connection_handle_watch): call DispatchStatusFunction
9687         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9688         (reply_handler_timeout): call DispatchStatusFunction
9689         (dbus_connection_flush): call DispatchStatusFunction
9690
9691 2003-04-09  Havoc Pennington  <hp@redhat.com>
9692
9693         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9694         a memory leak
9695
9696         * bus/dispatch.c (check_service_activated): fix bug in test
9697
9698         * dbus/dbus-mainloop.c (check_timeout): fix this up
9699
9700         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9701         verbose output so we can sort out output from different processes,
9702         e.g. in the activation case.
9703
9704 2003-04-08  Colin Walters  <walters@gnu.org>
9705
9706         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9707         the pid file.
9708         (bus_context_new): Set it.
9709         (bus_context_unref): Use it to delete the pid file.
9710
9711 2003-04-08  Havoc Pennington  <hp@redhat.com>
9712
9713         * test/data/invalid-messages/array-with-mixed-types.message:
9714         regression test that fails for the moment
9715
9716         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9717         tests for convenience
9718
9719         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9720         array of nil, it broke things.
9721
9722         * test/data/invalid-messages/array-of-nil.message: regression test
9723
9724         * test/data/valid-messages/array-of-array-of-uint32.message:
9725         happened to write this so added it to suite
9726
9727 2003-04-08  Havoc Pennington  <hp@redhat.com>
9728
9729         * bus/driver.c (bus_driver_handle_acquire_service): init
9730         retval/reply before checking name
9731
9732         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9733         recursion depth argument
9734
9735         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9736         in the public struct for future extension
9737
9738         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9739         typo
9740
9741         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9742         message
9743
9744         * doc/dbus-specification.sgml: fix typo
9745
9746 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9747
9748         Implemented recursive types, named types and new-style iters
9749
9750         * bus/driver.c:
9751         * glib/test-thread-client.c: (thread_func):
9752         * glib/test-thread-server.c: (handle_test_message):
9753         * test/test-service.c: (handle_echo):
9754         Update to new api
9755
9756         * dbus/Makefile.am:
9757         * dbus/dbus-dict.c:
9758         * dbus/dbus-dict.h:
9759         * dbus/dbus.h
9760         Remove DBusDict
9761
9762         * dbus/dbus-internals.c: (_dbus_type_to_string):
9763         Update for new types.
9764
9765         * dbus/dbus-marshal.[ch]:
9766         Implement recursive types and the new marshalling format.
9767         Remove hardcoded dict marshalling.
9768         Marshal named types.
9769
9770         * dbus/dbus-message-builder.c:
9771         Add BYTE_ARRAY.
9772         Remove references to old types
9773
9774         * dbus/dbus-message.[ch]:
9775         New non-refcounted iter API that supports recursive iters.
9776         Use iters for appending, including support for recursive
9777         iters.
9778         Add byte and named type support.
9779         Update everything to new marshalling formats.
9780         Add tests for new API.
9781
9782         * dbus/dbus-protocol.h:
9783         Remove old array types.
9784         Add types: BYTE, ARRAY, DICT, NAMED
9785
9786         * dbus/dbus-string.c:
9787         * dbus/dbus-sysdeps.c:
9788         Make parse_double locale safe.
9789
9790         * dbus/dbus-test-main.c:
9791         Call setlocale.
9792
9793         * dbus/dbus-test.c:
9794         Kill dict test
9795
9796         * doc/dbus-specification.sgml:
9797         Update spec
9798
9799         * test/data/incomplete-messages/missing-body.message:
9800         * test/data/invalid-messages/bad-boolean.message:
9801         * test/data/invalid-messages/bad-boolean-array.message:
9802         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9803         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9804         * test/data/invalid-messages/too-short-dict.message:
9805         * test/data/valid-messages/dict-simple.message:
9806         * test/data/valid-messages/dict.message:
9807         * test/data/valid-messages/emptiness.message:
9808         * test/data/valid-messages/lots-of-arguments.message:
9809         * test/data/valid-messages/no-padding.message:
9810         * test/data/valid-messages/recursive-types.message:
9811         Add missing NAME fields
9812         Fix up dicts & arrays
9813
9814         * test/data/invalid-messages/dict-with-nil-value.message:
9815         Removed, this is not invalid anymore.
9816
9817         * test/data/valid-messages/recursive-types.message:
9818         Add new test for deeply recursive types.
9819
9820 2003-04-07  Havoc Pennington  <hp@pobox.com>
9821
9822         * bus/driver.c (bus_driver_handle_acquire_service): return an
9823         error if you try to acquire a service that starts with ':'
9824
9825 2003-04-07  Havoc Pennington  <hp@redhat.com>
9826
9827         * doc/dbus-specification.sgml: require that base service names
9828         start with ':' and that the base service is created/deleted
9829         as first and last things a connection does on the bus
9830
9831         * bus/dispatch.c (check_existent_service_activation): lots more
9832         work on the activation test; it doesn't fully pass yet...
9833
9834         * test/test-service.c (main): fix so we don't memleak the
9835         connection to the message bus
9836         (filter_func): accept a message asking us to exit
9837
9838 2003-04-06  Havoc Pennington  <hp@pobox.com>
9839
9840         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9841         from Colin Walters
9842
9843         * configure.in: fixes to Qt detection from Colin Walters
9844
9845         * doc/Makefile.am: Only remove generated docbook dirs if they
9846         exist, from Colin Walters
9847
9848         * dbus/dbus-bus.c: change how we set well-known connections to
9849         NULL, so that it works if a single connection is stored in
9850         two well-known array slots.
9851
9852         * test/Makefile.am: remove a lot of stuff that isn't immediately
9853         useful, it's in CVS history if we want it.
9854
9855         * test/test-service.c: use dbus-mainloop instead of that
9856         watch.[hc] crack
9857
9858 2003-04-06  Havoc Pennington  <hp@pobox.com>
9859
9860         * dbus/Makefile.am: split lists of sources into stuff that goes in
9861         the library, util functions that go in the lib and are also used
9862         elsewhere, and util functions that are used in tests/daemon but
9863         don't go in the lib.
9864
9865         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9866         here so it can be used in test binaries also
9867
9868 2003-04-06  Havoc Pennington  <hp@pobox.com>
9869
9870         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9871         here in the parent process, so we can return an error if it
9872         fails. Also, move some of the code into the child so the parent
9873         is less hosed if we fail midway through.
9874
9875         * bus/bus.c (bus_context_new): move pidfile detection further up
9876         in the function, before we start overwriting sockets and such.
9877
9878         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9879
9880         * configure.in: add --with-system-pid-file and --with-system-socket
9881
9882 2003-04-06  Colin Walters  <walters@verbum.org>
9883
9884         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9885
9886         * bus/system.conf.in: Declare a pidfile.
9887
9888         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9889         create one (if appropriate).
9890
9891         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9892         (struct BusConfigParser) [pidfile]: New.
9893         (element_type_to_name, merge_included, start_busconfig_child)
9894         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9895         (bus_config_parser_unref): Free it.
9896         (bus_config_parser_get_pidfile): New function.
9897
9898         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9899
9900         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9901
9902         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9903
9904         * dbus/dbus-sysdeps.h: Prototype it.
9905
9906 2003-04-06  Havoc Pennington  <hp@pobox.com>
9907
9908         * bus/bus.c (bus_context_new): print the address in here, rather
9909         than in main(), because we need to do it before forking the daemon
9910
9911         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9912         on the service nonexistent error
9913
9914         * bus/driver.c (bus_driver_handle_acquire_service): set the
9915         sender on the AcquireService reply
9916
9917         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9918         server also listen on a UNIX socket so services can connect to it.
9919
9920 2003-04-06  Havoc Pennington  <hp@pobox.com>
9921
9922         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9923         so it detects deadlocks and also we actually init threads when
9924         debugging.
9925
9926 2003-04-06  Havoc Pennington  <hp@pobox.com>
9927
9928         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9929         save the domain socket name, and unlink it when we disconnect the
9930         server. Means that at least when we exit normally, we won't leave
9931         a bunch of junk in /tmp
9932
9933         * dbus/dbus-transport-unix.c
9934         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9935         memory management). (I was making a real change here but then
9936         didn't)
9937
9938 2003-04-06  Havoc Pennington  <hp@pobox.com>
9939
9940         * bus/bus.c (bus_context_new): fix wrong handling of
9941         server_data_slot_unref() in the error case.
9942
9943         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9944         "(condition) != 0" to _dbus_real_assert so that
9945         "_dbus_assert (pointer)" doesn't cause a warning
9946
9947         * bus/main.c (main): accept --print-address option to print out
9948         the message bus address
9949
9950         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9951
9952         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9953         "tmpdir" option to unix: address on client side
9954
9955         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9956         to unix: address
9957
9958         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9959         we can use to create sockets in the test suite.
9960
9961         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9962         cleanly. To be used for testing.
9963
9964         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9965
9966         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9967
9968         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9969         handle trying to call this when there's no servers active
9970
9971 2003-04-05  Havoc Pennington  <hp@pobox.com>
9972
9973         * NEWS: update
9974
9975         * configure.in: 0.8
9976
9977 2003-04-05  Havoc Pennington  <hp@pobox.com>
9978
9979         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9980         crash on startup. Need to get "try starting the daemon"
9981         in the test suite I guess. ;-)
9982
9983         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9984         tracked the number of open connections; it's better done in
9985         application-specific code as you want it to span all servers etc.
9986
9987 2003-04-05  Havoc Pennington  <hp@pobox.com>
9988
9989         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9990         patch from Colin Walters
9991
9992 2003-04-05  Havoc Pennington  <hp@pobox.com>
9993
9994         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9995         reality; in fact multiple mechanisms are allowed.
9996
9997         * dbus/dbus-internals.c (_dbus_real_assert)
9998         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9999         _dbus_assert_not_reached() into functions, so that they don't show
10000         up in basic block counts for test coverage, and don't use up as
10001         much disk space. Does mean slower execution speed though, so
10002         assumes --disable-asserts is the normal production case.
10003
10004 2003-04-05  Havoc Pennington  <hp@pobox.com>
10005
10006         * test/Makefile.am (dist-hook): also dist *.in files
10007
10008         * NEWS: update
10009
10010         * configure.in: 0.7
10011
10012 2003-04-05  Havoc Pennington  <hp@pobox.com>
10013
10014         * dbus/dbus-string.c: docs warning
10015
10016         * dbus/dbus-spawn.c: missing docs
10017
10018         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10019
10020 2003-04-05  Havoc Pennington  <hp@pobox.com>
10021
10022         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10023         magic from GLib
10024
10025         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10026         to -1 once we've reaped the babysitter
10027         (_dbus_babysitter_handle_watch): do as much work as we can, not
10028         just one go of it
10029
10030         * bus/activation.c: add code using DBusBabysitter so that we
10031         handle it when a service fails to start up properly.
10032         (bus_activation_service_created): don't remove the activation
10033         entries as we go, just let them get removed when we free the pending
10034         activation. Unref reply messages after sending them.
10035
10036 2003-04-05  Havoc Pennington  <hp@pobox.com>
10037
10038         * test/decode-gcov.c (main): print per-directory stats in the report
10039
10040         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10041
10042 2003-04-05  Havoc Pennington  <hp@pobox.com>
10043
10044         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10045
10046         * test/decode-gcov.c: hack up a little program to suck data
10047         out of gcov files. Yes this is sort of silly.
10048
10049         * configure.in: define something in config.h and do an
10050         AM_CONDITIONAL when gcov is enabled
10051
10052 2003-04-04  Havoc Pennington  <hp@redhat.com>
10053
10054         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10055         return a "babysitter" object that is used to monitor the status of
10056         the spawned process and reap it when required.
10057
10058         * test/test-segfault.c, test/test-exit.c,
10059         test/test-sleep-forever.c: binaries that do various lame things,
10060         used in the test suite.
10061
10062         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10063
10064 2003-04-03  Havoc Pennington  <hp@pobox.com>
10065
10066         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10067         in preparation for modifying it, dbus-sysdeps is getting
10068         a bit unmanageable.
10069
10070 2003-04-03  Havoc Pennington  <hp@redhat.com>
10071
10072         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10073         have multiple ones
10074
10075         * bus/*.[hc]: adapt to mainloop change
10076
10077 2003-04-03  Havoc Pennington  <hp@redhat.com>
10078
10079         * bus/activation.c (load_directory): fix up memleaks
10080         (bus_activation_entry_free): free the entry
10081
10082         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10083         we get one from the message bus; fix memleaks.
10084
10085         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10086
10087 2003-04-03  Havoc Pennington  <hp@pobox.com>
10088
10089         * bus/config-parser.c (bus_config_parser_unref): free
10090         list of mechanisms, bug discovered by test suite enhancements
10091         (putting system.conf and session.conf into suite)
10092
10093         * test/Makefile.am, test/test-service.c: add placeholder for a
10094         test service that we'll activate as part of test suite. Doesn't
10095         do anything yet.
10096
10097         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10098         setting NULL value, and use system malloc not dbus_malloc()
10099         when we have unavoidable memleakage.
10100
10101         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10102         didn't work, and support DBUS_BUS_ACTIVATION.
10103
10104         * bus/activation.c (child_setup): pass our well-known bus type to
10105         the child
10106
10107         * bus/config-parser.c: support <type> to specify well-known type
10108
10109         * doc/dbus-specification.sgml: document the env variables to
10110         locate well-known buses and find service activator
10111
10112 2003-04-02  Havoc Pennington  <hp@redhat.com>
10113
10114         * test/Makefile.am (all-local): add a rule to copy tests to
10115         builddir, so we can have generated tests. Use this to remove the
10116         silly hack for testing system.conf and session.conf. Will use this
10117         shortly to generate .service files pointing to test binaries.
10118
10119 2003-04-02  Havoc Pennington  <hp@redhat.com>
10120
10121         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10122         current alloc and needed new length, not max of the doubled
10123         allocation and needed new length. Also, when building tests,
10124         don't do the double-allocation stuff, just realloc every time.
10125
10126 2003-04-02  Havoc Pennington  <hp@redhat.com>
10127
10128         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10129         in error messages
10130         (_dbus_string_get_dirname): new
10131         (_dbus_sysdeps_test): new
10132         (_dbus_directory_open): include dirnames in error messages
10133
10134         * bus/config-parser.c: interpret <include> and <includedir> and
10135         <servicedir> relative to config file location if the given
10136         filename is not absolute.
10137
10138         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10139
10140 2003-04-02  Havoc Pennington  <hp@redhat.com>
10141
10142         * bus/connection.c (bus_transaction_send_error_reply): set sender
10143         service for the error, and unref the reply on success
10144
10145         * bus/activation.c: convert to use BusTransaction so OOM can be
10146         handled correctly
10147         (bus_activation_service_created): set sender of the message
10148
10149 2003-04-01  Havoc Pennington  <hp@redhat.com>
10150
10151         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10152         <includedir> (at least mostly)
10153
10154         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10155         first, then the user ID
10156
10157 2003-04-01  Havoc Pennington  <hp@pobox.com>
10158
10159         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10160         function
10161
10162         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10163
10164         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10165
10166         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10167         socket 0777, and unlink any existing socket.
10168
10169         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10170         the configuration file so specifies; set up auth mechanism
10171         restrictions
10172
10173         * bus/config-parser.c (bus_config_parser_content): add support
10174         for <fork> option and fill in code for <auth>
10175
10176         * bus/system.conf.in: add <fork/> to default configuration,
10177         and limit auth mechanisms to EXTERNAL
10178
10179         * doc/config-file.txt (Elements): add <fork>
10180
10181         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10182         (_dbus_change_identity): new function
10183
10184 2003-03-31  Havoc Pennington  <hp@redhat.com>
10185
10186         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10187         (_dbus_listen_unix_socket): fix off-by-one error in null
10188         termination spotted by Nalin
10189
10190 2003-03-31  Havoc Pennington  <hp@redhat.com>
10191
10192         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10193         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10194         having a real home directory available.
10195
10196 2003-03-31  Havoc Pennington  <hp@redhat.com>
10197
10198         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10199
10200         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10201
10202         * configure.in: add support for specifying a style of init script
10203         to install
10204
10205 2003-03-31  Havoc Pennington  <hp@redhat.com>
10206
10207         Fix some annoying DBusString API and fix all affected code.
10208
10209         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10210         max_length argument
10211         (_dbus_string_get_data): change to return string instead of using
10212         an out param
10213         (_dbus_string_get_const_data): ditto
10214         (_dbus_string_get_data_len): ditto
10215         (_dbus_string_get_const_data_len): ditto
10216
10217 2003-03-31  Havoc Pennington  <hp@redhat.com>
10218
10219         * bus/main.c (main): fix up the command line arguments to be nicer
10220
10221 2003-03-31  Havoc Pennington  <hp@redhat.com>
10222
10223         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10224         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10225         final location that lands in the config file
10226
10227         * bus/config-loader-expat.c (bus_config_load): fix type of
10228         XML_Parser variable
10229
10230         * doc/TODO: remove TODO item for dbus_bus_get()
10231
10232         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10233
10234 2003-03-31  Havoc Pennington  <hp@pobox.com>
10235
10236         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10237         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10238         argument since they are always client side
10239
10240         * dbus/dbus-server.c (dbus_server_get_address): new function
10241
10242         * bus/main.c (main): take the configuration file as an argument.
10243
10244         * test/data/valid-config-files/debug-allow-all.conf: new file to
10245         use with dispatch.c tests for example
10246
10247         * bus/test-main.c (main): require test data dir
10248
10249         * bus/bus.c (bus_context_new): change this to take a
10250         configuration file name as argument
10251
10252         * doc/config-file.txt (Elements): add <servicedir>
10253
10254         * bus/system.conf, bus/session.conf: new files
10255
10256         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10257         well-known socket if none set
10258
10259         * configure.in: create system.conf and session.conf
10260
10261 2003-03-30  Havoc Pennington  <hp@pobox.com>
10262
10263         * bus/config-parser.c: hacking
10264
10265         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10266         to shut down, since it could cause weirdness with the DBusList
10267         lock
10268
10269         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10270         link-oriented stack routines
10271         (alloc_link): free the mempool if the first alloc from it fails
10272
10273         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10274
10275         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10276         from GLib
10277         (_dbus_string_skip_white): new
10278
10279         * doc/config-file.txt (Elements): add <includedir>
10280
10281 2003-03-28  Havoc Pennington  <hp@pobox.com>
10282
10283         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10284         (_dbus_string_copy_data): new functions
10285
10286 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10287
10288         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10289         * dbus/dbus-bus.h:
10290         Add dbus_bus_get.
10291
10292         * dbus/dbus-memory.c:
10293         Fix a doc comment.
10294
10295 2003-03-28  Havoc Pennington  <hp@pobox.com>
10296
10297         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10298         I think it may have just been superstition. Not sure.
10299
10300         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10301         failures that were not being handled.
10302
10303         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10304
10305         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10306         row that will fail on out-of-memory.
10307
10308         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10309         function for testing out-of-memory handling.
10310
10311         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10312         allocation functions, they do map exactly to the expat ones.
10313
10314 2003-03-27  Havoc Pennington  <hp@redhat.com>
10315
10316         * bus/config-loader-libxml.c (bus_config_load): add another error
10317         check
10318
10319 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10320
10321         * doc/TODO:
10322         Add note about automatic service activation.
10323
10324         * doc/dbus-specification.sgml:
10325         Rename the specification and clarify a few things.
10326
10327 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10328
10329         * Doxyfile.in:
10330         * dbus/dbus-address.c:
10331         * dbus/dbus-dict.c:
10332         * dbus/dbus-marshal.c:
10333         * dbus/dbus-server-debug-pipe.c:
10334         * dbus/dbus-transport-unix.c:
10335         Fix documentation warnings.
10336
10337 2003-03-26  Havoc Pennington  <hp@pobox.com>
10338
10339         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10340         after every test so it's quick and easy to see which leaked, and
10341         so we test multiple dbus_shutdown() calls
10342
10343         * configure.in: change configure.in XML stuff to also support
10344         expat
10345
10346         * config-loader-libxml.c: some hacking
10347
10348         * config-loader-expat.c: some hacking
10349
10350         * config-parser.c: some hacking, plus tests
10351
10352 2003-03-25  Havoc Pennington  <hp@redhat.com>
10353
10354         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10355
10356         * configure.in: add --with-xml option to specify XML library,
10357         right now only libxml is supported.
10358
10359         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10360         nonworking code between home and work, still just stubs
10361
10362 2003-03-24  Havoc Pennington  <hp@redhat.com>
10363
10364         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10365         file
10366
10367         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10368         NULL argument for "message" if the error is a well-known one,
10369         fill in a generic message in this case.
10370
10371         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10372         favor of DBusError
10373
10374         * bus/test.c (bus_test_flush_bus): add
10375
10376         * bus/policy.c (bus_policy_test): test code stub
10377
10378 2003-03-24  Havoc Pennington  <hp@pobox.com>
10379
10380         * bus/connection.c (bus_connections_setup_connection): set up
10381         the "can this user connect" function, but it always returns
10382         TRUE until we have a config file parser so we can have a config
10383         file that allows connections.
10384
10385 2003-03-23  Havoc Pennington  <hp@pobox.com>
10386
10387         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10388         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10389         the mutex, so we can check for proper memory management
10390         and OOM handling.
10391
10392         * dbus/dbus-dataslot.c: remove the mutex from
10393         DBusDataSlotAllocator and lock it manually when using it,
10394         to simplify fitting it into the global slots framework.
10395
10396         * dbus/dbus-threads.c (init_static_locks): rework how we're
10397         handling global locks so they are easily shut down.
10398
10399         * bus/policy.c (bus_policy_append_rule): fix
10400
10401         * bus/test-main.c (main): check for memleaks
10402
10403         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10404         test suite check for memleaks
10405
10406         * dbus/dbus-memory.c: add support in test mode for tracking
10407         number of outstanding blocks
10408
10409 2003-03-23  Havoc Pennington  <hp@pobox.com>
10410
10411         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10412         policies code
10413
10414         * dbus/dbus-hash.h: add ULONG hash keys
10415
10416         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10417         (_dbus_get_group_id): new function
10418
10419 2003-03-20  Havoc Pennington  <hp@redhat.com>
10420
10421         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10422         new function
10423         (dbus_connection_get_unix_user): new function
10424
10425 2003-03-20  Havoc Pennington  <hp@pobox.com>
10426
10427         * bus/connection.c (bus_connection_send_oom_error): assert that
10428         message has a sender
10429         (connection_execute_transaction): ditto
10430         (bus_connection_preallocate_oom_error): fix to set the sender, and
10431         set recipient to the destination service, not the bus driver
10432
10433         * bus/policy.c: hacking
10434
10435         * dbus/dbus-message.c (dbus_message_service_is): new function
10436         (dbus_message_sender_is): new
10437
10438 2003-03-19  Havoc Pennington  <hp@redhat.com>
10439
10440         * bus/policy.c: start sketching code for policy restrictions on
10441         what connections can do.
10442
10443 2003-03-18  Havoc Pennington  <hp@redhat.com>
10444
10445         * doc/TODO: some notes on high-level todo items. Little nitpick
10446         stuff is all in @todo, so no need to add it here.
10447
10448         * doc/config-file.txt: some notes on how config file might look
10449
10450 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10451
10452         * configure.in: 0.6
10453
10454         * NEWS: Update.
10455
10456 2003-03-17  Havoc Pennington  <hp@redhat.com>
10457
10458         * dbus/dbus-internals.h: add gcc attributes so that
10459         our printf-style functions warn on bad arguments to
10460         format
10461
10462         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10463         format bug
10464
10465         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10466         printf format bug
10467
10468 2003-03-17  Havoc Pennington  <hp@redhat.com>
10469
10470         * bus/test-main.c (main): make it print something as it runs
10471         so make check doesn't look stuck
10472
10473         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10474         from CVS, now obsolete
10475
10476 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10477
10478         * bus/dispatch.c: (bus_dispatch):
10479         Refetch the service name since it may have been reallocated
10480         when dbus_message_set_sender was called.
10481
10482         * dbus/dbus-sysdeps.c: (_dbus_accept):
10483         Add address and address length variables and use them to stop
10484         valgrind from complaining.
10485
10486 2003-03-17  Havoc Pennington  <hp@pobox.com>
10487
10488         All tests pass, no memleaks, no valgrind complaints.
10489
10490         * bus/test.c: refcount handler_slot
10491
10492         * bus/connection.c (bus_connections_new): refcount
10493         connection_data_slot
10494
10495         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10496         bytes so that auth scripts pass.
10497
10498         * bus/dispatch.c: init message_handler_slot so it gets allocated
10499         properly
10500
10501         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10502
10503         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10504         dealloc server_pipe_hash when no longer used for benefit of
10505         leak checking
10506
10507         * dbus/dbus-auth.c (process_command): memleak fix
10508
10509         * bus/dispatch.c (check_hello_message): memleak fix
10510
10511 2003-03-16  Havoc Pennington  <hp@pobox.com>
10512
10513         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10514
10515 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10516
10517         * bus/activation.c (bus_activation_activate_service): Append
10518         the pending activation entry to the list of pending activations.
10519
10520 2003-03-16  Havoc Pennington  <hp@pobox.com>
10521
10522         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10523         connections
10524
10525         * dbus/dbus-address.c (create_entry): fix OOM handling when
10526         failing to alloc entry->method
10527
10528 2003-03-16  Havoc Pennington  <hp@pobox.com>
10529
10530         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10531         the watch
10532
10533         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10534         add some missing dbus_set_result
10535
10536         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10537         alloc the DBusMessageHandler
10538
10539         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10540         the transport here, since we call this from the finalizer; it
10541         resulted in a double-finalize.
10542
10543         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10544         where we tried to use transport->connection that was NULL,
10545         happened when transport was disconnected early on due to OOM
10546
10547         * bus/*.c: adapt to handle OOM for watches/timeouts
10548
10549         * dbus/dbus-transport-unix.c: port to handle OOM during
10550         watch handling
10551
10552         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10553         reference to unused bytes instead of a copy
10554
10555         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10556         out of memory
10557
10558         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10559         FALSE on OOM
10560
10561         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10562         of memory
10563
10564 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10565
10566         * doc/dbus-specification.sgml:
10567         Document reply message for ActivateService.
10568
10569 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10570
10571         * bus/activation.c: (bus_pending_activation_entry_free),
10572         (bus_pending_activation_free), (bus_activation_new),
10573         (bus_activation_unref), (bus_activation_service_created),
10574         (bus_activation_activate_service):
10575         * bus/activation.h:
10576         * bus/bus.c: (bus_context_new):
10577         * bus/desktop-file.c: (new_section):
10578         * bus/driver.c: (bus_driver_send_service_deleted),
10579         (bus_driver_handle_activate_service):
10580         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10581         * bus/services.h:
10582         * dbus/dbus-connection.c:
10583         (dbus_connection_send_with_reply_and_block):
10584         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10585         * dbus/dbus-protocol.h:
10586         Make activation work better. Now pending activations will be queued
10587         and the daemon won't try to activate services that are already registered.
10588
10589 2003-03-16  Havoc Pennington  <hp@pobox.com>
10590
10591         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10592         connection data
10593
10594         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10595         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10596
10597 2003-03-16  Havoc Pennington  <hp@pobox.com>
10598
10599         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10600         this. always run the test suite before commit...
10601
10602         * bus/*: adapt to DBusConnection API changes
10603
10604         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10605         requires renaming stuff to avoid dbus_connection_dispatch name
10606         conflict.
10607
10608         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10609         function
10610
10611         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10612         separate from _dbus_message_loader_return_buffer()
10613
10614         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10615         this, because it's now always broken to use; the number of
10616         messages in queue vs. the number still buffered by the message
10617         loader is undefined/meaningless. Should use
10618         dbus_connection_get_dispatch_state().
10619         (dbus_connection_dispatch): rename from
10620         dbus_connection_dispatch_message
10621
10622 2003-03-16  Havoc Pennington  <hp@pobox.com>
10623
10624         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10625         implementation
10626
10627 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10628
10629         * dbus/dbus-connection.c:
10630         (dbus_connection_send_with_reply_and_block):
10631         Decrease connection->n_incoming when removing an entry
10632         from the list.
10633         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10634         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10635         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10636         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10637         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10638         (dbus_dict_get_byte_array):
10639         Handle NULL arrays and strings. Also add support for byte arrays.
10640
10641         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10642         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10643         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10644         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10645         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10646         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10647         * dbus/dbus-marshal.h:
10648         Add support for marshalling and demarshalling empty arrays and strings.
10649
10650         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10651         (dbus_message_append_string_array),
10652         (dbus_message_iter_get_boolean),
10653         (dbus_message_iter_get_boolean_array),
10654         (dbus_message_iter_get_int32_array),
10655         (dbus_message_iter_get_uint32_array),
10656         (dbus_message_iter_get_double_array),
10657         (dbus_message_iter_get_byte_array),
10658         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10659         (check_message_handling):
10660         Add support for getting empty arrays and dicts.
10661
10662         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10663         Don't do any validation at all for now, that's better than just checking
10664         for ASCII.
10665
10666         * test/data/valid-messages/emptiness.message:
10667         New test message with lots of empty arrays.
10668
10669 2003-03-16  Havoc Pennington  <hp@pobox.com>
10670
10671         * dbus/dbus-connection.c
10672         (_dbus_connection_queue_received_message_link): new function that
10673         can't fail due to OOM
10674
10675         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10676         new function pops a message together with a list link
10677         containing it.
10678
10679         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10680         message queuing functions to avoid needing to alloc memory
10681
10682 2003-03-16  Havoc Pennington  <hp@pobox.com>
10683
10684         Oops - test code was only testing failure of around 30 of the
10685         mallocs in the test path, but it turns out there are 500+
10686         mallocs. I believe this was due to misguided linking setup such
10687         that there was one copy of dbus_malloc etc. in the daemon and one
10688         in the shared lib, and only daemon mallocs were tested. In any
10689         case, the test case now tests all 500+ mallocs, and doesn't pass
10690         yet, though there are lots of fixes in this patch.
10691
10692         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10693         this so that it doesn't need to allocate memory, since it
10694         has no way of indicating failure due to OOM (and would be
10695         annoying if it did).
10696
10697         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10698
10699         * bus/Makefile.am: rearrange to create two self-contained
10700         libraries, to avoid having libraries with overlapping symbols.
10701         that was resulting in weirdness, e.g. I'm pretty sure there
10702         were two copies of global static variables.
10703
10704         * dbus/dbus-internals.c: move the malloc debug stuff to
10705         dbus-memory.c
10706
10707         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10708         empty.
10709
10710         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10711
10712         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10713         on failure.
10714
10715         * bus/dispatch.c (bus_dispatch_add_connection): free
10716         message_handler_slot when no longer using it, so
10717         memory leak checkers are happy for the test suite.
10718
10719         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10720
10721         * bus/bus.c (new_connection_callback): disconnect in here if
10722         bus_connections_setup_connection fails.
10723
10724         * bus/connection.c (bus_connections_unref): fix to free the
10725         connections
10726         (bus_connections_setup_connection): if this fails, don't
10727         disconnect the connection, just be sure there are no side
10728         effects.
10729
10730         * dbus/dbus-string.c (undo_alignment): unbreak this
10731
10732         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10733         leaking
10734         (_dbus_auth_new): fix the order in which we free strings
10735         on OOM failure
10736
10737         * bus/connection.c (bus_connection_disconnected): fix to
10738         not send ServiceDeleted multiple times in case of memory
10739         allocation failure
10740
10741         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10742         get the base service name
10743         (dbus_bus_register_client): don't return base service name,
10744         instead store it on the DBusConnection and have an accessor
10745         function for it.
10746         (dbus_bus_register_client): rename dbus_bus_register()
10747
10748         * bus/dispatch.c (check_hello_message): verify that other
10749         connections on the bus also got the correct results, not
10750         just the one sending hello
10751
10752 2003-03-15  Havoc Pennington  <hp@pobox.com>
10753
10754         Make it pass the Hello handling test including all OOM codepaths.
10755         Now to do other messages...
10756
10757         * bus/services.c (bus_service_remove_owner): fix crash when
10758         removing owner from an empty list of owners
10759         (bus_registry_ensure): don't leave service in the list of
10760         a connection's owned services if we fail to put the service
10761         in the hash table.
10762
10763         * bus/connection.c (bus_connection_preallocate_oom_error): set
10764         error flag on the OOM error.
10765
10766         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10767         handle _dbus_transport_set_connection failure
10768
10769         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10770         to create watches up front and simply enable/disable them as
10771         needed.
10772         (unix_connection_set): this can now fail on OOM
10773
10774         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10775         of enabling/disabling a watch or timeout.
10776
10777         * bus/loop.c (bus_loop_iterate): don't touch disabled
10778         watches/timeouts
10779
10780         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10781
10782 2003-03-15  Havoc Pennington  <hp@pobox.com>
10783
10784         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10785         write useful test code, after all that futzing around ;-)
10786
10787         Test does not yet pass because we can't handle OOM in
10788         _dbus_transport_messages_pending (basically,
10789         dbus_connection_preallocate_send() does not prealloc the write
10790         watch). To fix this, I think we need to add new stuff to
10791         set_watch_functions, namely a SetEnabled function so we can alloc
10792         the watch earlier, then enable it later.
10793
10794         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10795         dbus-memory.c to the convenience lib
10796
10797         * bus/test.c: rename some static functions to keep them clearly
10798         distinct from stuff in connection.c. Handle client disconnection.
10799
10800 2003-03-14  Havoc Pennington  <hp@pobox.com>
10801
10802         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10803         transport, tests more of the real codepath. Set up clients
10804         with bus_setup_debug_client.
10805
10806         * bus/test.c (bus_setup_debug_client): function to set up debug
10807         "clients" on the main loop
10808
10809         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10810         support
10811
10812         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10813         server type
10814
10815         * dbus/dbus-server-debug.c: support a debug server based on pipes
10816
10817         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10818         (_dbus_close): new function
10819
10820         * configure.in: check for socketpair
10821
10822 2003-03-14  Havoc Pennington  <hp@redhat.com>
10823
10824         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10825         cheesy hack
10826
10827         * dbus/dbus-transport-debug.c: rework this a good bit to be
10828         less complicated. hopefully still works.
10829
10830         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10831         manually
10832
10833         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10834         after running it
10835
10836         * dbus/dbus-message.c (dbus_message_copy): rename from
10837         dbus_message_new_from_message, fix it up to copy
10838         all the message fields, add test case
10839
10840         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10841         not quite passing yet
10842
10843 2003-03-14  Havoc Pennington  <hp@pobox.com>
10844
10845         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10846         until no work remains" in test code. (the large diff here
10847         is just code movement, no actual changes)
10848
10849         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10850         1, no point waiting around for test code.
10851         (_dbus_server_debug_accept_transport): unref the timeout
10852         after adding it (right?)
10853
10854         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10855
10856 2003-03-13  Havoc Pennington  <hp@redhat.com>
10857
10858         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10859         out of memory
10860
10861         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10862         of memory
10863
10864         * dbus/dbus-connection.h: Make AddWatchFunction and
10865         AddTimeoutFunction return a bool so they can fail on out-of-memory
10866
10867         * bus/bus.c (bus_context_new): set up timeout handlers
10868
10869         * bus/connection.c (bus_connections_setup_connection): set up
10870         timeout handlers
10871
10872         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10873         can fail
10874
10875         * bus/bus.c (bus_context_new): adapt to changes
10876
10877         * bus/connection.c: adapt to changes
10878
10879         * test/watch.c: adapt to DBusWatch changes
10880
10881         * bus/dispatch.c (bus_dispatch_test): started adding this but
10882         didn't finish
10883
10884 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10885
10886         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10887
10888 2003-03-13  Havoc Pennington  <hp@pobox.com>
10889
10890         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10891         set up a test framework as for the library
10892
10893 2003-03-12  Havoc Pennington  <hp@pobox.com>
10894
10895         Throughout: purge global variables, introduce BusActivation,
10896         BusConnections, BusRegistry, etc. objects instead.
10897
10898         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10899         message bus object
10900
10901         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10902         going to redo this a bit differently I think
10903
10904 2003-03-12  Havoc Pennington  <hp@redhat.com>
10905
10906         Mega-patch that gets the message bus daemon initially handling
10907         out-of-memory. Work still needed. Also lots of random
10908         moving stuff to DBusError instead of ResultCode.
10909
10910         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10911
10912         * dbus/dbus-connection.c
10913         (dbus_connection_send_with_reply_and_block): use DBusError
10914
10915         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10916         DBusResultCode
10917
10918         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10919         code here, as the only failure possible is OOM.
10920
10921         * bus/connection.c (bus_connection_disconnect):
10922         rename bus_connection_disconnected as it's a notification only
10923
10924         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10925         "name" on get_args failure, should be done by get_args;
10926         don't disconnect client for bad args, just return an error.
10927         (bus_driver_handle_service_exists): ditto
10928
10929         * bus/services.c (bus_services_list): NULL-terminate returned array
10930
10931         * bus/driver.c (bus_driver_send_service_lost)
10932         (bus_driver_send_service_acquired): send messages from driver to a
10933         specific client to the client's unique name, not to the broadcast
10934         service.
10935
10936         * dbus/dbus-message.c (decode_header_data): reject messages that
10937         contain no name field
10938         (_dbus_message_get_client_serial): rename to
10939         dbus_message_get_serial and make public
10940         (_dbus_message_set_serial): rename from set_client_serial
10941         (_dbus_message_set_reply_serial): make public
10942         (_dbus_message_get_reply_serial): make public
10943
10944         * bus/connection.c (bus_connection_foreach): allow stopping
10945         iteration by returning FALSE from foreach function.
10946
10947         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10948         (dbus_connection_free_preallocated_send)
10949         (dbus_connection_preallocate_send): new API for sending a message
10950         without possibility of malloc failure.
10951         (dbus_connection_send_message): rename to just
10952         dbus_connection_send (and same for whole function family)
10953
10954         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10955
10956         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10957
10958         * bus/activation.c: handle/return errors
10959
10960         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10961
10962         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10963         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10964         (_dbus_result_from_errno): move to this file
10965
10966 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10967
10968         * dbus/dbus-marshal.c:
10969         (_dbus_marshal_set_string):
10970         Take a length argument so we can marshal the correct string
10971         length.
10972
10973         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10974         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10975         (_dbus_marshal_test):
10976         * dbus/dbus-marshal.h:
10977         Add support for marshalling and demarshalling dicts.
10978
10979         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10980         Add support for TYPE DICT.
10981
10982         * dbus/dbus-message.c: (set_string_field):
10983         Adjust header padding.
10984
10985         (dbus_message_append_args_valist), (dbus_message_append_dict),
10986         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10987         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10988         (check_message_handling), (check_have_valid_message):
10989         * dbus/dbus-message.h:
10990         Add functions for setting and getting dicts.
10991
10992         * dbus/dbus-protocol.h:
10993         Add DBUS_TYPE_DICT.
10994
10995         * dbus/dbus.h:
10996         Add dbus-dict.h
10997
10998         * doc/dbus-specification.sgml:
10999         Add information about how dicts are marshalled.
11000
11001         * test/data/invalid-messages/dict-with-nil-value.message:
11002         * test/data/invalid-messages/too-short-dict.message:
11003         * test/data/valid-messages/dict-simple.message:
11004         * test/data/valid-messages/dict.message:
11005         Add sample messages containing dicts.
11006
11007 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11008
11009         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11010
11011 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11012
11013         * dbus/Makefile.am:
11014         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11015         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11016         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11017         (dbus_dict_set_double), (dbus_dict_set_string),
11018         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11019         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11020         (dbus_dict_set_string_array), (_dbus_dict_test):
11021         * dbus/dbus-dict.h:
11022         Fix according to comments from Havoc.
11023
11024 2003-03-06  Michael Meeks  <michael@server.home>
11025
11026         * configure.in: if we don't have kde-config, disable have_qt.
11027
11028 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11029
11030         * dbus/Makefile.am:
11031         Add dbus-dict.[ch]
11032
11033         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11034         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11035         (dbus_dict_remove), (dbus_dict_get_value_type),
11036         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11037         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11038         (dbus_dict_put_double), (dbus_dict_put_string),
11039         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11040         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11041         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11042         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11043         (dbus_dict_get_double), (dbus_dict_get_string),
11044         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11045         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11046         (dbus_dict_get_string_array), (_dbus_dict_test):
11047         * dbus/dbus-dict.h:
11048         Add DBusDict implementation
11049
11050         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11051         * dbus/dbus-test.h:
11052         Add _dbus_dict_test
11053
11054 2003-03-04  Havoc Pennington  <hp@pobox.com>
11055
11056         * test/data/auth/*: adapt to changes
11057
11058         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11059         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11060         userid
11061
11062         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11063         more stuff from being in a context name, to make the protocol
11064         simpler to deal with
11065
11066         * dbus/dbus-errors.c (dbus_error_has_name): new function
11067         (dbus_error_is_set): new function
11068
11069         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11070         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11071
11072         * dbus/dbus-connection.c (dbus_connection_flush): also read
11073         messages during a flush operation
11074
11075         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11076
11077 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11078
11079         * configure.in: Check for gethostbyname on Solaris.
11080
11081         * dbus/dbus-transport.c: (_dbus_transport_open):
11082         Remove duplicate "tcp" entry.
11083
11084         * doc/dbus-specification.sgml:
11085         Clarify some things.
11086
11087 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11088
11089         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11090         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11091         (_dbus_keyring_test):
11092         * dbus/dbus-md5.c: (_dbus_md5_compute):
11093         * dbus/dbus-sha.c: (_dbus_sha_compute):
11094         Plug memory leaks.
11095
11096 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11097
11098         * README: Add some things.
11099
11100 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11101
11102         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11103         after case DBUS_TYPE_BOOELAN.
11104
11105 2003-03-02  Havoc Pennington  <hp@pobox.com>
11106
11107         * test/break-loader.c (randomly_set_extreme_ints): add test that
11108         sets really huge and small integers
11109
11110         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11111         that length of boolean array fits in the string, and that
11112         string has room for boolean value in single-bool case.
11113
11114         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11115         optional value to "ALIGN" command which is what to fill the
11116         alignment with.
11117
11118         * test/data/valid-messages/no-padding.message: add regression
11119         test for the message padding problem
11120
11121 2003-03-02  Havoc Pennington  <hp@pobox.com>
11122
11123         * dbus/dbus-message.c (decode_header_data): fix to always init
11124         message_padding, from Benjamin Dauvergne
11125
11126 2003-03-02  Havoc Pennington  <hp@pobox.com>
11127
11128         * configure.in: 0.5
11129
11130         * NEWS: Update.
11131
11132 2003-03-01  Joe Shaw  <joe@assbarn.com>
11133
11134         * configure.in: Check for "struct cmsgcred" and try to access its
11135         members for BSD-like unices.
11136
11137         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11138         _dbus_read_credentials_unix_socket().
11139         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11140         read() for reading the credential byte off the unix socket.  Use
11141         struct cmsgcred on systems that support it.
11142
11143 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11144
11145         * glib/Makefile.am:
11146         * configure.in:
11147         Make gthreads-2.0 dependency optional. Don't build thread test if
11148         its not found.
11149
11150 2003-02-27  Havoc Pennington  <hp@pobox.com>
11151
11152         * dbus/dbus-connection.c
11153         (dbus_connection_send_message_with_reply_and_block): fix doh!
11154         doh! doh! bug that resulted in never removing a reply from the
11155         queue, no wonder we called get_reply_serial so much ;-)
11156
11157         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11158         and client serial instead of demarshaling them every time
11159
11160 2003-02-27  Havoc Pennington  <hp@pobox.com>
11161
11162         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11163         more inlined, using dbus-string-private.h, speeds things up
11164         substantially
11165
11166         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11167         when freeing the string
11168         (_dbus_string_steal_data): fix for align offset
11169         (undo_alignment): new function
11170
11171 2003-02-26  Havoc Pennington  <hp@redhat.com>
11172
11173         All kinds of audit fixes from Owen, plus initial attempt to
11174         handle unaligned memory returned from malloc.
11175
11176         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11177         leave room for align_offset and nul byte
11178         (fixup_alignment): function to track an align_offset and
11179         ensure real->str is aligned
11180         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11181         to allow a nul byte plus align offset
11182         (_dbus_string_lock): fix overflow issue
11183         (_dbus_string_init_const_len): add assertions on sanity of len,
11184         assign allocated to be ALLOCATION_PADDING larger than len
11185         (set_length): fixup the overflow handling
11186         (_dbus_string_get_data_len): fix overflow in assertion
11187         (open_gap): detect overflow in size of gap to be opened
11188         (_dbus_string_lengthen): add overflow check
11189         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11190         (_dbus_string_append): add overflow check
11191         (_dbus_string_append_unichar): overflow
11192         (_dbus_string_delete): fix overflow in assertion
11193         (_dbus_string_copy_len): overflow in assertion
11194         (_dbus_string_replace_len): overflows in assertions
11195         (_dbus_string_find): change to implement in terms of
11196         _dbus_string_find_to
11197         (_dbus_string_find_to): assorted fixage
11198         (_dbus_string_equal_c_str): assert c_str != NULL,
11199         fix logic so the function works
11200         (_dbus_string_ends_with_c_str): fix overflow thingy
11201         (_dbus_string_base64_encode): overflow fix
11202         (_dbus_string_validate_ascii): overflow
11203         (_dbus_string_validate_nul): overflow
11204
11205 2003-02-26  Havoc Pennington  <hp@redhat.com>
11206
11207         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11208
11209 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11210
11211         * configure.in:
11212         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11213
11214         * dbus/dbus-connection.c:
11215         * dbus/dbus-connection.h:
11216         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11217         Add dbus_connection_set_wakeup_main_function and use it when queueing
11218         incoming and outgoing messages.
11219
11220
11221         * dbus/dbus-dataslot.c:
11222         Threadsafe usage of DBusDataSlotAllocator
11223
11224         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11225         dbus_new can fail.
11226
11227         * dbus/dbus-server-unix.c:
11228         Add todo comment
11229
11230         * glib/dbus-gmain.c:
11231         Implement the new wakeup functions for glib.
11232
11233         * glib/Makefile.am:
11234         * glib/test-thread-client.c:
11235         * glib/test-thread-server.c:
11236         * glib/test-thread.h:
11237         Initial cut at some thread test code. Not really done yet.
11238
11239 2003-02-26  Havoc Pennington  <hp@pobox.com>
11240
11241         * dbus/dbus-connection.c
11242         (dbus_connection_send_message_with_reply_and_block): fix crash
11243         where we ref'd the outgoing message instead of the returned reply
11244
11245         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11246         at the end of this function, so if we didn't need to read for
11247         authentication, we reinstall it for receiving messages
11248
11249         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11250         a NULL sender for peer-to-peer case
11251
11252         * dbus/dbus-transport-unix.c (check_read_watch): handle
11253         !authenticated case correctly
11254
11255         * glib/dbus-gmain.c: add support for DBusServer
11256
11257         * dbus/dbus-server.c: add data slot support
11258
11259         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11260         return values and handle errors
11261
11262         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11263         DBusConnection
11264
11265         * Doxyfile.in (INPUT): add glib subdir
11266
11267         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11268         setup_with_g_main instead of hookup_with_g_main; write docs
11269
11270 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11271
11272         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11273         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11274         * dbus/dbus-message.c: (dbus_message_append_boolean),
11275         (dbus_message_append_boolean_array),
11276         (dbus_message_get_args_valist), (_dbus_message_test):
11277         * dbus/dbus-message.h:
11278         * doc/dbus-specification.sgml:
11279         Various fixes as pointed out by Havoc.
11280
11281         * test/data/invalid-messages/bad-boolean-array.message:
11282         * test/data/invalid-messages/bad-boolean.message:
11283         Add invalid boolean value test cases.
11284
11285 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11286
11287         * dbus/dbus-internals.c: (_dbus_type_to_string):
11288         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11289         (_dbus_marshal_validate_arg):
11290         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11291         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11292         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11293         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11294         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11295         (dbus_message_iter_get_double),
11296         (dbus_message_iter_get_boolean_array), (message_iter_test):
11297         * dbus/dbus-message.h:
11298         * dbus/dbus-protocol.h:
11299         * doc/dbus-specification.sgml:
11300         * test/data/valid-messages/lots-of-arguments.message:
11301         Add support for boolean and boolean array types.
11302
11303 2003-02-23  Havoc Pennington  <hp@pobox.com>
11304
11305         * dbus/dbus-keyring.c: finish most of this implementation and
11306         simple unit test
11307
11308         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11309         these barf if the error isn't cleared to NULL
11310
11311         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11312         (_dbus_create_directory): new function
11313
11314         * dbus/dbus-errors.c (dbus_set_error): fix warning
11315
11316         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11317         (_dbus_string_hex_decode): new function
11318         (test_hex_roundtrip): test code
11319
11320         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11321
11322         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11323
11324         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11325         the save-to-temp/rename trick to atomically write the new file
11326         (_dbus_string_parse_uint): new function
11327
11328 2003-02-22  Havoc Pennington  <hp@pobox.com>
11329
11330         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11331
11332 2003-02-22  Havoc Pennington  <hp@pobox.com>
11333
11334         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11335         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11336
11337         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11338
11339         * dbus/test/data/sha-1: add US government test suite for SHA-1
11340
11341 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11342
11343         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11344         Make string arrays NULL-terminated.
11345
11346         * dbus/dbus-memory.c: (dbus_free_string_array):
11347         * dbus/dbus-memory.h:
11348         New function for freeing NULL-terminated string arrays.
11349
11350         * dbus/dbus-message-builder.c: (append_quoted_string),
11351         (_dbus_message_data_load):
11352         Add support for array types.
11353
11354         * dbus/dbus-message.c: (check_message_handling):
11355         Add more types as test cases.
11356
11357         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11358         (_dbus_string_parse_double):
11359         Add the start offset to the end offset.
11360
11361         * test/data/valid-messages/lots-of-arguments.message:
11362         New test message with lots of arguments.
11363
11364 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11365
11366         * dbus/dbus-message.c: (dbus_message_append_nil),
11367         (dbus_message_append_int32), (dbus_message_append_uint32),
11368         (dbus_message_append_double), (dbus_message_append_string),
11369         (dbus_message_append_int32_array),
11370         (dbus_message_append_uint32_array),
11371         (dbus_message_append_double_array),
11372         (dbus_message_append_byte_array),
11373         (dbus_message_append_string_array):
11374         Fix all out-of-memory handling in these functions.
11375
11376 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11377
11378         * dbus/dbus-message.c: (dbus_message_append_nil):
11379         Fix a silly.
11380
11381 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11382
11383         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11384         (dbus_message_append_nil), (dbus_message_append_int32_array),
11385         (dbus_message_append_uint32_array),
11386         (dbus_message_append_double_array),
11387         (dbus_message_append_byte_array),
11388         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11389         (dbus_message_iter_get_int32_array),
11390         (dbus_message_iter_get_uint32_array),
11391         (dbus_message_iter_get_double_array),
11392         (dbus_message_iter_get_byte_array),
11393         (dbus_message_iter_get_string_array):
11394
11395         * dbus/dbus-message.h:
11396         Add functions for appending and getting arrays.
11397
11398 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11399
11400         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11401         element size at least 8 bytes, fixes mempool tests on
11402         64-bit machines.
11403
11404 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11405
11406         * dbus/dbus-transport-unix.c (unix_do_iteration):
11407         Unlock the connection mutex during a blocking select call.
11408         Add todo about how we need a way to wake up the select.
11409
11410         * dbus/dbus-connection-internal.h:
11411         * dbus/dbus-connection.c:
11412         Add _dbus_connection_lock and _dbus_connection_unlock.
11413
11414 2003-02-19  Havoc Pennington  <hp@pobox.com>
11415
11416         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11417         Doxyfile.in, not Doxyfile
11418
11419         * dbus/dbus-keyring.c: do some hacking on this
11420
11421         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11422
11423         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11424         dbus_error_init
11425         (dbus_set_error): remove dbus_error_init, check for message ==
11426         NULL *before* we sprintf into it, and add @todo about including
11427         system headers in this file
11428
11429         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11430
11431         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11432
11433         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11434         get various bits of user information based on either username
11435         or user ID
11436         (_dbus_homedir_from_username): new function
11437
11438 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11439
11440         * configure.in:
11441         Add check for nonposix getpwnam_r
11442
11443         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11444         Align the pool element size to a sizeof (void *) boundary.
11445
11446         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11447         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11448         General Solaris fixes.
11449
11450         * test/data/valid-messages/simplest-manual.message:
11451         Explicitly state that we want little-endian packing.
11452
11453 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11454
11455         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11456
11457         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11458         Added to create a transport connecting using a tcp/ip socket.
11459
11460         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11461         to a tcp socket at given host and port.
11462         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11463         hostname and port.
11464
11465         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11466
11467         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11468         Added to create a server listening on a TCP/IP socket.
11469
11470 2003-02-19  Havoc Pennington  <hp@pobox.com>
11471
11472         Throughout: mop up all the Doxygen warnings and undocumented
11473         stuff.
11474
11475         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11476         to search any paths.
11477
11478         * dbus/dbus-threads.c: move global mutex initializers to
11479         dbus-internals.h, multiple prototypes was confusing doxygen
11480         besides being kind of ugly
11481
11482         * Doxyfile (PREDEFINED): have Doxygen define
11483         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11484         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11485         (do not abuse the feature! it's for stuff like the autogenerated
11486         macros in dbus-md5.c, not just for things you don't feel like
11487         documenting...)
11488
11489 2003-02-18  Havoc Pennington  <hp@pobox.com>
11490
11491         * dbus/dbus-string.c (_dbus_string_zero): new function
11492
11493         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11494         wrap it in some dbus-friendly API
11495
11496         * dbus/dbus-types.h: add 16-bit types
11497
11498 2003-02-18  Joe Shaw  <joe@assbarn.com>
11499
11500         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11501         credentials from our currently running process.
11502         (get_word): Fix a buglet where we were copying the entire length
11503         instead of relative to our position.
11504
11505         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11506         keys on the stack... it's 640k of data.
11507
11508         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11509         read the credentials byte off the socket, even if we don't have
11510         SO_PEERCRED.
11511         (_dbus_poll): Implement poll() using select() for systems which
11512         don't have it.
11513
11514         * glib/test-dbus-glib.c (main): Print out an error if no
11515         parameters are given.
11516
11517         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11518         can fallback to a secondary auth mechanism if the first fails.
11519
11520 2003-02-18  Havoc Pennington  <hp@pobox.com>
11521
11522         * AUTHORS: add Alex
11523
11524 2003-02-17  Havoc Pennington  <hp@pobox.com>
11525
11526         * doc/dbus-specification.sgml: lots of cosmetic
11527         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11528         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11529         s/server/bus/ (except in authentication section). Add a section
11530         "Message Bus Message Routing"
11531
11532 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11533
11534         Release 0.4
11535
11536         * NEWS: Update
11537
11538 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11539
11540         * doc/dbus-specification.sgml:
11541         Specification updates.
11542
11543 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11544
11545         * bus/activation.c: (bus_activation_init), (child_setup),
11546         (bus_activation_activate_service):
11547         * bus/activation.h:
11548         * bus/main.c: (main):
11549         Set DBUS_ADDRESS environment variable.
11550
11551         * dbus/dbus-errors.c: (dbus_set_error):
11552         Don't use va_copy since that's a C99 feature.
11553
11554         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11555         (_dbus_spawn_async):
11556         * dbus/dbus-sysdeps.h:
11557         Add child_setup_func to _dbus_spawn_async.
11558
11559         * doc/dbus-specification.sgml:
11560         Update specification.
11561
11562         * test/spawn-test.c: (setup_func), (main):
11563         Fix test.
11564
11565 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11566
11567         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11568         Added todo.
11569
11570 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11571
11572         * doc/.cvsignore:
11573         * doc/Makefile.am:
11574         * doc/dbus-test-plan.sgml:
11575         Add test plan document.
11576
11577         * test/Makefile.am:
11578         Fix distcheck.
11579
11580 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11581
11582         * dbus/dbus-message.c: (decode_header_data),
11583         (_dbus_message_loader_return_buffer):
11584         Set the header padding amount when loading a message.
11585
11586 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11587
11588         * bus/dispatch.c: (send_one_message):
11589         Only send broadcast messages to registered connections.
11590
11591         * dbus/dbus-message.c: (dbus_message_name_is):
11592         * dbus/dbus-message.h:
11593         New convenience function.
11594
11595         * dbus/dbus-transport-debug.c: (do_reading):
11596         Only dispatch one message per run.
11597
11598         * test/Makefile.am:
11599         * test/bus-test.c: (new_connection_callback), (die),
11600         (test_hello_client1_handler), (test_hello_client2_handler),
11601         (test_hello_replies), (main):
11602
11603         * test/bus-test-loop.[ch]:
11604         Add these.
11605
11606 2003-02-16  Havoc Pennington  <hp@pobox.com>
11607
11608         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11609         backward conditional
11610
11611 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11612
11613         * dbus/dbus-connection.c:
11614         Implement sent_message_with_reply. (with_reply_and block is still
11615         busted).
11616         Made dispatch_message not lose message if OOM.
11617
11618         * dbus/dbus-errors.h:
11619         Add NoReply error (for reply timeouts).
11620
11621 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11622
11623         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11624         Actually free keys and values when destroying hashtable.
11625
11626 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11627
11628         * dbus/dbus-auth.c: (client_try_next_mechanism):
11629         Plug a leak.
11630
11631         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11632         Return TRUE if there's no thread implementation around.
11633
11634         * glib/dbus-gmain.c: (free_source),
11635         (dbus_connection_hookup_with_g_main):
11636         Make sure to remove the GSource when the connection is finalized.
11637
11638 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11639
11640         * bus/dispatch.c: (bus_dispatch_message_handler):
11641         * dbus/dbus-errors.h:
11642         Return an error if someone tries to send a message to a service
11643         that doesn't exist.
11644
11645 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11646
11647         * bus/activation.c: (load_directory), (bus_activation_init),
11648         (bus_activation_activate_service):
11649         * bus/activation.h:
11650         * bus/driver.c:
11651         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11652         More work on the activation handling.
11653
11654         * dbus/dbus-errors.h:
11655         Add some error messages
11656
11657         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11658         * dbus/dbus-message.h:
11659         New function that creates an error message.
11660
11661         * dbus/dbus-protocol.h:
11662         Add ACTIVATE_SERVER message.
11663
11664         * dbus/dbus-server-unix.c: (unix_handle_watch),
11665         (_dbus_server_new_for_domain_socket):
11666         Call _dbus_fd_set_close_on_exec.
11667
11668         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11669         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11670         (_dbus_fd_set_close_on_exec):
11671         * dbus/dbus-sysdeps.h:
11672         Add _dbus_fd_set_close_on exec function. Also add function that checks
11673         that all open fds are set to close-on-exec and warns otherwise.
11674
11675         * dbus/dbus-transport-unix.c:
11676         (_dbus_transport_new_for_domain_socket):
11677         Call _dbus_fd_set_close_on_exec.
11678
11679 2003-02-16  Havoc Pennington  <hp@pobox.com>
11680
11681         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11682         allow people to avoid setting SIGPIPE to SIG_IGN
11683         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11684         we've been asked not to
11685
11686 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11687
11688         * dbus/dbus-list.c: (_dbus_list_append_link),
11689         (_dbus_list_prepend_link):
11690         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11691         (dbus_realloc):
11692         Warning fixes.
11693
11694 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11695
11696         * bus/Makefile.am:
11697         * bus/activation.c: (bus_activation_entry_free),
11698         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11699         * bus/activation.h:
11700         * bus/main.c: (main):
11701         Add simple activation support, doesn't work yet though.
11702
11703 2003-02-15   Zack Rusin  <zack@kde.org>
11704
11705         * qt/dbus-qthread.cpp:  small casting fix
11706
11707 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11708
11709         * dbus/dbus-errors.c: (dbus_set_error):
11710         * dbus/dbus-errors.h:
11711         Add a few errors and make dbus_set_error void.
11712
11713         * dbus/dbus-sysdeps.c:
11714         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11715         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11716         * dbus/dbus-sysdeps.h:
11717         Add _dbus_spawn_async.
11718
11719         * test/spawn-test.c: (main):
11720         Test for _dbus_spawn_async.
11721
11722 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11723
11724         * dbus/dbus-internals.h:
11725         Fix build without tests.
11726
11727         * dbus/dbus-list.c: (alloc_link):
11728         Fix a segfault when a malloc fails.
11729
11730         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11731         (dbus_malloc0), (dbus_realloc):
11732         Add support for malloc debugging.
11733
11734 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11735
11736         * dbus/dbus-threads.c:
11737         * dbus/dbus-threads.h:
11738         Add condvars. Remove static mutext from API.
11739         Implement static mutexes by initializing them from threads_init.
11740
11741         * glib/dbus-gthread.c:
11742         * qt/dbus-qthread.cpp:
11743         Update with the thread api changes.
11744
11745
11746         * dbus/dbus-list.c:
11747         * dbus/dbus-list.h:
11748         Turn StaticMutex into normal mutex + init function.
11749         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11750         _dbus_list_append_link, _dbus_list_prepend_link
11751
11752
11753         * dbus/dbus-sysdeps.c:
11754         * dbus/dbus-sysdeps.h:
11755         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11756         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11757
11758         * dbus/dbus-protocol.h:
11759         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11760
11761         * dbus/dbus-message.c:
11762         Make ref/unref atomic.
11763         Fix some docs.
11764
11765         * dbus/dbus-connection-internal.h:
11766         * dbus/dbus-connection.c:
11767         * dbus/dbus-connection.h:
11768         Make threadsafe.
11769         Change _peek to _borrow,_return & _steal_borrowed.
11770         Change disconnect callback to event.
11771         Make dbus_connection_dispatch_messages reentrant.
11772
11773         * dbus/dbus-transport.c:
11774         Don't ref the connection on calls to the transport
11775         implementation.
11776
11777         * dbus/dbus-message-handler.c:
11778         Make threadsafe.
11779
11780         * glib/dbus-gmain.c:
11781         Don't use peek_message anymore
11782
11783         * test/Makefile.am:
11784         * test/debug-thread.c:
11785         * test/debug-thread.h:
11786         Simple thread implementation that asserts() on deadlocks in
11787         single-threaded code.
11788
11789         * test/bus-test.c:
11790         (main) Call debug_threads_init.
11791
11792         * test/watch.c:
11793         Use disconnect message instead of disconnect callback.
11794
11795         * bus/connection.c:
11796         * bus/connection.h:
11797         Don't call dbus_connection_set_disconnect_function. Instead export
11798         bus_connection_disconnect.
11799
11800         * bus/dispatch.c:
11801         Call bus_connection_disconnect when we get a disconnected message.
11802
11803 2003-02-15  Havoc Pennington  <hp@pobox.com>
11804
11805         * dbus/dbus-message.c (dbus_message_new): fool around with the
11806         docs
11807
11808 2003-02-14  Havoc Pennington  <hp@pobox.com>
11809
11810         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11811
11812         * dbus/dbus-memory.c: fail if the debug functions indicate we
11813         should
11814
11815         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11816         (_dbus_decrement_fail_alloc_counter): debug functions to
11817         simulate memory allocation failures
11818
11819 2003-02-14  Havoc Pennington  <hp@pobox.com>
11820
11821         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11822         to DBusError
11823
11824 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11825
11826         * bus/driver.c: (bus_driver_handle_hello):
11827         * bus/driver.h:
11828         * bus/services.c: (bus_service_lookup):
11829         Reorder message sending so we get a more sane order.
11830
11831         * test/bus-test.c: (message_handler):
11832         Fix tyop.
11833
11834 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11835
11836         * bus/driver.c: (bus_driver_send_service_deleted),
11837         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11838         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11839         (bus_driver_send_welcome_message),
11840         (bus_driver_handle_list_services),
11841         (bus_driver_handle_acquire_service),
11842         (bus_driver_handle_service_exists):
11843         * dbus/dbus-bus.c: (dbus_bus_register_client),
11844         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11845         * dbus/dbus-errors.c: (dbus_result_to_string):
11846         * dbus/dbus-errors.h:
11847         * dbus/dbus-message.c: (dbus_message_append_args),
11848         (dbus_message_append_args_valist), (dbus_message_get_args),
11849         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11850         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11851         (dbus_message_iter_get_byte_array),
11852         (dbus_message_iter_get_string_array), (message_iter_test),
11853         (check_message_handling), (_dbus_message_test):
11854         * dbus/dbus-message.h:
11855         * test/bus-test.c: (main):
11856         Change fields to arguments in messages, so that they won't be
11857         confused with header fields.
11858
11859         * glib/test-dbus-glib.c: (main):
11860         Remove append_fields from hello message.
11861
11862 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11863
11864         * dbus/dbus-errors.c:
11865         * dbus/dbus-message.c:
11866         * dbus/dbus-string.c:
11867         Documentation fixes.
11868
11869 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11870
11871         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11872         (remove_timeout):
11873         Implement support for timeouts in dbus-glib.
11874
11875 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11876
11877         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11878         * dbus/dbus-message.c: (process_test_subdir):
11879         * test/break-loader.c: (find_breaks_based_on):
11880         Plug some memory leaks.
11881
11882 2003-02-13  Richard Hult  <rhult@codefactory.se>
11883
11884         * bus/main.c: Fix build.
11885
11886         * dbus/dbus-errors.h:
11887         * dbus/dbus-errors.c: Fix copyright for Anders.
11888
11889 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11890
11891         * bus/Makefile.am:
11892         Add utils.[ch]
11893
11894         * bus/connection.c: (bus_connection_foreach):
11895         Fix a warning.
11896
11897         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11898         (unescape_string), (new_section), (parse_section_start),
11899         (parse_key_value), (report_error), (bus_desktop_file_load),
11900         (bus_desktop_file_get_string):
11901         * bus/desktop-file.h:
11902         Use DBusError for error reporting.
11903
11904         * bus/dispatch.c: (send_one_message),
11905         (bus_dispatch_message_handler):
11906         * bus/driver.c: (bus_driver_send_service_deleted),
11907         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11908         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11909         (bus_driver_send_welcome_message),
11910         (bus_driver_handle_list_services),
11911         (bus_driver_handle_acquire_service),
11912         (bus_driver_handle_service_exists):
11913         * bus/loop.c: (bus_loop_run):
11914         * bus/main.c:
11915         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11916
11917         * bus/utils.c: (bus_wait_for_memory):
11918         * bus/utils.h:
11919         New files with general utility functions.
11920
11921         * dbus/dbus-internals.h:
11922         Remove _DBUS_HANDLE_OOM.
11923
11924 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11925
11926         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11927         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11928         * dbus/dbus-errors.h:
11929         Add DBusError structure.
11930
11931 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11932
11933         * test/data/valid-messages/standard-acquire-service.message:
11934         * test/data/valid-messages/standard-hello.message:
11935         * test/data/valid-messages/standard-list-services.message:
11936         * test/data/valid-messages/standard-service-exists.message:
11937         Add some standard messages.
11938
11939 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11940
11941         * bus/driver.c: (bus_driver_send_welcome_message),
11942         (bus_driver_handle_list_services),
11943         (bus_driver_handle_acquire_service),
11944         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11945         Update for API changes in libdbus.
11946
11947         * dbus/dbus-message.c: (dbus_message_new_reply):
11948         * dbus/dbus-message.h:
11949         Remove the name argument. The spec states that replies shouldn't
11950         have a name.
11951
11952 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11953
11954         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11955         (report_error), (bus_desktop_file_load), (lookup_section),
11956         (lookup_line), (bus_desktop_file_get_raw),
11957         (bus_desktop_file_get_string):
11958         * bus/desktop-file.h:
11959         Some fixes, and new functions for getting a key value from a section.
11960
11961 2003-02-13  Havoc Pennington  <hp@pobox.com>
11962
11963         * test/data/auth/fail-after-n-attempts.auth-script: new test
11964
11965         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11966         reject the client.
11967
11968 2003-02-13  Havoc Pennington  <hp@pobox.com>
11969
11970         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11971         dbus_credentials_match were backward
11972
11973         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11974         NO_CREDENTIALS and ROOT_CREDENTIALS
11975
11976         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11977         into here. Never process more commands after we've reached an
11978         end state; store further data as unused bytes.
11979
11980         * test/data/auth/*: add more auth tests
11981
11982         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11983         command to match exact string and EXPECT_UNUSED to match unused
11984         bytes
11985
11986         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11987
11988 2003-02-12  Havoc Pennington  <hp@pobox.com>
11989
11990         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11991         \r off of popped lines
11992
11993         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11994         scripts
11995
11996         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11997         SEND, append \r\n
11998
11999 2003-02-12  Havoc Pennington  <hp@pobox.com>
12000
12001         * dbus/Makefile.am: remove break-loader from the build, since it
12002         moved.
12003
12004         * configure.in: add --enable-gcov to turn on coverage profiling
12005         flags and disable optimization
12006
12007 2003-02-10  Havoc Pennington  <hp@pobox.com>
12008
12009         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12010         initial cut at test framework for DBusAuth from laptop.
12011         Doesn't quite work yet but it compiles and I need to get
12012         it off the 266mhz laptop. ;-)
12013
12014         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12015         fix a memleak in error case
12016
12017 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12018
12019         * bus/Makefile.am:
12020         * bus/desktop-file.c:
12021         * bus/desktop-file.h:
12022         Add a desktop file parser.
12023
12024 2003-02-11  Zack Rusin  <zack@kde.org>
12025
12026         * qt/message.[h|cpp]: sample implementation
12027         of the KDE wrapper for DBusMessage
12028
12029 2003-02-09  Zack Rusin  <zack@kde.org>
12030
12031         * test/bus-test.c: make_it_compile
12032         * doc/dbus-specification.sgml: minimal semantic fix
12033
12034 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12035
12036         Release 0.3
12037
12038         * NEWS: Update
12039
12040 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12041
12042         * dbus/Makefile.am:
12043         * dbus/dbus-break-loader.c:
12044         * test/Makefile.am:
12045         * test/break-loader.c:
12046         Move dbus-break-loader to test/ and rename it to break-loader.
12047
12048 2003-02-02  Havoc Pennington  <hp@pobox.com>
12049
12050         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12051         for code to manage cookies in your home directory
12052
12053         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12054
12055         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12056         to authenticate, then disconnect the client.
12057
12058 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12059
12060         * dbus/dbus-message.c (dbus_message_append_fields):
12061         Correct docs.
12062
12063 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12064
12065         * doc/dbus-specification.sgml:
12066         Update address format section.
12067
12068 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12069
12070         * test/Makefile.am:
12071         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12072         (message_handler), (new_connection_callback), (loop_quit),
12073         (loop_run), (main):
12074         Add bus test.
12075
12076 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12077
12078         * bus/driver.c: (bus_driver_handle_service_exists):
12079         Simplify the code a bit.
12080
12081         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12082         Fix a silly.
12083
12084 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12085
12086         * bus/Makefile.am:
12087         Add libdbus-daemon.la and link to it.
12088
12089 2003-02-01  James Willcox  <jwillcox@gnome.org>
12090
12091         * bus/driver.c: (bus_driver_handle_own_service):
12092         Actually include the service reply code in the message.
12093
12094 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12095
12096         * bus/driver.c: (bus_driver_handle_service_exists):
12097         Don't unref the incoming message.
12098
12099 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12100
12101         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12102
12103 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12104
12105         * dbus/dbus-server.c: (dbus_server_listen):
12106         * dbus/dbus-transport.c: (_dbus_transport_open):
12107         ifdef out the calls to the debug transport and server.
12108
12109 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12110
12111         * dbus/dbus-watch.c (dbus_watch_get_flags):
12112         Add note in the docs that ERROR or HANGUP won't be returned
12113         and are assumed always on.
12114
12115         * glib/dbus-gmain.c (add_watch):
12116         Always add IO_ERR | IO_HUP
12117
12118         * dbus/dbus-message.h:
12119         Add semicolon after dbus_message_iter_get_string_array().
12120         Makes qt code build again
12121
12122 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12123
12124         * bus/driver.c: (create_unique_client_name),
12125         (bus_driver_handle_hello):
12126         Don't take a name, just use a numeric id to identify
12127         each client.
12128
12129         * dbus/Makefile.am:
12130         * dbus/dbus-bus.c: (dbus_bus_register_client),
12131         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12132         * dbus/dbus-bus.h:
12133         Add new convenience functions for communicating with the bus.
12134
12135         * dbus/dbus-message.h:
12136
12137         * dbus/dbus-protocol.h:
12138         Fix a typo.
12139
12140 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12141
12142         * dbus/dbus-message.c (dbus_message_append_fields):
12143         Add some more doc comments.
12144
12145 2003-02-01  Havoc Pennington  <hp@pobox.com>
12146
12147         * dbus/dbus-break-loader.c (randomly_modify_length): change
12148         a 4-byte value in the message as if it were a length
12149
12150         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12151         execute bit on saved files
12152
12153 2003-02-01  Havoc Pennington  <hp@pobox.com>
12154
12155         * dbus/dbus-break-loader.c (main): new program to find messages
12156         that break the loader.
12157
12158         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12159         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12160
12161         * dbus/dbus-string.c (_dbus_string_set_byte): new
12162
12163 2003-01-31  Havoc Pennington  <hp@pobox.com>
12164
12165         * dbus/dbus-message.c: refactor the test code to be more general,
12166         in preparation for writing a "randomly permute test cases to
12167         try to break the loader" program.
12168
12169 2003-01-31  Havoc Pennington  <hp@pobox.com>
12170
12171         * doc/dbus-specification.sgml: work on the specification
12172
12173         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12174         the protocol version of the message.
12175
12176         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12177         no longer specifies that.
12178         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12179         1/2/3/4)
12180
12181         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12182         "break" for DBUS_TYPE_NIL, remove @todo
12183
12184 2003-01-31  Havoc Pennington  <hp@pobox.com>
12185
12186         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12187         just set_is_error/get_is_error as this is a commonly-used
12188         function, and write docs.
12189
12190 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12191
12192         * dbus/dbus-address.c: (dbus_address_entry_free):
12193         Free key and value lists.
12194
12195         * dbus/dbus-internals.c: (_dbus_type_to_string):
12196         Add the types we didn't have.
12197
12198         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12199         (_dbus_marshal_validate_arg):
12200         Add NIL types.
12201
12202         * dbus/dbus-message.c: (dbus_message_set_sender):
12203         Remove todo about being able to set sender to NULL.
12204
12205         (dbus_message_set_is_error_reply),
12206         (dbus_message_get_is_error_reply):
12207         * dbus/dbus-message.h:
12208         New functions.
12209
12210         * dbus/dbus-protocol.h:
12211         Add error reply flag.
12212
12213         * test/data/valid-messages/opposite-endian.message:
12214         Add NIL type to test.
12215
12216 2003-01-31  Havoc Pennington  <hp@pobox.com>
12217
12218         * doc/dbus-specification.sgml: fully specify the header.  Add
12219         flags and major protocol version, and change header/body len to
12220         unsigned.
12221
12222         * dbus/dbus-message-builder.c (append_saved_length): append length
12223         as uint32
12224
12225         * dbus/dbus-message.c (dbus_message_create_header): change header
12226         length and body length to unsigned. Add the new fields from the
12227         spec
12228         (_dbus_message_loader_return_buffer): unsigned header/body len
12229
12230 2003-01-30  Havoc Pennington  <hp@pobox.com>
12231
12232         * dbus/dbus-auth.c: rework to use only REJECTED, no
12233         MECHANISMS
12234
12235         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12236         use REJECTED, suggested by Mark McLoughlin
12237
12238 2003-01-30  Havoc Pennington  <hp@pobox.com>
12239
12240         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12241         a better way to report errors here. e.g.  "unix address lacks
12242         path" or something. also "no such file" when the path doesn't
12243         exist, etc.
12244
12245         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12246         leaking list nodes
12247         (dbus_parse_address): add @todo about documenting address format,
12248         and allowing , and ; to be escaped
12249
12250 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12251
12252         * dbus/Makefile.am:
12253         Add dbus-address.[ch]
12254
12255         * dbus/dbus-address.c: (dbus_address_entry_free),
12256         (dbus_address_entries_free), (create_entry),
12257         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12258         (dbus_parse_address), (_dbus_address_test):
12259         * dbus/dbus-address.h:
12260         New files for dealing with address parsing.
12261
12262         * dbus/dbus-connection.c:
12263         Document timeout functions.
12264
12265         * dbus/dbus-message.c:
12266         Document dbus_message_new_from_message.
12267
12268         * dbus/dbus-server-debug.c:
12269         Document.
12270
12271         * dbus/dbus-server.c: (dbus_server_listen):
12272         Parse address and use correct server implementation.
12273
12274         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12275         * dbus/dbus-string.h:
12276         New function with test.
12277
12278         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12279         * dbus/dbus-test.h:
12280         Add address tests.
12281
12282         * dbus/dbus-transport-debug.c:
12283         Document.
12284
12285         * dbus/dbus-transport.c: (_dbus_transport_open):
12286         Parse address and use correct transport implementation.
12287
12288 2003-01-30  Havoc Pennington  <hp@pobox.com>
12289
12290         * dbus/dbus-message.c: use message->byte_order instead of
12291         DBUS_COMPILER_BYTE_ORDER throughout.
12292         (dbus_message_create_header): pad header to align the
12293         start of the body of the message to 8-byte boundary
12294
12295         * dbus/dbus-marshal.h: make all the demarshalers take const
12296         DBusString arguments.
12297
12298         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12299         validate message args here, so we don't have to do slow validation
12300         later, and so we catch bad messages as they are incoming. Also add
12301         better checks on header_len and body_len. Also fill in
12302         message->byte_order
12303
12304         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12305         implemented properly)
12306         (_dbus_string_validate_nul): new function to check all-nul
12307
12308         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12309         get_arg_end_pos and remove all validation
12310         (_dbus_marshal_validate_arg): actually do validation here.
12311
12312 2003-01-29  Havoc Pennington  <hp@pobox.com>
12313
12314         * dbus/dbus-message.c (check_message_handling): fix assertion
12315         failure on set_client_serial
12316
12317 2003-01-28  Havoc Pennington  <hp@pobox.com>
12318
12319         * dbus/dbus-server-debug.c: Add doc section comments
12320
12321         * dbus/dbus-transport-debug.c: add doc section comments
12322
12323 2003-01-28  Havoc Pennington  <hp@redhat.com>
12324
12325         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12326         the reverse order from how I had it
12327         (_dbus_string_base64_encode): reverse encoding order. I was
12328         basically byteswapping everything during encoding.
12329
12330 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12331
12332         * dbus/dbus-connection-internal.h:
12333         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12334         (_dbus_connection_remove_timeout):
12335         Add functions for adding and removing timeouts.
12336
12337         * dbus/dbus-message.c: (dbus_message_new_from_message):
12338         Add new function that takes a message and creates an exact
12339         copy of it, but with the refcount set to 1.
12340         (check_message_handling):
12341         Fix build error.
12342
12343         * dbus/dbus-server-protected.h:
12344         * dbus/dbus-server.c: (_dbus_server_init_base),
12345         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12346         (dbus_server_set_timeout_functions):
12347         (_dbus_server_remove_timeout):
12348         New functions so that a server can add and remove timeouts.
12349
12350         (dbus_server_listen):
12351         Add commented out call to dbus_server_debug_new.
12352
12353         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12354         Actually set the handler, doh.
12355
12356         * dbus/dbus-transport.c: (_dbus_transport_open):
12357         Add commented out call to dbus_transport_debug_client_new.
12358
12359         * dbus/Makefile.am:
12360         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12361
12362 2003-01-28  Havoc Pennington  <hp@pobox.com>
12363
12364         * dbus/dbus-message.c (check_message_handling): function to check
12365         on the loaded message, iterates over it etc.
12366
12367 2003-01-28  Havoc Pennington  <hp@pobox.com>
12368
12369         * test/Makefile.am (dist-hook): fix make distdir
12370
12371         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12372
12373 2003-01-27  Havoc Pennington  <hp@pobox.com>
12374
12375         * dbus/dbus-mempool.c (time_for_size): replace printf with
12376         _dbus_verbose
12377
12378         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12379         empty lines; fix the SAVE_LENGTH stuff to be
12380         START_LENGTH/END_LENGTH so it actually works; couple other
12381         bugfixes
12382
12383         * test/Makefile.am (dist-hook): add dist-hook for .message files
12384
12385         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12386         can be constant or locked.
12387         (_dbus_string_free): allow freeing a const string as
12388         documented/intended
12389
12390         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12391
12392         * dbus/dbus-test-main.c (main): take an argument which is the
12393         directory containing test data
12394
12395         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12396         argument to this and load all the messages in test/data/
12397         checking that they can be loaded or not loaded as appropriate.
12398
12399 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12400
12401         * bus/dispatch.c: (bus_dispatch_message_handler):
12402         Dispatch messages sent to services.
12403
12404         * bus/driver.c: (bus_driver_send_service_deleted),
12405         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12406         (bus_driver_send_service_acquired):
12407         Add helper functions for sending service related messages.
12408
12409         (bus_driver_send_welcome_message):
12410         Send HELLO_REPLY instead of WELCOME.
12411
12412         (bus_driver_handle_list_services):
12413         Send LIST_SERVICES_REPLY instead of SERVICES.
12414
12415         (bus_driver_handle_own_service),
12416         (bus_driver_handle_service_exists):
12417         New message handlers.
12418
12419         (bus_driver_handle_message):
12420         Invoke new message handlers.
12421
12422         (bus_driver_remove_connection):
12423         Don't remove any services here since that's done automatically
12424         by bus_service_remove_owner now.
12425
12426         * bus/driver.h:
12427         New function signatures.
12428
12429         * bus/services.c: (bus_service_add_owner):
12430         Send ServiceAcquired message if we're the only primary owner.
12431
12432         (bus_service_remove_owner):
12433         Send ServiceAcquired/ServiceLost messages.
12434
12435         (bus_service_set_prohibit_replacement),
12436         (bus_service_get_prohibit_replacement):
12437         Functions for setting prohibit replacement.
12438
12439         (bus_service_has_owner):
12440         New function that checks if a connection is in the owner queue of
12441         a certain service.
12442
12443         * bus/services.h:
12444         Add new function signatures.
12445
12446         * dbus/dbus-list.c: (_dbus_list_test):
12447         Add tests for _dbus_list_remove_last and traversing the list backwards.
12448
12449         * dbus/dbus-list.h:
12450         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12451         go any further, so return NULL then.
12452
12453         * dbus/dbus-protocol.h:
12454         Add new messages, service flags and service replies.
12455
12456 2003-01-26  Havoc Pennington  <hp@pobox.com>
12457
12458         * dbus/dbus-message-builder.c: implement, completely untested.
12459
12460         * test/data/*: add data to be used in testing.
12461         ".message" files are our simple loadable text format.
12462         ".message-raw" will be binary dumps of messages.
12463
12464         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12465
12466 2003-01-26  Havoc Pennington  <hp@pobox.com>
12467
12468         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12469
12470         * dbus/dbus-errors.c (dbus_result_to_string): add
12471         file errors
12472
12473         * dbus/dbus-message-builder.c: new file, will contain code to load
12474         up messages from files. Not implemented yet.
12475
12476 2003-01-26  Havoc Pennington  <hp@pobox.com>
12477
12478         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12479         the sender by setting to NULL
12480
12481 2003-01-26  Havoc Pennington  <hp@pobox.com>
12482
12483         The unit tests pass, but otherwise untested.  If it breaks, the
12484         tests should have been better. ;-)
12485
12486         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12487         the connection.
12488
12489         * dbus/dbus-message.c: redo everything so we maintain
12490         message->header as the only copy of the various fields.
12491         This avoids the possibility of out-of-memory in some cases,
12492         for example dbus_message_lock() can't run out of memory anymore,
12493         and avoids extra copying. Figured I may as well go ahead and do
12494         this since it was busted for dbus_message_lock to not return
12495         failure on OOM, and dbus_message_write_header was totally
12496         unchecked for OOM. Also fixed some random other bugs.
12497
12498         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12499         that strings are nul-terminated. Also, end_pos can be equal
12500         to string length just not greater than, I think.
12501         (_dbus_marshal_set_int32): new function
12502         (_dbus_marshal_set_uint32): new function
12503         (_dbus_marshal_set_string): new function
12504
12505         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12506         a warning, init timeout_list to NULL
12507         (dbus_connection_send_message): don't use uninitialized variable
12508         "serial"
12509
12510         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12511
12512 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12513
12514         * bus/driver.c: (bus_driver_handle_hello),
12515         (bus_driver_send_welcome_message):
12516         Plug leaks
12517
12518 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12519
12520         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12521         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12522         (dbus_connection_unref):
12523         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12524         * dbus/dbus-message.c: (dbus_message_unref),
12525         Plug memory leaks.
12526
12527         (dbus_message_get_fields):
12528         Remove debugging printout.
12529
12530         (_dbus_message_loader_return_buffer):
12531         Don't store the header string.
12532
12533         (_dbus_message_test):
12534         Plug leaks.
12535
12536 2003-01-26  Richard Hult  <rhult@codefactory.se>
12537
12538         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12539         the file descriptor list, since it can change under us.
12540
12541 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12542
12543         * glib/dbus-gmain.c: (dbus_connection_prepare),
12544         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12545         (remove_watch), (dbus_connection_hookup_with_g_main):
12546         Rewrite the glib handling to use its own GSource instead of a
12547         GIOChannel so we can catch messages put in the queue while waiting
12548         for a reply.
12549
12550 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12551
12552         * bus/Makefile.am:
12553         * bus/connection.c: (connection_disconnect_handler),
12554         (connection_watch_callback), (bus_connection_setup):
12555         * bus/dispatch.c: (send_one_message),
12556         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12557         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12558         * bus/dispatch.h:
12559         * bus/driver.c: (bus_driver_send_service_deleted),
12560         (bus_driver_send_service_created), (bus_driver_handle_hello),
12561         (bus_driver_send_welcome_message),
12562         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12563         (bus_driver_handle_message):
12564         * bus/driver.h:
12565         Refactor code, put the message dispatching in its own file. Use
12566         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12567         is disconnected.
12568
12569 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12570
12571         * dbus/dbus-internals.h:
12572         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12573
12574         * dbus/dbus-message.c: (dbus_message_get_sender):
12575         * dbus/dbus-message.h:
12576         Implement dbus_message_get_sender.
12577
12578         * dbus/dbus-protocol.h:
12579         Add message and service defines.
12580
12581 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12582
12583         * dbus/dbus-connection.c: (dbus_connection_send_message):
12584         * dbus/dbus-message-internal.h:
12585         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12586         (dbus_message_write_header):
12587         Remove _dbus_messag_unlock and don't set the client serial on a
12588         message if one already exists.
12589
12590 2003-01-24  Havoc Pennington  <hp@pobox.com>
12591
12592         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12593         list_pool
12594
12595         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12596         on OOM
12597
12598 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12599
12600         * dbus/dbus-list.c: (alloc_link), (free_link):
12601         Use a memory pool for the links.
12602
12603 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12604
12605         * bus/connection.c: (bus_connection_foreach):
12606         * bus/connection.h:
12607         Add new bus_connection_foreach function.
12608
12609         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12610         Add function that broadcasts a message to all clients.
12611
12612         (bus_driver_send_service_created), (bus_driver_handle_hello),
12613         (bus_driver_send_welcome_message),
12614         (bus_driver_handle_list_services), (bus_driver_message_handler):
12615         Implement functions that take care of listing services, and notifying
12616         clients when new services are created.
12617
12618         * bus/services.c: (bus_services_list):
12619         * bus/services.h:
12620         Add new function that returns an array of strings with the currently
12621         registered services.
12622
12623         * glib/dbus-glib.h:
12624         * glib/dbus-gmain.c:
12625         Update copyright year.
12626
12627 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12628
12629         * dbus/dbus-connection.c: (dbus_connection_send_message):
12630         Unlock the message in case it was sent earlier.
12631
12632         (dbus_connection_send_message_with_reply_and_block):
12633         Remove the reply message from the list.
12634
12635         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12636         Set array_len and new_pos correctly.
12637
12638         (_dbus_marshal_test):
12639         Remove debug output.
12640
12641         * dbus/dbus-message-internal.h:
12642         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12643         New function that returns the reply serial.
12644
12645         (_dbus_message_unlock):
12646         New function that unlocks a message and resets its header.
12647
12648         (dbus_message_append_string_array),
12649         (dbus_message_get_fields_valist),
12650         (dbus_message_iter_get_field_type),
12651         (dbus_message_iter_get_string_array),
12652         (dbus_message_get_fields),
12653         (dbus_message_append_fields_valist):
12654         Handle string arrays.
12655
12656         (dbus_message_set_sender):
12657         Make this function public since the bus daemon needs it.
12658
12659         (decode_header_data):
12660         Set the reply serial to -1 initially.
12661
12662         * dbus/dbus-message.h:
12663         Add dbus_message_set_sender.
12664
12665 2003-01-24  Havoc Pennington  <hp@pobox.com>
12666
12667         * doc/dbus-specification.sgml: add some stuff
12668
12669 2003-01-22  Havoc Pennington  <hp@pobox.com>
12670
12671         * doc/dbus-specification.sgml: Start to document the protocol.
12672
12673 2003-01-22  Havoc Pennington  <hp@pobox.com>
12674
12675         * dbus/dbus-connection.c
12676         (dbus_connection_send_message_with_reply_and_block): add some @todo
12677
12678         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12679
12680 2003-01-21  Havoc Pennington  <hp@pobox.com>
12681
12682         (patch untested because can't compile)
12683
12684         * bus/driver.c (create_unique_client_name): make this function
12685         never recycle client names. Also, caller should initialize
12686         the DBusString.
12687
12688         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12689
12690 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12691
12692         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12693         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12694         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12695         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12696         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12697         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12698         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12699         * dbus/dbus-marshal.h:
12700         * dbus/dbus-protocol.h:
12701         Add support for marshalling and demarshalling integer, double
12702         and string arrays.
12703
12704 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12705
12706         * bus/Makefile.am:
12707         Add driver.[ch]
12708
12709         * bus/connection.c: (connection_disconnect_handler):
12710         Remove the connection from the bus driver's list.
12711
12712         (connection_watch_callback): Dispatch messages.
12713
12714         (free_connection_data): Free connection name.
12715
12716         (bus_connection_setup): Add connection to the bus driver's list.
12717         (bus_connection_remove_owned_service):
12718         (bus_connection_set_name), (bus_connection_get_name):
12719         Add functions for setting and getting the connection's name.
12720
12721         * bus/connection.h:
12722         Add function headers.
12723
12724         * bus/driver.c: (create_unique_client_name),
12725         (bus_driver_handle_hello_message),
12726         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12727         (bus_driver_add_connection), (bus_driver_remove_connection):
12728         * bus/driver.h:
12729         * bus/main.c:
12730         * bus/services.c: (bus_service_free):
12731         * bus/services.h:
12732         New file that handles communication and registreation with the bus
12733         itself.
12734
12735 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12736
12737         * dbus/dbus-connection.c: (dbus_connection_send_message):
12738         Add a new client_serial parameter.
12739
12740         (dbus_connection_send_message_with_reply):
12741         Remove a @todo since we've implemented the blocking function.
12742
12743         (dbus_connection_send_message_with_reply_and_block):
12744         New function that sends a message and waits for a reply and
12745         then returns the reply.
12746
12747         * dbus/dbus-connection.h:
12748         Add new functions.
12749
12750         * dbus/dbus-errors.c: (dbus_result_to_string):
12751         * dbus/dbus-errors.h:
12752         Add new DBUS_RESULT.
12753
12754         * dbus/dbus-message-internal.h:
12755         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12756         (_dbus_message_set_sender), (dbus_message_write_header),
12757         (dbus_message_new_reply), (decode_header_data),
12758         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12759         * dbus/dbus-message.h:
12760         Add new functions that set the reply serial and sender.
12761         Also marshal and demarshal them correctly and add test.
12762
12763         * dbus/dbus-protocol.h:
12764         Add new DBUS_MESSAGE_TYPE_SENDER.
12765
12766         * glib/dbus-glib.h:
12767         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12768         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12769         (dbus_connection_hookup_with_g_main):
12770         * glib/test-dbus-glib.c: (main):
12771         Rewrite to use GIOChannel and remove the GSource crack.
12772
12773         * test/echo-client.c: (main):
12774         * test/watch.c: (check_messages):
12775         Update for changed APIs
12776
12777 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12778
12779         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12780
12781         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12782         Create a DBusTimeoutList.
12783         (dbus_connection_set_timeout_functions): Add new function to
12784         set timeout callbacks
12785
12786         * dbus/dbus-connection.h: Add public DBusTimeout API.
12787
12788         * dbus/dbus-message.c: (dbus_message_get_service):
12789         * dbus/dbus-message.h:  New function.
12790
12791         * dbus/dbus-server.c: Fix small doc typo.
12792
12793         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12794
12795 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12796
12797         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12798         of the string, just as long as specified.
12799
12800 2003-01-19  Havoc Pennington  <hp@pobox.com>
12801
12802         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12803         new function
12804
12805         * dbus/dbus-server.c (dbus_server_set_max_connections)
12806         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12807         keep track of current number of connections, and add API for
12808         setting a max (but haven't implemented enforcing the max yet)
12809
12810 2003-01-18  Havoc Pennington  <hp@pobox.com>
12811
12812         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12813         reading/writing if read_watch != NULL or write_watch != NULL.
12814
12815         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12816         the message loader code to actually load message->header and
12817         message->body into the newly-created message.
12818
12819         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12820         in OOM case
12821
12822         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12823         (dbus_connection_get_max_message_size)
12824         (dbus_connection_set_max_live_messages_size)
12825         (dbus_connection_get_max_live_messages_size): implement some
12826         resource limitation functions
12827
12828         * dbus/dbus-resources.c: new file implementing some of the
12829         resource limits stuff
12830
12831         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12832         missing docs, add @todo to handle OOM etc.
12833
12834         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12835         docs
12836
12837 2003-01-18  Havoc Pennington  <hp@pobox.com>
12838
12839         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12840         connection if it hasn't been already.
12841
12842         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12843         replace with DisconnectFunction.
12844
12845 2003-01-18  Havoc Pennington  <hp@pobox.com>
12846
12847         Building --disable-verbose-mode --disable-asserts --disable-tests
12848         cuts the library from 112K to 45K or so
12849
12850         * configure.in: check for varargs macro support,
12851         add --enable-verbose-mode, --enable-asserts.
12852
12853         * dbus/dbus-internals.h (_dbus_assert): support
12854         DBUS_DISABLE_ASSERT
12855         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12856
12857 2003-01-18  Havoc Pennington  <hp@pobox.com>
12858
12859         * dbus/dbus-test.c: include config.h so that tests actually run
12860
12861         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12862         so the failure mode when that assumption fails will be plenty
12863         obvious.
12864
12865 2003-01-18  Havoc Pennington  <hp@pobox.com>
12866
12867         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12868
12869         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12870         the distribution
12871
12872         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12873         since we don't want to use those in make check
12874
12875 2003-01-15  Havoc Pennington  <hp@redhat.com>
12876
12877         Release 0.2
12878
12879         * NEWS: update
12880
12881 2003-01-15  Havoc Pennington  <hp@redhat.com>
12882
12883         * test/Makefile.am: fix so that test source code ends up in the
12884         distribution on make distcheck
12885
12886 2003-01-15  Havoc Pennington  <hp@redhat.com>
12887
12888         Release 0.1.
12889
12890         * NEWS: update
12891
12892 2003-01-15  Havoc Pennington  <hp@redhat.com>
12893
12894         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12895         fix build when --disable-tests
12896
12897         * Makefile.am (EXTRA_DIST): put HACKING in here
12898
12899         * HACKING: document procedure for making a tarball release.
12900
12901 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12902
12903         * bus/connection.c: (connection_error_handler),
12904         (bus_connection_setup):
12905         * bus/main.c: (main):
12906         Make sure that the DBusConnectionData struct is NULLed
12907         out to prevent a segfault.
12908
12909         * dbus/dbus-errors.c: (dbus_result_to_string):
12910         * dbus/dbus-errors.h:
12911         * dbus/dbus-message.c: (dbus_message_get_fields),
12912         (dbus_message_get_fields_valist), (_dbus_message_test):
12913         * dbus/dbus-message.h:
12914         Make dbus_message_get_fields return a result code so we can
12915         track invalid fields as well as oom.
12916
12917 2003-01-11  Havoc Pennington  <hp@pobox.com>
12918
12919         * configure.in: change --enable-test/--enable-ansi action-if-given
12920         to enable_foo=$enableval instead of enable_foo=yes
12921
12922 2003-01-08  Havoc Pennington  <hp@pobox.com>
12923
12924         * dbus/dbus-string.c (_dbus_string_align_length): new function
12925
12926         * dbus/dbus-test-main.c: move main() for test app here
12927         * dbus/dbus-test.c
12928         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12929         symbol to run tests, because dbus-test isn't in the main
12930         library
12931
12932         Code review nitpicks.
12933
12934         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12935         for people with narrow emacs ;-). Assert client_serial was filled
12936         in. Assert message->name != NULL.
12937         (dbus_message_append_fields): have "first_field_type" arg separate
12938         from va list, needed for C++ binding that also uses varargs IIRC
12939         and helps with type safety
12940         (dbus_message_new): add @todo about using DBusString to store
12941         service/name internally
12942         (dbus_message_new): don't leak ->service and ->name on OOM later
12943         in the function
12944         (dbus_message_unref): free the service name
12945         (dbus_message_get_fields): same change to varargs
12946         i.e. first_field_type
12947         (_dbus_message_loader_return_buffer): assert that the message data
12948         is aligned (if not it's a bug in our code). Put in verbose griping
12949         about why we set corrupted = TRUE.
12950         (decode_header_data): add FIXME that char* is evil.  Was going to
12951         add FIXME about evil locale-specific string.h strncmp, but just
12952         switched to wacky string-as-uint32 optimization. Move check for
12953         "no room for field name" above get_const_data_len() to avoid
12954         assertion failure in get_const_data_len if we have trailing 2
12955         bytes or the like. Check for service and name fields being
12956         provided twice. Don't leak service/name on error. Require field
12957         names to be aligned to 4 bytes.
12958
12959         * dbus/dbus-marshal.c: move byte swap stuff to header
12960         (_dbus_pack_int32): uscore-prefix
12961         (_dbus_unpack_int32): uscore-prefix
12962         (_dbus_unpack_uint32): export
12963         (_dbus_demarshal_string): add @todo complaining about use of
12964         memcpy()
12965         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12966         handling allowing corrupt data to go unchecked
12967
12968 2003-01-08  Havoc Pennington  <hp@redhat.com>
12969
12970         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12971         to the select() as needed for authentication. (should be using
12972         _dbus_poll() not select, but for another day)
12973
12974         * dbus/dbus.h: include dbus/dbus-protocol.h
12975
12976 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12977
12978         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12979         dbus-connection.h
12980
12981 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12982
12983         * dbus/dbus-internals.c: (_dbus_type_to_string):
12984         New function that returns a string describing a type.
12985
12986         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12987         * dbus/dbus-marshal.h:
12988         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12989         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12990         (dbus_message_iter_get_byte_array):
12991         * dbus/dbus-message.h:
12992         Add new convenience functions for appending and getting message fields.
12993         Also add demarshalling routines for byte arrays.
12994
12995 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12996
12997         * dbus/dbus-connection-internal.h:
12998         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12999         (_dbus_connection_get_next_client_serial),
13000         (dbus_connection_send_message):
13001         * dbus/dbus-internals.h:
13002         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13003         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13004         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13005         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13006         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13007         (_dbus_verbose_bytes), (_dbus_marshal_test):
13008         * dbus/dbus-marshal.h:
13009         * dbus/dbus-message-internal.h:
13010         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13011         (dbus_message_write_header), (_dbus_message_lock),
13012         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13013         (dbus_message_get_name), (dbus_message_append_int32),
13014         (dbus_message_append_uint32), (dbus_message_append_double),
13015         (dbus_message_append_string), (dbus_message_append_byte_array),
13016         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13017         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13018         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13019         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13020         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13021         (decode_header_data), (_dbus_message_loader_return_buffer),
13022         (message_iter_test), (_dbus_message_test):
13023         * dbus/dbus-message.h:
13024         * dbus/dbus-protocol.h:
13025         * dbus/dbus-test.c: (main):
13026         * dbus/dbus-test.h:
13027         * glib/test-dbus-glib.c: (message_handler), (main):
13028         * test/echo-client.c: (main):
13029         * test/watch.c: (check_messages):
13030         Make messages sendable and receivable for real.
13031
13032 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13033
13034         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13035         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13036         * dbus/dbus-message.c: (dbus_message_append_int32),
13037         (dbus_message_append_uint32), (dbus_message_append_double),
13038         (dbus_message_append_string), (dbus_message_append_byte_array):
13039         Handle OOM restoration.
13040
13041 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13042
13043         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13044         (_dbus_demarshal_string), (_dbus_marshal_test):
13045         * dbus/dbus-marshal.h:
13046         * dbus/dbus-message.c: (dbus_message_get_name),
13047         Document these functions.
13048
13049         (dbus_message_append_int32), (dbus_message_append_uint32),
13050         (dbus_message_append_double), (dbus_message_append_string),
13051         (dbus_message_append_byte_array):
13052         * dbus/dbus-message.h:
13053         Add functions for adding message fields of different types.
13054
13055         * dbus/dbus-protocol.h:
13056         Add the different types.
13057
13058 2003-01-05  Havoc Pennington  <hp@pobox.com>
13059
13060         * bus/connection.c: implement routines for handling connections,
13061         first thing is keeping a list of owned services on each connection
13062         and setting up watches etc.
13063
13064         * bus/services.c: implement a mapping from service names to lists
13065         of connections
13066
13067         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13068
13069         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13070         to use static mutexes for global data
13071
13072         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13073         collection of functions to set/get application-specific data
13074         on the DBusConnection.
13075
13076 2003-01-04  Havoc Pennington  <hp@pobox.com>
13077
13078         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13079         (_dbus_poll): new function
13080
13081         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13082         copied from GLib
13083
13084         * bus/loop.c: initial code for the daemon main loop
13085
13086 2003-01-04  Havoc Pennington  <hp@pobox.com>
13087
13088         * test/watch.c (error_handler): make it safe if the error handler
13089         is called multiple times (if we s/error handler/disconnect
13090         handler/ we should just guarantee it's called only once)
13091
13092         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13093         error handler on disconnect (it's quite possible we should
13094         just change the error handler to a "disconnect handler," I'm
13095         not sure we have any other meaningful errors)
13096
13097         * configure.in: check for getpwnam_r
13098
13099         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13100         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13101         mechanism as in SASL spec, using socket credentials
13102
13103         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13104         (_dbus_send_credentials_unix_socket): new function
13105
13106         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13107         dbus_accept()
13108         (_dbus_write): only check errno if <0 returned
13109         (_dbus_write_two): ditto
13110
13111 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13112
13113         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13114         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13115         (_dbus_marshal_test):
13116         * dbus/dbus-marshal.h:
13117         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13118         to _dbus_marshal_utf8_string. Also fix some tests.
13119
13120 2002-12-28  Harri Porten  <porten@kde.org>
13121
13122         * configure.in: added check for C++ compiler and a very cheesy
13123         check for the Qt integration
13124
13125         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13126
13127         * qt/Makefile.am: added
13128
13129         * qt/.cvsignore: added
13130
13131         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13132         latter, added #ifdef QT_THREAD_SUPPORT guard.
13133
13134         * dbus/Makefile.am: added missing headers for make dist
13135
13136 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13137
13138         * dbus/Makefile.am: fixup export-symbols-regex.
13139
13140 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13141
13142         * acinclude.m4: Add this file and put the
13143         PKG_CHECK_MODULE macro in it.
13144
13145 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13146
13147         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13148         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13149         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13150         (_dbus_marshal_test):
13151         Make the demarshalling routines align the pos argument.
13152         Add string marshalling tests and fix the obvious bugs
13153         discovered.
13154
13155 2002-12-26  Havoc Pennington  <hp@pobox.com>
13156
13157         * dbus/dbus-auth.c: fixes fixes fixes
13158
13159         * dbus/dbus-transport-unix.c: wire up support for
13160         encoding/decoding data on the wire
13161
13162         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13163         (_dbus_auth_decode_data): append to target string
13164         instead of nuking it.
13165
13166 2002-12-26  Havoc Pennington  <hp@pobox.com>
13167
13168         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13169         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13170         doh
13171
13172         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13173         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13174         now). Main point is because I wanted unpack_uint32 to implement
13175         _dbus_verbose_bytes
13176         (_dbus_verbose_bytes): new function
13177
13178         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13179
13180         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13181         mechanism to handle a corrupt message stream
13182         (_dbus_message_loader_new): fix preallocation to only prealloc,
13183         not prelengthen
13184
13185         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13186         (_dbus_string_test): enhance tests for copy/move and fix the
13187         functions
13188
13189         * dbus/dbus-transport-unix.c: Hold references in more places to
13190         avoid reentrancy problems
13191
13192         * dbus/dbus-transport.c: ditto
13193
13194         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13195         leak reference count in no-message case
13196
13197         * test/watch.c (do_mainloop): handle adding/removing watches
13198         during iteration over the watches. Also, ref the connection/server
13199         stored on a watch, so we don't try to mangle a destroyed one.
13200
13201         * dbus/dbus-transport-unix.c (do_authentication): perform
13202         authentication
13203
13204         * dbus/dbus-auth.c (get_state): add a state
13205         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13206         (_dbus_auth_get_unused_bytes): append the unused bytes
13207         to the passed in string, rather than prepend
13208
13209         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13210         the auth conversation DBusAuth
13211
13212         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13213         (_dbus_transport_new_for_domain_socket): when creating a
13214         transport, pass in whether it's a client-side or server-side
13215         transport so we know which DBusAuth to create
13216
13217 2002-12-03  Havoc Pennington  <hp@pobox.com>
13218
13219         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13220         _after_ finalizing the derived members
13221         (unix_connection_set): unref watch if we fail to add it
13222
13223         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13224         transport first, so that the connection owned by the
13225         transport will be valid as the transport finalizes.
13226
13227         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13228         if necessary, and remove watches from the connection.
13229
13230         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13231
13232 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13233
13234         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13235         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13236         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13237         (_dbus_marshal_test):
13238         * dbus/dbus-marshal.h:
13239         Add string marshal functions and have the demarshal functions
13240         return the new position.
13241
13242 2002-12-25  Havoc Pennington  <hp@pobox.com>
13243
13244         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13245         it is a simple protocol that just maps directly to SASL.
13246
13247         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13248         initial implementation, not actually used yet.
13249
13250         * dbus/dbus-string.c (_dbus_string_find): new function
13251         (_dbus_string_equal): new function
13252         (_dbus_string_base64_encode): new function
13253         (_dbus_string_base64_decode): new function
13254
13255 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13256
13257         * dbus/Makefile.am:
13258         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13259         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13260         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13261         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13262         * dbus/dbus-marshal.h:
13263         * dbus/dbus-protocol.h:
13264         * dbus/dbus-test.c: (main):
13265         * dbus/dbus-test.h:
13266         Add un-optimized marshalling/demarshalling routines.
13267
13268 2002-12-25  Harri Porten  <porten@kde.org>
13269
13270         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13271
13272 2002-12-24  Zack Rusin  <zack@kde.org>
13273
13274         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13275         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13276         main loop stuff
13277
13278 2002-12-24  Havoc Pennington  <hp@pobox.com>
13279
13280         * glib/dbus-gthread.c: fix include
13281
13282         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13283         I think glib API needs to change, though, as you don't
13284         want to use DBusMessageFunction, you want to use the
13285         DBusMessageHandler object. Probably
13286         dbus_connection_open_with_g_main_loop()
13287         and dbus_connection_setup_g_main_loop() or something like that
13288         (but think of better names...) that just create a connection
13289         that has watch/timeout functions etc. already set up.
13290
13291         * dbus/dbus-connection.c
13292         (dbus_connection_send_message_with_reply): new function just to
13293         show how the message handler helps us deal with replies.
13294
13295         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13296
13297         * dbus/dbus-string.c (_dbus_string_test): free a string that
13298         wasn't
13299
13300         * dbus/dbus-hash.c: use memory pools for the hash entries
13301         (rebuild_table): be more paranoid about overflow, and
13302         shrink table when we can
13303         (_dbus_hash_test): reduce number of sprintfs and write
13304         valid C89. Add tests for case where we grow and then
13305         shrink the hash table.
13306
13307         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13308
13309         * dbus/dbus-connection.c (dbus_connection_register_handler)
13310         (dbus_connection_unregister_handler): new functions
13311
13312         * dbus/dbus-message.c (dbus_message_get_name): new
13313
13314         * dbus/dbus-list.c: fix docs typo
13315
13316         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13317         an object representing a handler for messages.
13318
13319 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13320
13321         * glib/dbus-glib.h:
13322         * glib/dbus-gthread.c: (dbus_gthread_init):
13323         Don't use the gdbus prefix for public functions.
13324
13325 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13326
13327         * Makefile.am:
13328         * configure.in:
13329         Add GLib checks and fixup .pc files
13330
13331         * glib/Makefile.am:
13332         * glib/dbus-glib.h:
13333         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13334         (gdbus_connection_check), (gdbus_connection_dispatch),
13335         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13336         (dbus_connection_gsource_new):
13337         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13338         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13339         * glib/test-dbus-glib.c: (message_handler), (main):
13340         Add GLib support.
13341
13342 2002-12-15  Harri Porten  <porten@kde.org>
13343
13344         * autogen.sh: check for libtoolize before attempting to use it
13345
13346         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13347         struct.
13348
13349         * .cvsignore: ignore more stamp files
13350
13351         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13352
13353         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13354         without make install.
13355
13356 2002-12-15  Havoc Pennington  <hp@pobox.com>
13357
13358         * dbus/dbus-threads.c: add thread stubs that a higher library
13359         layer can fill in. e.g. the GLib wrapper might fill them in with
13360         GThread stuff. We still need to use this thread API to
13361         thread-safe-ize the library.
13362
13363 2002-12-12  Havoc Pennington  <hp@pobox.com>
13364
13365         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13366         below new interfaces and include fewer system headers.
13367
13368         * dbus/dbus-sysdeps.c (_dbus_read): new function
13369         (_dbus_write): new function
13370         (_dbus_write_two): new function
13371         (_dbus_connect_unix_socket): new function
13372         (_dbus_listen_unix_socket): new function
13373
13374         * dbus/dbus-message-internal.h: change interfaces to use
13375         DBusString
13376
13377 2002-12-11  Havoc Pennington  <hp@pobox.com>
13378
13379         * dbus/dbus-types.h: add dbus_unichar
13380
13381         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13382
13383         * dbus/dbus-connection.c (dbus_connection_send_message): return
13384         TRUE on success
13385
13386         * dbus/dbus-transport.c: include dbus-watch.h
13387
13388         * dbus/dbus-connection.c: include dbus-message-internal.h
13389
13390         * HACKING: add file with coding guidelines stuff.
13391
13392         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13393         handling here, for security purposes (as in vsftpd). Not actually
13394         using this class yet.
13395
13396         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13397         system/libc usage here, as in vsftpd, for ease of auditing (and
13398         should also simplify portability). Haven't actually moved all the
13399         system/libc usage into here yet.
13400
13401 2002-11-25  Havoc Pennington  <hp@pobox.com>
13402
13403         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13404         always print the first verbose message.
13405
13406 2002-11-24  Havoc Pennington  <hp@pobox.com>
13407
13408         * test/echo-client.c, test/echo-server.c: cheesy test
13409         clients.
13410
13411         * configure.in (AC_CHECK_FUNCS): check for writev
13412
13413         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13414         function
13415
13416         * dbus/dbus-list.c (_dbus_list_foreach): new function
13417
13418         * dbus/dbus-internals.c (_dbus_verbose): new function
13419
13420         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13421         representing a server that listens for connections.
13422
13423         * dbus/.cvsignore: create
13424
13425         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13426         public API for reporting errors
13427
13428         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13429         public object representing a connection that
13430         sends/receives messages. (Same object used for
13431         both client and server.)
13432
13433         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13434         Basic abstraction for different kinds of stream
13435         that we might read/write messages from.
13436
13437 2002-11-23  Havoc Pennington  <hp@pobox.com>
13438
13439         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13440         _DBUS_INT_MAX
13441
13442         * dbus/dbus-test.c (main): add list test, and include
13443         dbus-test.h as intended
13444
13445         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13446         (_dbus_hash_table_remove_int): return value indicates
13447         whether the entry existed to remove
13448
13449         * dbus/dbus-list.c: add linked list utility class,
13450         with docs and tests
13451
13452         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13453         array sometimes.
13454
13455 2002-11-23  Havoc Pennington  <hp@pobox.com>
13456
13457         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13458         DBUS_END_DECLS to nothing, that should fix this once and for all
13459
13460         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13461
13462         * dbus/dbus-message.c, dbus/dbus-hash.c:
13463         add some missing @brief
13464
13465 2002-11-23  Havoc Pennington  <hp@pobox.com>
13466
13467         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13468         to avoid confusing Doxygen
13469
13470         * dbus/dbus-hash.c: @} not }@
13471
13472         * dbus/dbus-message.c (struct DBusMessage): split out
13473         internals docs
13474
13475 2002-11-23  Havoc Pennington  <hp@pobox.com>
13476
13477         * configure.in: pile on more warning flags if using gcc
13478
13479         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13480         to document static functions
13481
13482         * configure.in: add summary to end of configure so it
13483         looks nice and attractive
13484
13485         * dbus/dbus-hash.c: finish implementation and write unit
13486         tests and docs
13487
13488         * configure.in: add --enable-tests to enable unit tests
13489
13490         * dbus/dbus-test.c: test program to run unit tests
13491         for all files in dbus/*, initially runs a test for
13492         dbus-hash.c
13493
13494         * dbus/dbus-internals.h: file to hold some internal utility stuff
13495
13496 2002-11-22  Havoc Pennington  <hp@redhat.com>
13497
13498         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13499         "ported" away from Tcl
13500
13501         * dbus/dbus-types.h: header for types such as dbus_bool_t
13502
13503 2002-11-22  Havoc Pennington  <hp@redhat.com>
13504
13505         * dbus/dbus.h: fixups for doc warnings
13506
13507         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13508         macros
13509         (QUIET): make it quiet so we can see warnings
13510
13511         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13512
13513 2002-11-22  Havoc Pennington  <hp@redhat.com>
13514
13515         * Makefile.am: include "Doxyfile" target in all-local
13516
13517         * configure.in: generate the Doxyfile
13518
13519         * Doxyfile.in: move Doxyfile here, so we can use
13520         configure to generate a Doxyfile with the right
13521         version number etc.
13522
13523 2002-11-22  Havoc Pennington  <hp@redhat.com>
13524
13525         * dbus/dbus-message.c: move inline docs into .c file
13526
13527         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13528         so all docs are under doc/
13529         (MAN_EXTENSION): generate man pages. Use extension
13530         ".3dbus" which matches ".3qt" on my system,
13531         I guess this is OK, I don't know really.
13532         (FILE_PATTERNS): look for .c files not .h, makes sense
13533         for plain C I think
13534
13535 2002-11-22  Havoc Pennington  <hp@pobox.com>
13536
13537         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13538         because any app can be a server, and any app can be a client,
13539         the bus is a special kind of server.
13540
13541 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13542
13543         * Doxyfile : adding. Still needs Makefile rules to be generated
13544         automatically (just run "doxygen" in the toplevel dir for now to
13545         generate docs)
13546
13547         * dbus/dbus-message.h : Adding sample docs (javadoc since
13548         resembles gtk-doc a little more)
13549
13550         * dbus/dbus.h : Adding sample docs
13551
13552 2002-11-21  Havoc Pennington  <hp@redhat.com>
13553
13554         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13555         so we can allow ourselves to include files directly,
13556         instead of having to use dbus.h
13557
13558         * dbus/dbus.h: fill in
13559
13560         * dbus/dbus-message.h: sketch out a sample header file.
13561         Include griping if you include it directly instead of
13562         via dbus.h
13563
13564         * dbus/dbus-macros.h: new file with macros for extern "C",
13565         TRUE/FALSE, NULL, etc.
13566
13567         * doc/file-boilerplate.c: put include guards in here
13568
13569 2002-11-21  Havoc Pennington  <hp@redhat.com>
13570
13571         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13572
13573         * COPYING: include the GPL as well, and license code
13574         under both AFL and GPL.
13575
13576 2002-11-21  Havoc Pennington  <hp@redhat.com>
13577
13578         * acconfig.h: get rid of this
13579
13580         * autogen.sh (run_configure): add --no-configure option
13581
13582         * configure.in: remove AC_ARG_PROGRAM to make
13583         autoconf complain less. add AC_PREREQ.
13584         add AC_DEFINE third arg.
13585
13586 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13587
13588         * doc/Makefile.am:
13589         Fix references so we can distcheck.
13590
13591 2002-11-21  Havoc Pennington  <hp@redhat.com>
13592
13593         * Initial module creation
13594