* qt/tools/dbuscpp2xml.cpp: Compile on Windows.
[platform/upstream/dbus.git] / ChangeLog
1 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
2
3         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
4         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
5
6         * qt/examples/Makefile.am:
7         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
8         form.
9
10         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
11         QByteArray() (nulls) over the bus.
12         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
13         the one that has the signature suffix stripped.
14         * qt/src/qdbusreply.h: Make some methods const.
15
16 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
17
18         Patch from Timo Hoenig <thoenig@suse.de>.
19
20         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
21         required during build to EXTRA_DIST.
22         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
23         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
24         * configure.in: Fix "make dist", take care that the Makefile for
25         qt/dbus is being generated.
26
27 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
28
29         * bus/bus.c: Fix eavesdropping on method calls
30
31 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
32
33         * configure.in:
34         * dbus/dbus-userdb-util.c:
35         Add Solaris console owner patch from Artem Kachitchkine
36
37 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
38
39         * qt/Makfile.am:
40         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
41         reorganisation. Thanks to Timo Hoenig for pointing this out.
42
43 2006-06-06  Robert McQueen  <robot101@debian.org>
44
45         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
46           call to dbus_g_type_get_struct.
47
48 2006-06-06  Robert McQueen  <robot101@debian.org>
49
50         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
51           pointers were put into a GPtrArray-based specialised collection, and
52           then freed along with the array. GValues which you add into
53           collections or maps which have the NOCOPY flag set are assumed to not
54           belong to the caller, so rather than the existing pointer-stealing
55           semantics, they are copied instead. Given that the main consumers of
56           this abstraction are the bindings themselves, I don't think this is
57           too bad, but others should watch their choice of take vs set_static.
58
59 2006-06-06  Robert McQueen  <robot101@debian.org>
60
61         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
62           of g_slist_prepend not being used. Fixed copying of slist-based
63           specialised collections, then wrote a test case and found that it was
64           all broken. Went on to fix iterating and appending too. Good thing
65           nobody uses this code yet.
66
67 2006-06-06  Robert McQueen  <robot101@debian.org>
68
69         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
70           the iterators use gvalue_take_ptrarray_value (the GValues themselves
71           are discarded without unsetting, so it makes no difference whether
72           we take or set_static). Remove cases for G_TYPE_POINTER because
73           there really is nothing useful we can do with them in our
74           specialised types - we *need* boxed copy/free functions at the very
75           least.
76
77 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
78
79         * qt/dbus: Add directory. I had forgotten to add this
80         yesterday after the move...
81
82         * qt/examples/Makefile.am:
83         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
84
85         * qt/tools/Makefile.am:
86         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
87         Added feature to get and set properties.
88         Added validation of service, object path and interface names.
89
90         * qt/tools/dbusidl2cpp.cpp: Two new features:
91         1) Allow specifying both the header and the source file names,
92         by separating them with a colon.
93         2) Don't write an interface output if the -p switch wasn't
94         given, but the -a was.
95
96         * qt/src/*: Fix usage of Iterators and ConstIterators.
97         Fix shadowing of variables by other variables (-Wshadow).
98         Fix keyword-cleanliness in headers.
99         Fix ASCII-cast (QLatin1String, QLatin1Char).
100         Fix validation of member names.
101         Add extra checking of introspection data during XML parsing.
102         Various bug fixes.
103
104 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
105
106         * dbus/Makefile.am:
107         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
108         qt/dbus/qdbus.h now.
109
110 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
111
112         * configure.in: Make --disable-qt actually do
113           something. Patch inspired by Zack Rusin.
114
115 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
116
117         * qt/: Update to Subversion r548032.
118         This includes a big reorganisation of the files inside the
119         subdir.
120
121 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
122
123         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
124         clear:  
125         "Failed to connect to socket <host>:<port> <error>" instead of
126         "Failed to connect to socket <host>: <error>:<port>"
127
128         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
129         for a tcp transport. 
130
131 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
132
133         * qt/*: Update the QtDBus bindings up to revision 546310 in
134         Subversion.
135         This adds the dbuscpp2xml tool, that parses a C++ header and
136         outputs a D-BUS Introspection XML.
137
138 2006-05-21  Havoc Pennington  <hp@redhat.com>
139
140         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
141         is not NULL when it shouldn't be. Also a couple of possible fixes
142         for #4637 though I don't understand why the bug happens, to be
143         honest... also the object constructor has an assert name != NULL
144         and the name is only currently NULL for peer-to-peer proxies that 
145         I don't think anyone uses? So it should be asserting.
146         Anyway, for now at least see if we get an earlier assertion failure.
147
148         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
149         apparently broken code to be sure the tests fail and someone 
150         will fix them...
151
152 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
153
154         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
155         and arrays when they had a single element: has_next returns
156         false, even before you read the element. So, instead, check
157         the array length.
158
159 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
160
161         * qt/qdbusmessage.cpp:
162         * qt/qdbustypehelper_p.h:
163         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
164         the list is a const-reference
165
166 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
167
168         * Adding old doc patch that never got applied
169         
170         * dbus/bus.c (dbus_bus_add_match): Add documentation
171
172         * doc/dbus-specification.xml: Add documentation for the match rules
173           and the AddMatch and RemoveMatch methods
174
175 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
176
177         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
178         call (r535506)
179
180         * qt/dbusidl2cpp.cpp:
181         * qt/qdbusabstractadaptor.cpp:
182         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
183         sibling of the QDBusAbstractAdaptor objects instead of the
184         parent. (r535848)
185
186         * qt/dbusidl2cpp.cpp:
187         * qt/qdbusabstractinterface.cpp:
188         * qt/qdbusabstractinterface.h:
189         * qt/qdbusabstractinterface_p.h:
190         * qt/qdbusinterface.cpp: Make properties in interfaces
191         actually work. The code that was generated would not compile,
192         due to moc calls to functions that did not exist. They now
193         shall. (r536571)
194
195 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
196
197         * Makefile.am:
198         * configure.in:
199         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
200         Thanks to Brad Hards for providing the patch
201
202 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
203
204         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
205         call. (r535506)
206
207 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
208
209         * qt/examples/dbus.cpp: Enhance error messages and use
210         QDBusInterfacePtr.
211
212 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
213
214         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
215         and disable the copy operators. (r533772, r534746)
216
217         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
218
219         * qt/qdbusabstractinterface.cpp:
220         * qt/qdbusabstractinterface.h: Change the default call mode to
221         not use the event loop. Add convenience call() methods that
222         take a CallMode parameter. (r534042)
223
224         * qt/qdbusconnection.h: Change the default call mode to not
225         use the event loop. (r534042)
226
227         * qt/qdbusinterface.cpp:
228         * qt/qdbusinterface.h: Add a method to tell us if the
229         interface is valid (since we don't return a null pointer
230         anymore) (r534099)
231
232         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
233         (r534101)
234
235         * qt/qdbusinternalfilters.cpp: Decouple the introspection
236         function in two so taht we get the chance to introspect
237         without having a QDBusMessage (r534102)
238
239         * qt/qdbusbus.h:
240         * qt/qdbusconnection.cpp:
241         * qt/qdbusconnection_p.h:
242         * qt/qdbusintegrator.cpp: Keep a list of our own names to
243         avoid a round-trip to the server when attempting to introspect
244         one of our own objects. Also make sure the filter functions
245         match the empty interface as well. (r534108)
246         Don't keep the connection names. Instead, trust the unique
247         connection name (r534111)
248         Remove event loop usage (r534112)
249
250 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
251
252         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
253         Brad Hards.
254
255 2006-04-28  Robert McQueen  <robot101@debian.org>
256
257         * glib/dbus-gproxy.c: Fix properties so that they can be given in
258         any order, making it easier for people who inherit from this
259         object.
260
261 2006-04-28  Robert McQueen  <robot101@debian.org>
262
263         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
264         of memory from within pointer arrays and lists. Fixes bug #6300.
265
266 2006-04-28  Robert McQueen  <robot101@debian.org>
267
268         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
269         generating struct signatures. Fixes bug #6083.
270
271 2006-04-28  Robert McQueen  <robot101@debian.org>
272
273         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
274         to qdbusconnection_p.moc.
275
276 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
277
278         * README, INSTALL: Doc fixes
279         Patch from Brad Hards <bradh at frogmouth.net>
280
281 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
282
283         * qt/examples/dbus.cpp: Use the new merged-interface mode for
284         the dynamic meta object. No need to guess which interface to
285         call.
286
287 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
288
289         * qt/qdbusconnection_p.h:
290         * qt/qdbusmetaobject.cpp:
291         * qt/qdbusmetaobject_p.h:
292         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
293         for the dynamic meta object. No need to guess which
294         interface to call.
295         * qt/qdbusabstractinterface_p.h:
296         * qt/qdbusconnection.cpp:
297         * qt/qdbusintegrator.cpp:
298         * qt/qdbusinterface.cpp:
299         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
300         Add a QDBusRef that looks and behaves like DCOPRef.
301
302 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
303
304         * dbus/dbus-connection.c: Interfaces are optional in method
305         calls, so don't give up if the interface parameter is NULL.
306         Patch reviewed by Havoc Pennington.
307
308 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
309
310         * qt/qdbusreply.h: Add default constructor and operator=
311           (r532625)
312         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
313           in public headers (r532952)
314         * qt/qdbusabstractinterface.cpp:
315         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
316           make it the default (r532951)
317
318 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
319
320         * dbus/dbus-connection.c: Fix asserts
321         Patch from Tim Moloney <t.moloney at verizon.net>
322
323 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
324
325         * mono/Connection.cs, mono/Message.cs: Check Target type
326         Patch from Aaron Bockover (abockover at novell.com)
327
328 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
329
330         * INSTALL: fine-tune the requirements for the Qt4 binding.
331
332 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
333
334         * tools/dbus-print-message.c: Added support for printing of all 
335           remaining data types. Fixed logic for indentation of compound
336           data types.
337         
338 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
339
340         * INSTALL: fill out content of file providing DBus specific
341           build installations, followed by generic Auto* INSTALL file
342           content
343         
344 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
345
346         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
347           Patch by Stefan Eilers. (r529537)
348
349 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
350
351         * qt/qdbusinternalfilters.cpp: Don't show the parent's
352           contents (r528208)
353
354 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
355
356         * qt/Makefile.am: fix the dependency for
357           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
358           not in qdbusconnection.cpp.
359           Thanks to Jakub Stachowski <stachowski@hypair.net> for
360           spotting this.
361
362 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
363
364         * qt/examples/listnames.cpp:
365         * qt/examples/Makefile.am: Three ways to list the names on the
366           bus.
367
368 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
369
370         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
371           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
372
373 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
374
375         Merge from Subversion:
376         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
377           something that exists (r526315)
378         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
379           slots/signals (r526316)
380         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
381           also return an unknown-method error if the parameters don't
382           match for org.freedesktop.DBus.Properties. (r526842)
383         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
384         * qt/qdbusintegrator.cpp: Restore the proper order of
385           delivery: don't make method returns be delivered on priority
386           (r528150)
387
388 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
389
390         * configure.in qt/Makefile.am: add qt/examples
391         * qt/examples: Add QtDBus example programs:
392           - hello: Hello, World
393           - ping: Simple method-calling program
394           - pong: Simple object-exporting program (not using adaptors)
395           - complexping: Interactive method-calling program 
396                 (also gets and sets properties).
397           - complexpong: Sample program exporting methods, signals and
398                 properties, using adaptors.
399           - dbus: Simple implementation of a generic method-calling
400                 program, similar to 'dbus-send', but with semantics
401                 similar to 'dcop'.
402           - chat: Simplistic chat program, implemented using signals
403                 and the system bus. Looks like IRC.
404
405 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
406
407         * configure.in: Detect QtGui (necessary for one of the
408           example programs). Note: this increases the minimum required
409           version of Qt to 4.1.3.
410
411 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
412
413         * test/qt/*: Sync with KDE Subversion revision 523647.
414         Update the testcases to the new API. Remove testcases for
415         classes that are no longer public or have been removed.
416
417 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
418
419         * qt/*: 
420         * dbus/qdbus.h: Sync with KDE Subversion revision
421         523647. Hopefully, this will be the last of the
422         source-incompatible changes. Documentation has been improved;
423         support for QList<basic-types> has been added; QDBusObject is
424         gone; QDBus(Abstract)Interface is now a QObject with
425         auto-generated meta-object; QDBusIntrospection is marked
426         private, since QMetaObject can be used now; lots of bugfixes.
427
428 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
429
430         Patch from Milosz Derezynski <internalerror at gmail.com>
431         
432         * configure.in:
433         Output the service directory in the configure summary
434
435         * dbus-1.pc.in:
436         Add session_bus_services_dir
437
438 2006-03-10  Ross Burton  <ross@openedhand.com>
439
440         * tools/dbus-print-message.c:
441         Add support for object paths and signatures.
442
443 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
444
445         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
446         config reload.
447         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
448         information caches
449         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
450         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
451         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
452         * dbus/dbus-userdb.h: Add function to flush all user/group information
453         caches.
454
455 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
456
457         * qt/dbusidl2cpp.cpp:
458         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
459         for dcopidl2cpp, found in the KDE installations (or the more
460         modern kalyptus): generate Qt4 C++ code for the input XML
461         introspection. Currently no IDL parsing.
462
463 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
464
465         * test/qt/*: Update the self-tests.
466
467 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
468
469         * qt/*: 
470         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
471         represents the first feature-complete version of the Qt4
472         bindings since I took ove maintainership.
473
474 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
475
476         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
477         dir. This is C++, so we can't use the DBus ones.
478
479 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
480
481         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
482         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
483
484 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
485
486         * dbus/dbus-connection.c: 
487         (_dbus_connection_block_pending_call):
488         Check to see if our data has already been read off the connection
489         by another blocking pending call before we block in poll.
490         (check_for_reply_and_update_dispatch_unlocked):
491         Code taken from _dbus_connection_block_pending_call - checks for
492         an already read reply and updates the dispatch if there is one.
493
494         * test/name-test/test-pending-call-dispatch.c:
495         New test for making sure we don't get stuck polling a 
496         dbus connection which has no data on the socket when
497         blocking out of order on two or more pending calls.
498
499 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
500
501         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
502         make/automake don't detect that we're talking about the same
503         .lo file if I specify the full path to the source files.
504
505 2006-02-26  Havoc Pennington  <hp@redhat.com>
506
507         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
508
509         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
510         session bus variable is unset, suggest "man dbus-launch" and "man
511         dbus-daemon" to figure out how to fix the problem
512
513 2006-02-25  Havoc Pennington  <hp@redhat.com>
514
515         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
516         should make this thing use the new glib options parser
517
518 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
519
520         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
521         .lo files taking moc sources.
522
523 2006-02-25  Havoc Pennington  <hp@redhat.com>
524
525         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
526         and install it as a public header
527
528 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
529
530         * Released 0.61
531
532 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
533         
534         * proxies.py: Fix the callchain
535
536 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
537         
538         * patch from Sjoerd Simons <sjoerd at debian.org>:      
539
540         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
541         dbus/dbus-sysdeps.c
542
543         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
544         call _dbus_group_info_free_allocated which causes infinite loop,
545         correctly call _dbus_group_info_free
546
547 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
548
549         * qt/qdbusinterface_p.h:
550         * qt/qdbusinterface.cpp: Use the standard
551         org.freedesktop.DBus.Method.NoReply annotation for the "async"
552         calls instead of creating one for us.
553
554         * qt/qdbusconnection_p.h:
555         * qt/qdbusintegrator.cpp: Remove debugging code.
556
557         * qt/qdbusintegrator.cpp:
558         * qt/qdbusmessage.cpp:
559         * qt/qdbusmessage_p.h:
560         * qt/qdbusmessage.h: Change the behaviour of automatic
561         reply-sending: now a reply is always sent, unless the caller
562         didn't request one or if the user slot has already sent one.
563
564 2006-02-16  Robert McQueen  <robot101@debian.org>
565
566         * configure.in: Patch from Debian packages by Sjoerd Simons
567         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
568         arguments so it's possible to build both bindings in the
569         same tree.
570
571         * qt/Makefile.am: Fix truncated value so that make dist works.
572
573 2006-02-16  Robert McQueen  <robot101@debian.org>
574
575         * acinclude.m4, configure.in: Patch from Brad Hards
576         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
577         improving quoting, re-ordering a few checks, and a few other
578         aesthetic tidy-ups.
579
580 2006-02-16  Robert McQueen  <robot101@debian.org>
581
582         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
583         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
584         assertion that the next element to read from the iter is fixed in
585         size. This is not the case when you are at the end of the iter,
586         because the next element type is INVALID.
587
588         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
589         a bogus assert which means that you may not initialise a 0-length
590         string unless you provide a non-NULL pointer. This prevented
591         you from marshalling messages containing zero-length arrays in
592         some cases.
593
594         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
595         from Rob to correct bogus asserts when trying to demarshal an
596         array and get_fixed_array got you 0 elements. Append nothing to
597         the GArray in this case.
598
599         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
600         an empty array via the glib bindings. Without all of the above
601         patches, this new test fails.
602
603 2006-02-16  Robert McQueen  <robot101@debian.org>
604
605         * glib/dbus-gmain.c: Make the previous commit compile.
606
607         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
608         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
609         specify sender_keyword="foo", path_keyword="bar" when adding
610         a signal listener, so that you can bind to signals generically
611         but still do something useful in your callback.
612
613         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
614         chars so that they're not cast to chars and made negative. Thanks
615         to Jakub Stachowski for reporting this and testing the fix.
616
617 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
618
619         * dbus/dbus-glib.h:
620         * glib/dbus-gmain.h:
621         (dbus_g_connection_open): new method for openning
622         a connection to an arbitrary address in the glib bindings
623
624         * ChangeLog: checkin last entry which doesn't seem to be commited
625
626 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
627
628         * tools/dbus-launch.c: Fixed sh syntax output
629
630 2006-02-13  Robert McQueen  <robot101@debian.org>
631
632         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
633         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
634         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
635         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
636         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
637         missing piece of the glib bindings jigsaw puzzle. This modifies
638         the existing specialised types to have N type parameters (rather
639         than the current 1 or 2 for arrays and dictionaries respectively).
640         You can then use this to get a glib type to represent any arbitrary
641         D-Bus struct type using dbus_g_type_get_struct. The only
642         implementation of these types is with GValueArrays as before,
643         but it's now possible to store these in arrays, emit them in
644         signals, etc.
645
646 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
647
648         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
649         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
650         <thiago.macieira at trolltech.com>
651
652 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
653
654         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
655         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
656
657 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
658
659         * bus/connection.c (bus_connections_expect_reply): Make
660         pending reply limit not common to all connections (Bug #5416)
661         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
662
663 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
664
665         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
666
667 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
668
669         * gcj/Makefile.am: point to correct jar command (Bug #4529)
670         patch from Doug Goldstein <cardoe at gentoo.org>
671
672 2006-02-09  Joe Shaw  <joeshaw@novell.com>
673
674         * mono/Arguments.cs: Fix a magic number in the mono bindings
675         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
676
677 2006-01-27  Robert McQueen  <robot101@debian.org>
678
679         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
680         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
681         when generating the client-side methods, instead of overloading
682         CSymbol which broke everything horribly. My apologies.
683
684 2006-01-27  Robert McQueen  <robot101@debian.org>
685
686         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
687         by me and Rob Taylor to add a simple_free function to D-Bus map
688         and collection types, which allows those types which can be freed
689         with a GDestroyNotify (such as GHashTables and GArrays, but not
690         GPtrArrays) to be stored as the values in hashtables.
691
692         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
693         Patch by Rob Taylor to add nested dicts to the glib tests to check
694         the above code works, and appears not to leak when called repeatedly.
695
696 2006-01-27  Robert McQueen  <robot101@debian.org>
697
698         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
699         to free a D-Bus allocated string with dbus_free () instead of
700         g_free ().
701
702 2006-01-27  Iain Holmes  <iain@openedhand.com>
703
704         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
705         method from being called multiple times.
706
707 2006-01-19  Robert McQueen  <robot101@debian.org>
708
709         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
710         <rob.taylor@collabora.co.uk> to add support for generating bindings
711         to arrays that are represented as GPtrArrays rather than GArrays (ie
712         size-variable things, such as strings, objects, structs, etc).
713
714 2006-01-05  Robert McQueen  <robot101@debian.org>
715
716         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
717         <ricardo.kekki@movial.fi> to make it possible to inherit from
718         DBusGProxy, by splitting the DBusGProxy struct into a public part and
719         a private part, and moving the setting of the DBusGProxyManager into a
720         connection property, allowing proper GObject construction.
721
722 2006-01-05  Robert McQueen  <robot101@debian.org>
723
724         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
725         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
726         annotations when generating glib client bindings.
727
728 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
729
730         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
731
732         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
733
734 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
735
736         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
737
738 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
739
740         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
741
742 2005-12-19  Ross Burton  <ross@openedhand.com>
743
744         * doc/dbus-tutorial.xml:
745         Document the Glib client-side bindings, and list all possible annotations.
746
747 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
748
749         * dbus/bus.c (dbus_bus_release_name): Add documentation
750
751 2005-12-06  Robert McQueen  <robot101@debian.org>
752
753         * python/service.py: s/sucessful/successful/ so we're allocating to
754         and reading from the same variable. Oops.
755
756 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
757
758         * Released 0.60
759
760 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
761
762         * test/qt/Makefile.am: build from srcdir
763
764         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
765         Note - this code is wrong and needs to be fixed by the Qt binding
766         developers.  The flags should be treated as bitfields and not enums.
767
768         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
769
770 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
771
772         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
773           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
774           in production code
775
776 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
777
778         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
779         method for getting messages off the bus in the absence of a
780         mainloop.  This method is much like 
781         dbus_connection_read_write_dispatch except it does not dispatch
782         the messages to a registered filter function.  Instead it
783         allows a developer to process messages by directly popping
784         them off the bus.
785
786 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
787
788         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
789         the parser to continue instead of returning error
790         (bus_desktop_file_load): Do not free parser data when
791         parse_section_start or parse_key_value fails because it was 
792         already freed by parser_free (patch from Carlos Garcia Campos  
793         <carlosgc at gnome.org>)
794
795 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
796
797         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
798         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
799         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
800         test/test-segfault.c, test/test-utils.c,
801         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
802         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
803         Various cleanup of dead code and compiler warnings (patch from
804         Kjartan Maraas <kmaraas at gnome.org>) 
805
806 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
807
808         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
809         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
810
811 2005-11-27  Robert McQueen  <robot101@debian.org>
812
813         * python/dbus_bindings.pyx: Repair my previous commit which reverted
814         part of the preceding one. Oops. Merge patch by Johan Hedberg
815         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
816         on big-endian platforms.
817
818         * test/python/test-client.py: Add some 16-bit integers to the test
819         values.
820
821 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
822
823         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
824         method return message for property getters
825
826 2005-11-27  Robert McQueen  <robot101@debian.org>
827
828         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
829         with type v of an instance of dbus.Variant(foo, type='x') caused
830         it to be boxed twice before sending over the bus.
831
832         * python/dbus_bindings.pyx, python/service.py,
833         test/python/test-client.py: Update the constants for the new
834         request_name flags, and update comments/test cases now that queueing
835         is the default action.
836
837 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
838
839         * configure.in:
840         - Change version to 0.60 for impending release
841         - upped the sonames because of ABI and API breakage
842
843 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
844
845         * configure.in: Add test/name-test/Makefile to the generated
846         Makefile list
847
848         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
849         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
850         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
851         not to queue an ower if it can't be the primary owner
852
853         * bus/bus.h: Add new internal BusOwner struct
854
855         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
856         to bus_registry_ensure and don't set the prohibit_replacement flag
857         since they are now set per BusOwner and not per name.
858         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
859         that returns the list of connections in a name's connection queue
860         
861         * bus/services.c (struct BusService): remove prohibit_replacement field
862         (struct BusOwner): new struct for keeping track of queued connections
863         and their associated flags for the queue
864         (struct BusRegistry): add a BusOwner memory pool
865         (bus_registry_new): initialize the BusOwner memory pool
866         (bus_registry_unref): free the BusOwner memory pool
867         (_bus_service_find_owner_link): new internal method for
868         searching the queue for a specific connection
869         (bus_owner_set_flags): new method for adding setting the flags on a
870         bus owner
871         (bus_owner_new): new method that creates a BusOwner object from the
872         pool and sets its flags
873         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
874         (bus_registry_ensure): Add the flags parameter
875         (bus_registry_acquire_service): Switch from using raw connections to
876         using the BusOwner struct
877         Add new state machine for dealing with the new set of flags
878         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
879         cancel_ownership, free_ownership_cancel_data, 
880         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
881         restore_ownership, free_ownership_restore_data, 
882         add_restore_ownership_to_transaction): Switch to using BusOwner 
883         instead of raw connections
884         (bus_service_add_owner): Add flags parameter
885         Switch to using BusOwner instead of raw connections
886         Add state machine for dealing with the new set of flags
887         (bus_service_swap_owner): Swaps the first and second owners in the
888         queue.  Used to make sure proper signals are sent when a service looses 
889         or gains primary ownership.  We never insert an owner at the top of the
890         queue.  Instead we insert it in the second position and then swap.
891         (bus_service_remove_owner): Remove the owner from the queue sending
892         out the NameLost and NameOwnerChanged signals if the we were the 
893         primary owner
894         (bus_service_get_primary_owners_connection): New method that extracts
895         the connection from the primary owner
896         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
897         connection
898         (bus_service_get_allow_replacement): Changed from the old 
899         bus_service_get_prohibit_replacement method.  Checks the flags of the 
900         primary owner and returns if it can be replaced or not
901         (bus_service_set_prohibit_replacement): removed
902         (bus_service_has_owner): returns TRUE if and owner with
903         the specified connection exists in the queue
904         
905         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
906         method that only compiles if tests are enabled.  Allows us to get the 
907         unique name of a connection so we can check it against the queue when
908         doing regression tests
909
910         * bus/activation.c (bus_activation_send_pending_auto_activate),
911         bus/dispatch.c (bus_dispatch),  
912         bus/driver.c (bus_driver_handle_get_service_owner, 
913         bus_driver_handle_get_connection_unix_user, 
914         bus_driver_handle_get_connection_unix_process_id,
915         bus_driver_handle_get_connection_selinux_security_context),
916         bus/signals.c (connection_is_primary_owner): 
917         use bus_service_get_primary_owners_connection instead of
918         bus_service_get_primary_owner
919
920         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
921         _dbus_listen_unix_socket): Calculate the length of the socket
922         path and use that instead of using a fixed length which was
923         causing socket names to contain many trailing Nul bytes.
924
925         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
926         (dbus_g_method_get_sender): New method for extracting the sender 
927         from a DBusGMethodInvocation
928         (dbus_g_method_return_get_reply): changed name to 
929         dbus_g_method_get_reply
930         (dbus_g_method_return_send_reply): changed name to
931         dbus_g_method_send reply
932
933         * doc/dbus-specification.xml: New docs that describe how the new
934         queueing system works and talks about the changes to the how
935         we specify socket names
936
937         * glib/examples/example-service.c, 
938         glib/examples/example-signal-emitter.c,
939         glib/examples/statemachine/statemachine-server.c:
940         Changed the RequestName flags to the new system
941
942         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
943         regression test suite for testing various states of the new
944         queueing system
945         
946 2005-11-15  Robert McQueen  <robot101@debian.org>
947
948         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
949         Taylor to add two methods, dbus_g_method_return_get_reply and
950         dbus_g_method_return_send_reply, to allow you to get the reply
951         message from a DBusGMethodInvocation, append arbitrary stuff to it,
952         and send it. The GLib bindings can't marshal a return value of
953         something like a(s) if the array is empty - ultimately they should be
954         made to heed the signature of the out arguments as the Python bindings
955         now can, but this is a workable interim solution which might have
956         other applications.
957
958 2005-11-15  Robert McQueen  <robot101@debian.org>
959
960         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
961         method to org.freedesktop.DBus to release a bus name or give up
962         waiting in the queue for it.
963
964         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
965         dbus_bus_release_name method to send the ReleaseName method calls.
966         Add constants for the return values to dbus/dbus-shared.h.
967
968         * doc/dbus-specification.xml: Document the new ReleaseName method
969         in the specification.
970
971         * python/dbus_bindings.pyx: Add a low-level python binding for the
972         release name method.
973
974         * python/exceptions.py, python/service.py: Make freeing BusName
975         objects release the name. Add a NameExistsException, and fix a
976         bug with creating UnknownMethodException.
977
978         * test/python/test-client.py: Add tests for freeing BusName
979         objects causing names to be released.
980
981 2005-11-14  Robert McQueen  <robot101@debian.org>
982
983         * python/service.py: Include the traceback in the error reply when we
984         send an exception over the bus. _BEST_ _PATCH_ _EVER_
985
986 2005-11-14  David Zeuthen  <davidz@redhat.com>
987
988         Patch from Timo Hoenig <thoenig@suse.de>.
989
990         * bus/bus.c: I've recently investigated why the automatic reload
991         of configuration files does not work as expected.
992
993         Currently, reloading configuration files does only work when
994         running dbus-daemon with --nodaemon.  If we are running as daemon
995         we're hitting a dnotify bug once we fork the process.
996
997         We're initializing the dnotify fds before calling fork().  Once
998         the child process forked it does still have the fds (and they
999         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1000         getting SIGIO as changes are made to the configuration files.
1001
1002         The attached patch moves the initialization of the dnotify fds to
1003         process_config_postinit().  This is safe for all current code
1004         paths and solves the dnotify disfunction.  If we're running
1005         dbus-daemon as daemon the fds for dnotify are now being
1006         initialized after fork() for the child process.
1007
1008         * configure.in: The current configure.in check for dnotify probes
1009         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1010         match for 'xlinux', too. Additionally I have adapted the configure
1011         option's style to match with the others.
1012
1013 2005-11-14  Robert McQueen  <robot101@debian.org>
1014
1015         * python/decorators.py, python/service.py: Add a new argument to the
1016         dbus.service.method decorator called sender_keyword, which if set,
1017         specifies the name of an argument which will be provided the bus
1018         name of the method caller.
1019
1020         * test/python/test-client.py, test/python/test-service.py: Add a
1021         method and test to check the sender_keyword functionality.
1022
1023 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1024
1025         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1026         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1027         Simons <sjoerd at luon.net>)
1028
1029         * AUTHORS: Add Robert McQueen for his work on the Python
1030         Bindings and other parts of D-Bus
1031
1032 2005-11-07  Robert McQueen  <robot101@debian.org>
1033
1034         * python/decorators.py: Change emit_signal function to use the
1035         signature annotation of the signal when marhsalling the arguments from
1036         the service. Fix a bug where the code checking signature length
1037         against argument length referenced the wrong variable.
1038
1039         * python/introspect_parser.py: Avoid adding the type signature of
1040         signal arguments to any methods which occur after them in the
1041         introspection data (!) by making the parser a little more careful
1042         about its current state.
1043
1044         * python/service.py: Remove debug prints from last commit (again :D).
1045
1046         * test/python/test-client.py, test/python/test-service.py: Add test
1047         signals with signature decorators to test the strict marshalling code
1048         gives errors at the right time. Could do with checking the signals
1049         actually get emitted too, given that the test does nothing with
1050         signals at the moment...
1051
1052 2005-11-07  Robert McQueen  <robot101@debian.org>
1053
1054         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1055         instances to stop madness of creating new instances representing
1056         the same bus connection all the time, rendering any tracking of
1057         match rules and bus names quite meaningless. Caught a bug where
1058         the private argument to SessionBus() and friends was being passed
1059         in as use_default_mainloop by mistake. Still some problems with
1060         multiple dbus_binding.Connection instances representing the same
1061         low-level connection (eg when you use both SessionBus() and
1062         StarterBus() in same process), but it's a lot better now than it
1063         was.
1064
1065         * python/dbus_bindings.pyx: Add constants with the return values
1066         for bus_request_name().
1067
1068         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1069         and retrieve the same instances for the same name, so deletion can be
1070         done with refcounting. Also now throws some kind of error if you
1071         don't actually get the name you requested, unlike previously...
1072
1073         * test/python/test-client.py: Add tests for instance caching of buses
1074         and bus name objects.
1075
1076 2005-11-04  Robert McQueen  <robot101@debian.org>
1077
1078         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1079         marshalling of boolean values. Add some booleans to the values in
1080         the test client.
1081
1082         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1083         argument to the dbus.service.method decorator, which allows you to
1084         name arguments to take two callback functions for replying with
1085         return values or an exception.
1086
1087         * test/python/test-client.py, test/python/test-service.py: Add test
1088         case using asynchronous method reply functions, both return values and
1089         errors, and from within both the function itself and from a mainloop
1090         callback.
1091
1092         * python/decorators.py, python/service.py: Perform checking that the
1093         number of method/signal arguments matches the number of types in the
1094         signature at class loading time, not when you first introspect the
1095         class.
1096
1097         * python/service.py: Remove debug print left by the last commit.
1098
1099 2005-11-03  Robert McQueen  <robot101@debian.org>
1100
1101         * python/service.py: Heavy refactoring of method invocation, with
1102         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1103         in favour of a new _message_cb that uses seperate functions for
1104         looking up the method to call, marshalling the return values, and
1105         sending exceptions as errors, and is easier to follow as a
1106         consequence.  Fixes some corner cases about returning things that
1107         don't match your declared out_signature, allows exceptions to define
1108         _dbus_error_name and have it be sent over the bus as the error name,
1109         and paves the way for cool stuff like heeding the message no reply
1110         flag, asynchronous method implementations, informing the method of the
1111         sender, and including backtraces in the error messages.
1112
1113         * test/python/test-client.py: Catch and print exceptions thrown in the
1114         async callback tests, rather than passing them to the low-level
1115         bindings to be ignored in a noisy and frustrating manner.
1116
1117 2005-11-03  Robert McQueen  <robot101@debian.org>
1118
1119         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1120         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1121         tweak others to be consistent.
1122
1123         * test/python/test-client.py: Tweak output of testInheritance.
1124
1125 2005-10-29  Robert McQueen  <robot101@debian.org>
1126
1127         * python/service.py: Major changes to allow multiple inheritance
1128         from classes that define D-Bus interfaces:
1129         
1130          1. Create a new Interface class which is the parent class of
1131             Object, and make the ObjectType metaclass into InterfaceType.
1132         
1133          2. Patch written with Rob Taylor to replace use of method_vtable
1134             with code that walks the class's __MRO__ (method resolution order)
1135             to behave like Python does when invoking methods and allow
1136             overriding as you'd expect. Code is quite tricky because
1137             we have to find two methods, the one to invoke which has the
1138             right name and isn't decorated with the /wrong/ interface,
1139             and the one to pick up the signatures from which is decorated
1140             with the right interface.
1141         
1142             The same caveats apply as to normal multiple inheritance -
1143             this has undefined behaviour if you try and inherit from two
1144             classes that define a method with the same name but are
1145             decorated with different interfaces. You should decorate
1146             your overriding method with the interface you want.
1147         
1148          3. Replace grungy introspection XML generation code in the metaclass
1149             with dictionaries that cope correctly with multiple inheritance
1150             and the overriding of methods. This also uses the signature
1151             decorations to provide correct introspection data, including
1152             the debut appearance of the types of your return values. :D
1153
1154         * test/python/test-client.py, test/python/test-service.py: Add a test
1155         case to try invoking an method that overrides one inherited from a
1156         D-Bus interface class.
1157
1158 2005-10-29  Robert McQueen  <robot101@debian.org>
1159
1160         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1161         Add checking for the end of struct character when marshalling a
1162         struct in MessageIter.append_strict.
1163
1164         * python/examples/example-service.py,
1165         python/examples/gconf-proxy-service.py,
1166         python/examples/gconf-proxy-service2.py: Update to use gobject
1167         mainloop directly rather than appearing to depend on gtk.
1168
1169         * python/test/test-client.py, python/test/test-server.py: Remove
1170         obsolete and broken test scripts for old bindings. We have up to date
1171         and working tests in test/python/.
1172
1173 2005-10-29  Robert McQueen  <robot101@debian.org>
1174
1175         * python/decorators.py: Add optional arguments to the method and
1176         signal decorators to allow you to specify the signature of arguments
1177         and return values. Preserve the doc strings of signal functions in the
1178         decorated version, for pydoc and friends.
1179
1180         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1181         parse_signature_block function with an iterable dbus.Signature()
1182         type. Fix a bug in MessageIter.append_strict where you could append
1183         anything by claiming it was a string.
1184
1185         * python/service.py: Use the out_signature decoration on methods to
1186         marshal return values, meaning you no longer require dbus.Array()
1187         or dbus.Dictionary() to indicate the type when returning empty
1188         arrays or dictionaries. Fix a bug where exceptions which are defined
1189         in __main__ are not turned into error replies.
1190
1191         * test/python/test-client.py, test/python/test-service.py: Add test
1192         for correct marshalling of return values according to out_signature.
1193         Fix a bug in the async call test where the error_handler is missing a
1194         self argument.
1195
1196 2005-10-29  Robert McQueen  <robot101@debian.org>
1197
1198         * glib/Makefile.am, glib/examples/Makefile.am,
1199         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1200         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1201
1202         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1203
1204         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1205         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1206         the command line.
1207
1208 2005-10-27  Ross Burton  <ross@openedhand.com>
1209
1210         * dbus/dbus-marshal-header.c:
1211         Remove dead code.
1212
1213         * glib/dbus-gobject.c:
1214         Stop compiler warning.
1215
1216 2005-10-25  Ross Burton  <ross@openedhand.com>
1217
1218         * dbus/dbus-auth.c:
1219         * dbus/dbus-server-unix.c:
1220         * dbus/dbus-transport-unix.c:
1221         * glib/dbus-gmain.c:
1222         * glib/dbus-gobject.c:
1223         Add some const keywords.
1224
1225 2005-10-25  Ross Burton  <ross@openedhand.com>
1226
1227         * doc/dbus-specification.xml:
1228         Document the NoReply annotation.
1229
1230         * glib/dbus-binding-tool-glib.h:
1231         * glib/dbus-binding-tool-glib.c:
1232         Respect the NoReply annotation.
1233
1234 2005-10-24  Robert McQueen <robot101@debian.org>
1235
1236         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1237         derive from unicode instead of str, and encode/decode UTF-8 when
1238         marshalling/unmarshalling bus messages
1239
1240         * python/introspect_parser.py: encode introspection data as UTF-8
1241         before passing the buffer into libxml2
1242
1243         * test/python/test-client.py: add unicode test strings
1244
1245         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1246         ignore generated python test files
1247
1248 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1249
1250         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1251         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1252         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1253
1254         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1255         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1256         when constructing struct signatures
1257
1258         * python/_dbus.py (Bus): handle private connections using the
1259         private keyword in the constructor. defaults to private=False
1260         (Bus::close): new method to close a connection to the bus
1261
1262         * python/dbus_bindings.pyx (Connection::close): renamed method
1263         was previously called disconnect
1264         (bus_get): now supports getting a private connection
1265
1266         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1267         keyword is set to True.  if it is, execute the method without waiting
1268         for a reply
1269         (ProxyObject::_introspect_execute_queue): new method for executing
1270         all the pending methods that were waiting for the introspect to
1271         finish.  this is called when introspect either succeeds or fails
1272         (ProxyObject::_introspect_error_handler): call queued methods
1273
1274 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1275
1276         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1277         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1278
1279         * python/service.py (Object::_message_cb): handle exceptions correctly
1280         by sending them over the wire to the calling app.  This makes sure
1281         the client returns immediately instead of waiting the 15 seconds to
1282         timeout.
1283
1284         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1285         Add a test to benchmark how long it takes to introspect a service and 
1286         call a method which returns a large element (pretty fast)
1287
1288         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1289         method which pushes a lot of data
1290
1291 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1292
1293         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1294         reclaim memory outside of the loop and use del istead of just setting
1295         the key to None
1296
1297 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1298
1299         * python/service.py (ObjectType::_reflect_on_signal): Always close
1300         signal tag even when there are no arguments
1301
1302 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1303
1304         * configure.in: Set mono, mono-docs and Qt3 to default
1305         to no instead of auto when building.  These bindings do not
1306         have full time maintainers and will not be supported for the
1307         1.0 release.
1308
1309 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1310
1311         patches from Michael Krivoruchko <misha at sun.com>: 
1312         
1313         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1314         _dbus_connection_message_sent, 
1315         _dbus_connection_send_preallocated_unlocked_no_update, 
1316         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1317         is NULL when calling _dbus_verbose
1318
1319         * configure.in: check for functions getpeerucred and getpeereid
1320
1321         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1322         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1323         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1324         Patch was only tested on Solaris 10 x86 so it might be issues
1325         with other platforms (i.e. BSDs and MacOSX)
1326         
1327
1328 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1329
1330         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1331         instead of marshal basic so we can handle recursive types in a variant
1332
1333         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1334         in variants
1335
1336         * test/glib/test-service-glib.c, test-service-glib.xml
1337         (my_object_echo_variant [EchoVariant], 
1338         my_object_process_variant_of_array_of_ints123
1339         [ProcessVariantOfArrayOfInts123]): 
1340         Add two test methods
1341
1342         * python/introspect_parser.py: New module for parsing introspect
1343         data.
1344
1345         * python/dbus_bindings.pyx:
1346         (various places): when throwing errors fix to use errormsg instead 
1347         of message local variable because Pyrex can get confused with other 
1348         message variables (initial patch by Robert McQueen 
1349         <robert.mcqueen at collabora.co.uk>)
1350         (MessageIter::parse_signature_block): new method for getting the next
1351         block in a signiture.
1352         (MessageIter::append_strict): new method for appending values strictly
1353         using the passed in signature instead of guessing at the type
1354         (MessageItter:: append_dict, append_struct, append_array): use 
1355         signatures to marshal children if the signature is available
1356         
1357         * python/exceptions.py (IntrospectionParserException): new exception
1358
1359         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1360         introspected signatures if available, else we fall back to the
1361         old way of doing things.
1362         (ProxyObject::_introspect_reply_handler ): parse introspection data
1363         
1364         * python/service.py (ObjectType::_reflect_on_method): Properly
1365         terminate <method> if there are no args in the reflection data
1366
1367         * test/python/test-client.py: add tests for talking with the GLib
1368         test server.  This gives us better coverage for introspection since
1369         python to python will always generate arguments as variants.  It also
1370         allows us to test the robustness of the GLib bindings and interlanguage
1371         communications.
1372
1373         
1374 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1375
1376         * bus/driver.c (bus_driver_handle_introspect): Add signals
1377         to the introspect data. (patch from Daniel P. Berrange 
1378         <dan at berrange.com>)
1379
1380         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1381         
1382         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1383         _dbus_connection_run_builtin_filters): Changed these to
1384         be unlock_no_update functions and call 
1385         _dbus_connection_send_unlocked_no_update instead of
1386         dbus_connection_send to avoid locking errors.
1387         
1388         * doc/TODO: Removed the make Ping test TODO
1389         
1390 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1391
1392         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1393         We now copy the message from a DBusError and then free 
1394         the error object befor throwing the error
1395
1396         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1397         DBusBindingOutputMode enum which was causing a warning.
1398         #include <time.h> so using time_t is explicitly defined
1399
1400 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1401
1402         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1403         - dbus/dbus-bus.c
1404         (internal_bus_get): new method that take over the heavy lifting
1405         of dbus_bus_get and adds the ability to get a private connection
1406         to the bus
1407         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1408         interface as in previous versions
1409         (dbus_bus_get_private): new method that is a wrapper to 
1410         internal_bus_get to get a private connection to the bus
1411
1412         - dbus/dbus-bus.h
1413         (dbus_bus_get_private): add as a public libdbus interface
1414
1415         - dbus-1.pc.in: output system_bus_default_address and 
1416         sysconfdir variables so apps can use them when compiling
1417
1418 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1419         * dbus/qt: New Qt bindings
1420
1421 2005-09-12  Waldo Bastian  <bastian@kde.org>
1422
1423         * dbus/dbus-marshal-validate.c,
1424         doc/dbus-specification.xml, test/Makefile.am,
1425         test/test-names.c: allow hyphens in bus names.
1426
1427 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1428
1429         * test/data/auth/fallback.auth-script: we don't
1430         retry the EXTERNAL method when we know its going
1431         to fail anymore.
1432
1433 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1434
1435         * dbus/dbus-connection-internal.h: rename
1436         (add|remove|toggle)_(watch|timeout) to unlocked()
1437         
1438         * dbus/dbus-connection.c: ditto.
1439         
1440         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1441         Update some callers for the renaming.
1442
1443 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1444
1445         * dbus/dbus-auth.c: (record_mechanisms): don't
1446         retry the first auth mechanism because we know
1447         we're just going to get rejected again.
1448         
1449         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1450         Fix thinko ... and what a nasty little bugger to
1451         track down you were ...
1452
1453         * dbus/dbus-connection.c:
1454         (_dbus_connection_add_watch),
1455         (_dbus_connection_remove_watch): add note about
1456         these needing the connection to be locked.
1457         (_dbus_connection_get_dispatch_status_unlocked):
1458         set status to DATA_REMAINS when we queue the
1459         disconnected message.
1460         
1461         * bus/dispatch.c:
1462         (bus_dispatch): fix warning.
1463         (check_existent_service_no_auto_start):
1464         Expect ChildSignaled error too.
1465         (check_existent_hello_from_self): fix another
1466         couple of warnings.
1467         
1468 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1469
1470         Patches from James Willcox <snorp@snorp.net>
1471
1472         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1473
1474         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1475         support array "out" parameters.
1476
1477         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1478         for 16-bit int support.
1479
1480 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1481
1482         * Released 0.50
1483
1484         * Patch from Steve Grubb:
1485         - bus/activation.c (bus_activation_service_reload_test): clean up
1486         some indentation
1487         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1488         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1489         buffer overflows in the test suite.  This is non critical because
1490         it can not be exploited and this code is only run when doing a 
1491         make check.
1492
1493         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1494         - configure.in: Don't check and link against kdecore, only qt headers
1495         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1496         - gcj/org/freedesktop/dbus/Makefile.am:
1497         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1498         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1499         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1500         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1501         - tools/Makefile.am: Add platform extentions to binaries 
1502         (i.e. .exe on windows)
1503
1504         * configure.in: 
1505         - Make it so if no suitable version of python is found we only 
1506         disable building python instead of exiting the configure script
1507         - Require version 2.4 of glib for glib bindings
1508         - Up version to 0.50
1509
1510         * python/__init__.py: Sync version with libdbus to (0,50,0)
1511         
1512 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1513
1514         * dbus/dbus-object-tree.c (find_subtree_recurse):
1515         a couple of optimizations (bug #710):
1516         - do a binary search in the tree
1517         - insert a new child at the right place directly, no need for
1518           qsort anymore
1519         - do the "double alloc" thing when allocating children
1520
1521 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1522
1523         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1524
1525         * python/dbus_bindings.pyx: Memory management foo
1526         (global): remove hacky _user_data_references global list
1527         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1528         tuples. Unref user_data
1529         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1530         (Connection::__del__): Remove and replace with __dealloc__ method
1531         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1532         to keep tuple from being deallocated instead of the global var hack
1533         (Connection::register_object_path): Stuff user_data into a tuple.
1534         Use Py_INCREF to keep tuple from being deallocated instead of the 
1535         global var hack
1536         (Connection::register_fallback): Stuff user_data into a tuple.
1537         Use Py_INCREF to keep tuple from being deallocated instead of the 
1538         global var hack
1539         (GIL_safe_pending_call_notification): Don't unref the message
1540         because it gets unreffed when going out of scope.  Py_XDECREF
1541         the user_data
1542         (PendingCall::__del__): Remove and replace with __dealloc__ method
1543         (PendingCall::set_notify): ref the pending call because we will
1544         need it to stick around for when the notify callback gets called
1545         (Message::__del__): Remove and replace with __dealloc__ method
1546
1547         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1548         gthreads_init to match up with the dbus call
1549
1550         * python/glib.py (init_threads): Changed to threads_init to match
1551         up with gobject.threads_init().  init_threads is kept for backwards
1552         compat but will most likely be deprecated in the future
1553
1554         * test/python/test-client.py: 
1555         - revamp to use Python's unittest functionality
1556         - add async call tests
1557         - setup threads in glib and dbus so we make sure locks are working
1558         
1559 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1560
1561         * python/dbus_bindings.pyx 
1562         (_pending_call_notification, cunregister_function_handler, 
1563         cmessage_function_handler): All callback functions have been rearranged 
1564         to workaround a bug in Pyrex when working with the GIL which is Python's 
1565         global lock when dealing with threads.  They have been split into
1566         a wrapper function (which assumes the name of the old function) and
1567         a _GIL_safe_<function name> function which contains the functionality
1568         of the old function.  This ensures that Pyrex does not write code
1569         the lock is released.
1570         
1571
1572 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1573
1574         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1575         GIL global lock when calling back into Python
1576
1577 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1578
1579         * Release 0.36.2
1580
1581         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1582
1583         * bus/policy.c (bus_policy_allow_user): change default "user is
1584         allowed" to be "user has same uid as the bus itself"; any
1585         allow/deny rules will override.
1586
1587         * bus/session.conf.in: don't allow all users, since now by default
1588         the user that ran the bus can connect.
1589
1590 2005-08-26  Colin Walters  <walters@verbum.org>
1591
1592         * tools/dbus-print-message.c (print_message): Flush stdout
1593         after printing a message, so that redirecting to a file, then
1594         hitting Ctrl-C works.
1595
1596 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1597
1598         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1599         (EmptyMessage): new class that subclasses Message.  This is a workaround
1600         to a Pyrex bug that fails to call __del__ when the Message object goes out
1601         of scope.  For some reason subclassing Message fixes this bug
1602         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1603         - s/Message(_create=0)/EmptyMessage everywhere else
1604         
1605         * test/python/test-{server|client}.py: add the python/.libs directory
1606         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1607         get picked up from the system
1608
1609 2005-08-25  Colin Walters  <walters@verbum.org>
1610
1611         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1612         to Ryan Lortie for the suggestion.
1613
1614 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1615
1616         * test/python: Add python regression test
1617
1618         * configure.in: Add test/python/Makefile
1619
1620         * test/Makefile.am: Add the python directory to SUBDIRS
1621
1622 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1623
1624         * Release 0.36.1
1625
1626         * python/_dbus.py: 
1627         (Interface::connect_to_signal): propigate keywords for match on args
1628         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1629
1630         * python/proxies.py (ProxyObject::connect_to_signal):
1631         propigate keywords for match on args
1632
1633         * Makefile.am: point everything to pyexecdir since python borks
1634         on multilib
1635
1636 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1637
1638         * Release 0.36
1639
1640 2005-08-23  Colin Walters  <walters@verbum.org>
1641
1642         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1643
1644 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1645
1646         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1647         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1648         of defining DBusConnection ourselves.
1649
1650 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1651
1652         * python/dbus.pth: New path file to fix up problems when installing
1653         c libraries to lib64 and python files to lib.
1654
1655         * python/Makefile.am: install dbus.pth in the correct spot
1656
1657 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1658         * ChangeLog: clean up my last entry a bit
1659
1660         * doc/introspect.xsl: New stylesheet for converting introspection data
1661         into browser renderable xhtml. Contributed by Lennart Poettering.
1662
1663         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1664         Poettering.
1665
1666         * doc/dbus-tutorial.xml: 
1667         - Add Colin Walter to the Authors section for authoring the GLib
1668         section
1669         - Add descriptions of the new signature and type functionality
1670         in the Python complex type mapping section
1671         - Add a sidenote on the new args matching functionality in 
1672         the Python bindings
1673         - Fixed up some of the examples to use the gobject.MainLoop
1674         instead of gtk.main
1675         
1676         * python/_dbus.py:
1677         (Bus::_create_args_dict): New. Converts a hash of arg matches
1678         to a more useable format
1679         (Bus::add_signal_receiver): add a **keywords parameter for catching
1680         arg match parameters
1681         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1682         arg match parameters
1683         
1684         * python/matchrules.py:
1685         (MatchTree::exec_matches): Check for arg matches
1686         (SignalMatchRule::add_args_match): New method
1687         (SignalMatchRule::execute): Added args_list parameter as an optimization
1688         so we don't have to marshal the args more than once
1689         (SignalMatchRule::match_args_from_list): New method that checks to see
1690         if the rule's arg matches match an argument list.  Only arguments
1691         set in the rule are checked.
1692         (SignalMatchRule::match_args_from_rule): New method that checks to see
1693         if the rule's arg matches match another rule's.  All args have to match
1694         in order for this method to return true.  If either rule has more args
1695         then it is not a match.
1696         (SignalMatchRule::is_match): Add args match
1697         (SignalMatchRule::repr): Add args to the final output if they exist
1698
1699 2005-08-17  Ross Burton  <ross@burtonini.com>
1700
1701         * glib/dbus-gproxy.c:
1702         (dbus_g_proxy_call_no_reply): unref the message once sent.
1703         (dbus_g_proxy_call): protect against NULL proxy.
1704
1705 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1706
1707         * python/__init__.py: Version updated (0, 43, 0)
1708         
1709         * python/dbus_bindings.pyx: 
1710         - Fixed type objects to have self passed into __init__
1711         - Added the Variant type
1712         - Add the ability to specify types or signatures for Array, Variant 
1713         and Dictionary
1714         (Connection::send_with_reply_handlers): return a PendingCall object
1715         (_pending_call_notification): handle the case when an error is returned 
1716         without an error message in the body
1717         (MessageIter::get_boolean): return True or False instead of an integer
1718         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1719         and add checks for objects with embeded signatures or types (Array, 
1720         Variant and Dictionary)
1721         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1722         (MessageIter::append_dict): handle embeded types or signatures
1723         (MessageIter::append_array): handle embeded types or signatures
1724         (MessageIter::append_variant): new method
1725         
1726         * python/proxies.py:
1727         (DeferedMethod): New. Dummy executable object used when queuing calls 
1728         blocking on introspection data
1729         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1730         or shorter timeouts for method calls
1731         (ProxyObject): Add first pass at an introspection state machine
1732         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1733         introspection. 
1734         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1735         the usual mechanisms for sending messages.  This is to avoid a deadlock
1736         where the Intospect call would be queued waiting for the Introspect 
1737         call to finish ;-)
1738         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1739         when introspection returns with no error
1740         (ProxyObject::_introspect_error_handler): New.  This method is called 
1741         when introspection encounters an error
1742         (ProxyObject::__getattr__): Code to handle different introspection 
1743         states.  Queue async calls or block blocking calls if we are 
1744         introspecting.  Pass through as normal if we are not or are done with 
1745         introspecting.
1746         
1747         * python/service.py: Import signal and method from decorators.py
1748
1749         * python/types.py: Add Variant type
1750
1751 2005-08-16  Colin Walters  <walters@verbum.org>
1752
1753         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1754         DBusError message is NULL.
1755
1756 2005-08-09  Havoc Pennington  <hp@redhat.com>
1757
1758         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1759         malloc'd copy of the name parameter
1760
1761 2005-08-09  Havoc Pennington  <hp@redhat.com>
1762
1763         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1764         warning if the reply serial is set to 0
1765
1766 2005-08-04  Colin Walters  <walters@verbum.org>
1767
1768         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1769         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1770         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1771         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1772         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1773         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1774         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1775         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1776         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1777         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1778         
1779         Prefix name with _ to ensure they're not exported.  All callers
1780         updated.
1781
1782         * glib/dbus-gvalue.c (typecode_to_gtype)
1783         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1784         (signature_iter_to_g_type_dict)
1785         (signature_iter_to_g_type_array)
1786         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1787         (dbus_gtypes_from_arg_signature):
1788         Move to dbus-gsignature.c.
1789
1790         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1791         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1792         (dbus_binding_tool_output_glib_client): Ditto.
1793
1794         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1795         and dbus-gsignature.h
1796
1797         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1798         unused variable.
1799
1800 2005-08-03  Colin Walters  <walters@verbum.org>
1801
1802         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1803         catch any incompatible changes accidentally made.
1804
1805 2005-08-03  Havoc Pennington  <hp@redhat.com>
1806
1807         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1808         typo, from Julien Puydt
1809
1810         * bus/connection.c (bus_connection_disconnected): we were always
1811         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1812
1813 2005-08-01  Colin Walters  <walters@verbum.org>
1814
1815         Patch from Joe Markus Clarke:   
1816         
1817         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1818         use-after-free.
1819
1820 2005-08-01  Colin Walters  <walters@verbum.org>
1821         
1822         Patch from Joe Markus Clarke:   
1823         
1824         * tools/dbus-send.c (main): 
1825         
1826         Don't use C99 style initializers (bug #3933).
1827         
1828 2005-08-01  Colin Walters  <walters@verbum.org>
1829
1830         Patch from Joe Markus Clarke:   
1831
1832         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1833         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1834         * glib/dbus-gobject.c (write_interface):
1835
1836         Don't use C99 style initializers (bug #3933).
1837
1838 2005-07-31  Havoc Pennington  <hp@redhat.com>
1839
1840         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1841         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1842
1843 2005-07-30  Havoc Pennington  <hp@redhat.com>
1844
1845         * fix a bunch of Doxygen warnings and mistakes
1846
1847 2005-07-30  Havoc Pennington  <hp@redhat.com>
1848
1849         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1850         DBUS_BUILD_TESTS since it's now used in production code
1851
1852 2005-07-29  Havoc Pennington  <hp@redhat.com>
1853
1854         * test/glib/test-profile.c (write_junk): initialize the junk
1855         buffer so valgrind doesn't have a breakdown
1856
1857 2005-07-29  Havoc Pennington  <hp@redhat.com>
1858
1859         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1860         (match_rule_matches): remove unused arg
1861         (test_matching): add tests for match_rule_matches()
1862
1863         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1864         do arg0='foo' arg5='bar' in the match rules
1865         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1866
1867         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1868
1869 2005-07-29  Ross Burton  <ross@openedhand.com>
1870
1871         * dbus/dbus-connection.c:
1872         Don't create a DBusCondVar which is never used.
1873
1874 2005-07-27  Ross Burton  <ross@openedhand.com>
1875
1876         * dbus/dbus-message.c:
1877         Reduce the size of the maximum cached message to 10K.
1878
1879 2005-07-25  Ross Burton  <ross@openedhand.com>
1880
1881         * glib/dbus-gproxy.c:
1882         Remove matches when all proxies are unregistered.
1883
1884 2005-07-24  Colin Walters  <walters@verbum.org>
1885
1886         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1887         typedata; recursive arrays won't have it.
1888
1889         * test/glib/test-dbus-glib.c:
1890         * test/glib/test-service-glib.c:
1891         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1892         
1893 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1894
1895         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1896         proxies.py, service.py: Cleanup of code after running it through the
1897         pyflakes code checker mostly dealing with undefined names.  
1898         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1899
1900 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1901
1902         * NEWS: Update to 0.35.2
1903
1904 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1905
1906         * python/_dbus.py: Remove import of the dbus.services
1907         module as it no longer exists (patch from Dimitur Kirov)
1908
1909         * python/service.py (Object::__init__): Fixed typo
1910         s/name/bus_name (patch from Dimitur Kirov)
1911
1912         * python/examples/example-signal-emitter.py: import dbus.glib
1913         to get the main loop and use glib mainloop instead of gtk so
1914         X doesn't have to be running.
1915
1916         * python/examples/example-signal-recipient.py: import dbus.glib
1917         to get the main loop and use glib mainloop instead of gtk so
1918         X doesn't have to be running. Import the decorators module
1919         directly.
1920
1921         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1922         didn't pick up on but are needed to build
1923
1924         * configure.in: upped version to 0.35.2
1925
1926         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1927         added Colin Walters' SELinux API rename patch from head 
1928         s/unix sercurity context/selinux security context/
1929
1930 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1931
1932         * python/Makefile.am: dbus_binding.pxd.in should be included 
1933         in EXTRA_DIST not dbus_binding.pxd
1934         fix up $(srcdir) hopefully for the last time
1935
1936         * NEWS: Update to 0.35.1
1937
1938 2005-07-16  Colin Walters  <walters@verbum.org>
1939
1940         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1941         from bus_driver_handle_get_connection_unix_security_context.  Update for
1942         error usage.
1943         (message_handlers): Update for renames.
1944
1945         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1946         _dbus_string_init failure correctly.
1947         (bus_selinux_append_context): Convert SID to context.  Append it
1948         as a byte array.
1949         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1950         hasn't been called.
1951
1952         * bus/selinux.h: Update prototype.
1953
1954         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1955         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1956
1957 2005-07-15  Colin Walters  <walters@verbum.org>
1958
1959         * doc/TODO: Add note about convenience wrappers.
1960
1961 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1962
1963         * NEWS: Update to 0.35
1964
1965 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1966
1967         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1968         so distcheck doesn't fail
1969
1970         * glib/examples/Makefile.am: Add example-service.xml and 
1971         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1972
1973         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1974         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1975
1976         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1977         compiler looks in the right places during distcheck
1978
1979 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1980
1981         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1982         to fail
1983
1984 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1985
1986         * python/examples/example-service.py,
1987         python/examples/example-signal-emitter.py: Fixed up examples
1988         for API changes
1989
1990 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1991
1992         * python/__init__.py: Upped to version (0,42,0) because of
1993         the API change
1994
1995 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1996
1997         * ChangeLog: fix date in last entry
1998
1999         * configure.in, bus/system.conf.in: add the ability to configure 
2000         the system bus user at compiletime with the --with-dbus-user flag
2001         (patch from Kristof Vansant)
2002
2003 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2004
2005         * bus/dispatch.c, test/test-service.c: Add testcase
2006         for sending messages to oneself (TODO item).
2007
2008         * python/service.py (class Object): Swap ordering of bus_name 
2009         and object_path parameters to better support inheritance.
2010
2011         * doc/dbus-tutorial.xml: change Python docs to reflect change
2012         in parameter ordering and fix the inheritance section.
2013
2014         * doc/TODO: remove sending message to oneself TODO item
2015
2016 2005-07-15  Ross Burton  <ross@openedhand.com>
2017
2018         * glib/dbus-gproxy.c:
2019         Fix a leak when calling methods via the proxy.
2020
2021 2005-07-15  Colin Walters  <walters@verbum.org>
2022
2023         * bus/selinux.c (bus_selinux_append_context): Wrap in
2024         HAVE_SELINUX.
2025
2026 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2027
2028         * python/_dbus.py (Bus::remove_signal_receiver):
2029         don't add a callback to the match if none has been passed in
2030         
2031         * python/matchrules.py (SignalMatchTree::remove): if the rule
2032         being matched does not have a callback treat it as a wildcard
2033         fix matching logic
2034
2035         * doc/dbus-tutorial.xml: Add Python tutorial
2036
2037 2005-07-14  Colin Walters  <walters@verbum.org>
2038
2039         * bus/driver.c
2040         (bus_driver_handle_get_connection_unix_security_context): New function.
2041         (message_handlers): Add.
2042
2043         * bus/selinux.c (bus_selinux_append_context): New function; appends
2044         security context to message.
2045
2046         * bus/selinux.h: Prototype.
2047
2048         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2049
2050 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2051
2052         * bus/activation.c: clean up all tabs to be 8 spaces 
2053         (bus_activation_activate_service): make sure we clean up
2054         if activation fails
2055
2056         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2057         (check_shell_fail_service_auto_start): New function
2058         tests to make sure we get fail properly when trying to auto start a service
2059         with a faulty command line
2060         (check_shell_service_success_auto_start): New function tests to make sure
2061         auto started services get the arguments on the command line
2062
2063         * test/test-shell-service.c: Added service for testing auto-starting with 
2064         command line arguments
2065
2066         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2067         test/data/valid-service-files/debug-shell-echo-success.service.in:
2068         Added service files for testing auto-starting with command line arguments
2069
2070         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2071
2072 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2073
2074         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2075         
2076         * dbus/Makefile.am: added new files to build.
2077
2078         * bus/activation.c (bus_activation_activate_service): support
2079         activation commands with parameters.
2080
2081         * test/shell-test.c: added test program for the shell parsing
2082         code.
2083
2084 2005-07-13  David Zeuthen  <davidz@redhat.com>
2085
2086         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2087         64 bit signed and unsigned parameters
2088
2089 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2090
2091         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2092
2093         * python/service.py (class Name): renamed BusName to make it clearer
2094         what the object is for (a name on the bus)
2095
2096         * python/examples/example-service.py,
2097         python/examples/example-signal-emitter.py: change the Name object to
2098         BusName
2099
2100 2005-07-12  Colin Walters  <walters@verbum.org>
2101
2102         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2103
2104         * tools/dbus-launch.c: Include sys/select.h.
2105
2106 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2107         * python/dbus_bindings.pyx.in: removed
2108
2109         * python/dbus_bindings.pyx: Added.
2110         - Fixed some memleaks (patch from 
2111         Sean Meiners <sean.meiners@linspireinc.com>)
2112         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2113         own pxd file (Pyrex definition)
2114         - Broke out glib dependancies into its own pyx module
2115         
2116         * python/dbus_bindings.pdx: Added.
2117         - Defines C class Connection for exporting to other modules
2118
2119         * python/dbus_glib_bindings.pyx: Added.
2120         - New module to handle lowlevel dbus-glib mainloop integration
2121
2122         * python/glib.py: Added.
2123         - Registers the glib mainloop when you import this module
2124
2125         * python/services.py: Removed (renamed to service.py)
2126         
2127         * python/service.py: Added.
2128         - (class Server): renamed Name
2129
2130         * python/__init__.py: Bump ro version (0,41,0)
2131         -don't import the decorators or service module
2132         by default.  These now reside in the dbus.service namespace
2133
2134         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2135         setup function on creation 
2136
2137         * python/examples/example-service.py,
2138         python/examples/example-signal-emitter.py: update examples
2139
2140         * python/examples/gconf-proxy-service.py,
2141         python/examples/gconf-proxy-service2.py: TODO fix these up
2142
2143         * doc/TODO: Addition
2144         - Added a Python Bindings 1.0 section
2145         - added "Add match on args or match on details to match rules"
2146
2147
2148 2005-07-12  Colin Walters  <walters@verbum.org>
2149
2150         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2151         (statemachine-glue.h): 
2152         * glib/examples/Makefile.am (example-service-glue.h) 
2153         (example-signal-emitter-glue.h): 
2154         * glib/Makefile.am (dbus-glib-error-switch.h): 
2155         Add libtool --mode=execute so we use the built library instead
2156         of any installed one.
2157
2158 2005-07-11  Colin Walters  <walters@verbum.org>
2159
2160         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2161         (dbus_g_value_types_init): Remove assertion.
2162         (dbus_g_value_get_g_type, dbus_g_value_open)
2163         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2164         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2165         functions related to DBusGValue.  Now we marshal/demarshal
2166         structures as GValueArray.
2167         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2168         structures.
2169         (signature_iter_to_g_type_array): Don't call
2170         signature_iter_to_g_type_struct.
2171         (signature_iter_to_g_type_struct): Delete.
2172         (dbus_gvalue_to_signature): Delete.
2173         (dbus_gvalue_to_signature): New function with same name as other
2174         one; we can convert structures to signatures.
2175         (demarshal_valuearray): New function.
2176         (get_type_demarshaller): Use it.
2177         (demarshal_recurse): Delete.
2178         (marshal_proxy): New function.
2179         (marshal_map): Warn if we can't determine signature from type.
2180         (marshal_collection_ptrarray): Ditto.
2181         (marshal_collection_array): Ditto.
2182         (get_type_marshaller): Use marshal_valuearray.
2183         (marshal_recurse): Delete.
2184         (_dbus_gvalue_test): Add some tests.
2185
2186         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2187         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2188         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2189         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2190         (dbus_g_value_free): Remove prototypes.
2191
2192         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2193         G_TYPE_VALUE_ARRAY.
2194
2195         * glib/examples/example-service.c:
2196         * glib/examples/example-client.c: Implement GetTuple.
2197
2198         * test/glib/test-dbus-glib.c:
2199         * test/glib/test-service-glib.c:
2200         * test/glib/test-service-glib.xml: Add structure tests.
2201
2202 2005-07-10  Colin Walters  <walters@verbum.org>
2203
2204         * doc/TODO: Knock off some GLib items with this patch.
2205
2206         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2207         (_dbus_gvalue_signals_error): New functions.
2208
2209         * glib/dbus-gvalue-utils.h: Prototype them.
2210
2211         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2212         and change to not output const/retval flags for input args.  All
2213         callers updated.
2214         (invoke_object_method): Refactor to handle return values.  Add
2215         some more comments in various places.  Remove debug g_print.
2216
2217         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2218
2219         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2220         Handle G_TYPE_NONE.
2221         (compute_gsignature): New function; refactored from code from
2222         compute_marshaller and compute_marshaller_name.  Enhance to
2223         handle return values and async ops more cleanly.  Update for
2224         async ops returning NONE instead of BOOLEAN.
2225         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2226         and output appropriate string.
2227         (generate_glue): Handle return value annotation.  Also don't dump
2228         constness flag for input arguments.
2229
2230         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2231         files shared between installed library and utilities.
2232         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2233         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2234         binding tool can access gtype utility functions.
2235
2236         * test/glib/test-service-glib.c: 
2237         * test/glib/test-service-glib.xml: 
2238         * test/glib/test-dbus-glib.c: Add some tests for return values.
2239
2240 2005-07-09  Colin Walters  <walters@verbum.org>
2241
2242         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2243         argument if available, not method.
2244
2245         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2246         (invoke_object_method): First, remove some redundant
2247         GValues (object_value, error_value) in favor of working on
2248         array directly.  Second, rework constness to be less buggy.
2249         Now we iterate directly over the argument metadata instead
2250         of parallel iterating over output signature and metadata.
2251
2252         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2253
2254         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2255         annotation on input args.
2256         
2257 2005-07-09  Colin Walters  <walters@verbum.org>
2258
2259         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2260         Define.
2261
2262         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2263         annotation.
2264
2265         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2266         (method_dir_signature_from_object_info): Handle arg_iterate change.
2267         (write_interface): Ditto.
2268         (lookup_object_info): Don't barf if format_version is > 0.
2269         (invoke_object_method): Handle arg constness.
2270
2271         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2272         (arg_info_new): Create.
2273         (arg_info_unref): Destroy.
2274         (arg_info_get_annotations, arg_info_get_annotation) 
2275         (arg_info_add_annotation): New functions.
2276
2277         * glib/dbus-gidl.h: Prototype them.
2278
2279         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2280         args, disallow them in properties.
2281         (parse_annotation): Handle arg annotations.
2282
2283         * test/glib/test-service-glib.xml: 
2284         * test/glib/test-service-glib.c: Update to make some methods
2285         const.
2286
2287 2005-07-08  Colin Walters  <walters@verbum.org>
2288
2289         * test/glib/test-service-glib.xml: 
2290         * test/glib/test-service-glib.c:
2291         * test/glib/test-dbus-glib.c: Test a{sv}.
2292
2293         * glib/examples/statemachine/statemachine.c:
2294         * glib/examples/statemachine/statemachine-server.c:
2295         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2296         add progress bar, etc.
2297
2298         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2299         needed anymore due to generic array/map marshalling.
2300         (dbus_g_value_types_init): Don't register basic arrays or the
2301         string/string hash.
2302         (dbus_gtype_from_signature_iter): Don't try to recurse into
2303         variants.
2304         (dbus_gtype_to_signature): Check collection/map before type
2305         metadata.
2306         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2307         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2308         generic map creation/append functions instead of hash table
2309         specifically.
2310         (get_type_demarshaller): Handle maps.
2311         (demarshal_collection): Dispatch on collection type to either
2312         demarshal_collection_ptrarray or demarshal_collection_array.
2313         (get_type_marshaller): Handle maps.
2314         (marshal_collection): Dispatch collection type to either
2315         marshal_collection_ptrarray or marshal_collection_array.
2316         (_dbus_gvalue_test): New test.
2317
2318         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2319         (hash_free_from_gtype): Use it to free GValues.
2320         (hashtable_append): New function.
2321         (ptrarray_append): Fix prototype.
2322         (slist_append): Ditto.
2323         (_dbus_gvalue_utils_test): Extend tests.
2324
2325         * glib/dbus-gtype-specialized.c
2326         (dbus_g_type_specialized_init_append): Renamed from
2327         dbus_g_type_specialized_collection_init_append.  Remove const from
2328         value, since we steal it.
2329         (dbus_g_type_specialized_map_append): New function.
2330
2331         * glib/dbus-gtype-specialized.h: Update prototypes.
2332         Add DBusGTypeSpecializedMapAppendFunc.
2333
2334         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2335         _dbus_gvalue_test.
2336         
2337         * glib/dbus-gtest.h: Prototype it.
2338
2339 2005-07-08  Ross Burton  <ross@openedhand.com>
2340
2341         * dbus/dbus-glib.h:
2342         Add DBysGAsyncData for the async bindings.
2343
2344         * glib/dbus-binding-tool-glib.c:
2345         Re-enable the async bindings.
2346
2347         * test/glib/test-dbus-glib.c:
2348         Add a test for the generated async bindings.
2349
2350 2005-07-08  Colin Walters  <walters@verbum.org>
2351
2352         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2353         connection concept.
2354         
2355 2005-07-08  Colin Walters  <walters@verbum.org>
2356         
2357         * tools/Makefile.am: Kill of print-introspect in favor of using
2358         dbus-send --print-reply=literal.
2359
2360         * test/glib/test-service-glib.xml: 
2361         * test/glib/test-service-glib.c (my_object_get_objs): New test
2362         for "ao".
2363
2364         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2365         (main): Test GetObjs.
2366
2367         * glib/examples/statemachine/Makefile.am:
2368         * glib/examples/statemachine/sm-marshal.list:
2369         * glib/examples/statemachine/statemachine-client.c:
2370         * glib/examples/statemachine/statemachine-server.c:
2371         * glib/examples/statemachine/statemachine-server.xml:
2372         * glib/examples/statemachine/statemachine.c:
2373         * glib/examples/statemachine/statemachine.h:
2374         * glib/examples/statemachine/statemachine.xml:
2375
2376         New example.
2377
2378         * glib/examples/example-service.c (main): Move invocation
2379         of dbus_g_object_type_install_info earlier, to emphasize it
2380         should only be done once.
2381
2382         * glib/examples/example-signal-emitter.c (main): Ditto.
2383
2384         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2385
2386         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2387         (dbus_gvalue_marshal): Update prototypes.
2388
2389         * glib/dbus-gvalue.c: Update all marshalling functions to take
2390         const GValue instead of GValue.
2391         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2392         types.
2393         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2394         change.
2395         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2396         Return a newly-allocated string.
2397         (demarshal_proxy, demarshal_object_path, demarshal_object)
2398         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2399         we get the wrong types from message.
2400         (get_type_demarshaller): New function, extracted from
2401         dbus_gvalue_demarshal.
2402         (demarshal_collection): New function, demarshals generic
2403         collection.
2404         (dbus_gvalue_demarshal): Just invoke result of
2405         get_type_demarshaller.  Throw error if we don't have one.
2406         (marshal_garray_basic): Abort on OOM.
2407         (get_type_marshaller): New function, extracted from
2408         dbus_gvalue_marshal.
2409         (collection_marshal_iterator, marshal_collection): New functions;
2410         implements generic marshalling for an iteratable specialized
2411         collection.
2412         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2413
2414         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2415         G_TYPE_STRING.
2416         (ptrarray_value_from_gvalue): Ditto.
2417         (ptrarray_append, ptrarray_free): New functions.
2418         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2419         (slist_append, slist_end_append, slist_free): New functions.
2420         (dbus_g_type_specialized_builtins_init): Add append fuctions
2421         for GPtrArray and GSList.  Register GSList.
2422         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2423
2424         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2425         New.
2426         (dbus_g_type_specialized_collection_init_append)
2427         (dbus_g_type_specialized_collection_append)
2428         (dbus_g_type_specialized_collection_end_append): Prototype.
2429         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2430         end_append_func.
2431
2432         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2433         (dbus_g_type_specialized_collection_append) 
2434         (dbus_g_type_specialized_collection_end_append): New functions.
2435         (dbus_g_type_map_value_iterate): Take const GValue.
2436         (dbus_g_type_collection_value_iterate): Ditto.
2437
2438         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2439         _dbus_gvalue_utils_test.
2440         
2441         * glib/dbus-gtest.h: Prototype it.
2442
2443         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2444         using uninitialized owner_list.
2445         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2446         public API.
2447         (dbus_g_proxy_end_call_internal): Update to use error set
2448         from dbus_gvalue_demarshal instead of setting it here.
2449         (dbus_g_proxy_begin_call): Move return_if_fail here.
2450
2451         * glib/dbus-gobject.c (write_interface): Update for
2452         dbus_gtype_to_signature returning new string.
2453
2454         * configure.in: Add glib/examples/statemachine.
2455
2456 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2457
2458         * configure.in: Add a configure option, --with-console-auth-dir
2459         
2460         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2461         new setting.  Patch from Kay Sievers.
2462
2463 2005-07-06  Colin Walters  <walters@verbum.org>
2464
2465         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2466         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2467         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2468         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2469         Delete in favor of dbus_g_proxy_begin_call and
2470         dbus_g_proxy_cancel_call.
2471         (DBusGProxyCall, DBusGProxyCallNotify): New.
2472         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2473         data, and destroy function.  This replaces
2474         dbus_g_pending_call_set_notify.
2475         (dbus_g_proxy_cancel_call): Prototype.
2476         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2477
2478         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2479         pending_calls map.
2480         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2481         internal proxy for calls to the bus. Remove
2482         pending_nameowner_calls, now the internal proxy keeps track.
2483         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2484         pending_nameowner_calls.
2485         (got_name_owner_cb): Update prototype, and use
2486         dbus_g_proxy_end_call.
2487         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2488         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2489         favor of using internal proxy.
2490         (dbus_g_proxy_manager_unregister): Update to use
2491         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2492         (dbus_g_proxy_init): Initialize pending calls map.
2493         (dbus_g_proxy_constructor): New.
2494         (dbus_g_proxy_class_init): Add get/set property functions,
2495         constructor, and add NAME, PATH, and INTERFACE properties.
2496         (cancel_pending_call): New function.
2497         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2498         cancel them.
2499         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2500         (GPendingNotifyClosure): New structure.
2501         (d_pending_call_notify, d_pending_call_free): Moved here from
2502         dbus-glib.c.
2503         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2504         ordering.
2505         (manager_begin_bus_call): New internal function for talking to
2506         internal bus proxy.
2507         (dbus_g_proxy_new): Construct object using GObjet properties.
2508         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2509         Create closure of same, and insert call into map of pending calls.
2510         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2511         call.  Look up pending call in current set.  Remove it when we've
2512         completed.
2513         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2514         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2515         and destroy function directly.
2516         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2517         (dbus_g_proxy_call): Invoke with NULL callback.
2518         (dbus_g_proxy_cancel_call): New function, replaces
2519         dbus_g_pending_call_cancel.
2520
2521         * glib/dbus-gparser.c (validate_signature): Fix call to
2522         dbus_set_g_error.
2523
2524         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2525         New quark for attaching metadata to GType.
2526         (info_hash): Delete.
2527         (lookup_object_info): Look up using quark.
2528         (dbus_g_object_type_install_info): Check that a type is classed,
2529         not that it's an object.  Also just install type data using quark
2530         instead of using global hash.
2531
2532         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2533         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2534         (GPendingNotifyClosure): Delete.
2535         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2536         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2537
2538         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2539         client method generation until we can fix it...
2540         
2541         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2542         (load_from_service_thread_func): Ditto.
2543
2544         * tools/dbus-names-model.c (struct NamesModel): Hold
2545         DBusGProxyCall.
2546         (have_names_notify): Update prototype, use
2547         dbus_g_proxy_cancel_call.
2548         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2549
2550         * tools/dbus-monitor.c (filter_func): Update for print_message
2551         API change.
2552
2553         * test/glib/test-dbus-glib.c: Add more tests for async
2554         invocations.  Update many begin_call/end_call pairs to just use
2555         dbus_g_proxy_call.
2556
2557         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2558         allows us to dump print-introspect.c.
2559
2560         * tools/dbus-print-message.h (print_message): Add literal argument
2561         to print_message which is intended to allow printing arguments without
2562         metadata like "string=".
2563
2564         * tools/dbus-print-message.c (print_iter): Add literal argument.
2565         (print_message): Allow printing string messages literally.
2566
2567 2005-07-05  Colin Walters  <walters@verbum.org>
2568
2569         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2570         Remove value refcount leak, original patch from Jorn Baayen
2571         <jorn@openedhand.com>.  Also remove useless extra value in favor
2572         of prepending to value array directly.
2573
2574 2005-07-02  Colin Walters  <walters@verbum.org>
2575
2576         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2577
2578 2005-07-01  Colin Walters  <walters@verbum.org>
2579
2580         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2581         
2582         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2583         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2584         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2585         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2586
2587 2005-06-30  Colin Walters  <walters@verbum.org>
2588
2589         * test/glib/test-dbus-glib.c:
2590         * test/glib/test-service-glib.c:
2591         * test/glib/test-service-glib.xml: Update tests for new error
2592         setting bits, also add async tests (patch from Ross Burton).
2593
2594         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2595         DBUS_GLIB_THREADS_LIBS.
2596
2597         * glib/dbus-gproxy.c (get_name_owner)
2598         (dbus_g_pending_call_end_valist): Ditto.
2599
2600         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2601         domain (GQuark) to DBusGErrorInfo.  
2602         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2603         quark in error_metadata.  Take message interface as default
2604         error message interface.
2605         (gerror_to_dbus_error_message): Pass message interface.
2606         (dbus_set_g_error): Resurrected.
2607         (dbus_g_error_info_free): New function.
2608         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2609         of _peek to actually create the object class if it hasn't been
2610         created yet.
2611         (dbus_g_error_domain_register): New function.
2612
2613         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2614
2615         * glib/dbus-gparser.c (validate_signature): Ditto.
2616
2617         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2618         (dbus_g_error_domain_register): Prototype.
2619
2620         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2621         Update tests.
2622
2623 2005-06-29  Colin Walters  <walters@verbum.org>
2624
2625         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2626         DBUS_TYPE_G_OBJECT_PATH.
2627
2628         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2629         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2630         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2631         (dbus_g_object_path_get_g_type): New function.
2632         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2633         to DBUS_TYPE_G_OBJECT_PATH by default.
2634         (demarshal_proxy): Remove unused name variable.
2635         (demarshal_object_path, marshal_object_path): New functions.
2636         (demarshal_proxy_array, marshal_proxy_array): Delete.
2637         
2638         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2639         DBUS_TYPE_G_OBJECT_PATH to char *.
2640         (dbus_g_type_get_lookup_function): Map builtin
2641         DBUS_TYPE_G_OBJECT_PATH.
2642
2643         * test/glib/test-dbus-glib.c
2644         * test/glib/test-service-glib.c (my_object_objpath): 
2645         Adapt tests to new object path marshalling.
2646
2647 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2648
2649         * configure.in: force check for Python >= 2.4
2650
2651 2005-06-29  Colin Walters  <walters@verbum.org>
2652         
2653         Patch from Ross Burton <ross@openedhand.com>
2654         
2655         * glib/dbus-gobject.c (invoke_object_method): Unset object
2656         value in all cases, not only in async case.
2657
2658 2005-06-29  Colin Walters  <walters@verbum.org>
2659
2660         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2661         name_call for keeping track of any outgoing GetNameOwner call.
2662         Also add for_owner and associated.
2663         (struct _DBusGProxyManager): Add owner_names, which is hash table
2664         that maps a base name to a list of names it owns (that we're
2665         interested in).  Add pending_nameowner_calls which is a list of
2666         all outstanding GetNameOwner; avoids us having to iterate over
2667         every proxy.  Add unassociated_proxies which keeps track of name
2668         proxies with no associated name owner.
2669         (dbus_g_proxy_manager_unref): Destroy owner_names.
2670         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2671         name refcounts.
2672         (find_name_in_info, name_owner_foreach)
2673         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2674         (dbus_g_proxy_manager_monitor_name_owner)
2675         (dbus_g_proxy_manager_unmonitor_name_owner)
2676         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2677         New functions; they manipulate the owner_names mapping.
2678         (got_name_owner_cb): New function.
2679         (get_name_owner): New function, extracted from
2680         dbus_g_proxy_new_for_name_owner.
2681         (dbus_g_proxy_manager_register): For now we need to keep track of
2682         all NameOwnerChanged.  Also if the proxy is for a name, if we
2683         don't already know the name owner, queue a new GetNameOwner
2684         request and add it to our list of unassociated proxies.  Otherwise
2685         inc the refcount.
2686         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2687         cancel any pending GetNameOwner call, etc.
2688         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2689         the owner_names mapping to look up the current names for the
2690         signal source, and dispatch to any proxies for that name.
2691         (dbus_g_proxy_new): Initialize new members.
2692         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2693         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2694         (dbus_g_pending_call_end_valist): New function, extracted from
2695         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2696         but want to use the GLib infrastructure.  Also note how many
2697         arguments in reply were over.
2698         (dbus_g_pending_call_end): New function, just call
2699         dbus_g_pending_call_end_valist.
2700         (dbus_g_proxy_end_call_internal): Just call
2701         dbus_g_pending_call_end_valist.
2702
2703         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2704         of builtin marshaller for STRING_STRING_STRING.
2705
2706         * test/glib/test-dbus-glib.c: 
2707         * test/glib/test-service-glib.c:
2708         * test/glib/test-service-glib.xml:
2709         Extend tests to cover name proxies, destruction of owner proxies,
2710         etc.
2711         
2712         * glib/examples/example-signal-recipient.c
2713         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2714         
2715         * tools/dbus-send.c (main): Print D-BUS error name in addition
2716         to message.
2717
2718 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2719
2720         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2721         cmessage_function_handler): Patch from 
2722         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2723         by using the Py_GILState_Ensure/Release to synchronize with the
2724         python runtime.
2725         
2726 2005-06-28  Ray Strode  <rstrode@redhat.com>
2727
2728         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2729         babysitter helper process on last unref, bug #2813.
2730
2731 2005-06-27  Colin Walters  <walters@verbum.org>
2732
2733         * test/glib/test-dbus-glib.c: 
2734         * test/glib/test-service-glib.c:
2735         * test/glib/test-service-glib.xml:
2736         Test hash table signal emitting.
2737
2738         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2739         types to their fundamental basis types, since this is what
2740         marshallers operate on.  Also add an entry for VOID__BOXED.
2741         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2742
2743 2005-06-26  Havoc Pennington  <hp@redhat.com>
2744
2745         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2746         from Don Park
2747
2748 2005-06-26  Colin Walters  <walters@verbum.org>
2749
2750         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2751         (dbus_g_error_set): New public function from its ashes; used by
2752         both service-side method implementation and GLib bindings
2753         internals.
2754         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2755         (_dbus_glib_test): Add some tests.
2756
2757         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2758
2759         * test/glib/test-service-glib.c (my_object_throw_error): Use
2760         dbus_g_error_set.
2761
2762         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2763         errors thrown by dbus_g_error_set.
2764
2765         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2766
2767         * glib/dbus-gparser.c (validate_signature): Ditto.
2768
2769         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2770         (dbus_g_proxy_end_call_internal): Ditto.
2771
2772         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2773         converts DBUS_ERROR_x to DBUS_GERROR_x.
2774         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2775
2776         * doc/TODO: Remove error TODO.
2777
2778         * doc/dbus-tutorial.xml: Update with documentation about error
2779         handling.
2780
2781         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2782         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2783         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2784
2785 2005-06-22  Colin Walters  <walters@verbum.org>
2786         
2787         Patch from Ross Burton <ross@openedhand.com>
2788
2789         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2790
2791 2005-06-20  Colin Walters  <walters@verbum.org>
2792
2793         * configure.in: Add glib/examples.
2794
2795         * glib/Makefile.am: Add examples/
2796
2797         * glib/examples/.cvsignore
2798         * glib/examples/Makefile.am
2799         * glib/examples/example-client.c
2800         * glib/examples/example-service.c
2801         * glib/examples/example-service.xml
2802         * glib/examples/example-signal-emitter.c
2803         * glib/examples/example-signal-emitter.xml
2804         * glib/examples/example-signal-recipient.c:
2805         New files; GLib binding examples, ported from
2806         python/examples.
2807
2808 2005-06-20  Colin Walters  <walters@verbum.org>
2809
2810         * dbus/dbus-glib.h: 
2811         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2812         dbus_g_proxy_call.
2813
2814         * glib/dbus-binding-tool-glib.c: 
2815         * doc/dbus-tutorial.xml: 
2816         * test/glib/test-dbus-glib.c: Update for rename.
2817         
2818 2005-06-20  Colin Walters  <walters@verbum.org>
2819
2820         Patch suggested by Ross Burton <ross@openedhand.com>
2821
2822         * glib/dbus-gobject.c (export_signals): Free signal name.
2823         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2824         memory leak.  Add a bit of documentation.
2825         (dbus_g_method_return_error): Free context, and note we do
2826         so.
2827
2828 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2829
2830         * dbus/dbus-glib.h:
2831         * glib/dbus-gobject.c:
2832         * glib/dbus-gproxy.c:
2833         * glib/dbus-gvalue.c: Predeclare structs as 
2834         typedef struct _Something Something instead of 
2835         typedef struct Something Something, so we can 
2836         redeclare the prototypes. Other GNOME libraries 
2837         do this already.
2838
2839 2005-06-17  Colin Walters  <walters@verbum.org>
2840
2841         * tools/dbus-names-model.c (have_names_notify): Fix call
2842         to dbus_g_proxy_end_call.
2843         
2844 2005-06-17  Colin Walters  <walters@verbum.org>
2845
2846         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2847         spew warnings if we get malformed remote signals.
2848
2849         * glib/dbus-gobject.c (propsig_iterate): New function.
2850         (lookup_object_info): New function, extracted from
2851         lookup_object_and_method.
2852         (introspect_properties, introspect_signals): Delete; these
2853         are merged into write_interface.
2854         (write_interface): Write out signals and properties here;
2855         dump the org.gtk.object stuff and use the interface given
2856         in the introspection data blob.  Also fix up property XML.
2857         (lookup_values): New function.
2858         (introspect_interfaces): Gather a mapping from interface to a
2859         list of its methods, signals, and properties, then write out
2860         each interface.
2861         (lookup_object_and_method): Use lookup_object_info.
2862         (struct DBusGSignalClosure): Add interface.
2863         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2864         we can just use the constant data.
2865         (dbus_g_signal_closure_finalize): Don't free signal name.
2866         (signal_emitter_marshaller): Use interface from signal closure.
2867         (export_signals): Only export signals mentioned in introspection
2868         blob.
2869         (dbus_g_connection_register_g_object): Warn if we have no
2870         introspection data for an object.
2871         (funcsig_equal): Remove unused variable.
2872         (dbus_g_object_register_marshaller): Take varargs instead of
2873         list.
2874         (dbus_g_object_register_marshaller_array): New function,
2875         extracted from old dbus_g_object_register_marshaller.
2876
2877         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2878         signals and property data.
2879         (write_quoted_string): New function, extracted from generate_glue.
2880         (generate_glue): Write signals and properties to introspection
2881         blob.
2882
2883         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2884         exported_signals and exported_properties.
2885         (dbus_g_object_register_marshaller): Update prototype.
2886         (dbus_g_object_register_marshaller_array): Prototype.
2887         
2888         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2889
2890         * test/glib/test-service-glib.c: Add new test signals and method
2891         to emit them.
2892
2893         * test/glib/test-service-glib.xml: Add some test signals.
2894
2895         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2896         and my-object-marshal.h
2897         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2898         my-object-marshal.c.
2899         (my-object-marshal.c, my-object-marshal.h): Implement.
2900
2901         * test/glib/.cvsignore: Update.
2902
2903         * doc/TODO: Remove two GLib TODO items fixed by this
2904         patch.
2905
2906 2005-06-16  Colin Walters  <walters@verbum.org>
2907
2908         * doc/TODO: Update for GLib bindings.
2909         
2910 2005-06-16  Colin Walters  <walters@verbum.org>
2911
2912         * glib/dbus-binding-tool-glib.c:
2913         * glib/dbus-gobject.c:
2914         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2915         from Ross Burton, for his GLib bindings work.
2916
2917 2005-06-16  Colin Walters  <walters@verbum.org>
2918
2919         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2920         to iterate instead of walking to G_TYPE_INVALID.
2921
2922         Patch based on a patch from Ryan Gammon.
2923
2924 2005-06-16  Colin Walters  <walters@verbum.org>
2925
2926         * bus/bus.c (bus_context_new): Set parser to NULL
2927         after we unref it (Patch from Chris Boscolo, #2174).
2928         
2929 2005-06-16  Colin Walters  <walters@verbum.org>
2930
2931         * python/dbus_bindings.pyx.in: Import size_t,
2932         __int64_t, __uint64_t, and __signed.
2933
2934         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2935         Define cmsg struct, output it.
2936         (_dbus_read_credentials_unix_socket):
2937         Use cmsg struct.
2938         
2939         Patch from Joe Markus Clarke for FreeBSD support.
2940         
2941 2005-06-16  Colin Walters  <walters@verbum.org>
2942
2943         * tools/dbus-send.c (append_array): Use strtok.
2944         (append_dict): New function.
2945         (type_from_name): New function, extracted from main.
2946         (main): Handle sending dicts.
2947
2948         * tools/dbus-print-message.c (print_iter): Print dict
2949         entries.
2950         
2951 2005-06-16  Colin Walters  <walters@verbum.org>
2952
2953         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2954         values as the empty string (#2948).
2955         
2956 2005-06-16  Colin Walters  <walters@verbum.org>
2957
2958         * dbus/Makefile.am:
2959         * mono/doc/Makefile.am:
2960         * test/glib/Makefile.am:
2961
2962         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2963
2964 2005-06-16  Colin Walters  <walters@verbum.org>
2965
2966         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2967         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2968
2969         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2970         Increment pointer after swapping fixed array.  Add assertion
2971         for array length.
2972                 
2973 2005-06-15  Colin Walters  <walters@verbum.org>
2974
2975         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2976         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2977         
2978 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2979
2980         * NEWS: Update to 0.34
2981
2982 2005-06-15  David Zeuthen  <davidz@redhat.com>
2983
2984         * configure.in (LT_CURRENT): Revert back to 1 as the library
2985         hasn't changed and we've certainly not committed to protocol
2986         stability yet.  All this does is to break ABI. See commit note
2987         from hp@redhat.com 2005-05-05 for details.
2988         
2989 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2990
2991         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2992         (_dbus_connection_run_builtin_filters): New method
2993         (dbus_connection_dispatch): Run the builtin filters which in turn
2994         runs the peer filter which handles Ping messages.
2995
2996         * doc/TODO: 
2997          - Ping isn't handled: This patch fixes it
2998          
2999          - Add a test case for the Ping message: added TODO item
3000
3001 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3002
3003         * dbus/dbus-message.c:
3004         (dbus_message_has_path): New method
3005         (dbus_message_has_interface): New method
3006         (dbus_message_has_member): New method
3007
3008         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3009         New method
3010
3011         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3012         the keyring directory is private to the user
3013
3014         * doc/TODO:
3015          - The convenience functions in dbus-bus.h should perhaps have
3016          the signatures that they would have if they were autogenerated
3017          stubs. e.g. the acquire service function. We should also evaluate
3018          which of these functions to include, in light of the fact that
3019          GLib/Qt native stubs will probably also exist.: Punted
3020
3021          - add dbus_message_has_path(), maybe has_member/interface:
3022          fixed in this patch
3023
3024          - in dbus-keyring.c, enforce that the keyring dir is not
3025          world readable/writable: Fixed in this patch
3026
3027 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3028
3029         * dbus/dbus-marshal-validate.h: Added a new validation
3030         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3031         out of memory errors when validating signitures
3032
3033         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3034         in places where we previously used DBUS_VALID and a FALSE return 
3035         value to indicate OOM
3036         
3037         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3038         Use a stack to track the number of elements inside containers.  The 
3039         stack values are then used to validate that dict entries have only two
3040         elements within them.
3041         (validate_body_helper): check the reason for failure when validating
3042         varients
3043         
3044         * dbus/dbus-message.c (load_message): use 
3045         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3046         DBUS_VALID and a FALSE return value to indicate OOM
3047
3048         * doc/TODO: remove "- validate dict entry number of fields" as this
3049         patch fixes it
3050
3051 2005-06-14  David Zeuthen  <davidz@redhat.com>
3052
3053         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3054         watches (if applicable) and add new watches
3055
3056         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3057         (main): Setup SIGIO signal handler if using D_NOTIFY
3058
3059         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3060
3061         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3062         (merge_included): Also merge conf_dirs list
3063         (bus_config_parser_unref): Clear conf_dirs list
3064         (include_dir): Add directory to conf_dirs list
3065         (bus_config_parser_get_conf_dirs): New function
3066
3067         * bus/dir-watch.[ch]: New files
3068
3069         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3070
3071         * configure.in: Add checks for D_NOTIFY on Linux
3072
3073 2005-06-14  Colin Walters  <walters@verbum.org>
3074
3075         * glib/dbus-binding-tool-glib.c:
3076         * glib/dbus-gobject.c:
3077         * glib/dbus-gvalue.c: Fix indentation and brace style.
3078         
3079 2005-06-14  Ross Burton <ross@openedhand.com>.
3080
3081         * glib/dbus-glib.h: Make DBusGMethodInvocation
3082         a private structure.  Rearrange prototypes a bit.
3083         
3084         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3085         documentation for first_arg_type.
3086         
3087         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3088         here, add documentation.  Move dbus_g_method_return
3089         and dbus_g_method_return_error into public API
3090         section.
3091
3092 2005-06-14  Colin Walters  <walters@verbum.org>
3093
3094         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3095         Add missing return statements, noticed by Ross Burton.
3096         
3097 2005-06-13  Ross Burton <ross@openedhand.com>.
3098
3099         * glib/dbus-gobject.c: Handle errors on message
3100         demarshalling by sending error message back.
3101         * glib/dbus-gvalue.c: Initialize return variables.
3102
3103 2005-06-13  Colin Walters  <walters@verbum.org>
3104
3105         * glib/Makefile.am: Fix thinko in last patch.
3106
3107 2005-06-13  Colin Walters  <walters@verbum.org>
3108
3109         * glib/Makefile.am: Move dbus-gtype-specialized.c
3110         and dbus-gtype-specialized.h into a _HEADERS variable,
3111         install them.
3112
3113 2005-06-12  Colin Walters  <walters@verbum.org>
3114
3115         Async signals and various bugfixes and testing by
3116         Ross Burton <ross@openedhand.com>.
3117
3118         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3119         (dbus_gvalue_genmarshal_name_from_type)
3120         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3121         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3122         (dbus_g_value_types_init, dbus_gtype_from_signature)
3123         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3124         (dbus_gtypes_from_arg_signature): New function prototypes.
3125         (dbus_gvalue_demarshal): Take context and error arguments.
3126         (dbus_gvalue_demarshal_variant): New function.
3127         (dbus_gvalue_demarshal_message): New function.
3128         (dbus_gvalue_store): Delete.
3129
3130         * glib/dbus-gvalue.c:
3131
3132         File has been almost entirely rewritten; now we special-case
3133         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3134         hash tables correctly, etc.  Full support for recursive values
3135         is not yet complete.
3136
3137         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3138         argument of signal to G_TYPE_POINTER since we now pass a
3139         structure.
3140         (lookup_g_marshaller): Delete in favor of
3141         _dbus_gobject_lookup_marshaller.
3142         (marshal_dbus_message_to_g_marshaller): Use
3143         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3144         to handle remote signal callbacks.
3145         (dbus_g_proxy_new_from_proxy): New function; creates a new
3146         DBusGProxy by copying an existing one.
3147         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3148         (dbus_g_proxy_get_path): New functions.
3149         (dbus_g_proxy_marshal_args_to_message): New function;
3150         factored out of existing code.
3151         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3152         from a varargs array.
3153         (dbus_g_proxy_begin_call_internal): New function.
3154         (dbus_g_proxy_end_call_internal): New function.
3155         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3156         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3157         after collecting args into value array.
3158         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3159         invoke dbus_g_proxy_end_call_internal.
3160         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3161         end_call_internal.
3162         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3163         types.
3164         (array_free_all): New function.
3165         (dbus_g_proxy_add_signal): Take GTypes.
3166
3167         * glib/dbus-gobject.h:
3168         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3169         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3170         Prototype.
3171
3172         * glib/dbus-gobject.c: Add a global marshal_table hash which
3173         stores mappings from type signatures to marshallers.  Change lots
3174         of invocations of dbus_gtype_to_dbus_type to
3175         dbus_gtype_to_signature.
3176         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3177         (introspect_signals): Fix test for query.return_type.
3178         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3179         (invoke_object_method): Many changes.  Handle asynchronous
3180         invocations.  Convert arguments with
3181         dbus_gvalue_demarshal_message.  Handle errors.  Use
3182         DBusSignatureIter instead of strlen on args. Handle all arguments
3183         generically.  Special-case variants.
3184         (dbus_g_method_return, dbus_g_method_return_error): New function.
3185         (DBusGSignalClosure): New structure, closes over signal
3186         information.
3187         (dbus_g_signal_closure_new): New function.
3188         (dbus_g_signal_closure_finalize): New function.
3189         (signal_emitter_marshaller): New function; is special marshaller
3190         which emits signals on bus.
3191         (export_signals): New function; introspects object signals and
3192         connects to them.
3193         (dbus_g_object_type_install_info): Take GType instead of
3194         GObjectClass.
3195         (dbus_g_connection_register_g_object): Invoke export_signals.
3196         (dbus_g_connection_lookup_g_object): New function.
3197         (DBusGFuncSignature) New structure; used for mapping type
3198         signatures to marshallers.
3199         (funcsig_hash): New function; hashes DBusGFuncSignature.
3200         (funcsig_equal): New function; compares DBusGFuncSignature.
3201         (_dbus_gobject_lookup_marshaller): New function.
3202         (dbus_g_object_register_marshaller): New function; used to
3203         register a marshaller at runtime for a particular signature.
3204
3205         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3206
3207         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3208         which notes a server method implementation should be
3209         asynchronous.
3210
3211         * glib/dbus-binding-tool-glib.c
3212         (dbus_binding_tool_output_glib_server): Call
3213         dbus_g_value_types_init.
3214         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3215         variants specially.
3216         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3217         of a lookup function.
3218         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3219         (write_untyped_out_args): New method; write output arguments.
3220         (write_formal_declarations_for_direction): Function for
3221         writing prototypes.
3222         (write_formal_parameters_for_direction): Function for
3223         writing implementations.
3224         (write_typed_args_for_direction): Function for writing
3225         arguments prefixed with GTypes.
3226         (write_async_method_client): Write out async version
3227         of method.
3228
3229         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3230         (dbus_g_type_get_marshal_name): Move mapping from GType
3231         to marshal name into here.
3232         (dbus_g_type_get_c_name): Move into here.
3233         (compute_marshaller): Convert signature to type with
3234         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3235         (compute_marshaller_name): Ditto.
3236         (compute_marshaller): Handle async signal annotations.
3237         (gather_marshallers): Return if we don't have a known
3238         prefix.
3239         (generate_glue): Collect introspection blob here, and
3240         write all of the blob at the end.  This allows an object
3241         with multiple interfaces to work.
3242         Mark async methods in introspection blob.
3243
3244         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3245         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3246         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3247
3248         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3249         avoids people accidentally using DBUS_TYPE_* which should
3250         not be necessary anymore.
3251         Do include dbus-gtype-specialized.h, which are utilities
3252         for GLib container types.
3253         Add various #defines for types such as
3254         DBUS_TYPE_G_BOOLEAN_ARRAY.
3255         (DBusGValueIterator, DBusGValue): Define, not fully used
3256         yet.
3257         (dbus_g_value_get_g_type): Type for recursive value.
3258         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3259         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3260         (dbus_g_value_free): Prototypes.
3261         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3262         (dbus_g_proxy_set_interface): Prototype.
3263         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3264         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3265         types.
3266         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3267         Accessors.
3268         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3269         doing async invocations.
3270         (dbus_g_method_return, dbus_g_method_return_error):
3271         Prototypes.
3272         * doc/dbus-tutorial.xml: Update GLib section.
3273         
3274         * tools/dbus-viewer.c (load_child_nodes): Update
3275         for new invocation type of dbus_g_proxy_end_call.
3276         (load_from_service_thread_func): Ditto.
3277
3278         * tools/print-introspect.c (main): Ditto.
3279
3280         * tools/dbus-names-model.c (have_names_notify)
3281         (names_model_reload, names_model_set_connection)
3282         Use GTypes.
3283
3284         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3285         needed since Python bindings use GLib bindings.
3286
3287         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3288         Add --prefix argument.
3289
3290         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3291         unneeded --ignore-unsupported arg.
3292         
3293         * test/glib/test-service-glib.c: 
3294         * test/glib/test-service-glib.xml:
3295         * test/glib/test-dbus-glib.c: Add many more tests.
3296
3297 2005-06-06  David Zeuthen  <davidz@redhat.com>
3298
3299         * doc/TODO: Add item about need to remove deprecated functions.
3300
3301         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3302
3303         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3304         to repair the ABI which was broken with the last commit.
3305
3306 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3307
3308         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3309         (dbus_connection_disconnect): renamed to dbus_connection_close 
3310         for API symmetry with dbus_connection_open
3311         (_dbus_connection_open_internal): 
3312         s/dbus_connection_disconnect/dbus_connection_close
3313
3314         * dbus/dbus-bus.c (dbus_bus_get):
3315         s/dbus_connection_disconnect/dbus_connection_close
3316
3317         * bus/connection.c (bus_connections_unref, 
3318         bus_connections_setup_connection, bus_connections_expire_incomplete):
3319         s/dbus_connection_disconnect/dbus_connection_close
3320
3321         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3322         kill_client_connection_unchecked, check_hello_connection):
3323         s/dbus_connection_disconnect/dbus_connection_close
3324
3325         * bus/bus.c (new_connection_callback):
3326         s/dbus_connection_disconnect/dbus_connection_close
3327
3328         * tools/dbus-send.c (main):
3329         s/dbus_connection_disconnect/dbus_connection_close
3330
3331         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3332         s/dbus_connection_disconnect/dbus_connection_close
3333         
3334         * test/test-service.c (path_message_func, filter_func):
3335         s/dbus_connection_disconnect/dbus_connection_close
3336         
3337         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3338         
3339 2005-05-25  Colin Walters  <walters@verbum.org>
3340
3341         * dbus/dbus-protocol.h: Move various bus service #defines such
3342           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3343           dbus/dbus-shared.h.
3344         * dbus/dbus-shared.h: Various defines moved here.
3345         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3346
3347 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3348
3349         * python/__init__.py: Python bindings deserve a minor version
3350         update.  Upped to (0, 40, 2)
3351
3352 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3353
3354         * python/decorators.py: add explicitly_pass_message decorator
3355         for passing in the dbus message as keyword for edge case signal
3356         handling
3357
3358         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3359         to conform with what dbus expects for match rules
3360         (SignalMatchRule.execute): add the dbus message as a keyword
3361         if the signal handler has requested it
3362
3363         * python/examples/example/signal-recipient.py: added some more
3364         examples on how to hook up to signals
3365
3366 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3367
3368         * python/decorators.py: import dbus_bindings
3369
3370         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3371         SignalMatchNode): new classes that implement wildcard signal
3372         callback matching using a tree lookup. Heavily modified from a
3373         patch sent by Celso Pinto (fd.o bug #3241)
3374
3375         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3376         use new match classes to handle signals.
3377
3378 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3379         
3380         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3381
3382 2005-05-18  Havoc Pennington  <hp@redhat.com>
3383
3384         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3385         gettext. Not really worth requiring yet perhaps, but any
3386         production quality 1.0 would require it so we should go ahead and
3387         get things set up. We do have a couple token calls to
3388         bindtextdomain in the code already.
3389
3390 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3391
3392         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3393         when using recursive g_main_loops
3394
3395         * python/_dbus.py (class Bus): add the ProxyObjectClass
3396         alias for ProxyObject to make it easier for the Twisted 
3397         networking framework to integrate dbus.
3398
3399         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3400         alias for ProxyMethod to make it easier for the Twisted 
3401         networking framework to integrate dbus. 
3402
3403 2005-05-11  Ross Burton  <ross@openedhand.com>
3404
3405         * glib/dbus-glib-tool.c: Add --prefix argument.
3406         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3407         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3408         Add prefix argument.
3409         (generate_glue): Pass prefix argument down.
3410         (dbus_binding_tool_output_glib_server): Pass prefix to
3411         glib-genmarshal.
3412         
3413 2005-05-11  Colin Walters  <walters@verbum.org>
3414
3415         * tools/dbus-send.c (append_array): New function.
3416         (append_arg): Broken out from main.
3417         (main): Add cheesy hack to send arrays and variants.
3418         (usage): Update.
3419         * tools/dbus-print-message.c (print_iter): Broken out
3420         from main.
3421
3422 2005-05-11  Colin Walters  <walters@verbum.org>
3423
3424         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3425         New function, returns signature string for signature iter.
3426         * dbus/dbus-signature.h: Prototype it.
3427         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3428         New function, returns signature string for message iter.
3429         (dbus_message_iter_get_array_len): New function, returns
3430         length of array.
3431         (dbus_message_iter_get_fixed_array): Fix assertion; this
3432         function should be used when the iter is pointing to the
3433         contents of an array
3434         * dbus/dbus-message.h: Prototypes.
3435         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3436         New function; returns length of an array.
3437         * dbus/dbus-marshal-recursive.h: Prototype it.
3438         
3439 2005-05-11  Colin Walters  <walters@verbum.org>
3440
3441         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3442         compilation error.
3443         
3444 2005-05-08  Havoc Pennington  <hp@redhat.com>
3445
3446         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3447         daemon's pid, not the parent's pid, to the file descriptor.
3448         Reported by Taj Morton.
3449
3450 2005-05-05  Havoc Pennington  <hp@redhat.com>
3451
3452         * configure.in (LT_*): add notes on how the libtool versioning
3453         works to save thinking. Increment soname to indicate protocol
3454         breakage (though really the library interface hasn't changed I
3455         guess)
3456
3457         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3458         verify the GUID received from server matches what we were
3459         expecting, if we had an expectation
3460
3461         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3462         (_dbus_auth_get_guid_from_server): new function
3463         (send_begin): parse the OK args
3464
3465         * doc/dbus-specification.xml: add GUID to the auth protocol
3466
3467 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3468
3469         * Fix my name in previous changelog ;)
3470
3471         * python/proxies.py (ProxyObject.__getattr__): add further patch
3472         from Anthony Baxter to throw an AttributeError when python 
3473         __special__ functions are called instead of marshling them over 
3474         the bus (Bug#1685 comment 3).
3475
3476 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3477
3478         * python/Makefile.am: changed to use pyexecdir for the binding
3479         shared libraries (Bug#2494)
3480
3481         * python/exceptions.py: bring exceptions over from the bindings
3482         so they can be used in applications (Bug#2036)
3483         Make all exceptions derive from DBusException
3484
3485         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3486         of classes so that print obj doesn't throw an exception (Bug #1685)
3487
3488 2005-05-03  Ross Burton  <ross@openedhand.com>
3489
3490         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3491         Return if we get an error during registration.  Set up a
3492         weak reference on object to unregister if object is destroyed.
3493         (unregister_gobject): New function.
3494         
3495 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3496
3497         * python/dbus_bindings.pyx.in: 
3498         - added new type classes for hinting to the marashaler what type 
3499         to send over the wire
3500         - added int16 and uint16 marshalers
3501         - Fixed a bug in the type constants that caused int32 to go out
3502         as uint16 over the wire
3503         * python/dbus.py: split up into different files and renamed _dbus.py
3504         * python/__init__.py, python/_util.py, python/decorators.py, 
3505         python/exceptions.py, python/proxies.py, python/services.py,
3506         python/types.py: new files split off from dbus.py
3507         * python/Makefile.am: Add new files, remove dbus.py and 
3508         install all python files to <python module dir>/dbus
3509         * python/examples/*: Added #!/usr/bin/env python to the top of
3510         every example.  Patch provided by Tatavarty Kalyan
3511
3512 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3513
3514         * NEWS: Update to 0.33
3515
3516 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3517
3518         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3519         method for doing async calls
3520         (_pending_call_notification): New C function for handling pendning call
3521         callbacks
3522         (set_notify): New method for setting pending call notification
3523         
3524         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3525         Async capabilities added to remote method calls
3526         (Sender): class removed
3527         (RemoteService): class removed
3528         (ObjectTree): class removed for now
3529         (RemoteObject): Renamed to ProxyObject
3530         (RemoteMethod): Renamed to ProxyMethod
3531         (method): Decorator added for decorating python methods as dbus methods
3532         (signal): Decorator added for decorating python methods as signal emitters
3533         (ObjectType): Metaclass added for generating introspection data and the
3534         method callback vtable
3535         (Interface): Wrapper class added to wrap objects in a dbus interface
3536         (Object): Uses ObjectType as its metaclass and exports Introspect
3537         of the org.freedesktop.DBus.Introspectable interface
3538         (ValidationException, UnknownMethodException): new exceptions
3539
3540         * python/examples/*: Modified to fit with the new bindings
3541
3542 2005-04-23  Havoc Pennington  <hp@redhat.com>
3543
3544         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3545         reported by Tony Houghton
3546
3547         * test/test-service.c (main): test
3548         dbus_connection_get_object_path_data()
3549
3550         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3551         the exact_match
3552         (_dbus_object_tree_get_user_data_unlocked): new function used by
3553         dbus_connection_get_object_path_data()
3554         (do_register): add assertion test for get_user_data_unlocked
3555         (object_tree_test_iteration): more tests
3556
3557         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3558         new function from Dan Reed to let you get the user data from 
3559         dbus_connection_register_object_path()
3560
3561 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3562
3563         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3564         in numerous places that did not account for the NULL terminator
3565         (signature_from_seed): changed the manual string copy loop to 
3566         just use strcpy instead
3567         make check should now pass
3568
3569 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3570
3571         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3572         so that it allows messages that are not signals to pass in 
3573         NULL as the interface.
3574
3575 2005-04-18  David Zeuthen  <davidz@redhat.com>
3576
3577         * glib/dbus-gmain.c (io_handler_destroy_source): 
3578         (timeout_handler_destroy_source, connection_setup_free): 
3579         Also unref the source to avoid memory leaks.
3580
3581 2005-04-13  David Zeuthen  <davidz@redhat.com>
3582
3583         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3584         more reasonable, yet still totally arbitrary, value :-). 
3585
3586 2005-04-13  David Zeuthen  <davidz@redhat.com>
3587
3588         * doc/TODO: Added an "important for 1.0" item about selinux
3589         allow/deny messages
3590
3591 2005-04-13  David Zeuthen  <davidz@redhat.com>
3592
3593         * bus/selinux.c: Add c-file-style to top of file
3594         (log_audit_callback): Don't free the data here anymore
3595         (bus_selinux_check): Don't take spid and tpid since appending
3596         that to auxdata may OOM.
3597         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3598         to the caller if we are OOM by taking an error object.
3599         (bus_selinux_allows_send): -do-
3600
3601         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3602         and bus_selinux_allows_send
3603
3604         * bus/bus.c (bus_context_check_security_policy): Pass error and
3605         pass on OOM thrown by bus_selinux_allows_send()
3606
3607         * bus/services.c (bus_registry_acquire_service): Pass error and
3608         pass on OOM thrown by bus_selinux_allows_acquire_service()
3609
3610 2005-04-13  Havoc Pennington  <hp@redhat.com>
3611
3612         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3613         message at a time to avoid monopolizing the main loop, bug 
3614         #2953 from Benjamin Otte
3615
3616 2005-04-09  Havoc Pennington  <hp@redhat.com>
3617
3618         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3619         possible overlap, fix from Daniel Reed
3620         (fixup_alignment): fix signedness warnings
3621         (_dbus_string_append_unichar): ditto
3622
3623 2005-04-09  Havoc Pennington  <hp@redhat.com>
3624
3625         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3626
3627         * glib/dbus-glib-tool.c (main): fix warning
3628
3629         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3630
3631         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3632         add a new function that can be used in simple applications that
3633         don't have a main loop and are willing to block
3634
3635 2005-04-05  David Zeuthen  <davidz@redhat.com>
3636
3637         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3638
3639         * glib/dbus-gmain.c:
3640         (io_handler_destroy_source): Remove from list of IO handlers
3641         of the ConnectionSetup object
3642         (timeout_handler_destroy_source): -do- for timeout handlers
3643         (io_handler_source_finalized): Don't remove from list since
3644         we now do that in io_handler_destroy_source(). Renamed from
3645         io_handler_source_destroyed
3646         (timeout_handler_source_destroyed): -do- for timeout handlers
3647         (connection_setup_free): It is now safe to iterate over all
3648         IO and timeout handlers as the _destroy_source removes them
3649         from the list synchronously
3650
3651 2005-03-30  Havoc Pennington  <hp@redhat.com>
3652
3653         * configure.in: change check to gtk 2.4
3654
3655         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3656         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3657         to 2.4
3658
3659 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3660
3661         * News: Update 0.32
3662
3663         * HACKING: Fixed realease instructions.  configure.in should be updated to
3664           the next release by the person who made the last release.
3665
3666 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3667
3668         * python/lvalue_cast_post_process.py - removed.  Patch has been
3669           submitted to Pyrex maintainers that fixes gcc4.0 errors
3670
3671         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3672
3673 2005-03-24  Daniel Reed  <n@ml.org>
3674
3675         * tools/Makefile.am: Make print-introspect and
3676         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3677
3678 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3679
3680         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3681
3682         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3683           had in Red Hat packages for a while but for some reason never 
3684           got merged upstream
3685           (_dbus_is_a_number): New checks if a string
3686           can be converted to a number and does the conversion if it can
3687           (_dbus_user_database_lookup): Add check to see if the given username
3688           is a udi.  This allows udi's to be used instead of usernames in the
3689           config file.
3690           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3691           is a gdi.  This allows gdi's to be used instead of groupnames in the
3692           config file.
3693
3694 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3695
3696         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3697           code so that it compiles with gcc4.0
3698
3699         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3700           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3701           results back to dbus_binding.c
3702
3703 2005-03-20  Colin Walters  <walters@verbum.org>
3704
3705         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3706
3707         * configure.in: Require GTK+ 2.6.
3708         
3709 2005-03-20  Colin Walters  <walters@verbum.org>
3710
3711         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3712
3713 2005-03-17  Tom Parker  <palfrey@tevp.net>
3714
3715         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3716         print DBUS_UID_UNSET; instead print passed username.  Also
3717         be sure to actually use gid looked up in cache.
3718         
3719         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3720         for DBUS_GID_UNSET and groupname.
3721
3722 2005-03-17  Colin Walters  <walters@verbum.org>
3723
3724         * bus/print-introspect.c: Move to tools/.
3725         * bus/run-with-tmp-session-bus.sh: Ditto.
3726         
3727         * glib/Makefile.am (dbus-glib-bindings.h): Move
3728         generation to tools/Makefile.am.
3729
3730         * test/glib/run-test.sh: Update to handle move
3731         of run-with-tmp-session-bus.sh.
3732
3733         * test/glib/test-service-glib.c: Update to handle
3734         move of dbus-glib-bindings.h.
3735
3736         * tools/print-introspect.c: Moved here
3737         from bus/, and ported to GLib bindings.
3738
3739         * tools/run-with-tmp-session-bus.sh: Moved here
3740         from bus/.
3741
3742         * tools/Makefile.am: Generate dbus-glib-bindings.h
3743         and dbus-bus-introspect.xml here.
3744
3745         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3746         Update.
3747
3748 2005-03-17  Colin Walters  <walters@verbum.org>
3749
3750         * bus/driver.c (write_args_for_direction): Use
3751         _dbus_string_get_const_data to retrieve string;
3752         _dbus_string_get_const_data_len doesn't actually return
3753         a NULL-terminated substring.
3754
3755         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3756         (main): Change to use org_freedesktop_DBus_request_name
3757         instead of using g_proxy_begin_call/end_call.
3758
3759 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3760
3761         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3762         generating the finalizer.  Fixes from Ben Maurer.
3763
3764 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3765
3766         * mono/BusDriver.cs: Update method names: ListServices
3767         becomes ListNames; GetOwner becomes GetNameOwner.
3768
3769         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3770         onto the eval stack when removing the delegate.
3771
3772 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3773
3774         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3775         LT_CURRENT.  Set it to the autoconf variable.
3776                                                                                 
3777         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3778         classes that disconnects the signal handler delegate from the
3779         service object.  Fixes a big leak of proxy objects on the
3780         client side of things.  Patch from Ben Maurer
3781         <bmaurer@ximian.com>
3782
3783 2005-03-12  Colin Walters  <walters@verbum.org>
3784
3785         * bus/driver.c (write_args_for_direction): New function,
3786         parses a type signature into arguments and outputs to
3787         XML.
3788         (bus_driver_handle_introspect): Use it instead of
3789         hardcoding XML for certain signatures.
3790         
3791         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3792         dependency on dbus-daemon.
3793
3794         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3795         argument, pass it to dbus_binding_tool_output_glib_client.
3796
3797         * glib/dbus-binding-tool-glib.c
3798         (generate_client_glue): Protect against multiple inclusion.
3799         (dbus_binding_tool_output_glib_client): Add
3800         G_BEGIN_DECLS/G_END_DECLS.
3801
3802         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3803         Change to just take iface prefix directly.
3804         (write_formal_parameters): Clarify error message.
3805         (check_supported_parameters): New function; checks to see type
3806         signatures of method parameters are supported.
3807         (generate_client_glue): Handle ignore_unsupported flag.
3808         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3809         parameter.
3810
3811         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3812         --ignore-unsupported by default until glib bindings
3813         support arrays.
3814
3815 2005-03-11  Colin Walters  <walters@verbum.org>
3816
3817         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3818         install it.
3819
3820         * bus/print-introspect.c: New file; prints introspection
3821         data for a given name and object path.
3822
3823         * bus/run-with-tmp-session-bus.sh: New file, refactored
3824         from test/glib/run-test.sh.  Creates a temporary session
3825         bus and runs another program.
3826
3827         * test/glib/run-test.sh: Refactor to invoke
3828         run-with-tmp-session-bus.sh.
3829
3830         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3831         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3832         macros instead of hardcoding.
3833
3834         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3835
3836 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3837
3838         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3839         this unref; it doesn't match up evenly in some codepaths.
3840         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3841         this evenly matches with the ref near the top of this function.
3842
3843 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3844
3845         * dbus/dbus-object-tree.c
3846         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3847         and we try to unregister a path that's not registered, still go
3848         through the process of unlocking and don't just return.
3849
3850 2005-03-09  Colin Walters  <walters@verbum.org>
3851
3852         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3853         to this are generated for client-side wrappers.  Invokes a
3854         D-BUS method and returns reply values.  
3855
3856         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3857         function; writes signature string for argument direction.
3858         (write_args_for_direction): Change to pass input values directly
3859         instead of via address, and fix indentation.
3860         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3861         make generated wrappers inlineable.
3862
3863         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3864         note about using dbus_type_is_fixed.
3865
3866         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3867         dbus/dbus-signature.c as dbus_type_is_fixed.
3868
3869         All callers updated.
3870
3871         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3872         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3873
3874         * dbus/dbus-signature.h: Prototype.
3875
3876         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3877         error printf code.
3878
3879         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3880         appropriate instead of just freeing it.
3881         (main): Free returned strings using g_free.
3882
3883         * test/glib/Makefile.am (test-service-glib-glue.h)
3884         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3885
3886         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3887         simply maps a simple D-BUS type to GType.
3888         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3889         GType.
3890         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3891         initialize the value with it.
3892         (dbus_gvalue_binding_type_from_type): Unused, delete.
3893         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3894         various types instead of unmarshalling to value data directly.
3895         Remove can_convert boolean.
3896         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3897         returning directly instead of using can_convert boolean.
3898         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3899         Stores a GValue in a pointer to a value of its corresponding C
3900         type.
3901
3902         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3903         add dbus_gvalue_store.
3904
3905 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3906
3907         Fix a bunch of lifecycle and memory management problems
3908         in the mono bindings.
3909
3910         * mono/Arguments.cs (Arguments): Implement IDisposable
3911
3912         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3913         strictly a static class.
3914
3915         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3916         delegates into this file.
3917         (Connection): Implement IDisposable.
3918         (Dispose): Disconnect the connection and set the raw connection
3919         pointer to IntPtr.Zero.
3920         (~Connection): Call Dispose().
3921         (RegisterObjectPath): Added.  Manages the registration of object
3922         paths so we can cleanly disconnect them at dispose/finalize time.
3923         (UnregisterObjectPath): Ditto.
3924         (set_RawConnection): Unregister all of the object paths when
3925         changing the underlying DBusConnection.  Add them back onto the
3926         new connection, if any.
3927
3928         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3929         more unmanaged resources anymore, so it's not necessary.  Move all
3930         the DBusObjectPathVTable stuff out of here.
3931         (Handler): Save references to our delegates so that they don't get
3932         finalized.  Call Connection.RegisterObjectPath() instead of
3933         dbus_connection_register_object_path() directly.
3934         (Message_Called): Dispose the message after we're finished with
3935         it.
3936
3937         * mono/Message.cs (Message): Implement IDisposable.
3938         (Dispose): Dispose the Arguments, and set the RawMessage to
3939         IntPtr.Zero.
3940         (SendWithReplyAndBlock): We own the ref to the reply that comes
3941         back from dbus_connection_send_with_reply_and_block() so add a
3942         comment about that and unref it after we've constructed a managed
3943         MethodReturn class around it.  Fixes a big, big leak.
3944
3945         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3946         method.
3947         (BuildSignalHandler): After we've sent the Signal message, dispose
3948         of it.
3949         (BuildMethod): Dispose of the method call and reply messages after
3950         we've sent the message and extracted the data we want from the
3951         reply.
3952
3953         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3954         anymore.
3955         (Service_FilterCalled): Dispose of the message after we're
3956         finished with it.
3957
3958 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3959
3960         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3961         After we attach our pending call to the connection, unref
3962         it.  Fixes a leak.
3963  
3964         * mono/Connection.cs (set_RawConnection): Disconnect our
3965         filter and match callbacks from the old connection and
3966         reconnect them to the new connection, if any.
3967
3968         * mono/DBusType/Array.cs: "Code" is a static member, so
3969         don't use "this" to refer to it.  Fix for stricter checking
3970         in Mono 1.1.4.
3971  
3972         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3973         object path that we pass into unmanaged code.
3974  
3975         * mono/DBusType/String.cs (Append): Don't leak the string
3976         that we pass into unmanged code.
3977
3978 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3979         * NEWS: Update for 0.31
3980
3981         * configure.in: Release 0.31
3982         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3983
3984         * qt/Makefile.am: fixed build
3985
3986         * dbus/Makefile.am: soname bump for libdbus
3987
3988         * glib/Makefile.am: soname bump for libdbus-glib
3989
3990 2005-03-05  Havoc Pennington  <hp@redhat.com>
3991
3992         * dbus/dbus-sysdeps.c:
3993         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3994         value
3995         (_dbus_generate_random_bytes_buffer): fix return value
3996
3997         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3998         checks actually work, from Tom Parker <fdo@tevp.net>
3999
4000 2005-03-01  Colin Walters  <walters@verbum.org>
4001
4002         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4003         functions copied from dbus-glib-tool.c.
4004         (main): Convert lots of error code to use them.
4005         Also add some testing for introspection bits.
4006
4007 2005-03-01  Colin Walters  <walters@verbum.org>
4008         
4009         * doc/TODO: Remove introspection signature TODO.
4010
4011 2005-02-27  Colin Walters  <walters@verbum.org>
4012
4013         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4014         Change return value to const char * instead of int so we can do
4015         full signatures.
4016         (struct PropertyInfo, struct ArgInfo): Store char *.
4017         (property_info_new, arg_info_new): Update parameters, strdup.
4018         (property_info_unref, arg_info_unref): Free.
4019
4020         * glib/dbus-gidl.h: Update prototypes.
4021
4022         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4023         (validate_signature): New function, just validates signature and
4024         sets GError.
4025         (parse_property, parse_arg): Invoke validate_signature.  Store
4026         signature instead of just type code.
4027
4028         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4029         function to return a primary type for a signature, dropping
4030         information about types in container types.
4031         (dbus_gvalue_genmarshal_name_from_type)
4032         (dbus_gvalue_binding_type_from_type)
4033         (dbus_gvalue_ctype_from_type): Update to take full signature
4034          instead of type code.
4035         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4036
4037         * glib/dbus-gvalue.h: Update prototypes for above.
4038
4039         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4040         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4041         (introspect_properties, introspect_signals, write_interface):
4042         Update to handle signatures, and remove usage of
4043         _dbus_gutils_type_to_string.
4044         (handle_introspect): Print out type codes instead of e.g. "string"
4045         in hardcoded introspection XML; also use x_AS_STRING constants
4046         instead of hardcoding in string.
4047
4048         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4049         to string.  Remove usage of _dbus_gutils_type_to_string.
4050
4051         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4052
4053         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4054         deletion.
4055         
4056         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4057         (compute_marshaller_name, generate_glue): Handle signature change
4058         to string.
4059         (write_formal_parameters, write_args_for_direction): Ditto, and
4060         remove FIXME.
4061
4062         * tools/dbus-tree-view.c (type_to_string): Delete.
4063         (info_set_func_text): Update to print full signatures.
4064
4065         * test/glib/test-service-glib.xml: Change types to new
4066         introspection format.
4067
4068 2005-02-26  Havoc Pennington  <hp@redhat.com>
4069
4070         * doc/TODO: remove the "guid" item
4071
4072         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4073         (with_bus_thread_func): use open_private
4074
4075         * dbus/dbus-connection.c (dbus_connection_open_private): new
4076         function that works like the old dbus_connection_open()
4077         (dbus_connection_open): now returns an existing connection if
4078         possible
4079
4080         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4081         through the GUID to the transport
4082
4083         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4084         GUID in hex-encoded form.
4085
4086         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4087         pass GUID argument in to the transport
4088
4089         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4090         guid argument
4091
4092         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4093
4094         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4095
4096 2005-02-25  Havoc Pennington  <hp@redhat.com>
4097
4098         * doc/dbus-specification.xml: document the GUID thing
4099
4100         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4101         globally unique ID for the server, and put a "guid=hexencoded"
4102         field in the address
4103
4104         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4105
4106         * dbus/dbus-message.c: ditto
4107
4108         * dbus/dbus-dataslot.c: ditto
4109
4110         * dbus/dbus-list.c: ditto
4111
4112         * dbus/dbus-internals.h: wait, just include
4113         dbus-threads-internal.h here
4114         
4115         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4116         use in main library
4117
4118         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4119
4120 2005-02-24  Colin Walters  <walters@verbum.org>
4121
4122         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4123
4124 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4125
4126         * glib/Makefile.am: added dbus-gobject.h to sources list
4127         so distcheck doesn't fail
4128         
4129 2005-02-24  Havoc Pennington  <hp@redhat.com>
4130
4131         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4132         you must disconnect before unref, since locking and other things
4133         are screwed up otherwise. Fix assorted other locking stuff.
4134
4135         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4136         fix compilation
4137
4138         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4139         into a private header and don't export from the library
4140
4141         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4142
4143 2005-02-24  Colin Walters  <walters@verbum.org>
4144         
4145         * dbus/dbus-signature.c: New file; implements various functions
4146         related to type signatures.  Includes an interator for parsing,
4147         validation functions.
4148         (dbus_type_is_basic): Moved here from
4149         dbus-marshal-basic.c:_dbus_type_is_basic.
4150         (dbus_type_is_container): Moved here from
4151         dbus-marshal-basic.c:_dbus_type_is_container.
4152
4153         All callers of _dbus_type_is_container and _dbus_type_is_basic
4154         updated, and include dbus-signature.h.
4155
4156         * dbus/dbus-signature.h: New file; prototypes for the above.
4157
4158         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4159         dbus-signature.h.
4160
4161         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4162         function factored out of _dbus_first_type_in_signature.
4163         (_dbus_first_type_in_signature_c_str): New function; returns first
4164         type code for a type signature character.
4165
4166         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4167         handle function moves.
4168
4169         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4170
4171         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4172         function; skips to next complete type in type signature.
4173         Implemented using previous skip_one_complete_type.  Now
4174         skip_one_complete_type just delegates to
4175         _dbus_type_signature_next.
4176
4177         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4178         to dbus-signature.c
4179         (_dbus_type_is_container): Ditto.
4180
4181         * doc/dbus-specification.xml: Update introspection sample to
4182         use real type signatures.
4183
4184         * dbus/dbus-test.h: Prototype signature test.
4185
4186         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4187         signature tests.
4188
4189         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4190
4191 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4192
4193         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4194         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4195
4196 2005-02-21  Colin Walters  <walters@verbum.org>
4197
4198         * dbus/dbus-test-main.c (main): Take optional specific test
4199         argument.
4200
4201         * dbus/dbus-test.c (run_test): New function, runs a test function
4202         with no data directory.
4203         (run_data_test): Like above, but takes data directory.
4204         (dbus_internal_do_not_use_run_tests): Take
4205         specific test argument.  Replace lots of cut n' paste code
4206         with run_test and run_data_test.
4207
4208         * dbus/dbus-test.h: Update prototype for
4209         dbus_internal_do_not_use_run_tests.
4210
4211 2005-02-20  Havoc Pennington  <hp@redhat.com>
4212
4213         Fix bugs reported by Daniel P. Berrange
4214         
4215         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4216         (protected_change_watch): new function
4217         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4218         (_dbus_server_add_watch): change to work like the
4219         dbus-connection.c equivalents; like those, probably kind of
4220         busted, but should at least mostly work for now
4221         (dbus_server_disconnect): drop the lock if we were already
4222         disconnected, patch from Daniel P. Berrange
4223
4224         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4225         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4226         same stuff
4227
4228         * doc/TODO: todo about unscrewing this mess
4229
4230 2005-02-19  Colin Walters  <walters@verbum.org>
4231
4232         * glib/dbus-binding-tool-glib.c
4233         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4234
4235         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4236         as errno.h and sys/stat.h.
4237         (lose): New function, prints error with
4238         newline and exits.
4239         (lose_gerror): Similar, but takes GError for message.
4240         (main): Add --output argument to specify output file to write to,
4241         instead of always printing to stdout.  In this mode, determine
4242         timestamps on source files to see whether any are newer than the
4243         target file.  If not, exit.  Also convert a number of error
4244         messages to use lose (since it's shorter), and switch to using
4245         g_io_channel_shutdown.
4246
4247 2005-02-19  Havoc Pennington  <hp@redhat.com>
4248
4249         * glib/dbus-gobject.c
4250         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4251
4252         * glib/dbus-glib.c: fix doxygen warnings
4253
4254         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4255         is found on an <arg>
4256
4257 2005-02-17  Colin Walters  <walters@verbum.org>
4258
4259         * glib/dbus-gobject.h: Don't export
4260         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4261         
4262         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4263         (invoke_object_method): Handle it.
4264
4265         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4266         Handle rename.
4267         
4268 2005-02-17  Colin Walters  <walters@verbum.org>
4269
4270         * bus/.cvsignore, doc/.cvsignore
4271         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4272         Update.
4273
4274 2005-02-17  Colin Walters  <walters@verbum.org>
4275         
4276         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4277         Rename to DBUS_SERVICE_DBUS.
4278         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4279         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4280         Change the value from "org.freedesktop.Local"
4281         to "org.freedesktop.DBus.Local".
4282         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4283         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4284         DBUS_INTERFACE_INTROSPECTABLE.
4285         Change the value from "org.freedesktop.Introspectable"
4286         to "org.freedesktop.DBus.Introspectable".
4287         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4288         DBUS_INTERFACE_PROPERTIES.
4289         Change the value from "org.freedesktop.Properties"
4290         to "org.freedesktop.DBus.Properties".
4291         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4292         DBUS_INTERFACE_PEER.
4293         Change the value from "org.freedesktop.Peer"
4294         to "org.freedesktop.DBus.Peer".
4295         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4296         DBUS_INTERFACE_LOCAL.
4297         Change the value from "org.freedesktop.Local"
4298         to "org.freedesktop.DBus.Local".
4299
4300         All other users of those constants have been changed.
4301
4302         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4303
4304         * glib/dbus-gobject.c (handle_introspect): Use constants.
4305
4306         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4307
4308 2005-02-17  Colin Walters  <walters@verbum.org>
4309
4310         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4311         (parse_node, parse_interface, parse_method, parse_signal)
4312         (parse_property, parse_annotation): Lose if we're currently in an
4313         annotation.
4314         (parse_annotation): New function.
4315         (parser_start_element, parser_end_element): Handle annotation.
4316         (parse_method, parse_interface): Remove support for c_name attribute,
4317         switch to annotations.
4318
4319         * glib/dbus-gidl.h (interface_info_get_binding_names)
4320         (method_info_get_binding_names)
4321         (interface_info_get_binding_name, method_info_get_binding_name)
4322         (interface_info_set_binding_name, method_info_set_binding_name):
4323         Remove.
4324         (interface_info_get_annotations, method_info_get_annotations)
4325         (interface_info_get_annotation, method_info_get_annotation)
4326         (interface_info_add_annotation, method_info_add_annotation):
4327         Prototype.
4328
4329         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4330         for "bindings".
4331         (struct MethodInfo): Ditto.
4332         Straightfoward conversion of binding methods into annotation methods
4333         as prototyped.
4334
4335         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4336
4337         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4338
4339         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4340         Use new annotation API.
4341
4342         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4343         annotation element.
4344         
4345         * doc/dbus-specification.xml: Discuss introspection annotations,
4346         include list of well-known annotations.
4347
4348         * test/glib/test-service-glib.xml: Make validate against new DTD.
4349
4350 2005-02-17  Colin Walters  <walters@verbum.org>
4351
4352         This patch is based on initial work from
4353         Paul Kuliniewicz <kuliniew@purdue.edu>.
4354
4355         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4356         initialization of GValue from dbus type to here.
4357         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4358         for the "glib-genmarshal" program from a DBus type.
4359         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4360         into the C name for it we use in the glib bindings.
4361         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4362         glib C type (not GValue).
4363         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4364
4365         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4366         from dbus-gobject.c.
4367
4368         * glib/dbus-gutils.h: Prototype it.
4369
4370         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4371         (marshal_dbus_message_to_g_marshaller): Use new shared function
4372         dbus_glib_marshal_dbus_message_to_gvalue_array.
4373
4374         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4375         Will be changed once we have annotations.
4376
4377         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4378         GStaticRWLock.  Callers updated.
4379         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4380         (string_table_next): New function for iterating over zero-terminated
4381         string value array.
4382         (string_table_lookup): New function; retrieves specific entry in
4383         array.
4384         (get_method_data): New function; look up method data in object data chunk.
4385         (object_error_domain_prefix_from_object_info)
4386         (object_error_code_from_object_info): New functions, but not implemented yet.
4387         (method_interface_from_object_info): New function; retrieve interface name.
4388         (method_name_from_object_info): New function; retrieve method name.
4389         (method_arg_info_from_object_info): New function; retrieve argument data.
4390         (arg_iterate): New function; iterates over serialized argument data.
4391         (method_dir_signature_from_object_info): New function; returns a
4392         GString holding type signature for arguments for just one
4393         direction (input or output).
4394         (method_input_signature_from_object_info)
4395         (method_output_signature_from_object_info): New functions.
4396         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4397         converts dbus message arguments into a GValue array.  Used for both
4398         signal handling and method invocation.
4399         (struct DBusGlibWriteIterfaceData): New utility structure.
4400         (write_interface): New function; generate introspection XML for
4401         an interface.
4402         (introspect_interfaces): New function; gathers all interface->methods,
4403         generates introspection XML for them.
4404         (handle_introspect): Invoke introspect_interfaces.
4405         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4406         (lookup_object_and_method): New function; examines an incoming message
4407         and attempts to match it up (via interface, method name, and argument
4408         signature) with a known object and method.
4409         (gerror_domaincode_to_dbus_error_name): New function; converts a
4410         GError domain and code into a DBus error name.  Needs GError data
4411         added to object introspection to work well.
4412         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4413         GError.
4414         (invoke_object_method): New function to invoke an object method
4415         looked up via lookup_object_and_method.  Parses the incoming
4416         message, turns it into a GValue array, then invokes the marshaller
4417         specified in the DBusGMethodInfo.  Creates a new message with
4418         either return values or error message as appropriate.
4419         (gobject_message_function): Invoke lookup_object_and_method and
4420         invoke_object_method.
4421
4422         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4423         (enum DBusBindingOutputMode): New enum for binding output modes.
4424         (pretty_print): Print binding names.
4425         (dbus_binding_tool_error_quark): GError bits.
4426         (version): Fix typo.
4427         (main): Create GIOChannel for output.  Parse new --mode argument,
4428         possible values are "pretty-print", "glib-server", "glib-client".
4429         Use mode to invoke appropriate function.
4430         
4431         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4432
4433         * glib/dbus-glib-tool.h: New header, just includes GError bits
4434         for now.
4435
4436         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4437         maps binding style to name.
4438         (struct MethodInfo): Ditto.
4439         (get_hash_keys, get_hash_key): Utility function, returns keys for
4440         a GHashTable.
4441         (interface_info_new, method_info_new): Initialize bindings.
4442         (interface_info_unref, method_info_unref): Destroy bindings.
4443         (method_info_get_binding_names, method_info_get_binding_name)
4444         (interface_info_get_binding_names, interface_info_get_binding_name):
4445         Functions for retrieving binding names.
4446         (method_info_set_binding_name, interface_info_set_binding_name):
4447         Functions for setting binding names.
4448
4449         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4450         for glib binding generation.
4451
4452         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4453         and client-side glib glue generation.
4454
4455         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4456         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4457         dbus-glib-tool.h.
4458
4459         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4460         of using GClosureMarshal directly.
4461         (struct DBusGObjectInfo): Add n_infos member.
4462
4463         * test/glib/test-service-glib.xml: New file; contains introspection data
4464         for MyTestObject used in test-service-glib.c.
4465
4466         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4467         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4468         (my_object_uppercase, my_object_many_args): New test methods.
4469         (main): Use dbus_g_object_class_install_info to include generated object
4470         info.
4471
4472         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4473         as well as client-side bindings.
4474
4475         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4476         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4477         using both the dbus_gproxy stuff directly as well as the generated bindings.
4478
4479 2005-02-15  Havoc Pennington  <hp@redhat.com>
4480
4481         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4482         complete a pending call, don't run filters first.
4483
4484         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4485         dbus_pending_call_steal_reply
4486
4487         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4488         _dbus_connection_block_pending_call
4489         (dbus_pending_call_get_reply): change to steal_reply and return a
4490         ref
4491
4492         * dbus/dbus-connection.c
4493         (dbus_connection_send_with_reply_and_block): port to work in terms
4494         of DBusPendingCall
4495         (_dbus_connection_block_pending_call): replace block_for_reply
4496         with this
4497
4498 2005-02-14  Havoc Pennington  <hp@redhat.com>
4499
4500         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4501         properly handle looking up group information by name; fix 
4502         from j@bootlab.org
4503
4504 2005-02-13  Havoc Pennington  <hp@redhat.com>
4505
4506         * dbus/dbus-connection.c (dbus_connection_return_message) 
4507         (dbus_connection_borrow_message): hold dispatch lock while message
4508         is outstanding
4509         (_dbus_connection_block_for_reply): hold dispatch lock while we
4510         block for the reply, so nobody steals our reply
4511         (dbus_connection_pop_message): hold the dispatch lock while we
4512         pluck the message
4513
4514 2005-02-13  Havoc Pennington  <hp@redhat.com>
4515
4516         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4517         (_dbus_connection_release_dispatch)
4518         (_dbus_connection_acquire_io_path)
4519         (_dbus_connection_release_io_path): make the mutex and condvar
4520         control access to the "acquired" flag. Drop the connection lock
4521         while waiting on the condvar. Hopefully these are baby steps in
4522         roughly the right direction.
4523
4524 2005-02-13  Havoc Pennington  <hp@redhat.com>
4525
4526         * dbus/dbus-connection.c: use separate mutexes for the condition
4527         variables; this is some kind of baseline for sanity, but the
4528         condition variables still aren't used correctly afaict
4529
4530 2005-02-13  Havoc Pennington  <hp@redhat.com>
4531
4532         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4533         fix a double-unlock
4534
4535         * dbus/dbus-connection.c
4536         (_dbus_connection_detach_pending_call_unlocked): add this
4537
4538         Initial semi-correct pass through to fix thread locking; there are
4539         still some issues with the condition variable paths I'm pretty
4540         sure
4541         
4542         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4543         lock/unlock calls
4544
4545         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4546         rename to add _unlocked
4547         (struct DBusConnection): move "dispatch_acquired" and
4548         "io_path_acquired" to use only one bit each.
4549         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4550         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4551         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4552         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4553         (_dbus_connection_remove_timeout) 
4554         (_dbus_connection_toggle_timeout): drop lock when calling out to
4555         user functions; done in a hacky/bad way.
4556         (_dbus_connection_send_and_unlock): add a missing unlock
4557         (_dbus_connection_block_for_reply): add a missing unlock
4558
4559         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4560         drop lock in a hacky probably unsafe way to call out to user
4561         function
4562
4563 2005-02-12  Havoc Pennington  <hp@redhat.com>
4564
4565         * tools/dbus-tree-view.c (info_set_func_text): display more
4566         details on args
4567
4568         * bus/driver.c (bus_driver_handle_list_services): list the bus
4569         driver
4570
4571         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4572
4573         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4574         (method_info_get_n_args): new function
4575
4576 2005-02-12  Havoc Pennington  <hp@redhat.com>
4577
4578         * bus/driver.c (bus_driver_handle_introspect): add introspection
4579         for bus driver
4580
4581 2005-02-12  Havoc Pennington  <hp@redhat.com>
4582
4583         * bus/driver.c: put the signature of each bus driver method in the
4584         table of handlers and check it on incoming calls; this isn't
4585         really useful, but going to add introspect support in a minute.
4586
4587 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4588
4589         * mono/Connection.cs: The unpredictability of finalizers in mono
4590         prevents us from deterministically disconnecting the filters from
4591         the Service class's finalizer, so move tracking of filters and
4592         matches here.  Add API for that.
4593
4594         * mono/Service.cs: Remove the code, add code which calls the
4595         methods now on the Connection class.
4596
4597 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4598
4599         * python/dbus.py (class Sender): added to support dbus signals better
4600         (Bus::add_signal_receiver): added expand_args parameter which defaults
4601         to True.  When expand args is True the signal handler will pass the 
4602         message arguments as parameters to the signal handler.  If False
4603         revert to previous behavior where the signal handler must get the
4604         argument list from the message.  This is to help port applications
4605         like HAL that have a tendancy to send variable length argument lists.
4606         self._match_rule_to_receivers is now a dict of dicts.
4607         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4608         removing it from a list
4609         (Bus::_signal_func): change signal handlers so that interface,
4610         signal_name, service, path and message are packed into a Sender
4611         object and that is passed to the handler.  If expand_args is True
4612         extract the args list from the message and append it to the parameter
4613         list
4614         
4615         * python/dbus_bindings.pyx.in (class Signature): added to support 
4616         signiature types
4617         (MessageIter::__init__): changed iteration limit to match D-BUS
4618         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4619         STRUCT and VARIENT type support
4620         (MessageIter::python_value_to_dbus_sig): made recursive to support
4621         recursive types
4622         (MessageIter::append*): added Signature, dict, tuple 
4623         support
4624
4625         * python/examples/example-client.py: added examples of getting tuples
4626         and dicts
4627
4628         * python/examples/example-service.py: added examples of sending tuples
4629         and dicts
4630
4631         * python/examples/example-signal-recipient.py: Fixed to handle new
4632         signal callback format
4633
4634 2005-02-10  Havoc Pennington  <hp@redhat.com>
4635
4636         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4637         (call dbus_g_proxy_add_signal)
4638
4639         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4640         escape the hostname
4641         (_dbus_server_new_for_domain_socket): escape the path
4642
4643         * dbus/dbus-address.c (dbus_address_escape_value): new
4644         (dbus_address_unescape_value): new
4645         (dbus_parse_address): unescape values
4646
4647         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4648
4649         * doc/dbus-specification.xml: explain how to escape values in
4650         addresses
4651
4652 2005-02-10  Havoc Pennington  <hp@redhat.com>
4653
4654         * dbus/dbus-message-factory.c (generate_special): modify test to
4655         avoid using a non-basic dict key
4656
4657         * dbus/dbus-marshal-validate-util.c: add test for the below
4658
4659         * doc/dbus-specification.xml: require that dict keys are a basic
4660         type
4661
4662         * dbus/dbus-marshal-validate.c
4663         (_dbus_validate_signature_with_reason): require that dict key is a
4664         basic type
4665
4666 2005-02-10  Havoc Pennington  <hp@redhat.com>
4667
4668         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4669         change to be _and_unlock instead of _unlocked
4670
4671         * dbus/dbus-connection.c
4672         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4673         have no_update so we can find this bug quickly in future
4674
4675 2005-02-10  Havoc Pennington  <hp@redhat.com>
4676
4677         * dbus/dbus-message-util.c (verify_test_message): tests for string
4678         array
4679
4680         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4681         support for arrays of string/signature/path
4682
4683 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4684
4685         * dbus/dbus-connection.c
4686         (_dbus_connection_queue_received_message_link,
4687         _dbus_connection_message_sent): Add the path to
4688         the verbose output.
4689         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4690         _dbus_connection_send_preallocated_unlocked(), updated the
4691         dispatch status, and unlocks.  Fixes a bug where certain
4692         situations (like a broken pipe) could cause a Disconnect message
4693         to not be sent, tricking the bus into thinking a service was still
4694         there when the process had quit.
4695         (_dbus_connection_send_preallocated): Call
4696         _dbus_connection_send_preallocated_and_unlock().
4697         (_dbus_connection_send_and_unlock): Added.  Calls
4698         _dbus_connection_send_preallocated_and_unlock().
4699         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4700         (dbus_connection_send_with_reply): Update the dispatch status and
4701         unlock.
4702
4703         * mono/Service.cs (~Service): Added.  Removes the filter so that
4704         we don't get unmanaged code calling back into a GCed delegate.
4705         (RemoveFilter); Added.
4706
4707 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4708
4709         * dbus/dbus-message.c (dbus_message_iter_open_container):
4710         - Removed check for iterator type being an array because
4711         get_arg_type does not work with writer iterators
4712         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4713
4714 2005-02-07  Havoc Pennington  <hp@redhat.com>
4715
4716         * doc/dbus-specification.xml: some more language cleanups; add
4717         stuff about how to deal with invalid protocol and extension
4718         points; add _ to allowed chars in auth commands; add EXTENSION_
4719         auth command prefix
4720
4721 2005-02-06  Havoc Pennington  <hp@redhat.com>
4722
4723         * s/expected/required/ in a couple places for clarity
4724
4725 2005-02-07  Colin Walters  <walters@verbum.org>
4726
4727         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4728         sender or proposed_recipient.
4729
4730 2005-02-06  Havoc Pennington  <hp@redhat.com>
4731
4732         * dbus/dbus-message-factory.c (generate_special): more tests
4733
4734         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4735         array length that exceeds the maximum
4736
4737 2005-02-05  Havoc Pennington  <hp@redhat.com>
4738
4739         * dbus/dbus-message-factory.c (generate_special): more test cases,
4740         increasing coverage
4741
4742         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4743         reason why a signature was invalid
4744
4745         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4746         skip the length of the string before we look at it in validation
4747
4748         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4749         equal_substring
4750
4751         * dbus/dbus-message.c (_dbus_message_loader_new): default
4752         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4753
4754 2005-02-05  Havoc Pennington  <hp@redhat.com>
4755
4756         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4757         if the signature of a variant was empty
4758         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4759         struct with no element type)
4760
4761         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4762         mangled messages to break things
4763
4764 2005-02-04  Havoc Pennington  <hp@redhat.com>
4765
4766         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4767         g_quark_try_string() so it actually can return 0
4768         (dbus_g_proxy_connect_signal): ditto
4769
4770 2005-02-04  Havoc Pennington  <hp@redhat.com>
4771
4772         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4773         bogus warning
4774         (tristring_from_message): assert cleanly on null path/interface
4775         (should not be possible though I decided later)
4776         (dbus_g_proxy_dispose): move proxy manager unregistration here
4777         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4778         g_return_if_fail() checks
4779
4780 2005-02-04  Havoc Pennington  <hp@redhat.com>
4781
4782         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4783
4784         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4785         (with some minor changes)
4786
4787         * doc/dbus-specification.xml: add deprecated attribute to
4788         introspection format
4789
4790 2005-01-31  Havoc Pennington  <hp@redhat.com>
4791
4792         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4793         think it's sort of right
4794
4795 2005-01-30  Havoc Pennington  <hp@redhat.com>
4796
4797         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4798
4799 2005-01-30  Havoc Pennington  <hp@redhat.com>
4800
4801         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4802
4803         * autogen.sh: change to autotools 1.9
4804
4805         * glib/dbus-gproxy.c: completely change how signals work
4806         (dbus_g_proxy_add_signal): new function to specify signature of a
4807         signal
4808         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4809         and g_warning if the incoming message has the wrong signature.
4810
4811 2005-01-30  Havoc Pennington  <hp@redhat.com>
4812
4813         * tools/dbus-names-model.c (have_names_notify): fix this
4814
4815         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4816         up the string array handling a bit 
4817
4818 2005-01-30  Havoc Pennington  <hp@redhat.com>
4819
4820         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4821         (dbus_g_pending_call_cancel): new function
4822
4823         * dbus/dbus-glib.h: move GType decls for connection/message here;
4824         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4825         here, just kind of rationalizing how we handle all that
4826
4827         * tools/dbus-names-model.c: new file for a tree model listing the
4828         services on a bus
4829
4830         * tools/dbus-tree-view.c (model_new): use proper typing on the
4831         model rows
4832
4833 2005-01-30  Havoc Pennington  <hp@redhat.com>
4834
4835         * glib/dbus-gmain.c: add a custom GSource back that just checks
4836         whether the message queue has anything in it; otherwise, there are 
4837         cases where we won't see messages in the queue since there was no 
4838         IO visible to the glib main loop
4839
4840         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4841         increase default message timeout to 25 seconds
4842
4843 2005-01-30  Havoc Pennington  <hp@redhat.com>
4844
4845         * test/glib/test-profile.c (no_bus_stop_server): remove the
4846         warning about the g_warning that I just fixed
4847
4848         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4849         custom source, seems to be a lot easier to understand and work
4850         better.
4851
4852 2005-01-30  Havoc Pennington  <hp@redhat.com>
4853
4854         I think this main loop thing is conceptually broken, but here are 
4855         some band aids. I'll maybe rewrite it in a minute.
4856         
4857         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4858         custom GSource, so don't pass it in; confusing
4859         (gsource_server_finalize, gsource_connection_finalize): add
4860         finalize handlers that remove all the watches.  
4861
4862 2005-01-30  Havoc Pennington  <hp@redhat.com>
4863
4864         * glib/dbus-gobject.c (introspect_properties): fix the XML
4865         generated
4866
4867         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4868         which effectively detects the use of freed messages
4869
4870         * glib/dbus-gobject.c (handle_introspect): modify and return the
4871         reply message instead of the incoming message
4872
4873         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4874         gee, maybe it should SEND THE XML instead of just making a string
4875         and freeing it again ;-)
4876
4877         * tools/dbus-print-message.c (print_message): improve printing of
4878         messages
4879
4880         * configure.in: add debug-glib.service to the output
4881
4882 2005-01-30  Havoc Pennington  <hp@redhat.com>
4883
4884         dbus-viewer introspected and displayed the bus driver
4885         
4886         * dbus/dbus-object-tree.c 
4887         (object_tree_test_iteration): add tests for a handler registered on "/"
4888
4889         * dbus/dbus-object-tree.c
4890         (_dbus_decompose_path): fix to handle path "/" properly
4891         (run_decompose_tests): add tests for path decomposition
4892         
4893         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4894         properly
4895
4896         * glib/dbus-gobject.c (handle_introspect): fix quotes
4897
4898         * test/glib/run-test.sh: support launching the bus, then running
4899         dbus-viewer
4900
4901         * test/glib/test-service-glib.c (main): put in a trivial gobject
4902         subclass and register it on the connection
4903
4904         * bus/driver.c (bus_driver_handle_introspect): implement
4905         introspection of the bus driver service
4906
4907         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4908         identifiers, doctype decl
4909
4910         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4911         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4912         returning the service unchanged.
4913         (bus_driver_handle_message): remove old check for reply_serial in
4914         method calls, now the message type deals with that
4915         (bus_driver_handle_message): handle NULL interface
4916
4917         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4918
4919         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4920         -1 for len
4921
4922         * tools/dbus-viewer.c: add support for introspecting a service on
4923         a bus
4924
4925         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4926         (dbus_g_pending_call_unref): add
4927
4928 2005-01-29  Havoc Pennington  <hp@redhat.com>
4929
4930         * tools/dbus-tree-view.c: add support for displaying properties.
4931         (run dbus-viewer with an introspect xml file as arg, then resize
4932         the window so the tree elements show up, not sure what that is)
4933
4934         * glib/dbus-gobject.c (handle_introspect): return
4935         org.freedesktop.Properties and org.freedesktop.Introspectable
4936         interfaces when we are introspected.
4937
4938         * doc/dbus-specification.xml: allow empty interface name when 
4939         Get/Set a property
4940
4941 2005-01-29  Havoc Pennington  <hp@redhat.com>
4942
4943         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4944         though it uses glib, it could be extended for any binding in
4945         principle
4946
4947         * glib/dbus-gobject.c (gobject_message_function): change to the
4948         new way properties work
4949
4950         * dbus/dbus-protocol.h: add the new interfaces
4951
4952         * doc/dbus-specification.xml: document the introspection format,
4953         Introspectable interface, and add an org.freedesktop.Properties
4954         interface.
4955
4956         * glib/dbus-gparser.c: add support for a <property> element
4957
4958         * glib/dbus-gidl.c: add PropertyInfo
4959
4960         * glib/dbus-gobject.c (handle_introspect): put the outermost
4961         <node> outside the signal and property descriptions.
4962         (introspect_properties): export properties as <property> rather
4963         than as method calls
4964
4965 2005-01-28  Havoc Pennington  <hp@redhat.com>
4966
4967         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4968         related to authentication protocol
4969
4970 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4971
4972         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4973                 - BUS_ACTIVATION -> BUS_STARTER
4974                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4975                 - class MessageIter (__init__): Added recursion checking 
4976                 so we throw a nice error instead of just disconnecting from the
4977                 bus.
4978                 (get): Added arg_type parameter for recursion.
4979                 Removed the nil type
4980                 Added signiture type placeholder (not implemented)
4981                 Added struct type placeholder (not implemented)
4982                 Added varient type placeholder (not implemented)
4983                 Commented out dict type for now     
4984                 (get_element_type): renamed from get_array_type
4985                 (get_*): changed to use the dbus_message_iter_get_basic API
4986                 (get_*_array): removed in favor of recursive get_array method
4987                 (get_array): new recursive method which calls get to marshal
4988                 the elements of the array
4989                 (value_to_dbus_sig): New method returns the corrasponding
4990                 dbus signiture to a python value
4991                 (append): Comment out dict handling for now
4992                 Handle lists with the new recursive API
4993                 Comment out None handling for now
4994                 (append_nil): removed
4995                 (append_*): changed to use dbus_message_iter_append_basic API
4996                 (append_*_array): removed in favor of recursive append_array 
4997                 method
4998                 (__str__): Make it easier to print out recursive iterators
4999                 for debugging
5000                 - class Message (__str__): moved type inspection to the
5001                 MessageIter class' __str__ method
5002                 (get_iter): Added an append parameter wich defaults to False
5003                 If True use the new API's to create an append iterator
5004
5005         * python/dbus.py: Update to use new bindings API
5006                 - TYPE_ACTIVATION -> TYPE_STARTER
5007                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5008                 - class ActivationBus -> class StarterBus
5009                 - class RemoteObject (__call__): get an append iterator
5010                 - (_dispatch_dbus_method_call): get an append iterator
5011                 - class Object (emit_signal): get an append iterator
5012
5013         * python/examples/: Fixed up the examples to work with the new API
5014                 
5015 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5016
5017         * configure.in: Bump version up to 0.30.
5018
5019         * HACKING: Add a release item to bump the version number up after 
5020         a release.
5021
5022 2005-01-28  Havoc Pennington  <hp@redhat.com>
5023
5024         * doc/dbus-specification.xml: update to describe 16-bit types and
5025         dict entries
5026
5027         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5028         assertion
5029
5030         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5031         type
5032
5033         * dbus/dbus-marshal-recursive.c: implement
5034
5035 2005-01-27  Havoc Pennington  <hp@redhat.com>
5036
5037         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5038
5039         * configure.in: find the right type for 16 and 32 bit ints as well
5040         as 64
5041
5042         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5043         the 16-bit types so people don't have to stuff them in 32-bit or
5044         byte arrays.
5045
5046 2005-01-27  Havoc Pennington  <hp@redhat.com>
5047
5048         * dbus/dbus-message.c: byteswap the message if you init an
5049         iterator to read/write from it
5050         
5051         * dbus/dbus-marshal-byteswap.c: new file implementing 
5052         _dbus_marshal_byteswap()
5053
5054         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5055
5056 2005-01-26  Havoc Pennington  <hp@redhat.com>
5057         
5058         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5059         build, apparently - nobody noticed?)
5060         
5061 2005-01-26  Havoc Pennington  <hp@redhat.com>
5062
5063         * dbus/dbus-marshal-recursive.h: remove todo comment
5064
5065 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5066
5067         * Land the mono binding changes to conform to the new APIs.
5068
5069         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5070         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5071
5072         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5073         type code as a string.
5074         (InitAppending): Rename dbus_message_append_iter_init() to
5075         dbus_message_iter_init_append().
5076
5077         * mono/BusDriver.cs: Rename ServiceEventHandler to
5078         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5079         Rename ServiceOwnerChanged to NameOwnerChanged.
5080
5081         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5082         underlying C call.
5083
5084         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5085
5086         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5087         dbus_bus_acquire_service() to dbus_bus_request_name().
5088
5089         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5090         of Type.UnderlyingSystemType to get the correct element type for
5091         the array.
5092         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5093         dbus_message_get_{element|arg}_type() instead of
5094         dbus_message_iter_init_array_iterator().
5095         (Append): Replace dbus_message_iter_append_array() with
5096         dbus_message_iter_open_container() and
5097         dbus_message_iter_close_container().
5098
5099         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5100         types have been removed.
5101         
5102         * mono/DBusType/*.cs: Replace calls of
5103         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5104         but specify the type in the DllImport extern declaration.  Ditto
5105         for dbus_message_iter_append_[type]() ->
5106         dbus_message_iter_append_basic().
5107
5108         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5109         NameOwnerChangedHandler.
5110
5111 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5112
5113         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5114                 - get_base_service -> get_unique_name
5115                 - bus_get_base_service -> bus_get_unique_name
5116                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5117                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5118                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5119                 - bus_activate_service -> bus_start_service_by_name
5120                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5121                 - bus_acquire_service -> bus_request_name
5122                 - dbus_bus_acquire_service -> dbus_bus_request_name
5123                 - bus_service_exists -> bus_name_has_owner
5124                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5125
5126         * python/dbus.py: Rename of methods
5127                 - activate_service -> start_service_by_name
5128                 - bus_acquire_service -> bus_request_name
5129                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5130                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5131
5132         
5133 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5134
5135         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5136         signature for the method that can't be found.
5137
5138         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5139         the message has any arguments, we need to call
5140         _dbus_type_reader_get_current_type(), not
5141         _dbus_type_reader_has_next().
5142
5143 2005-01-24  Havoc Pennington  <hp@redhat.com>
5144
5145         * dbus/dbus-message-factory.c: more testing of message validation
5146
5147         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5148         header
5149
5150 2005-01-23  Havoc Pennington  <hp@redhat.com>
5151
5152         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5153         get this all working, not many tests in the framework yet though
5154
5155 2005-01-22  Havoc Pennington  <hp@redhat.com>
5156
5157         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5158         tutorial, based on work from David Wheeler.
5159
5160 2005-01-21  Havoc Pennington  <hp@redhat.com>
5161
5162         * dbus/dbus-bus.c: add more return_if_fail checks
5163
5164         * dbus/dbus-message.c (load_message): have the "no validation"
5165         mode (have to edit the code to toggle the mode for now though)
5166
5167         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5168         skips all validation; I want to use this at least for benchmark
5169         baseline, I'm not sure if it should be a publicly-available switch.
5170
5171 2005-01-21  Havoc Pennington  <hp@redhat.com>
5172
5173         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5174         toplevel doxygen group as the low-level API stuff
5175
5176         * dbus/dbus.h: note that libdbus is the low-level API
5177
5178 2005-01-20  Havoc Pennington  <hp@redhat.com>
5179
5180         * update-dbus-docs.sh: script to update docs on the web site, only
5181         works for me though. neener.
5182
5183 2005-01-20  Havoc Pennington  <hp@redhat.com>
5184
5185         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5186         code can reveal bugs in it
5187
5188 2005-01-20  Havoc Pennington  <hp@redhat.com>
5189
5190         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5191         select() version, patches from Tor Lillqvist
5192
5193 2005-01-20  Havoc Pennington  <hp@redhat.com>
5194
5195         * doc/dbus-tutorial.xml: replace > with &gt;
5196
5197         * bus/services.c (bus_registry_acquire_service): validate the name
5198         and return a better error if it's no good.
5199
5200         * doc/dbus-specification.xml: note NO_AUTO_START change
5201
5202         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5203         from AUTO_START, we're toggling the default
5204
5205         * bus/dispatch.c: adapt the tests to change of auto-start default
5206
5207 2005-01-18  Havoc Pennington  <hp@redhat.com>
5208
5209         * rename dbus-daemon-1 to dbus-daemon throughout
5210
5211 2005-01-18  Havoc Pennington  <hp@redhat.com>
5212
5213         * Throughout, grand renaming to strip out the use of "service",
5214         just say "name" instead (or "bus name" when ambiguous).  Did not
5215         change the internal code of the message bus itself, only the
5216         programmer-facing API and messages.
5217         
5218         * doc/dbus-specification.xml: further update the message bus section
5219         
5220         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5221         in error case
5222
5223 2005-01-17  Havoc Pennington  <hp@redhat.com>
5224
5225         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5226         ever
5227
5228         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5229         "invalid name character" not only non-ASCII
5230
5231         * doc/dbus-specification.xml: further update spec, message bus 
5232         parts are still out-of-date but the marshaling etc. stuff is now
5233         accurate-ish
5234
5235 2005-01-17  Havoc Pennington  <hp@redhat.com>
5236
5237         * doc/dbus-specification.xml: partially update spec
5238
5239 2005-01-17  Havoc Pennington  <hp@redhat.com>
5240
5241         * Throughout, align variant bodies according to the contained
5242         type, rather than always to 8. Should save a fair bit of space in
5243         message headers.
5244         
5245         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5246         fix handling of case where p == end
5247
5248         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5249
5250 2005-01-17  Havoc Pennington  <hp@redhat.com>
5251
5252         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5253
5254         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5255         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5256         are marshaling/unmarshaling a boolean.
5257
5258 2005-01-16  Havoc Pennington  <hp@redhat.com>
5259
5260         This is about it on what can be disabled/deleted from libdbus
5261         easily, back below 150K anyhow. Deeper cuts are more work than 
5262         just turning the code off as I've done here.
5263         
5264         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5265         signed int convenience funcs
5266
5267         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5268         verbose mode
5269
5270         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5271         things out of libdbus
5272
5273         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5274         
5275         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5276         tests-enabled-only, though it should probably be deleted)
5277
5278         * dbus/dbus-message-util.c: same stuff
5279
5280         * dbus/dbus-auth-util.c: same stuff
5281
5282 2005-01-16  Havoc Pennington  <hp@redhat.com>
5283
5284         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5285
5286         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5287         way for stripping down dbus-userdb.c stuff included in libdbus.
5288         Rename _dbus_parse_uid for consistency.
5289
5290 2005-01-16  Havoc Pennington  <hp@redhat.com>
5291
5292         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5293         name the assertion failed in
5294
5295         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5296         (_dbus_return_val_if_fail): assert that the name of the function
5297         containing the check doesn't start with '_', since we only want to 
5298         use checks on public functions
5299         
5300         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5301         checks to assertions
5302
5303         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5304         change checks to asserts for private function
5305
5306         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5307         to asserts for private function
5308
5309         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5310         broken assertion that was breaking make check
5311         (_dbus_type_reader_array_is_empty): remove this rather than fix
5312         it, was only used in assertions
5313
5314 2005-01-16  Havoc Pennington  <hp@redhat.com>
5315
5316         * test/unused-code-gc.py: hacky script to find code that's used
5317         only by the bus (not libdbus) or used only by tests or not used at
5318         all. It has some false alarms, but looks like we can clean up a
5319         lot of size from libdbus.
5320
5321         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5322         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5323         
5324 2005-01-16  Havoc Pennington  <hp@redhat.com>
5325
5326         * Add and fix docs according to Doxygen warnings throughout
5327         source.
5328         
5329         * dbus/dbus-marshal-recursive.c
5330         (_dbus_type_reader_array_is_empty): change this to just call
5331         array_reader_get_array_len() and make it static
5332
5333         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5334         from get_array_type
5335         (dbus_message_iter_init_append): rename from append_iter_init
5336
5337         * dbus/dbus-marshal-recursive.c
5338         (_dbus_type_reader_get_element_type): rename from
5339         _dbus_type_reader_get_array_type
5340
5341 2005-01-15  Havoc Pennington  <hp@redhat.com>
5342
5343         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5344
5345         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5346         when DBUS_DISABLE_ASSERT
5347         (_dbus_marshal_set_basic): be sure we align for the string length
5348
5349         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5350         this look faster
5351
5352         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5353         inline macro version
5354         (_dbus_string_set_byte): provide inline macro version
5355
5356 2005-01-15  Havoc Pennington  <hp@redhat.com>
5357
5358         * Land the new message args API and type system.
5359
5360         This patch is huge, but the public API change is not 
5361         really large. The set of D-BUS types has changed somewhat, 
5362         and the arg "getters" are more geared toward language bindings;
5363         they don't make a copy, etc.
5364
5365         There are also some known issues. See these emails for details
5366         on this huge patch:
5367         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5368         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5369         
5370         * dbus/dbus-marshal-*: all the new stuff
5371
5372         * dbus/dbus-message.c: basically rewritten
5373
5374         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5375         freed blocks to be all non-nul bytes so using freed memory is less
5376         likely to work right
5377
5378         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5379         DBUS_FAIL_MALLOC=N environment variable, so you can do
5380         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5381         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5382         thorough.
5383
5384         * qt/message.cpp: port to the new message args API
5385         (operator<<): use str.utf8() rather than str.unicode()
5386         (pretty sure this is right from the Qt docs?)
5387
5388         * glib/dbus-gvalue.c: port to the new message args API
5389
5390         * bus/dispatch.c, bus/driver.c: port to the new message args API
5391
5392         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5393         "locked" flag to TRUE and align_offset to 0; I guess we never
5394         looked at these anyhow, but seems cleaner.
5395
5396         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5397         move allocation padding macro to this header; use it to implement
5398         (_DBUS_STRING_STATIC): ability to declare a static string.
5399
5400         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5401         change to return TRUE if the interface is not set.
5402
5403         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5404         to dbus-marshal-validate.[hc]
5405
5406         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5407         dbus-internals.c
5408
5409         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5410         to dbus-marshal-*.[hc]
5411
5412         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5413         function here from dbus-marshal.c
5414
5415 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5416
5417         * NEWS: Update for 0.23.
5418
5419         * configure.in: Release 0.23.
5420
5421 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5422
5423         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5424         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5425         behind.
5426
5427         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5428         uninstall"
5429
5430         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5431         is an enum, get the enum's underlying type.  Another mono
5432         1.1.3 fix.
5433
5434 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5435
5436         Patch from Sjoerd Simons <sjoerd@luon.net>
5437
5438         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5439         DESTDIR.  It breaks stuff.
5440
5441 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5442
5443         Patch from Tambet Ingo <tambet@ximian.com>
5444
5445         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5446         calling type.GetElementType().  The code previously depended on
5447         broken Mono behavior, which was fixed in Mono 1.1.3.
5448
5449         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5450         Activator.CreateInstance() so that the class's constructor is
5451         called with the right parameters.
5452
5453 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5454
5455         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5456
5457         * dbus/dbus-connection.c
5458         (_dbus_connection_queue_received_message_link): Call
5459         _dbus_connection_remove_timeout() instead of the _locked()
5460         variant, since it's always called from
5461         _dbus_connection_handle_watch(), which handles the locking.
5462         Removed the _locked() variant since it's no longer used.
5463
5464 2005-01-03  Havoc Pennington  <hp@redhat.com>
5465
5466         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5467         return
5468         
5469 2004-12-26  Havoc Pennington  <hp@redhat.com>
5470
5471         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5472
5473 2005-01-03  Havoc Pennington  <hp@redhat.com>
5474
5475         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5476         floating point
5477
5478         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5479
5480 2005-01-02  Havoc Pennington  <hp@redhat.com>
5481
5482         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5483
5484 2005-01-01  Havoc Pennington  <hp@redhat.com>
5485
5486         * configure.in: add -Wfloat-equal
5487
5488 2005-01-01  Havoc Pennington  <hp@redhat.com>
5489
5490         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5491         for a variety of reasons '==' doesn't do this.
5492
5493 2004-12-31  Havoc Pennington  <hp@redhat.com>
5494
5495         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5496         I keep wishing I had
5497
5498 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5499
5500         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5501
5502 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5503
5504         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5505         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5506         dbus-protocol.h.  Because they are defines and not enums they are not
5507         autogenerated.
5508
5509 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5510
5511         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5512         dbus_bus_activate_service
5513
5514         * python/dbus.py (Bus.activate_service): activate a service on the
5515         bus.
5516
5517 2004-12-24  Havoc Pennington  <hp@redhat.com>
5518
5519         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5520         file format has also changed and I haven't adapted to that yet
5521         
5522         * Makefile.am: load .gcno files from latest gcc
5523
5524 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5525         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5526
5527         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5528         lowlevel binding
5529
5530         * python/dbus.py (get_unix_user): Added binding to 
5531         call dbus_bindings.bus_get_unix_user
5532
5533         * python/extract.py: Modified the proto_pat regex to
5534         handle unsigned long
5535
5536 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5537
5538         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5539         better POSIX compliance.
5540
5541 2004-12-19  Havoc Pennington  <hp@redhat.com>
5542
5543         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5544         (_dbus_string_insert_8_aligned): new functions
5545
5546         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5547
5548 2004-12-18  Havoc Pennington  <hp@redhat.com>
5549
5550         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5551         macro
5552
5553         * dbus/dbus-message.c: fix a comment, and add a still-unused
5554         not-implemented function
5555
5556         * dbus/dbus-marshal.h: fix comment
5557
5558         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5559
5560 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5561
5562         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5563         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5564         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5565         Type.UnderlyingSystemType to get the actual system type
5566         underneath.  This code previously depended on the broken Mono
5567         behavior, which was fixed in 1.1.3.
5568
5569 2004-11-27  Havoc Pennington  <hp@redhat.com>
5570
5571         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5572         are disabled
5573         (_dbus_string_get_const_data): inline when asserts are disabled
5574
5575         * dbus/dbus-message.c: record the _dbus_current_generation of
5576         creation so we can complain if dbus_shutdown() is used improperly.
5577         Do this only if checks are enabled.
5578
5579         * dbus/dbus-connection.c: ditto
5580         
5581 2004-11-26  Havoc Pennington  <hp@redhat.com>
5582
5583         * test/glib/test-profile.c: add with_bus mode to profile echoes
5584         that go through the bus.
5585
5586         * test/glib/run-test.sh: add ability to run test-profile
5587
5588         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5589         config file reload.
5590
5591 2004-11-26  Havoc Pennington  <hp@redhat.com>
5592
5593         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5594         thing was implemented
5595
5596 2004-11-26  Havoc Pennington  <hp@redhat.com>
5597
5598         * test/glib/test-profile.c: tweak a bit, add support for some
5599         made-up minimal malloc overhead with plain sockets, since in 
5600         real life some sort of buffers are unavoidable thus we could 
5601         count them in the theoretical best case
5602
5603 2004-11-26  Havoc Pennington  <hp@redhat.com>
5604
5605         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5606         where I was trying to cache one too many messages
5607
5608 2004-11-26  Havoc Pennington  <hp@redhat.com>
5609
5610         * dbus/dbus-message.c: reimplement message cache as an array which 
5611         makes the cache about twice as fast and saves maybe 1.5% overall
5612
5613 2004-11-26  Havoc Pennington  <hp@redhat.com>
5614
5615         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5616         message cache lock here
5617
5618 2004-11-26  Havoc Pennington  <hp@redhat.com>
5619
5620         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5621         the "char byte_order" next to each other to save 4 bytes
5622         (dbus_message_new_empty_header): reduce preallocation, since the
5623         message cache should achieve a similar effect
5624         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5625         message cache that keeps a few DBusMessage around in a pool,
5626         another 8% speedup or so.
5627
5628         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5629
5630 2004-11-25  Havoc Pennington  <hp@redhat.com>
5631
5632         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5633         to write, without reading or blocking, try it before the poll()
5634         and skip the poll() if nothing remains to write. This is about a
5635         3% speedup in the echo client/server
5636
5637 2004-11-25  Havoc Pennington  <hp@redhat.com>
5638
5639         The primary change here is to always write() once before adding
5640         the write watch, which gives us about a 10% performance increase.
5641         
5642         * dbus/dbus-transport-unix.c: a number of modifications to cope
5643         with removing messages_pending
5644         (check_write_watch): properly handle
5645         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5646         messages_pending stuff
5647         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5648         AUTHENTICATED cases
5649         (unix_handle_watch): after writing, see if the write watch can be
5650         removed
5651         (unix_do_iteration): assert that write_watch/read_watch are
5652         non-NULL rather than testing that they aren't, since they 
5653         aren't allowed to be NULL. check_write_watch() at the end so 
5654         we add the watch if we did not finish writing (e.g. got EAGAIN)
5655
5656         * dbus/dbus-transport-protected.h: remove messages_pending call,
5657         since it resulted in too much inefficient watch adding/removing; 
5658         instead we now require that the transport user does an iteration 
5659         after queueing outgoing messages, and after trying the first
5660         write() we add a write watch if we got EAGAIN or exceeded our 
5661         max bytes to write per iteration setting
5662
5663         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5664         function
5665
5666         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5667         freed and then accessed, valgrind flagged this bug, fix it
5668
5669         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5670         as the last valid field plus 1, where really it is equal to the
5671         last valid field. Corrects some message corruption issues.
5672
5673         * dbus/dbus-mainloop.c: verbosity changes
5674
5675         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5676         instead of aborting in one of the test codepaths
5677
5678         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5679         caused not printing the pid ever again if a verbose was missing
5680         the newline at the end
5681         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5682
5683         * dbus/dbus-connection.c: verbosity changes; 
5684         (dbus_connection_has_messages_to_send): new function
5685         (_dbus_connection_message_sent): no longer call transport->messages_pending
5686         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5687         try to write() immediately, so we can avoid the write watch. This
5688         is the core purpose of this patchset
5689         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5690         dump the outgoing message queue, so nobody will get confused
5691         trying to send them or thinking stuff is pending to be sent
5692
5693         * bus/test.c: verbosity changes
5694
5695         * bus/driver.c: verbosity/assertion changes
5696
5697         * bus/dispatch.c: a bunch of little tweaks to get it working again
5698         because this patchset changes when/where you need to block.
5699
5700 2004-11-23  Havoc Pennington  <hp@redhat.com>
5701
5702         * test/glib/test-profile.c: modify to accept a plain_sockets
5703         argument in which case it will bench plain sockets instead of
5704         libdbus, for comparison purposes.
5705
5706 2004-11-22  Havoc Pennington  <hp@redhat.com>
5707
5708         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5709         threads for more time, so sysprof can get a grip on it.
5710
5711         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5712         pointless variable
5713
5714 2004-11-13  Havoc Pennington  <hp@redhat.com>
5715
5716         * test/glib/test-profile.c: fix this thing up a bit
5717
5718         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5719         preallocation sizes by a fair bit; not sure if this will be an
5720         overall performance win or not, but it does reduce reallocs.
5721
5722         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5723         the test hack that forced constant realloc if asserts are
5724         disabled, so we can profile sanely. Sprinkle in some
5725         _DBUS_UNLIKELY() which are probably pointless, but before I
5726         noticed the real performance problem I put them in.
5727         (_dbus_string_validate_utf8): micro-optimize this thing a little
5728         bit, though callgrind says it didn't help; then special-case
5729         ascii, which did help a lot; then be sure we detect nul bytes as
5730         invalid, which is a bugfix.
5731         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5732         superstition; use memset to nul the padding instead of a manual
5733         loop.
5734         (_dbus_string_get_length): inline this as a
5735         macro; it showed up in the profile because it's used for loop
5736         tests and so forth
5737
5738 2004-11-10  Colin Walters  <walters@verbum.org>
5739
5740         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5741         for extra paranoia.
5742
5743 2004-11-09  Colin Walters  <walters@verbum.org>
5744
5745         * dbus/dbus-string.c (_dbus_string_get_length): New
5746         function, writes DBusString to C buffer.
5747
5748         * dbus/dbus-string.h: Prototype it.
5749
5750         * dbus/dbus-message.c (dbus_message_type_to_string): New
5751         function, converts message type into C string.
5752
5753         * dbus/dbus-message.h: Prototype it.
5754
5755         * bus/selinux.c (bus_selinux_check): Take source pid,
5756         target pid, and audit data.  Pass audit data to
5757         avc_has_perm.
5758         (log_audit_callback): New function, appends extra
5759         audit information.
5760         (bus_selinux_allows_acquire_service): Also take
5761         service name, add it to audit data.
5762         (bus_selinux_allows_send): Also take message
5763         type, interface, method member, error name,
5764         and destination, and add them to audit data.
5765         (log_cb): Initialize func_audit.
5766         
5767         * bus/selinux.h (bus_selinux_allows_acquire_service)
5768         (bus_selinux_allows_send): Update prototypes 
5769
5770         * bus/services.c (bus_registry_acquire_service): Pass
5771         service name to bus_selinux_allows_acquire_service.
5772
5773         * bus/bus.c (bus_context_check_security_policy): Pass
5774         additional audit data.  Move assignment of dest
5775         to its own line.
5776
5777 2004-11-07  Colin Walters  <walters@verbum.org>
5778
5779         * dbus/dbus-transport-unix.c (do_authentication): Always
5780         initialize auth_completed.
5781         
5782 2004-11-07  Colin Walters  <walters@verbum.org>
5783
5784         * bus/bus.c (load_config): Break into three
5785         separate functions: process_config_first_time_only,
5786         process_config_every_time, and process_config_postinit.
5787         (process_config_every_time): Move call of
5788         bus_registry_set_service_context_table into
5789         process_config_postinit.
5790         (process_config_postinit): New function, does
5791         any processing that needs to happen late
5792         in initialization (and also on reload).
5793         (bus_context_new): Instead of calling load_config,
5794         open config parser here and call process_config_first_time_only
5795         and process_config_every_time directly.  Later, after
5796         we have forked but before changing UID,
5797         invoke bus_selinux_full_init, and then call
5798         process_config_postinit.
5799         (bus_context_reload_config): As in bus_context_new,
5800         load parse file inside here, and call process_config_every_time
5801         and process_config_postinit.
5802
5803         * bus/services.h, bus/services.c
5804         (bus_registry_set_service_context_table): Rename
5805         from bus_registry_set_sid_table.  Take string hash from config
5806         parser, and convert them here into SIDs.
5807
5808         * bus/config-parser.c (struct BusConfigParser): Have
5809         config parser only store a mapping of service->context
5810         string.
5811         (merge_service_context_hash): New function.
5812         (merge_included): Merge context string hashes instead
5813         of using bus_selinux_id_table_union.
5814         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5815         simply create a new string hash.
5816         (bus_config_parser_unref): Unref it.
5817         (start_selinux_child): Simply insert strings into hash,
5818         don't call bus_selinux_id_table_copy_over.
5819
5820         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5821         (bus_selinux_id_table_copy_over): Delete.
5822
5823 2004-11-03  Colin Walters  <walters@verbum.org>
5824
5825         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5826         variables.
5827         
5828 2004-11-03  Colin Walters  <walters@verbum.org>
5829
5830         * bus/test-main.c (test_pre_hook): Fix test logic,
5831         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5832
5833 2004-11-02  Colin Walters  <walters@redhat.com>
5834
5835         * bus/selinux.c (bus_selinux_init): Split into two functions,
5836         bus_selinux_pre_init and bus_selinux_post_init.
5837         (bus_selinux_pre_init): Just determine whether SELinux is
5838         enabled.
5839         (bus_selinux_post_init): Do everything else.
5840
5841         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5842         config file, and bus_selinux_post_init after.  This ensures that
5843         we don't lose the policyreload notification thread that
5844         bus_selinux_init created before forking previously.
5845         
5846         * bus/test-main.c (test_pre_hook): Update for split.
5847
5848 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5849
5850         Patch from Johan Fischer <linux@fischaz.com>
5851         
5852         * mono/doc/Makefile.am (install-data-local): Added directory
5853         install for DESTDIR
5854
5855 2004-10-29  Colin Walters  <walters@redhat.com>
5856
5857         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5858         parameter for fd to write pid to.       
5859
5860         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5861         
5862         * bus/bus.c (bus_context_new): Pass print_pid_fd
5863         to _dbus_become_daemon (bug #1720)
5864
5865 2004-10-29  Colin Walters  <walters@redhat.com>
5866
5867         Patch from Ed Catmur <ed@catmur.co.uk>
5868
5869         * mono/doc/Makefile.am (install-data-local): Handle
5870         DESTDIR.
5871
5872 2004-10-29  Colin Walters  <walters@redhat.com>
5873
5874         * bus/.cvsignore, qt/.cvsignore: Update.
5875
5876 2004-10-29  Colin Walters  <walters@redhat.com>
5877
5878         Patch from Kristof Vansant <de_lupus@pandora.be>
5879
5880         * configure.in: Detect Slackware.
5881         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5882         * bus/rc.messagebus.in: New file.
5883
5884 2004-10-29  Colin Walters  <walters@redhat.com>
5885
5886         * tools/dbus-monitor.c (filter_func): Return
5887         DBUS_HANDLER_RESULT_HANDLED in filter function
5888         for now.  See:
5889         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5890
5891 2004-10-29  Colin Walters  <walters@redhat.com>
5892
5893         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5894
5895         * bus/services.c (bus_registry_acquire_service): 
5896         Correctly retrieve service name from DBusString
5897         for printing.
5898
5899 2004-10-29  Colin Walters  <walters@redhat.com>
5900
5901         * dbus/dbus-glib.h: Update documentation to not
5902         refer to internal APIs.
5903
5904 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5905
5906         * mono/Arguments.cs (GetDBusTypeConstructor):
5907         type.UnderlyingSystemType will return "System.Byte" if you do it
5908         on "byte[]", which is not what we want.  So check the type.IsArray
5909         property and use System.Array instead.
5910
5911 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5912
5913         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5914         the DBusUserInfo structure since this is passed into the function.
5915         This would cause a double free when the function that allocated
5916         the structure would try to free it when an error occured.
5917
5918         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5919         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5920         for service activation to avoid 32bit/64bit parallel install issues
5921
5922 2004-10-21  Colin Walters  <walters@verbum.org>
5923
5924         * AUTHORS: Fix my email address, the @gnu.org one
5925         has been bouncing for some time.  Also add J5.
5926         
5927 2004-10-21  Colin Walters  <walters@verbum.org>
5928
5929         * dbus/dbus-transport-unix.c (do_authentication): Return
5930         authentication status to callers.
5931         (unix_handle_watch): If we completed authentication this round,
5932         don't do another read.  Instead wait until the next iteration,
5933         after we've read any pending data in the auth buffer.
5934         (unix_do_iteration): Ditto.
5935         (unix_handle_watch): Updated for new do_authentication prototype.
5936
5937 2004-10-18  Colin Walters  <walters@verbum.org>
5938
5939         * bus/selinux.c (bus_selinux_enabled): Handle
5940         --disable-selinux case.
5941         
5942 2004-10-18  Colin Walters  <walters@verbum.org>
5943
5944         * bus/selinux.h: Add bus_selinux_enabled.
5945         
5946         * bus/selinux.c (bus_selinux_enabled): Implement it.
5947         
5948         * bus/config-parser.c (struct include): Add
5949         if_selinux_enabled member.
5950         (start_busconfig_child): Parse if_selinux_enabled
5951         attribute for include.
5952         (bus_config_parser_content): Handle it.
5953
5954         * bus/session.conf.in, bus/system.conf.in: Add
5955         inclusion of context mapping to default config files;
5956         conditional on SELinux being enabled.
5957         
5958         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5959         
5960         * test/data/invalid-config-files/badselinux-1.conf, 
5961         test/data/invalid-config-files/badselinux-2.conf:
5962         Test files for bad syntax.
5963         
5964 2004-10-17  Colin Walters  <walters@verbum.org>
5965
5966         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5967         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5968         format specifier mismatches.
5969
5970 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5971
5972         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5973         format string.
5974
5975         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5976         pointer (bug #1540, Leonardo Boiko).
5977
5978 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5979
5980         * mono/BusDriver.cs: Changed BusDriver struct to remove
5981         the ServiceCreated and ServiceDeleted events and replace them
5982         with the new ServiceOwnerChanged event.
5983
5984         * mono/example/BusListener.cs: Added a new example program,
5985         which listens for and reports any ServiceOwnerChanged events
5986         on the bus driver.
5987
5988         * mono/example/Makefile.am (DESTDIR): Build changes for the
5989         new BusListener.cs example.
5990
5991 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5992
5993         * bus/signals.c (bus_match_rule_parse): validate the components of
5994         match rules (bug #1439).
5995
5996         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5997
5998 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5999
6000         * doc/dbus-specification.xml: document ServiceOwnerChanged
6001         signal.
6002         
6003         * bus/driver.c, bus/driver.h, bus/services.c: Use
6004         ServiceOwnerChanged signal instead of ServiceCreated and
6005         ServiceDeleted.
6006         
6007         * bus/dispatch.c: update testcase for the new signal.
6008
6009 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6010
6011         Patch from Nat Friedman <nat@novell.com>
6012
6013         * mono/Makefile.am: A number of small build fixes to allow "make
6014         distcheck" to succeed.
6015
6016         * mono/example/Makefile.am: "make distcheck" fixes.
6017
6018         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6019         key in @srcdir@.
6020
6021         * test/Makefile.am: "make distcheck" fixes.
6022
6023 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6024
6025         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6026
6027         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6028
6029         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6030         messages after the first one (bug #1389).
6031         
6032         * bus/dispatch.c (check_double_hello_message): add a test case for
6033         the double hello message bug.
6034         (check_existent_service_activation): fix check of spawning error.
6035         
6036 2004-09-16  David Zeuthen  <david@fubar.dk>
6037
6038         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6039
6040 2004-09-12  David Zeuthen  <david@fubar.dk>
6041
6042         Patch from Kay Sievers <kay.sievers@vrfy.org>
6043
6044         * bus/bus.c (bus_context_new):
6045         * bus/bus.h:
6046         * bus/main.c (usage)
6047         (main):
6048         Add commandline option --nofork to override configuration file
6049         setting.
6050
6051 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6052
6053         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6054         compilers don't like it (bug #974).
6055
6056 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6057
6058         * qt/connection.*: Applied patch by Jérôme Lodewyck
6059         <lodewyck@clipper.ens.fr> to integrate an existing
6060         connection into the Qt eventloop
6061
6062 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6063
6064         * mono/BusDriver.cs: Added.  This is a class for interacting with
6065         the org.freedesktop.DBus service.
6066
6067         * mono/Message.cs: Added a mechanism to expose the message that is
6068         currently being dispatched via the static Message.Current
6069         property.  Added Message.Sender and Message.Destination
6070         properties.
6071
6072         * mono/Handler.cs: Expose the dispatched message via
6073         Message.Current when handling method calls.
6074
6075         * mono/Service.cs: Expose the dispatched message via
6076         Message.Current when handling signal emissions.
6077         
6078         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6079         Connection.BaseService property.
6080
6081 2004-08-28  Havoc Pennington  <hp@redhat.com>
6082
6083         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6084
6085         More fixes from Steve Grubb
6086         
6087         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6088         (_dbus_listen_tcp_socket): fix fd leak
6089
6090         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6091         EINTR to a bit lower in the code
6092
6093 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6094
6095         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6096         TRUE if we are inquiring about the existence of the built-in
6097         org.freedesktop.DBus service.
6098
6099 2004-08-25  John Palmieri  <johnp@redhat.com>
6100         * bus/config-parser.c:
6101         (struct PolicyType): Add POLICY_CONSOLE
6102         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6103         (start_busconfig_child): Sets up console element when
6104         <policy at_console=""> is encountered in a policy file
6105         (append_rule_from_element): Convert console elements to console
6106         rules.
6107
6108         * bus/policy.c: 
6109         (bus_policy_create_client_policy): Add console rules to the client
6110         policy based on if the client is at the console
6111         (bus_policy_append_console_rule): New function for adding a
6112         console rule to a policy
6113         (bus_policy_merge): Handle console rule merging
6114
6115         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6116         where we check for console user files
6117         
6118         * dbus/dbus-sysdeps.c:
6119         (_dbus_file_exists): New function which checks if the given
6120         file exists
6121         (_dbus_user_at_console): New function which does the system
6122         specific process of checking if the user is at the console
6123
6124         * dbus/dbus-userdb.c:
6125         (_dbus_is_console_user): New function converts a UID to user name
6126         and then calls the system specific _dbus_user_at_console to 
6127         see if the user is at the console and therefor a console user
6128
6129 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6130
6131         * bus/config-parser.c (set_limit):
6132         * bus/dbus-daemon-1.1.in:
6133         * test/data/valid-config-files/many-rules.conf: set the
6134         max_match_rules_per_connection limt from the config file. 
6135
6136         * doc/busconfig.dtd: update the DTD.
6137
6138         * bus/driver.c: remove some unused variables.
6139
6140 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6141
6142         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6143         it's been replaced by dbus_g_bus_get
6144
6145 2004-08-23  Colin Walters  <walters@redhat.com>
6146
6147         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6148
6149         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6150
6151         * bus/selinux.c: Create a thread for policy reload notification.
6152         (bus_selinux_get_policy_root): Implement.
6153
6154         * bus/config-parser.c (start_busconfig_child)
6155         (bus_config_parser_content): Support SELinux-root relative
6156         inclusion.
6157
6158         * configure.in <HAVE_SELINUX>: Add -lpthread.
6159         
6160         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6161         (test_post_hook): Move memory checking into here.
6162         (test_pre_hook, test_post_hook): Move SELinux checks in
6163         here, but conditional on a DBUS_TEST_SELINUX environment
6164         variable.  Unfortunately we can't run the SELinux checks
6165         as a normal user, since they won't have any permissions
6166         for /selinux.  So this will have to be tested manually
6167         for now, until we have virtualization for most of
6168         libselinux.
6169         
6170 2004-08-23  Havoc Pennington  <hp@redhat.com>
6171
6172         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6173         drop supplementary groups, suggested by Steve Grubb
6174
6175 2004-08-20  Colin Walters  <walters@redhat.com>
6176
6177         * bus/config-parser.c (start_busconfig_child): Remove some unused
6178         variables.
6179         
6180         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6181         warning.
6182
6183 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6184
6185         * configure.in: If --enable-mono is passed in, if we can't find
6186         mono error out.
6187
6188         * mono/Makefile.am: Use /gacutil to install assemblies into the
6189         GAC and not /root.
6190
6191 2004-08-12  Havoc Pennington  <hp@redhat.com>
6192
6193         * NEWS: update for 0.22
6194
6195         * configure.in: release 0.22
6196
6197 2004-08-11  Colin Walters  <walters@redhat.com>
6198
6199         * tools/dbus-send.c (main, usage): Add --reply-timeout
6200         argument.
6201
6202 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6203
6204         * bus/bus.c (process_config_first_time_only): get rid of an unused
6205         DBusError that was causing a memoy leak (bug #989).
6206
6207         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6208         fix compilation on Solaris/Forte C (bug #974)
6209
6210         * bus/main.c (main): plug two minuscule memleaks.
6211
6212 2004-08-10  Havoc Pennington  <hp@redhat.com>
6213
6214         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6215
6216 2004-08-09  Havoc Pennington  <hp@redhat.com>
6217
6218         * COPYING: switch to Academic Free License version 2.1 instead of
6219         2.0, to resolve complaints about patent termination clause.
6220
6221 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6222
6223         * README: added documentation for the --enable-python 
6224         configure switch.
6225
6226 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6227
6228         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6229         _unref in the SELinux support.
6230
6231         * doc/busconfig.dtd: update DTD for SELinux support.
6232
6233         * bus/config-loader-libxml.c: fix error handler and parser
6234         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6235
6236         * configure.in: remove the warning about libxml2.
6237
6238         * dbus/dbus-bus.c: silence doxygen warning.
6239
6240 2004-07-31  Colin Walters  <walters@redhat.com>
6241
6242         * configure.in: Move #error in SELinux check to its own line.
6243
6244 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6245
6246         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6247         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6248         dbus_error_set.
6249
6250         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6251         broken by the change in the _SET_OOM macros.
6252
6253 2004-07-31  Colin Walters  <walters@redhat.com>
6254
6255         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6256         BUS_SET_OOM.
6257
6258 2004-07-31  Colin Walters  <walters@redhat.com>
6259
6260         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6261         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6262         AC_MSG_CHECKING.
6263
6264 2004-07-24  Havoc Pennington  <hp@redhat.com>
6265
6266         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6267
6268         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6269         functionality
6270
6271         * configure.in: add --enable-selinux
6272         
6273         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6274
6275         * bus/main.c (main): initialize and shut down selinux
6276
6277         * bus/connection.c: store SELinux ID on each connection, to avoid 
6278         repeated getting of the string context and converting it into 
6279         an ID
6280
6281         * bus/bus.c (bus_context_get_policy): new accessor, though it
6282         isn't used
6283         (bus_context_check_security_policy): check whether the security
6284         context of sender connection can send to the security context of
6285         recipient connection
6286
6287         * bus/config-parser.c: add parsing for <selinux> and <associate>
6288         
6289         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6290         implement dbus_connection_get_unix_fd()
6291
6292         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6293         function, used by the selinux stuff
6294         
6295 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6296
6297         * bus/config-loader-libxml.c: complete the implementation of
6298         libxml backend for config file loader. Doesn't work with full OOM
6299         test yet. 
6300         
6301         * configure.in: change error when selecting libxml into a warning.
6302         
6303         * test/data/invalid-config-files: add two non-well-formed XML
6304         files. 
6305         
6306         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6307         
6308         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6309         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6310         be necessary to read all the buffer. (bug #894)
6311
6312         * bus/activation.c (bus_activation_activate_service): fix a
6313         potential assertion failure (bug #896). Small optimization in the
6314         case of auto-activation messages.
6315
6316         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6317         add test case for byte-through-vararg bug (#901). patch by Kimmo
6318         Hämäläinen. 
6319
6320 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6321
6322         * python/dbus.py:
6323         * python/dbus_bindings.pyx.in:
6324         Add dbus.init_gthreads (), allow emit_signal to pass
6325         arguments to the signal.
6326         
6327 2004-07-24  Havoc Pennington  <hp@redhat.com>
6328
6329         * AUTHORS: add some people, not really comprehensively, let me
6330         know if I missed you
6331
6332 2004-07-24  Havoc Pennington  <hp@redhat.com>
6333
6334         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6335         Owen
6336
6337         * test/Makefile.am (DIST_SUBDIRS): here also
6338
6339 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6340
6341         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6342         breaking build on Solaris, reported by Farhad Saberi on the ML.
6343
6344         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6345         va_arg invocation to account for integer promotion in the case of
6346         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6347
6348         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6349         _dbus_list_get_first_link, not _dbus_list_get_first.
6350
6351         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6352
6353         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6354         handler functions so that the asserts in _dbus_object_subtree_unref
6355         do not fail.
6356
6357         * dbus/dbus-transport-unix.c (do_reading):
6358         _dbus_transport_queue_messages return value is of type
6359         dbus_bool_t, not DBusDispatchStatus.
6360         
6361 2004-07-19  David Zeuthen  <david@fubar.dk>
6362
6363         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6364
6365         * bus/dispatch.c:
6366         (check_get_connection_unix_user): Debug says GetProperty; but the
6367         method is called GetConnectionUnixUser
6368         (check_get_connection_unix_process_id): New function
6369         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6370         also call check_get_connection_unix_process_id()
6371         
6372         * bus/driver.c:
6373         (bus_driver_handle_get_connection_unix_process_id): New function,
6374         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6375         interface
6376         
6377         * dbus/dbus-auth.c:
6378         (handle_server_data_external_mech): Set pid from the credentials
6379         obtained from the socket
6380         
6381         * dbus/dbus-connection.c:
6382         (dbus_connection_get_unix_process_id): New function
6383         
6384         * dbus/dbus-connection.h: 
6385         Add prototype for dbus_connection_get_unix_process_id
6386         
6387         * dbus/dbus-transport.c:
6388         (_dbus_transport_get_unix_process_id): New function
6389         
6390         * dbus/dbus-transport.h:
6391         Add prototype for _dbus_transport_get_unix_process_id
6392         
6393 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6394
6395         * dbus/dbus-message.c: Message counter fix, patch by Christian
6396         Hammond <chipx86@gnupdate.org>
6397
6398 2004-07-18  Seth Nickell  <seth@gnome.org>
6399
6400         * python/dbus.py:
6401         * python/dbus_bindings.pyx.in:
6402         * python/tests/test-client.py:
6403
6404         Add dbus.ByteArray and dbus_bindings.ByteArray
6405         types so that byte streams can be passed back.
6406
6407         Give jdahlin the heaps of credit that are so
6408         rightfully his.
6409         
6410 2004-07-12  Seth Nickell  <seth@gnome.org>
6411
6412         * python/dbus.py:
6413
6414         Add message argument to the default object_method_handler
6415         function.
6416         
6417         * python/dbus_bindings.pyx.in:
6418
6419         Automatically return NIL when passed an empty list
6420         (we can't pass back a list since lists are typed
6421         and we don't have any idea what type the the client
6422         intended the list to be... :-( )
6423         
6424 2004-07-10  Seth Nickell  <seth@gnome.org>
6425
6426         * python/examples/Makefile.am:
6427
6428         Fix distcheck breakage caused by new examples.
6429
6430 2004-07-10  Seth Nickell  <seth@gnome.org>
6431
6432         * python/dbus.py:
6433
6434         Add "message" argument to service-side dbus.Object
6435         methods. This will break existing services written
6436         using the python bindings, but will allow extraction
6437         of all the message information (e.g. who its from).
6438
6439         Add improved "object oriented" signal handling/emission.
6440         
6441         * python/examples/example-service.py:
6442
6443         Nix this example.
6444         
6445         * python/examples/example-signal-emitter.py:
6446         * python/examples/example-signal-recipient.py:
6447
6448         Two new examples that show how to emit and receive
6449         signals using the new APIs.
6450         
6451         * python/examples/example-signals.py:
6452         * python/examples/gconf-proxy-service.py:
6453         * python/examples/gconf-proxy-service2.py:
6454
6455         Add "message" argument to service methods.
6456
6457 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6458
6459         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6460         * dbus/bus.c (dbus_bus_get_unix_user)
6461         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6462         method of org.freedesktop.DBus interface.
6463
6464         * bus/dispatch.c: test case
6465
6466 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6467
6468         * python/Makefile.am: switched include directory from glib/ to dbus/
6469         since dbus-glib.h moved
6470  
6471 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6472
6473         * configure.in: prevent building the gcj stuff and libxml loader
6474         since they are broken.
6475
6476 2004-06-20  Havoc Pennington  <hp@redhat.com>
6477
6478         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6479         codes from the dbus error names
6480         
6481         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6482         as dbus/dbus-glib.h and that breakage is now visible due to 
6483         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6484         
6485         * glib/dbus-glib.h: s/gproxy/g_proxy/
6486
6487         * dbus/dbus-shared.h: new header to hold stuff shared with
6488         binding APIs
6489         
6490         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6491         than dbus-errors.h
6492
6493         * glib/dbus-glib.h (dbus_set_g_error): move to
6494         dbus-glib-lowlevel.h
6495
6496         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6497         of stuff to enable this
6498
6499         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6500
6501         * a bunch of other changes with the same basic "separate glib 
6502         bindings from dbus.h" theme
6503         
6504 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6505
6506         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6507
6508         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6509
6510 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6511
6512         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6513         the reply value of the ServiceExists message.
6514
6515 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6516
6517         * python/dbus_bindings.pyx.in: No longer need to parse path
6518         elements and pass them as arrays of strings.  The C API now
6519         accepts plain path strings.
6520         (_build_parsed_path): removed 
6521
6522 2004-06-07  Havoc Pennington  <hp@redhat.com>
6523
6524         * doc/TODO: remove auto-activation item since it's done; sort
6525         items by importance/milestone
6526
6527 2004-06-07  Havoc Pennington  <hp@redhat.com>
6528
6529         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6530         random signature when using REQUIRED_FIELDS (this hack won't work
6531         in the long term)
6532
6533         * dbus/dbus-message.c: change the signature to be a header field,
6534         instead of message->signature special-case string. Incremental
6535         step forward. Then we can fix up code to send the signature in the
6536         message, then fix up code to validate said signature, then fix up
6537         code to not put the typecodes inline, etc.
6538         (load_one_message): don't make up the signature after the fact
6539         (decode_header_data): require signature field for the known
6540         message types
6541
6542         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6543
6544         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6545
6546 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6547
6548         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6549
6550         * mono/Handler.cs: Updated to follow new path argument for
6551         (un-)registering objects.
6552
6553         * mono/example/Makefile.am:
6554         * mono/Makefile.am:
6555         * configure.in: Bumped required version for mono and use new -pkg
6556         syntax for deps
6557
6558 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6559
6560         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6561         registration functions take the path argument as char* instead of
6562         char**.
6563
6564         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6565         split off the path decompostion part of
6566         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6567         warnings. 
6568
6569         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6570         
6571 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6572  
6573         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6574         machine approach.  A state is implemented as a function that
6575         handles incoming events as specified for that state.
6576         
6577         * doc/dbus-specification.xml: Update auth protocol state machine
6578         specification to match implementation.  Remove some leftover
6579         base64 examples.
6580
6581 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6582
6583         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6584         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6585         quiet doxygen.
6586
6587         * Doxyfile.in: remove deprecated options.
6588
6589         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6590         glib/test-thread.h, glib/test-thread-client.c,
6591         glib/test-thread-server.c, glib/test-profile.c,
6592         glib/test-dbus-glib.c: remove these unused files.
6593
6594 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6595
6596         * dbus/dbus-object-tree.c
6597         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6598         non-fallback handlers (bug #684).
6599         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6600         (find_subtree_recurse): report wether the returned subtree is an
6601         exact match or a "fallback" match higher up in the tree.
6602         (object_tree_test_iteration): update test case.
6603
6604 2004-06-01  Seth Nickell  <seth@gnome.org>
6605
6606         * python/dbus_bindings.pyx.in:
6607         * python/tests/test-client.py:
6608
6609         Round off basic type support. Add dicts (yay!), and 
6610         remaining array types.
6611
6612         Make MessageIter more general so it works for dicts too.
6613
6614         Mark all loop variables as C integers.
6615         
6616 2004-05-31  Havoc Pennington  <hp@redhat.com>
6617
6618         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6619         "in" before "out"
6620
6621         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6622
6623         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6624         option that runs the tests, and start filling in some code
6625         including for starters just dumping the interfaces to stdout
6626
6627         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6628
6629         * test/data/valid-introspection-files/lots-of-types.xml: test of
6630         an example introspection file
6631
6632         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6633         "node" (I think...)
6634
6635 2004-05-31  Seth Nickell  <seth@gnome.org>
6636
6637         * python/dbus_bindings.pyx.in:
6638         * python/tests/test-client.py:
6639
6640         Test Suite: 1
6641         Python Bindings: 0
6642
6643         Fix string array memory trashing bug... oops...
6644
6645 2004-05-30  Seth Nickell  <seth@gnome.org>
6646
6647         * python/dbus.py:
6648
6649         Add a nicer-but-less-flexible alternate API for handling 
6650         calls to virtual objects in dbus.ObjectTree.
6651
6652         Screw up the argument order to the dbus.Object constructor
6653         for consistency with dbus.ObjectTree (and to make dbus_methods
6654         optional for future extension)
6655         
6656         * python/examples/Makefile.am:
6657         * python/examples/gconf-proxy-service.py:
6658         * python/examples/gconf-proxy-service2.py:
6659
6660         Alternate implementation of gconf-proxy-service using the
6661         nicer dbus.ObjectTree API.
6662         
6663         * python/examples/example-service.py:
6664         * python/tests/test-server.py
6665
6666         Reverse the argument order to deal with dbus.Object constructor
6667         changes.
6668         
6669 2004-05-30  Seth Nickell  <seth@gnome.org>
6670
6671         * python/examples/example-client.py:
6672         * python/examples/example-service.py:
6673
6674         Take it back. Lists seem to work but they're broken
6675         in the test suite. Make the base examples use
6676         lists (works fine).
6677
6678 2004-05-30  Seth Nickell  <seth@gnome.org>
6679
6680         * python/dbus_bindings.pyx.in:
6681         * python/tests/test-client.py:
6682
6683         Add some more tests and fix errors that crop up.
6684         Unfortunately, currently it seems like marshalling
6685         and unmarshalling of lists is completely broken :-(
6686
6687 2004-05-30  Seth Nickell  <seth@gnome.org>
6688
6689         * python/dbus_bindings.pyx.in:
6690
6691         Add support for ObjectPath type.
6692
6693         * python/dbus.py:
6694
6695         Refactor message handling code to a common function.
6696         
6697         * python/tests/test-client.py:
6698         * python/tests/test-server.py:
6699
6700         Add tests that check to make sure values of all types
6701         can be echoed from a service w/o mangling.
6702         
6703 2004-05-29  Seth Nickell  <seth@gnome.org>
6704
6705         * python/dbus.py:
6706
6707         Add ObjectTree class which allows implementation
6708         of trees of "virtual" objects. Basically the python
6709         wrapper for "register_fallback".
6710         
6711         * python/examples/Makefile.am
6712         * python/examples/gconf-proxy-client.py:
6713         * python/examples/gconf-proxy-service.py:
6714
6715         Implement a simple GConf proxy service that supports
6716         get/set on string and int GConf keys using the ObjectTree.
6717         
6718 2004-05-29  Seth Nickell  <seth@gnome.org>
6719
6720         * python/dbus.py:
6721         * python/examples/example-client.py:
6722         * python/examples/example-service.py:
6723         * python/examples/list-system-services.py:
6724
6725         Add SessionBus, SystemBus and ActivationBus classes
6726         so you don't need to know the special little BUS_TYPE
6727         flag.
6728         
6729 2004-05-29  Havoc Pennington  <hp@redhat.com>
6730
6731         * bus/config-parser.c (process_test_valid_subdir): temporarily
6732         stop testing config parser OOM handling, since expat has issues
6733         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6734
6735         * bus/dbus-daemon-1.1.in: change requested_reply to
6736         send_requested_reply/receive_requested_reply so we can send the
6737         replies, not just receive them.
6738
6739         * bus/config-parser.c: parse the new
6740         send_requested_reply/receive_requested_reply
6741
6742         * bus/policy.c (bus_client_policy_check_can_send): add
6743         requested_reply argument and use it
6744
6745         * bus/bus.c (bus_context_check_security_policy): pass through
6746         requested_reply status to message send check
6747
6748         * bus/system.conf.in: adapt to requested_reply change
6749         
6750 2004-05-28  Havoc Pennington  <hp@redhat.com>
6751
6752         * test/glib/test-service-glib.c (main): remove unused variable
6753
6754         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6755
6756         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6757         from the enum, no longer in use.
6758
6759         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6760         works right.
6761
6762         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6763         whether error_name passed in is a valid error name.
6764
6765 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6766
6767         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6768         OBJECT_PATH and OBJECT_PATH_ARRAY
6769
6770 2004-05-28  Seth Nickell  <seth@gnome.org>
6771
6772         * python/examples/Makefile.am:
6773
6774         Forget to add Makefile.am. Do not pass go.
6775
6776 2004-05-28  Michael Meeks  <michael@ximian.com>
6777
6778         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6779         fix no int64 case.
6780
6781         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6782
6783         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6784         (_dbus_message_iter_get_basic_type_array): impl.
6785         drastically simplify ~all relevant _get methods to use these.
6786         (_dbus_message_iter_append_basic_array),
6787         (dbus_message_iter_append_basic): impl
6788         drastically simplify ~all relevant _append methods to use these.
6789
6790         * dbus/dbus-message-builder.c (parse_basic_type) 
6791         (parse_basic_array, lookup_basic_type): impl.
6792         (_dbus_message_data_load): prune scads of duplicate /
6793         cut & paste coding.
6794
6795         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6796         (_dbus_demarshal_basic_type): implement,
6797         (demarshal_and_validate_len/arg): beef up debug.
6798         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6799
6800 2004-05-27  Seth Nickell  <seth@gnome.org>
6801
6802         * configure.in:
6803         * python/Makefile.am:
6804
6805         Include the example python apps in the tarball.
6806         
6807         * python/examples/list-system-services.py
6808
6809         Add a python new example that fetches the list of services
6810         from the system bus.
6811         
6812 2004-05-27  Seth Nickell  <seth@gnome.org>
6813
6814         * python/dbus.py:
6815         * python/dbus_bindings.pyx.in:
6816
6817         Fix failure to notify that a signal was not handled,
6818         resulted in hung functions.
6819         
6820 2004-05-25  Colin Walters  <walters@redhat.com>
6821
6822         * tools/dbus-monitor.c (main): Monitor all types of messages.
6823
6824 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6825
6826         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6827         which unregisters the object path and disposes the handler.
6828
6829 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6830  
6831         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6832          
6833         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6834         operands to && so we call dbus_message_iter_next () for the last
6835         argument also.
6836
6837 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6838
6839         * dbus/dbus-object-tree.c
6840         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6841         children even if the requested path isn't registered.
6842         (object_tree_test_iteration): test object_tree_list_registered.
6843
6844         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6845         it to 0.
6846         
6847 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6848
6849         * doc/TODO: Remove resolved items.
6850
6851         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6852         field.
6853         
6854         * bus/connection.c (bus_connections_expect_reply): Enforce the
6855         per-connection limit on pending replies.
6856         
6857         Patch from Jon Trowbridge <trow@ximian.com>:
6858  
6859         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6860         up a watch that triggers a config reload when one end of the pipe
6861         becomes readable.
6862         (signal_handler): Instead of doing the config reload in our SIGHUP
6863         handler, just write to the reload pipe and let the associated
6864         watch handle the reload when control returns to the main loop.
6865  
6866         * bus/driver.c (bus_driver_handle_reload_config): Added.
6867         Implements a ReloadConfig method for requesting a configuration
6868         file reload via the bus driver.
6869  
6870 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6871
6872         * HACKING: Updated release instructions concerning the wiki page.
6873
6874 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6875
6876         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6877         filter against auth->allowed_mechs; we only add allowed mechs in
6878         record_mechanisms().
6879  
6880         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6881         ALLOWED_MECHS to auth-script format so we can set the list of
6882         allowed mechanisms.
6883  
6884         * data/auth/client-out-of-mechanisms.auth-script: New test to
6885         check client disconnects when it is out of mechanisms to try.
6886  
6887         * dbus/dbus-auth.c (process_command): Remove check for lines
6888         longer that 1 MB; we only buffer up maximum 16 kB.
6889  
6890         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6891         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6892         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6893         assume there might be unused bytes.
6894  
6895         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6896         client-out-of-mechs, it is handled in process_reject(). Move check
6897         for max failures to send_rejected(), as it's a server-only thing.
6898
6899         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6900         send_auth(), send_data(), send_rejected(), send_error(),
6901         send_ok(), send_begin() and send_cancel().
6902
6903 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6904
6905         Remove base64 encoding, replace with hex encoding. Original patch
6906         from trow@ximian.com, added error handling.
6907
6908         * dbus/dbus-string.c (_dbus_string_base64_encode)
6909         (_dbus_string_base64_decode): Remove.
6910         (_dbus_string_hex_decode): Add end_return argument so we can
6911         distinguish between OOM and invalid hex encoding.
6912         (_dbus_string_test): Remove base64 tests and add test case for
6913         invalid hex.
6914
6915         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6916         Replace base64 with hex.
6917
6918         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6919         for invalid hex encoded data in auth protocol.
6920
6921 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6922
6923         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6924         leak.
6925
6926 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6927
6928         * mono/dbus-sharp.dll.config.in: Added for GAC
6929         * mono/dbus-sharp.snk: Added for GAC
6930         * mono/Assembly.cs.in: Added for GAC
6931         * mono/Makefile.am: Changes for GAC installation        
6932         * configure.in: Added refs for dbus-sharp.dll.config.in and
6933         Assembly.cs.in. More fixes for mono testing
6934         * mono/example/Makefile.am: Changed var to CSC
6935         * Makefile.am: Changed flag name to DBUS_USE_CSC
6936
6937 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6938
6939         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6940         * mono/doc/*: Added documentation framework
6941         * configure.in: Added monodoc check
6942         * README: Added description of mono configure flags
6943
6944 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6945
6946         * doc/dbus-specification.xml: Added a "Required" column to the 
6947         header fields table and changed the "zero or more" verbage in
6948         the above paragraph to read "The header must contain the required 
6949         named header fields and zero or more of the optional named header 
6950         fields".
6951         * test/data/invalid-messages/*.message: Added the required PATH 
6952         named header field to the tests so that they don't fail on 
6953         'Missing path field'
6954
6955 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6956
6957         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6958         the stack by implicitly defining variable and parameter types and
6959         removing the hack of defining C pointers as python objects and later
6960         casting them.
6961
6962 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6963
6964         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6965
6966 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6967
6968         * mono/DBusType/Dict.cs: Handle empty dicts
6969         * mono/DBusType/Array.cs: Handle empty arrays
6970         * mono/Arguments.cs: Handle empty arguments
6971
6972 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6973
6974         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6975         field
6976
6977 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6978
6979         * test/data/valid-messages/standard-*.message: Update message
6980         test scripts to new header field names.
6981
6982 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6983
6984         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6985         overflow to times_we_did_each_thing array which would chop off the
6986         first character of the failure_dir string. Increased the size of
6987         the array to 7 to reflect the number of random mutation functions
6988         we have.
6989
6990 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6991
6992         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6993         unix_server->watch here, it is unreffed in disconnect.
6994         (_dbus_server_new_for_tcp_socket): convert NULL host to
6995         "localhost" here so we don't append NULL to address.
6996         
6997         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6998         various addresses, including tcp with no explicit host.
6999
7000 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7001
7002         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7003         fix incorrect setting of .name_offset in the HeaderField (it was
7004         off by two bytes, positioned right after the name and typecode)
7005
7006         * bus/bus.c (bus_context_new, bus_context_unref): test before
7007         calling dbus_server_free_data_slot and _dbus_user_database_unref
7008         in case of an error.
7009
7010         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7011         by libdbus-gtool.
7012
7013 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7014
7015         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7016         _dbus_poll() instead of select().
7017
7018 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7019
7020         * bus/main.c (signal_handler): Reload the configuration files
7021         on SIGHUP.
7022         (main): Set up our SIGHUP handler.
7023
7024         * bus/bus.c (struct BusContext): Store the config file, user and
7025         fork flag in the BusContext.
7026         (process_config_first_time_only): Added.  Contains the code
7027         (previously in bus_context_new) for setting up the BusContext from
7028         the BusConfigParser that should only be run the first time the
7029         config files are read.
7030         (process_config_every_time): Added.  Contains the code (previously
7031         in bus_context_new) for setting up the BusContext from the
7032         BusConfigParser that should be run every time the config files are
7033         read.
7034         (load_config): Added.  Builds a BusConfigParser from the config
7035         files and passes the resulting structure off to
7036         process_config_first_time_only (assuming this is the first time)
7037         and process_config_every_time.
7038         (bus_context_new): All of the config-related code has been moved
7039         to process_config_first_time_only and process_config_every_time.
7040         Now this function just does the non-config-related initializations
7041         and calls load_config.
7042         (bus_context_reload_config): Added.
7043
7044 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7045
7046         * bus/driver.c (bus_driver_handle_get_service_owner):
7047         implement a GetServiceOwner method.
7048         * doc/dbus-specification.xml: document it.
7049         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7050         
7051         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7052         implement, using the bus GetServiceOwner method.
7053
7054         * test/glib/test-dbus-glib.c:
7055         use dbus_gproxy_new_for_service_owner so that we can receive the
7056         signal. 
7057
7058 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7059
7060         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7061         dbus/dbus-message.c, dbus/dbus-protocol.h
7062         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7063
7064         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7065         dbus/dbus-message.c, dbus/dbus-protocol.h
7066         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7067
7068         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7069         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7070         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7071
7072         * doc/dbus-specification.xml (Header Fields Table):
7073         s/SERVICE/DESTINATION
7074         s/SENDER_SERVICE/SENDER
7075
7076
7077 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7078
7079         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7080         a few seconds.
7081
7082 2004-04-13  Michael Meeks  <michael@ximian.com>
7083
7084         * glib/dbus-gobject.c (handle_introspect): split out
7085         (introspect_properties): this.
7086         (handle_introspect): implement this.
7087
7088         * test/glib/Makefile.am: use the absolute path so the bus
7089         daemon's chdir ("/") doesn't kill us dead.
7090
7091         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7092
7093 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7094
7095         * bus/config-parser.c (struct BusConfigParser): Added
7096         included_files field.
7097         (seen_include): Added.  Checks whether or not a file has already
7098         been included by any parent BusConfigParser.
7099         (bus_config_parser_new): Copy the parent's included_files.
7100         (include_file): Track which files have been included, and fail on
7101         circular inclusions.
7102         (process_test_valid_subdir): Changed printf to report if we are
7103         testing valid or invalid conf files.
7104         (all_are_equiv): Changed printf to be a bit clearer about
7105         what we are actually doing.
7106         (bus_config_parser_test): Test invalid configuration files.
7107
7108 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7109
7110         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7111         argument.  If non-null, the newly-constructed BusConfigParser will
7112         be initialized with the parent's BusLimits instead of the default
7113         values.
7114         (include_file): When including a config file, pass in
7115         the current parser as the parent and then copy the BusLimits
7116         from the included BusConfigParser pack to the current parser.
7117         (process_test_valid_subdir): Renamed from process_test_subdir.
7118         (process_test_equiv_subdir): Added.  Walks through a directory,
7119         descending into each subdirectory and loading the config files
7120         it finds there.  If any subdirectory contains two config files
7121         that don't produce identical BusConfigParser structs, fail.
7122         For now, the BusConfigParser's BusPolicies are not compared.
7123         (bus_config_parser_test): Call both process_test_valid_subdir and
7124         process_test_equiv_subdir.
7125
7126         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7127         argument and pass it along to the call to bus_config_parser_new.
7128         Also made a few small changes to allow this code to compile.
7129
7130         * bus/config-loader-expat.c (bus_config_load): Take a parent
7131         argument and pass it along to the call to bus_config_parser_new.
7132
7133         * bus/bus.c (bus_context_new): Load the config file
7134         with a NULL parent argument.
7135
7136 2004-03-29  Michael Meeks  <michael@ximian.com>
7137
7138         * glib/dbus-gobject.c (introspect_properties): split
7139         out, fix mangled 'while' flow control.
7140         (introspect_signals): implement.
7141         (handle_introspect): update.
7142
7143 2004-03-29  Michael Meeks  <michael@ximian.com>
7144
7145         * glib/dbus-gobject.c (set_object_property): split out / 
7146         re-work, use the property type, and not the message type(!)
7147         (get_object_property): ditto.
7148
7149         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7150         (dbus_gvalue_marshal): make this code re-usable, needed
7151         for signals too, also on both proxy and server side.
7152         Re-write for more efficiency / readability.
7153
7154 2004-03-29  Michael Meeks  <michael@ximian.com>
7155
7156         * dbus/dbus-message.c
7157         (dbus_message_new_error_printf): impl.
7158
7159         * dbus/dbus-connection.c
7160         (dbus_connection_unregister_object_path): fix warning.
7161
7162         * configure.in: fix no-mono-installed situation.
7163
7164 2004-03-27  Havoc Pennington  <hp@redhat.com>
7165
7166         Patch from Timo Teräs:
7167         
7168         * tools/dbus-send.c (main): if --print-reply, assume type is
7169         method call; support boolean type args
7170         
7171         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7172         bunch of memleak and logic bugs
7173         
7174 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7175
7176         * mono/Arguments.cs:
7177         * mono/Introspector.cs:
7178         * mono/Handler.cs:
7179         * mono/InterfaceProxy.cs:
7180         * mono/Message.cs
7181         * mono/ProxyBuilder.cs:
7182         * mono/Service.cs:
7183         Added InterfaceProxy class to avoid building proxies for every
7184         object.
7185
7186         * dbus-message.h:
7187         * dbus-message.c (dbus_message_append_args_valist)
7188         (dbus_message_iter_get_object_path)
7189         (dbus_message_iter_get_object_path_array)
7190         (dbus_message_iter_append_object_path)
7191         (dbus_message_iter_append_object_path_array):
7192         Added object_path iter functions to handle OBJECT_PATH arguments
7193         
7194 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7195
7196         First checkin of mono bindings.
7197         * configure.in:
7198         * Makefile.am:
7199         Build stuff for the bindings
7200         * dbus-sharp.pc.in: Added for pkgconfig
7201         
7202 2004-03-21  Havoc Pennington  <hp@redhat.com>
7203
7204         * test/test-service.c (main): remove debug spew
7205
7206 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7207
7208         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7209         arrays
7210
7211         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7212         (dbus_message_iter_init_array_iterator)
7213         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7214         indicate whether the iterator is empty
7215
7216         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7217         warnings
7218
7219 2004-03-19  Havoc Pennington  <hp@redhat.com>
7220
7221         * NEWS: 0.21 updates
7222
7223         * configure.in: 0.21
7224
7225         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7226         
7227         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7228         you don't need pyrex to make dist
7229
7230         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7231         sources; run moc
7232         
7233 2004-03-18  Richard Hult  <richard@imendio.com>
7234
7235         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7236         (dbus_message_set_auto_activation): Add doxygen docs.
7237
7238 2004-03-16  Richard Hult  <richard@imendio.com>
7239
7240         * bus/activation.c: (bus_activation_service_created),
7241         (bus_activation_send_pending_auto_activation_messages),
7242         (bus_activation_activate_service):
7243         * bus/activation.h:
7244         * bus/dispatch.c: (bus_dispatch),
7245         (check_nonexistent_service_auto_activation),
7246         (check_service_auto_activated),
7247         (check_segfault_service_auto_activation),
7248         (check_existent_service_auto_activation), (bus_dispatch_test):
7249         * bus/driver.c: (bus_driver_handle_activate_service):
7250         * bus/services.c: (bus_registry_acquire_service):
7251         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7252         (dbus_message_get_auto_activation):
7253         * dbus/dbus-message.h:
7254         * dbus/dbus-protocol.h: Implement auto-activation.
7255         
7256         * doc/dbus-specification.xml: Add auto-activation to the spec.
7257
7258 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7259
7260         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7261         fix a bug with CUSTOM types.
7262
7263         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7264         a unit test for this bug (used to fail).
7265
7266 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7267
7268         * bus/activation.c:
7269         (babysitter_watch_callback): notify all pending activations waiting for
7270           the same exec that the activation failed.
7271         (bus_activation_activate_service): shortcut the activation if we 
7272           already waiting for the same executable to start up.
7273
7274 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7275
7276         * bus/activation.c: 
7277         - Added service file reloading. 
7278           Each service files directory is kept in an hash table in 
7279           BusActivation and each BusActivationEntry knows what .service-file it
7280           was read from. So when you try to activate a service the bus will 
7281           check if it's been updated, removed or if new .service-files has 
7282           been installed.
7283         - Test code at the bottom for the service file reloading.
7284         * bus/test-main.c: (main):
7285         * bus/test.h:
7286         - added service reloading test.
7287         * dbus/dbus-sysdeps.c: 
7288         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7289
7290 2004-03-08  Michael Meeks  <michael@ximian.com>
7291
7292         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7293         bail immediately if disconnected, to avoid busy loop.
7294
7295         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7296         cleanup cut/paste/inefficiency.
7297
7298 2004-03-01  David Zeuthen  <david@fubar.dk>
7299
7300         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7301         bug where args were used twice. This bug resulted in a segfault
7302         on a Debian/PPC system when starting the messagebus daemon. Include
7303         dbus-sysdeps.h for DBUS_VA_COPY
7304
7305         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7306
7307         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7308         appropriate va_copy implementation. From GLib
7309         
7310 2004-02-24  Joe Shaw  <joe@ximian.com>
7311
7312         * bus/services.c (bus_registry_acquire_service): We need to pass
7313         in the service name to dbus_set_error() to prevent a crash.
7314
7315 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7316
7317         * AUTHORS: Reveal my True identity.
7318
7319 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7320
7321         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7322         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7323
7324 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7325
7326         * doc/TODO: Added not about better error check of configuration files.
7327
7328 2003-12-02  Richard Hult  <richard@imendio.com>
7329
7330         * Update AFL version to 2.0 throughout the source files to reflect
7331         the update that was done a while ago.
7332
7333 2003-12-02  Richard Hult  <richard@imendio.com>
7334
7335         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7336         wrote_dict_key to FALSE on the iter that the dict is appended to,
7337         just like when appending other types. Fixes a bug where a dict
7338         couldn't be put inside a dict.
7339         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7340         (message_iter_test, _dbus_message_test): Add test case for dict
7341         inside dict.
7342
7343 2003-12-01  David Zeuthen  <david@fubar.dk>
7344
7345         * python/dbus.py: Add the actual message when calling the reciever
7346         of a signal such that parameters can be inspected. Add the method
7347         remove_signal_receiver
7348         
7349 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7350
7351         * bus/*.[ch]:
7352         * dbus/*.[ch]:
7353         * glib/*.[ch]: Made ref functions return the pointer
7354
7355 2003-11-25  Zack Rusin  <zack@kde.org>
7356
7357         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7358
7359         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7360         wrappers,
7361
7362         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7363         the Integrator and to better fit with the server,
7364
7365 2003-11-24  Zack Rusin  <zack@kde.org>
7366
7367         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7368         the integrator handles it now
7369
7370         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7371         since QTimer wasn't really meant to be used the way DBusTimeout is
7372
7373 2003-11-24  Zack Rusin  <zack@kde.org>
7374
7375         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7376         Integrator class which integrates D-BUS with the Qt event loop,
7377
7378         * qt/connection.h, qt/connection.cpp: Move all the code which
7379         was dealing with D-BUS integration to the Integrator class,
7380         and start using Integrator,
7381
7382 2003-11-23  Zack Rusin  <zack@kde.org>
7383
7384         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7385         wrapper
7386
7387         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7388         switching namespaces to DBusQt, reworking the class,
7389
7390         * Makefile.cvs: switching dependencies so that it matches KDE 
7391         schematics,
7392         
7393         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7394         the library
7395
7396 2003-11-19  Havoc Pennington  <hp@redhat.com>
7397
7398         * NEWS: update
7399
7400         * configure.in: bump version to 0.20
7401
7402         * configure.in (have_qt): add yet another place to look for qt
7403         (someone hand trolltech a .pc file...)
7404
7405 2003-11-01  Havoc Pennington  <hp@redhat.com>
7406
7407         * doc/dbus-specification.xml: add state machine docs on the auth
7408         protocol; just a first draft, I'm sure it's wrong.      
7409
7410 2003-10-28  David Zeuthen  <david@fubar.dk>
7411
7412         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7413         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7414         
7415 2003-10-28  Havoc Pennington  <hp@redhat.com>
7416
7417         * dbus/dbus-message.c (get_next_field): delete unused function
7418
7419 2003-10-28  Havoc Pennington  <hp@redhat.com>
7420
7421         * bus/expirelist.c (do_expiration_with_current_time): detect
7422         failure of the expire_func due to OOM
7423
7424         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7425
7426         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7427         NoReply error that's now created by the bus when the service exits
7428
7429 2003-10-28  Havoc Pennington  <hp@redhat.com>
7430
7431         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7432         tests for set_path, set_interface, set_member, etc.
7433
7434         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7435
7436         * dbus/dbus-message.c (set_string_field): always just delete and
7437         re-append the field; accept NULL for deletion
7438         (re_align_fields_recurse): reimplement
7439         
7440 2003-10-26  Havoc Pennington  <hp@redhat.com>
7441
7442         * dbus/dbus-connection.c: fix docs to properly describe the
7443         disconnected message
7444         (_dbus_connection_notify_disconnected): remove this function; 
7445         we can't synchronously add the disconnected message, we have to 
7446         do it after we've queued any remaining real messages
7447         (_dbus_connection_get_dispatch_status_unlocked): queue the
7448         disconnect message only if the transport has finished queueing all
7449         its real messages and is disconnected.
7450         (dbus_connection_disconnect): update the dispatch status here
7451
7452 2003-10-22  Havoc Pennington  <hp@redhat.com>
7453
7454         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7455
7456         * bus/connection.c (bus_transaction_send_from_driver): set the
7457         destination to the connection's base service
7458
7459 2003-10-20  Havoc Pennington  <hp@redhat.com>
7460
7461         hmm, make check is currently not passing.
7462         
7463         * doc/dbus-specification.xml: add requirement that custom type
7464         names follow the same rules as interface names.
7465
7466         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7467         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7468         'map'
7469
7470         * doc/dbus-specification.xml: update type codes to match
7471         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7472         CUSTOM. Add type OBJECT_PATH to the spec.
7473
7474 2003-10-17  Havoc Pennington  <hp@redhat.com>
7475
7476         * bus/driver.c (create_unique_client_name): use "." as separator
7477         in base service names instead of '-'
7478
7479         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7480         byte at the end of the string
7481
7482         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7483         optimization macros since string validation seems to be a slow
7484         point.
7485         
7486         * doc/dbus-specification.xml: restrict valid
7487         service/interface/member/error names. Add test suite code for the
7488         name validation.
7489
7490         * dbus/dbus-string.c: limit service/interface/member/error names 
7491         to [0-9][A-Z][a-z]_
7492
7493         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7494         format arg to verbose spew
7495
7496         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7497         memory, return instead of g_error
7498
7499         * test/test-service.c (path_message_func): support emitting a
7500         signal on request
7501
7502         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7503         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7504         assuming the activation bus was the session bus so that services
7505         started manually will still register.
7506         (init_connections_unlocked): fix so that in OOM situation we get
7507         the same semantics when retrying the function
7508         
7509         * test/test-service.c (main): change to use path registration, to
7510         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7511         than DBUS_BUS_SESSION
7512
7513 2003-10-16  Havoc Pennington  <hp@redhat.com>
7514
7515         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7516
7517         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7518         coverage of the tests
7519         (coverage-report.txt): don't move the .da and .bbg files around
7520
7521 2003-10-16  Havoc Pennington  <hp@redhat.com>
7522
7523         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7524         to put there
7525
7526 2003-10-16  Havoc Pennington  <hp@redhat.com>
7527
7528         * bus/connection.c (bus_pending_reply_expired): either cancel or
7529         execute, not both
7530         (bus_connections_check_reply): use unlink, not remove_link, as we
7531         don't want to free the link; fixes double free mess
7532
7533         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7534         where no reply was received
7535
7536         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7537         fix a refcount leak
7538
7539         * bus/signals.c (match_rule_matches): add special cases for the
7540         bus driver, so you can match on sender/destination for it.
7541
7542         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7543         DBUS_PRINT_BACKTRACE is set
7544
7545         * dbus/dbus-internals.c: add pid to assertion failure messages
7546
7547         * dbus/dbus-connection.c: add message type code to the debug spew
7548
7549         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7550         sender=foo not service=foo
7551
7552         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7553         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7554         DBUS_ACTIVATION_ADDRESS instead
7555
7556         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7557         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7558
7559         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7560         context struct
7561
7562         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7563         (dbus_message_iter_get_object_path_array): new function (half
7564         finished, disabled for the moment)
7565         
7566         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7567         DBUS_MESSAGE_TYPE_ERROR
7568
7569         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7570         avoid redirecting stderr to /dev/null
7571         (babysit): close stdin if not doing the "exit_with_session" thing
7572
7573         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7574         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7575         stdout/stdin, so things don't get confused
7576         
7577         * bus/system.conf.in: fix to allow replies, I modified .conf
7578         instead of .conf.in again.
7579
7580 2003-10-14  David Zeuthen  <david@fubar.dk>
7581
7582         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7583         argtype to arg_type when raising unknown arg type exception.
7584         Changed type list to reflect the changes in dbus-protocol.h so 
7585         the bindings actually work.
7586
7587 2003-10-14  Havoc Pennington  <hp@redhat.com>
7588
7589         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7590         to have a bug keeping it from outputting the .da files sometimes
7591         (string_get_string): don't append garbage nul bytes to the string.
7592
7593 2003-10-15  Seth Nickell  <seth@gnome.org>
7594
7595         * python/Makefile.am:
7596
7597         Include dbus_h_wrapper.h in the dist tarball.
7598
7599 2003-10-14  Havoc Pennington  <hp@redhat.com>
7600
7601         * bus/bus.c (bus_context_check_security_policy): revamp this to
7602         work more sanely with new policy-based requested reply setup
7603
7604         * bus/connection.c (bus_transaction_send_from_driver): set bus
7605         driver messages as no reply
7606
7607         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7608         requested_reply attribute on allow/deny rules
7609
7610         * bus/system.conf: add <allow requested_reply="true"/>
7611
7612         * bus/driver.c (bus_driver_handle_message): fix check for replies
7613         sent to the bus driver, which was backward. How did this ever work
7614         at all though? I think I'm missing something.
7615
7616         * dbus/dbus-message.c (decode_header_data): require error and
7617         method return messages to have a reply serial field to be valid
7618         (_dbus_message_loader_queue_messages): break up this function;
7619         validate that reply serial and plain serial are nonzero; 
7620         clean up the OOM/error handling.
7621         (get_uint_field): don't return -1 from this
7622         (dbus_message_create_header): fix signed/unsigned bug
7623
7624         * bus/connection.c (bus_connections_expect_reply): save serial of
7625         the incoming message, not reply serial
7626
7627 2003-10-14  Havoc Pennington  <hp@redhat.com>
7628
7629         * bus/connection.c: implement pending reply tracking using
7630         BusExpireList
7631
7632         * bus/bus.c (bus_context_check_security_policy): verify that a
7633         reply is pending in order to allow a reply to be sent. Deny 
7634         messages of unknown type.
7635
7636         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7637
7638         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7639         (bus_context_get_reply_timeout): new
7640
7641 2003-10-13  Seth Nickell  <seth@gnome.org>
7642
7643         * python/Makefile.am:
7644
7645         Pass "make distcheck": remove a couple files from DIST_FILES
7646         that weren't included in the final version.
7647
7648 2003-10-12  Havoc Pennington  <hp@pobox.com>
7649
7650         Added test code that 1) starts an actual bus daemon and 2) uses
7651         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7652         more testing possible, but this is the basic framework.
7653         
7654         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7655         empty proxy lists from the proxy list hash
7656
7657         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7658         couple of return_if_fail checks
7659
7660         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7661         to allocate, so everything is cleared to NULL as it should be.
7662
7663         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7664         source as data to dbus_connection_set_timeout_functions() as the 
7665         timeout functions expected
7666
7667         * test/glib/run-test.sh: add a little script to start up a message
7668         bus and run tests using it
7669
7670         * tools/dbus-launch.1: updates
7671
7672         * tools/dbus-launch.c (main): add --config-file option
7673
7674         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7675         that could never be reached.
7676
7677         * dbus/dbus-message.c (dbus_message_new_method_return) 
7678         (dbus_message_new_error, dbus_message_new_signal): set the
7679         no-reply-expected flag on all these. Redundant, but may
7680         as well be consistent.
7681
7682 2003-10-11  Havoc Pennington  <hp@pobox.com>
7683
7684         * test/decode-gcov.c (function_solve_graph): make broken block
7685         graph a nonfatal error since it seems to be broken. Need to debug
7686         this.
7687
7688         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7689         can't just check type > INVALID < LAST anymore
7690
7691         * dbus/dbus-message.c (dbus_message_get_signature): new function
7692         (dbus_message_has_signature): new function
7693         (struct DBusMessage): add signature field (right now it isn't sent
7694         over the wire, just generated on the fly)
7695         (dbus_message_copy): copy the signature, and init strings to
7696         proper length to avoid some reallocs
7697         (dbus_message_iter_init_array_iterator): return void, since it
7698         can't fail
7699         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7700         (_dbus_message_loader_queue_messages): add silly temporary hack to
7701         fill in message->signature on load
7702
7703         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7704         characters, so they are relatively human-readable.
7705
7706 2003-10-11  Havoc Pennington  <hp@pobox.com>
7707
7708         * dbus/dbus-message.c (_dbus_message_test): add more test
7709         coverage, but #if 0 for now since they uncover a bug 
7710         not fixed yet; I think in re_align_field_recurse()
7711         (re_align_field_recurse): add FIXME about broken assertion
7712
7713         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7714
7715         * bus/connection.c: share a couple code bits with expirelist.c
7716
7717         * bus/expirelist.h, bus/expirelist.c: implement a generic
7718         expire-items-after-N-seconds facility, was going to share between
7719         expiring connections and replies, decided not to use for expiring
7720         connections for now.
7721
7722         * COPYING: include AFL 2.0 (still need to change all the file headers)
7723
7724 2003-10-09  Havoc Pennington  <hp@redhat.com>
7725
7726         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7727         gcc 3.3. Not that we do anything about it yet.
7728
7729         * bus/signals.c (bus_match_rule_parse): impose max length on the
7730         match rule text
7731
7732         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7733
7734 2003-10-09  Havoc Pennington  <hp@redhat.com>
7735
7736         Make matching rules theoretically work (add parser).
7737         
7738         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7739         the case where destination is explicitly specified as bus driver
7740         and someone else is eavesdropping.
7741         
7742         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7743         definition of eavesdropping and assertion
7744
7745         * tools/dbus-send.c (main): use dbus_message_type_from_string
7746
7747         * bus/signals.c (bus_match_rule_parse): implement
7748
7749         * dbus/dbus-message.c (dbus_message_type_from_string): new
7750
7751         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7752
7753 2003-10-02  Havoc Pennington  <hp@pobox.com>
7754
7755         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7756         dbus_gproxy_oneway_call
7757
7758         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7759         (dbus_server_setup_with_g_main): fix to allow calling them more
7760         than once on the same args
7761         (dbus_bus_get_with_g_main): new function
7762
7763 2003-10-02  Havoc Pennington  <hp@redhat.com>
7764
7765         * doc/dbus-tutorial.xml: write some stuff
7766
7767 2003-09-29  Havoc Pennington  <hp@pobox.com>
7768
7769         * configure.in: split checks for Doxygen from XML docs, check for
7770         xmlto
7771
7772         * doc/Makefile.am: XML-ify all the docs, and add a blank
7773         dbus-tutorial.xml
7774
7775 2003-09-29  Havoc Pennington  <hp@pobox.com>
7776
7777         * Merge dbus-object-names branch. To see the entire patch 
7778         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7779         it's huuuuge though.
7780         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7781         
7782 2003-09-28  Havoc Pennington  <hp@pobox.com>
7783
7784         * HACKING: update to reflect new server
7785
7786 2003-09-26  Seth Nickell  <seth@gnome.org>
7787
7788         * python/dbus.py:
7789         * python/examples/example-signals.py:
7790
7791         Start implementing some notions of signals. The API
7792         is really terrible, but they sort of work (with the
7793         exception of being able to filter by service, and to
7794         transmit signals *as* a particular service). Need to
7795         figure out how to make messages come from the service
7796         we registered :-(
7797         
7798         * python/dbus_bindings.pyx.in:
7799
7800         Removed duplicate message_handler callbacks.
7801         
7802 2003-09-25  Havoc Pennington  <hp@redhat.com>
7803
7804         * bus/session.conf.in: fix my mess
7805
7806 2003-09-25  Havoc Pennington  <hp@pobox.com>
7807
7808         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7809
7810 2003-09-25  Seth Nickell  <seth@gnome.org>
7811
7812         * python/examples/example-service.py:
7813
7814         Johan notices complete wrong code in example-service, but
7815         completely wrong in a way that works exactly the same (!).
7816         Johan is confused, how could this possibly work? Example
7817         code fails to serve purpose of making things clear.
7818         Seth fixes.
7819
7820 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7821
7822         * doc/dbus-specification.sgml: don't require header fields
7823         to be 4-byte aligned and specify that fields should be
7824         distinguished from padding by the fact that zero is not
7825         a valid field name.
7826         
7827         * doc/TODO: remove re-alignment item and add item to doc
7828         the OBJECT_PATH type.
7829         
7830         * dbus/dbus-message.c:
7831         (HeaderField): rename the original member to value_offset
7832         and introduce a name_offset member to keep track of where
7833         the field actually begins.
7834         (adjust_field_offsets): remove.
7835         (append_int_field), (append_uint_field),
7836         (append_string_field): don't align the start of the header
7837         field to a 4-byte boundary.
7838         (get_next_field): impl finding the next marhsalled field
7839         after a given field.
7840         (re_align_field_recurse): impl re-aligning a number of
7841         already marshalled fields.
7842         (delete_field): impl deleting a field of any type and
7843         re-aligning any following fields.
7844         (delete_int_or_uint_field), (delete_string_field): remove.
7845         (set_int_field), (set_uint_field): no need to re-check
7846         that we have the correct type for the field.
7847         (set_string_field): ditto and impl re-aligning any
7848         following fields.
7849         (decode_header_data): update to take into account that
7850         the fields aren't 4-byte aligned any more and the new
7851         way to distinguish padding from header fields. Also,
7852         don't exit when there is too much header padding.
7853         (process_test_subdir): print the directory.
7854         (_dbus_message_test): add test to make sure a following
7855         field is re-aligned correctly after field deletion.
7856         
7857         * dbus/dbus-string.[ch]:
7858         (_dbus_string_insert_bytes): rename from insert_byte and
7859         allow the insert of multiple bytes.
7860         (_dbus_string_test): test inserting multiple bytes.
7861
7862         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7863         warning note to docs about having to re-align any
7864         marshalled values following the string.
7865         
7866         * dbus/dbus-message-builder.c:
7867         (append_string_field), (_dbus_message_data_load):
7868         don't align the header field.
7869         
7870         * dbus/dbus-auth.c: (process_test_subdir): print the
7871         directory.
7872         
7873         * test/break-loader.c: (randomly_add_one_byte): upd. for
7874         insert_byte change.
7875         
7876         * test/data/invalid-messages/bad-header-field-alignment.message:
7877         new test case.
7878         
7879         * test/data/valid-messages/unknown-header-field.message: shove
7880         a dict in the unknown field.
7881
7882 2003-09-25  Seth Nickell  <seth@gnome.org>
7883
7884         * python/dbus.py:
7885         * python/dbus_bindings.pyx.in:
7886
7887         Handle return values.
7888         
7889         * python/examples/example-client.py:
7890         * python/examples/example-service.py:
7891
7892         Pass back return values from the service to the client.
7893         
7894 2003-09-24  Seth Nickell  <seth@gnome.org>
7895
7896         * python/dbus.py:
7897
7898         Connect Object methods (when you are sharing an object) up... pass
7899         in a list of methods to be shared. Sharing all the methods just
7900         worked out too weird. You can now create nice Services over the
7901         DBus in Python. :-)
7902         
7903         * python/dbus_bindings.pyx.in:
7904
7905         Keep references to user_data tuples passed into C functions so 
7906         Python doesn't garbage collect on us.
7907
7908         Implement MethodReturn and Error subclasses of Message for creating
7909         DBusMessage's of those types.
7910         
7911         * python/examples/example-client.py:
7912         * python/examples/example-service.py:
7913
7914         Simple example code showing both how create DBus services and objects,
7915         and how to use them.
7916
7917 2003-09-23  Havoc Pennington  <hp@pobox.com>
7918
7919         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7920
7921 2003-09-23  Havoc Pennington  <hp@redhat.com>
7922
7923         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7924         (dbus_gproxy_disconnect_signal): implement
7925         (dbus_gproxy_manager_remove_signal_match): implement
7926         (dbus_gproxy_manager_add_signal_match): implement
7927         (dbus_gproxy_oneway_call): implement
7928
7929 2003-09-23  Havoc Pennington  <hp@pobox.com>
7930
7931         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7932         subclass. This means dropping the transparent thread safety of the
7933         proxy; you now need a separate proxy per-thread, or your own
7934         locking on the proxy. Probably right anyway.
7935         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7936
7937 2003-09-22  Havoc Pennington  <hp@redhat.com>
7938
7939         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7940
7941 2003-09-21  Seth Nickell  <seth@gnome.org>
7942
7943         First checkin of the Python bindings.
7944         
7945         * python/.cvsignore:
7946         * python/Makefile.am:
7947         * python/dbus_bindings.pyx.in:
7948         * python/dbus_h_wrapper.h:
7949
7950         Pieces for Pyrex to operate on, building a dbus_bindings.so
7951         python module for low-level access to the DBus APIs.
7952         
7953         * python/dbus.py:
7954
7955         High-level Python module for accessing DBus objects.
7956
7957         * configure.in:
7958         * Makefile.am:
7959
7960         Build stuff for the python bindings.
7961
7962         * acinclude.m4:
7963
7964         Extra macro needed for finding the Python C header files.
7965
7966 2003-09-21  Havoc Pennington  <hp@pobox.com>
7967
7968         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7969         implementing the proxy manager, didn't get very far.
7970
7971         * dbus/dbus-bus.c (dbus_bus_add_match): new
7972         (dbus_bus_remove_match): new
7973
7974         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7975         path_name argument; adjust the other not-yet-implemented 
7976         gproxy constructors to be what I think they should be.
7977
7978 2003-09-21  Havoc Pennington  <hp@pobox.com>
7979
7980         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7981         by default for message bus connections.
7982
7983         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7984         exit_on_disconnect flag is set and we process the disconnected
7985         signal.
7986         (dbus_connection_set_exit_on_disconnect): new function
7987
7988 2003-09-21  Havoc Pennington  <hp@pobox.com>
7989
7990         Get matching rules mostly working in the bus; only actually
7991         parsing the rule text remains. However, the client side of
7992         "signal connections" hasn't been started, this patch is only the
7993         bus side.
7994         
7995         * dbus/dispatch.c: fix for the matching rules changes
7996         
7997         * bus/driver.c (bus_driver_handle_remove_match)
7998         (bus_driver_handle_add_match): send an ack reply from these
7999         method calls
8000
8001         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8002         arguments, reported by Seth Nickell
8003
8004         * bus/config-parser.c (append_rule_from_element): support
8005         eavesdrop=true|false attribute on policies so match rules 
8006         can be prevented from snooping on the system bus.
8007
8008         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8009         and "destination" in attribute names; fix some docs bugs; 
8010         add eavesdrop=true|false attribute
8011
8012         * bus/driver.c (bus_driver_handle_add_match)
8013         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8014         messages
8015
8016         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8017         rid of broadcast service concept, signals are just always broadcast
8018
8019         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8020         mostly implement matching rules stuff (currently only exposed as signal
8021         connections)
8022
8023 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8024
8025         * doc/dbus-specification.sgml: Change the header field name
8026         to be an enum and update the rest of the spec to reference
8027         the fields using the conventinal name.
8028
8029         * dbus/dbus-protocol.h: update to reflect the spec.
8030
8031         * doc/TODO: add item to remove the 4 byte alignment requirement.
8032         
8033         * dbus/dbus-message.c: Remove the code to generalise the
8034         header/body length and serial number header fields as named
8035         header fields so we can reference field names using the 
8036         protocol values.
8037         (append_int_field), (append_uint_field), (append_string_field):
8038         Append the field name as a byte rather than four chars.
8039         (delete_int_or_uint_field), (delete_string_field): reflect the
8040         fact that the field name and typecode now occupy 4 bytes instead
8041         of 8.
8042         (decode_string_field), (decode_header_data): update to reflect
8043         protocol changes and move the field specific encoding from
8044         decode_string_field() back into decode_header_data().
8045         
8046         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8047         Add utility to aid debugging.
8048         
8049         * dbus/dbus-message-builder.c:
8050         (append_string_field), (_dbus_message_data_load): Update to
8051         reflect protocol changes; Change the FIELD_NAME directive
8052         to HEADER_FIELD and allow it to take the field's conventional
8053         name rather than the actual value.
8054         
8055         * test/data/*/*.message: Update to use HEADER_FIELD instead
8056         of FIELD_NAME; Always align the header on an 8 byte boundary
8057         *before* updating the header length.
8058
8059 2003-09-15  Havoc Pennington  <hp@pobox.com>
8060
8061         * dbus/dbus-pending-call.c: add the get/set object data
8062         boilerplate as for DBusConnection, etc. Use generic object data
8063         for the notify callback.
8064
8065         * glib/dbus-gparser.c (parse_node): parse child nodes
8066
8067         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8068         
8069         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8070         contain functions shared between the convenience lib and the
8071         installed lib
8072
8073         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8074         -export-symbols-regex to the GLib library
8075
8076         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8077         fix the locking in here, and add a default handler for
8078         Introspect() that just returns sub-nodes.
8079
8080 2003-09-14  Havoc Pennington  <hp@pobox.com>
8081
8082         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8083         rather than gfoo consistent
8084
8085         * glib/dbus-gproxy.h: delete for now, move contents to
8086         dbus-glib.h, because the include files don't work right since we
8087         aren't in the dbus/ subdir.
8088         
8089         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8090         (dbus_gproxy_end_call): finish
8091         (dbus_gproxy_begin_call): finish
8092
8093         * glib/dbus-gmain.c (dbus_set_g_error): new
8094
8095         * glib/dbus-gobject.c (handle_introspect): include information
8096         about child nodes in the introspection
8097
8098         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8099         function to help in implementation of introspection
8100
8101         * dbus/dbus-object-tree.c
8102         (_dbus_object_tree_list_registered_and_unlock): new function
8103
8104 2003-09-12  Havoc Pennington  <hp@pobox.com>
8105
8106         * glib/dbus-gidl.h: add common base class for all the foo_info
8107         types
8108
8109         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8110         similar to kdcop
8111
8112         * test/Makefile.am: try test srcdir -ef . in addition to test
8113         srcdir = ., one of them should work (yeah lame)
8114         
8115         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8116         library
8117         
8118         * glib/dbus-gparser.h: make description_load routines return
8119         NodeInfo* not Parser*
8120
8121         * Makefile.am (SUBDIRS): build test dir after all library dirs
8122
8123         * configure.in: add GTK+ detection
8124
8125 2003-09-07  Havoc Pennington  <hp@pobox.com>
8126
8127         * Make Doxygen contented.
8128
8129 2003-09-07  Havoc Pennington  <hp@pobox.com>
8130
8131         * doc/dbus-specification.sgml: more updates
8132
8133 2003-09-06  Havoc Pennington  <hp@pobox.com>
8134
8135         * doc/dbus-specification.sgml: partial updates
8136
8137         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8138         zillionth time; hopefully I edited the right file this time.
8139
8140         * bus/config-parser.c (append_rule_from_element): support
8141         send_type, send_path, receive_type, receive_path
8142
8143         * bus/policy.c: add message type and path to the list of things
8144         that can be "firewalled"
8145
8146 2003-09-06  Havoc Pennington  <hp@pobox.com>
8147
8148         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8149         (dbus_connection_register_object_path): make this not handle
8150         messages to paths below the given path
8151
8152 2003-09-03  Havoc Pennington  <hp@pobox.com>
8153
8154         * test/glib/Makefile.am: add this with random glib-linked test
8155         programs
8156
8157         * glib/Makefile.am: remove the random test programs from here,
8158         leave only the unit tests
8159
8160         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8161         uscore/javacaps conversion, and fix     
8162         (get_object_property, set_object_property): change to .NET
8163         convention for mapping props to methods, set_FooBar/get_FooBar, 
8164         since one language has such a convention we may as well copy it. 
8165         Plus real methods in either getFooBar or get_foo_bar style won't 
8166         collide with this convention.
8167
8168 2003-09-01  Havoc Pennington  <hp@pobox.com>
8169
8170         * glib/dbus-gparser.c: implement
8171
8172         * glib/dbus-gobject.c: start implementing skeletons support
8173
8174         * configure.in: when disabling checks/assert, also define
8175         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8176
8177 2003-09-01  Havoc Pennington  <hp@pobox.com>
8178
8179         * glib/Makefile.am: rearrange a bunch of files and get "make
8180         check" framework set up
8181
8182 2003-08-31  Havoc Pennington  <hp@pobox.com>
8183
8184         * fix build with --disable-tests
8185
8186 2003-08-30  Havoc Pennington  <hp@pobox.com>
8187
8188         * dbus/dbus-connection.c: purge DBusMessageHandler
8189
8190         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8191         use callbacks everywhere
8192
8193 2003-08-30  Havoc Pennington  <hp@pobox.com>
8194
8195         * test/data/valid-config-files/system.d/test.conf: change to 
8196         root for the user so warnings don't get printed
8197
8198         * dbus/dbus-message.c: add dbus_message_get_path,
8199         dbus_message_set_path
8200         
8201         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8202         dispatching to a path
8203
8204         * dbus/dbus-string.c (_dbus_string_validate_path): add
8205
8206         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8207         (_dbus_marshal_object_path): implement
8208
8209         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8210         to contain the path to the target object
8211         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8212         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8213
8214 2003-08-30  Havoc Pennington  <hp@pobox.com>
8215
8216         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8217
8218 2003-08-29  Havoc Pennington  <hp@pobox.com>
8219
8220         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8221         registered
8222         (struct DBusObjectSubtree): shrink this
8223         a lot, since we may have a lot of them
8224         (_dbus_object_tree_free_all_unlocked): implement
8225         (_dbus_object_tree_dispatch_and_unlock): implement
8226
8227 2003-08-29  Havoc Pennington  <hp@pobox.com>
8228
8229         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8230
8231 2003-08-28  Havoc Pennington  <hp@pobox.com>
8232
8233         purge DBusObjectID
8234         
8235         * dbus/dbus-connection.c: port to no ObjectID, create a
8236         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8237
8238         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8239         everything except UnregisterFunction and MessageFunction
8240         
8241         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8242         add DBUS_TYPE_OBJECT_PATH
8243         
8244         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8245         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8246         path-based object IDs
8247
8248 2003-08-25  Havoc Pennington  <hp@pobox.com>
8249
8250         Just noticed that dbus_message_test is hosed, I wonder when I
8251         broke that. I thought make check was passing earlier...
8252         
8253         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8254         container tree, will replace most of dbus-object-registry
8255
8256         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8257         screwup
8258
8259 2003-08-19  Havoc Pennington  <hp@pobox.com>
8260
8261         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8262         (dbus_message_is_error): fix this function
8263
8264         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8265         match
8266
8267         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8268         reflect clarified man page
8269         (bus_client_policy_check_can_send): ditto
8270         
8271         * bus/session.conf.in: fixup
8272
8273         * bus/system.conf.in: fixup
8274
8275 2003-08-18  Havoc Pennington  <hp@redhat.com>
8276
8277         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8278
8279         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8280         dumb bug created earlier (wrong order of args to
8281         decode_header_data())
8282         
8283         * tools/dbus-send.c: port
8284
8285         * tools/dbus-print-message.c (print_message): port
8286
8287         * test/data/*messages: port all messages over
8288         
8289         * dbus/dbus-message-builder.c: support including 
8290         message type
8291         
8292         * bus/driver.c: port over
8293         
8294         * bus/dispatch.c: port over to new stuff
8295
8296         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8297         rename disconnect signal to "Disconnected"
8298
8299 2003-08-17  Havoc Pennington  <hp@pobox.com>
8300
8301         This doesn't compile yet, but syncing up so I can hack on it from
8302         work. What are branches for if not broken code? ;-)
8303         
8304         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8305         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8306         DBUS_HEADER_FIELD_ERROR_NAME
8307         
8308         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8309         for the interface+member pairs
8310         (string_hash): change to use g_str_hash algorithm
8311         (find_direct_function, find_string_function): refactor these to
8312         share most code.
8313         
8314         * dbus/dbus-message.c: port all of this over to support 
8315         interface/member fields instead of name field
8316
8317         * dbus/dbus-object-registry.c: port over
8318         
8319         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8320         from _dbus_string_validate_name
8321
8322         * bus/dbus-daemon-1.1: change file format for the 
8323         <deny>/<allow> stuff to match new message naming scheme
8324
8325         * bus/policy.c: port over
8326
8327         * bus/config-parser.c: parse new format
8328         
8329 2003-08-16  Havoc Pennington  <hp@pobox.com>
8330
8331         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8332         broken assertion
8333
8334         * glib/dbus-gproxy.c: some hacking
8335
8336 2003-08-15  Havoc Pennington  <hp@redhat.com>
8337
8338         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8339
8340         * dbus/dbus-connection.c
8341         (dbus_connection_send_with_reply_and_block): factor out internals;
8342         change to convert any error replies to DBusError instead of 
8343         returning them as a message
8344
8345 2003-08-15  Havoc Pennington  <hp@pobox.com>
8346
8347         * dbus/dbus-connection.c, 
8348         dbus/dbus-pending-call.c: Finish the pending call stuff
8349
8350 2003-08-14  Havoc Pennington  <hp@redhat.com>
8351
8352         * dbus/dbus-pending-call.c: start on new object that will replace
8353         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8354         replies
8355
8356         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8357         with remote interfaces
8358
8359         * dbus/dbus-gidl.c: do the boring boilerplate in here
8360         
8361 2003-08-12  Havoc Pennington  <hp@pobox.com>
8362
8363         * bus/dispatch.c (bus_dispatch): make this return proper 
8364         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8365
8366         * dbus/dbus-errors.c (dbus_set_error): use
8367         _dbus_string_append_printf_valist
8368
8369         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8370         (_dbus_string_append_printf): new
8371
8372         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8373         UNKNOWN_METHOD
8374
8375         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8376         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8377         message is unhandled.
8378
8379 2003-08-11  Havoc Pennington  <hp@pobox.com>
8380
8381         * bus/test.c (client_disconnect_handler): change to return
8382         HANDLED (would have been REMOVE_MESSAGE)
8383
8384         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8385         HANDLED/NOT_YET_HANDLED instead of
8386         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8387         should be used.
8388
8389 2003-08-10  Havoc Pennington  <hp@pobox.com>
8390
8391         * tools/dbus-send.c (main): add --type argument, for now
8392         supporting only method_call and signal types.
8393
8394         * tools/dbus-print-message.c: print message type
8395
8396         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8397         init connection->objects
8398
8399         * doc/dbus-specification.sgml: fix sgml
8400
8401         * bus/*.c: port over to object-instance API changes
8402
8403         * test/test-service.c: ditto
8404         
8405         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8406         name, we will have to fix up the rest of the code to also handle
8407         this
8408         (dbus_message_new): generic message-creation call
8409         (set_string_field): allow appending name field
8410
8411 2003-08-06  Havoc Pennington  <hp@pobox.com>
8412
8413         * dbus/dbus-object-registry.c: implement signal connection 
8414         and dispatch
8415
8416         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8417
8418         * dbus/dbus-internals.c (_dbus_memdup): new function
8419
8420 2003-08-02  Havoc Pennington  <hp@pobox.com>
8421
8422         * dbus/dbus-message.c (dbus_message_get_no_reply)
8423         (dbus_message_set_no_reply): add these and remove
8424         set_is_error/get_is_error
8425
8426         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8427         remove the ERROR flag, since there's now an ERROR type
8428
8429 2003-08-01  Havoc Pennington  <hp@pobox.com>
8430
8431         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8432         implement
8433
8434         * dbus/dbus-message.c (dbus_message_get_type): new function
8435
8436         * doc/dbus-specification.sgml: add "type" byte to messages
8437
8438 2003-08-01  Havoc Pennington  <hp@pobox.com>
8439
8440         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8441         a message type enum to distinguish kinds of message
8442         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8443         that need not be replied to
8444
8445 2003-08-01  Havoc Pennington  <hp@pobox.com>
8446
8447         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8448         (unpack_8_octets): fix no-64-bit-int bug
8449
8450         * dbus/dbus-object-registry.c (validate_id): validate the 
8451         connection ID bits, not just the instance ID.
8452
8453         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8454         the connection-global 33 bits of the object ID
8455
8456         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8457         object ID in the new way
8458
8459         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8460         define server/client/instance bits.
8461
8462 2003-07-30  Havoc Pennington  <hp@pobox.com>
8463
8464         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8465         build
8466
8467 2003-07-13  Havoc Pennington  <hp@pobox.com>
8468
8469         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8470         fields to DBusObjectVTable and DBusObjectInfo
8471
8472 2003-07-12  Havoc Pennington  <hp@pobox.com>
8473
8474         * dbus/dbus-object-registry.c: implement unit test,
8475         fix bugs discovered in process
8476
8477         * dbus/dbus-connection.c: remove handler_table and
8478         register_handler(), add DBusObjectRegistry usage
8479
8480         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8481         (dbus_object_id_set_null): new functions
8482
8483 2003-07-08  Havoc Pennington  <hp@pobox.com>
8484
8485         * dbus/dbus-object.c: implement some of this
8486
8487         * dbus/dbus-object-registry.c
8488         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8489         param
8490         (_dbus_object_registry_new): handle OOM
8491
8492 2003-07-08  Havoc Pennington  <hp@pobox.com>
8493
8494         * dbus/dbus-object.h: sketch out an API for registering objects
8495         with a connection, that allows us to use as little as 24 bytes
8496         per object and lets application code represent an object in 
8497         any conceivable way.
8498
8499         * dbus/dbus-object-registry.c: implement the hard bits of the
8500         DBusConnection aspect of object API. Not yet wired up.
8501         
8502 2003-07-06  Havoc Pennington  <hp@pobox.com>
8503
8504         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8505         (_dbus_marshal_object_id): new
8506         (_dbus_demarshal_object_id): new
8507         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8508         consolidate identical switch cases. Don't conditionalize handling
8509         of DBUS_TYPE_UINT64, need to handle the type always.
8510         (_dbus_marshal_validate_arg): consolidate identical cases, and
8511         handle DBUS_TYPE_OBJECT_ID
8512
8513         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8514
8515         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8516
8517 2003-09-28  Havoc Pennington  <hp@pobox.com>
8518
8519         * real 0.13 release
8520
8521 2003-09-28  Havoc Pennington  <hp@pobox.com>
8522
8523         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8524         to work with Debian db2html
8525
8526 2003-09-28  Havoc Pennington  <hp@pobox.com>
8527
8528         * configure.in: 0.13
8529
8530         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8531         stylesheet-images for benefit of Debian
8532         
8533         Change back to using filesystem-linked sockets for the system
8534         bus, so only root can create the default system bus address.
8535         
8536         * bus/system.conf.in: change to use
8537         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8538
8539         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8540         from here.
8541
8542         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8543         here, and AC_DEFINE DBUS_SYSTEM_PATH
8544
8545 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8546
8547         * doc/TODO:
8548         * doc/busconfig.dtd:
8549         Add busconfig DTD.
8550         
8551 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8552
8553         * doc/dbus-specification.sgml:
8554         Add activation reply values.
8555         
8556 2003-08-05  Havoc Pennington  <hp@redhat.com>
8557
8558         * configure.in: 0.12
8559
8560 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8561
8562         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8563         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8564         (add_watch), (remove_watch), (create_source):
8565         Refcount fds, fixes some reentrancy issues.
8566         
8567 2003-07-30  Havoc Pennington  <hp@redhat.com>
8568
8569         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8570         bus address to be abstract if we have abstract sockets
8571
8572         * NEWS: update
8573
8574 2003-07-28  Havoc Pennington  <hp@redhat.com>
8575
8576         * bus/messagebus.in: fix to avoid processname/servicename 
8577         confusion, from Michael Kearey
8578         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8579         
8580 2003-07-23  Havoc Pennington  <hp@pobox.com>
8581
8582         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8583         fix from Andy Hanton to remove broken "+1"
8584
8585 2003-07-16  Havoc Pennington  <hp@pobox.com>
8586
8587         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8588         babysitter process, as suggested by Thomas Leonard, so 
8589         an "eval `dbus-launch --exit-with-session`" will actually 
8590         return
8591
8592 2003-07-16  Havoc Pennington  <hp@pobox.com>
8593
8594         * configure.in: print out EXPANDED_* variables in the summary at
8595         the end; clean up the code that computes EXPANDED_ variables and
8596         get the ones using exec_prefix right. Should make things work
8597         when you build without --prefix
8598
8599 2003-06-29  Havoc Pennington  <hp@pobox.com>
8600
8601         * mono/Test.cs (class Test): fire up a main loop and run it
8602
8603         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8604         done once, the app has to do it
8605
8606 2003-06-26  Havoc Pennington  <hp@pobox.com>
8607
8608         * mono/Connection.cs: set up connection with the glib main loop
8609
8610 2003-07-01  Havoc Pennington  <hp@redhat.com>
8611
8612         * doc/dbus-specification.sgml: clarify the format of a type code,
8613         change suggested by Jim Blandy
8614
8615 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8616
8617         * doc/Makefile.am:
8618         * tools/Makefile.am: Don't assume srcdir == builddir.
8619
8620         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8621         the allocated block.
8622         (_dbus_memory_test): New function.
8623         * dbus/dbus-test.h: Add _dbus_memory_test ().
8624         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8625
8626         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8627         of %c%c%c%c.
8628         (dbus_message_new): Remove obsolete @todo.
8629
8630         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8631         (_dbus_marshal_set_uint64): Fix comment.
8632
8633         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8634         hardcode FIELD_REPLY_SERIAL.
8635
8636         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8637         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8638
8639         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8640         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8641
8642 2003-06-24  Havoc Pennington  <hp@pobox.com>
8643
8644         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8645
8646 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8647
8648         * configure.in:
8649         * gcj/.cvsignore:
8650         * gcj/Hello.java:
8651         * gcj/Makefile.am:
8652         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8653         * gcj/org/.cvsignore:
8654         * gcj/org/Makefile.am:
8655         * gcj/org/freedesktop/.cvsignore:
8656         * gcj/org/freedesktop/Makefile.am:
8657         * gcj/org/freedesktop/dbus/.cvsignore:
8658         * gcj/org/freedesktop/dbus/Makefile.am:
8659         * gcj/org/freedesktop/dbus/Message.java: (Message),
8660         (Message.Message):
8661         * gcj/org/freedesktop/dbus/natMessage.cc:
8662         Fix the build system.
8663
8664 2003-06-22  Havoc Pennington  <hp@pobox.com>
8665
8666         * mono/Connection.cs: add more bindings
8667
8668         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8669         more than once.
8670
8671 2003-06-22  Havoc Pennington  <hp@pobox.com>
8672
8673         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8674         Start wrapping more stuff.
8675
8676 2003-06-22  Havoc Pennington  <hp@pobox.com>
8677
8678         * mono/Message.cs: implement Message.Wrap() that ensures we only
8679         have a single C# wrapper per DBusMessage, assuming it works which
8680         it probably doesn't.
8681
8682         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8683         (dbus_message_free_data_slot): new
8684         (dbus_message_set_data): new
8685         (dbus_message_get_data): new
8686
8687 2003-06-22  Havoc Pennington  <hp@pobox.com>
8688
8689         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8690         (_dbus_data_slot_allocator_alloc): rework these to keep a
8691         reference count on each slot and automatically manage a global
8692         slot ID variable passed in by address
8693
8694         * bus/bus.c: convert to new dataslot API
8695
8696         * dbus/dbus-bus.c: convert to new dataslot API
8697
8698         * dbus/dbus-connection.c: convert to new dataslot API
8699
8700         * dbus/dbus-server.c: convert to new dataslot API
8701
8702         * glib/dbus-gmain.c: ditto
8703
8704         * bus/test.c: ditto
8705
8706         * bus/connection.c: ditto
8707
8708 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8709
8710         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8711         after the gcj checks so that the correct configuration tags
8712         will be added to libtool.
8713
8714         * dbus-glib-1.pc.in: No need to specify any includes since
8715         dbus-1.pc.in has those.
8716
8717 2003-06-22  Havoc Pennington  <hp@pobox.com>
8718
8719         * mono/*, gcj/*, configure.in, Makefile.am:
8720         Check in makefiles and subdirs for mono and gcj bindings.
8721         Neither binding actually exists, just trying to get through
8722         all the build and other boring bits.
8723
8724 2003-06-21  Philip Blundell  <philb@gnu.org>
8725
8726         * tools/dbus-monitor.1: Updated.
8727
8728         * tools/dbus-send.1: Likewise.
8729
8730 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8731
8732         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8733         for hangup and error after checking read so we won't discard
8734         pending data if both hangup and read are set.
8735
8736 2003-06-19  Philip Blundell  <philb@gnu.org>
8737
8738         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8739
8740         * tools/dbus-send.c: Accept both --system and --session.
8741
8742         * tools/dbus-monitor.c: Same here.
8743
8744 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8745
8746         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8747         from C++ (Patch by Miloslav Trmac).
8748
8749 2003-06-15  Joe Shaw  <joe@assbarn.com>
8750
8751         * configure.in: Check for socklen_t.
8752
8753         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8754
8755         * test/test-segfault.c: Add #include <sys/time.h>
8756
8757         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8758         dbus-launch needs it.
8759
8760 2003-06-09  Havoc Pennington  <hp@redhat.com>
8761
8762         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8763         SUN_LEN, it breaks abstract socket usage
8764
8765         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8766         starts of lines.
8767
8768 2003-06-04  Havoc Pennington  <hp@pobox.com>
8769
8770         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8771         using unix:abstract=/foo, and when listening in a tmpdir
8772         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8773
8774         * dbus/dbus-transport.c (_dbus_transport_open): support
8775         unix:abstract=/foo
8776
8777         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8778         support abstract sockets
8779
8780         * dbus/dbus-transport-unix.c
8781         (_dbus_transport_new_for_domain_socket): support abstract sockets
8782
8783         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8784         toggle as an argument, implement abstract namespace support
8785         (_dbus_listen_unix_socket): ditto
8786
8787         * configure.in: add --enable-abstract-sockets and implement
8788         a configure check for autodetection of the right value.
8789
8790 2003-06-01  Havoc Pennington  <hp@pobox.com>
8791
8792         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8793         in /tmp (though on Linux this will end up being useless,
8794         when we add abstract namespace support)
8795
8796         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8797         subst'ing it
8798
8799 2003-05-28  Colin Walters  <walters@verbum.org>
8800
8801         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8802
8803 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8804
8805         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8806
8807 2003-05-17  Colin Walters  <walters@gnu.org>
8808
8809         * tools/dbus-send.c: Don't exit with an error code if --help was
8810         passed.  Default to using the session bus instead of the system
8811         one.
8812
8813         * tools/dbus-launch.c: Ditto.
8814
8815         * tools/dbus-monitor.c: Ditto.
8816
8817         * tools/dbus-send.1: Update with new arguments.
8818
8819         * tools/dbus-launch.c: Emit code to export variables.  New
8820         arguments -s and -c to specify shell syntax, and a bit of code to
8821         autodetect syntax.  Also, allow specifying a program to run.
8822
8823         * tools/dbus-launch.1: Update with new arguments.
8824
8825         * tools/dbus-send.1: Ditto.
8826
8827         * tools/dbus-monitor.1: Ditto.
8828
8829 2003-05-17  Havoc Pennington  <hp@pobox.com>
8830
8831         * bus/config-parser.c (merge_included): merge in policies from
8832         child configuration file.
8833
8834         * bus/policy.c (bus_policy_merge): function to merge two policies
8835         together
8836
8837 2003-05-16  Havoc Pennington  <hp@redhat.com>
8838
8839         * dbus/dbus-connection.c: disable verbose lock spew
8840
8841         * tools/dbus-send.c: add --print-reply command line option
8842
8843         * tools/dbus-print-message.h (print_message): new util function
8844         shared by dbus-send and dbus-monitor
8845
8846         * tools/dbus-monitor.c (handler_func): exit on disconnect
8847
8848         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8849         disconnected, don't try to use the read_watch
8850
8851         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8852         so we can find this bug more easily
8853
8854 2003-05-16  Havoc Pennington  <hp@redhat.com>
8855
8856         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8857         NULL as DBusHashTable is annoyingly likely to do.
8858
8859 2003-05-16  Colin Walters  <walters@verbum.org>
8860
8861         * tools/dbus-monitor.c: Add --session argument and usage()
8862         function.
8863
8864         * tools/dbus-monitor.1: Update with new --session arg.
8865
8866         * bus/Makefile.am (install-data-hook): Create
8867         $(libdir)/dbus-1.0/services so that the session bus is happy.
8868
8869 2003-05-15  Havoc Pennington  <hp@redhat.com>
8870
8871         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8872         on non-x86. ifdef's are evil.
8873
8874 2003-05-15  Havoc Pennington  <hp@redhat.com>
8875
8876         * configure.in: 0.11
8877
8878         * NEWS: update
8879
8880         * bus/Makefile.am (initddir): apparently we are supposed to put
8881         init scripts in /etc/rc.d/init.d not /etc/init.d
8882
8883         * bus/Makefile.am: remove the "you must --enable-tests to make
8884         check" as it broke distcheck
8885
8886         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8887
8888 2003-05-13  James Willcox  <jwillcox@gnome.org>
8889
8890         * configure.in:
8891         * bus/activation.c: (bus_activation_service_created),
8892         (bus_activation_activate_service):
8893         * bus/driver.c: (bus_driver_send_service_deleted),
8894         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8895         (bus_driver_send_service_acquired),
8896         (bus_driver_send_welcome_message),
8897         (bus_driver_handle_list_services):
8898         * bus/session.conf.in:
8899         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8900         (dbus_bus_service_exists), (dbus_bus_activate_service):
8901         * dbus/dbus-bus.h:
8902
8903         Add some convenience API which lets you activate a service, and did a
8904         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8905         and dbus_message_get_args()
8906
8907 2003-05-11  Havoc Pennington  <hp@pobox.com>
8908
8909         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8910         calling _dbus_marshal_validate_arg() for every byte in a byte
8911         array, etc.
8912
8913         * dbus/dbus-message-handler.c: use atomic reference counting to
8914         reduce number of locks slightly; the global lock in here sucks
8915
8916         * dbus/dbus-connection.c
8917         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8918         update_dispatch_status that can be called with lock held; then use
8919         in a couple places to reduce locking/unlocking
8920         (dbus_connection_send): hold the lock over the whole function
8921         instead of acquiring it twice.
8922
8923         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8924
8925         * bus/connection.c (bus_connections_setup_connection): fix access
8926         to already-freed memory.
8927
8928         * dbus/dbus-connection.c: keep a little cache of linked list
8929         nodes, to avoid using the global linked list alloc lock in the
8930         normal send-message case. Instead we just use the connection lock
8931         that we already have to take.
8932
8933         * dbus/dbus-list.c (_dbus_list_find_last): new function
8934
8935         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8936         change to use a struct for the atomic type; fix docs,
8937         they return value before increment, not after increment.
8938
8939         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8940         (_dbus_string_append_8_aligned): new functions to try to
8941         microoptimize this operation.
8942         (reallocate_for_length): break this out of set_length(), to
8943         improve profile info, and also so we can consider inlining the
8944         set_length() part.
8945
8946         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8947         strings with some preallocation, cuts down on our calls to realloc
8948         a fair bit. Though if we can get the "move entire string to empty
8949         string" optimization below to kick in here, it would be better.
8950
8951         * dbus/dbus-string.c (_dbus_string_move): just call
8952         _dbus_string_move_len
8953         (_dbus_string_move_len): add a special case for moving
8954         an entire string into an empty string; we can just
8955         swap the string data instead of doing any reallocs.
8956         (_dbus_string_init_preallocated): new function
8957
8958 2003-05-11  Havoc Pennington  <hp@pobox.com>
8959
8960         Write a "test-profile" that does echo client-server with threads;
8961         profile reveals lock contention, memcpy/realloc of buffers, and
8962         UTF-8 validation as hot spots. 20% of lock contention eliminated
8963         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8964         contention is global mempool locks for GList and DBusList.
8965
8966         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8967         x86 implementation
8968
8969         * dbus/dbus-connection.c (struct DBusConnection): use
8970         dbus_atomic_t for the reference count
8971
8972         * dbus/dbus-message.c (struct DBusMessage): declare
8973         dbus_atomic_t values as volatile
8974
8975         * configure.in: code to detect ability to use atomic integer
8976         operations in assembly, from GLib patch
8977
8978         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8979         time, tired of it being wrong in threads and forked processes
8980
8981         * glib/test-profile.c: a little program to bounce messages back
8982         and forth between threads and eat CPU
8983
8984         * dbus/dbus-connection.c: add debug spew macros for debugging
8985         thread locks; include config.h at top; fix deadlock in
8986         dbus_connection_flush()
8987
8988 2003-05-08  Havoc Pennington  <hp@pobox.com>
8989
8990         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8991         data from getting written, and there wasn't a good reason to
8992         use _exit really.
8993
8994         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8995         dbus_verbose lines in test coverage
8996         (main): add list of functions sorted by # of untested blocks
8997         to the coverage report
8998
8999         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9000
9001         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9002
9003         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9004         extend test coverage
9005
9006         * test/data/auth/cancel.auth-script: test canceling an
9007         authentication
9008
9009         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9010         aren't used. in CVS history if we end up needing them.
9011
9012 2003-05-04  Havoc Pennington  <hp@pobox.com>
9013
9014         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9015         unit test
9016
9017         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9018         function, which assumed length was in # of strings, not bytes
9019
9020         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9021         missing coverage
9022
9023         * dbus/dbus-connection.c
9024         (_dbus_connection_queue_received_message): disable function for
9025         now, we are only using it in test mode
9026
9027         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9028         remove a mistaken FIXME
9029
9030 2003-05-04  Havoc Pennington  <hp@pobox.com>
9031
9032         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9033         unlock mutex on successful return, patch from Anders Gustafsson
9034
9035 2003-05-04  Havoc Pennington  <hp@pobox.com>
9036
9037         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9038         Anders Gustafsson
9039
9040 2003-05-04  Havoc Pennington  <hp@pobox.com>
9041
9042         * tools/dbus-launch.c: implement
9043
9044         * bus/main.c (main), bus/bus.c (bus_context_new):
9045         implement --print-pid and --fork
9046
9047 2003-05-03  Havoc Pennington  <hp@redhat.com>
9048
9049         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9050         the address had no value, and add to test suite. Fix and
9051         regression test from Miloslav Trmac
9052
9053 2003-05-03  Havoc Pennington  <hp@pobox.com>
9054
9055         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9056         watch is invalid when handled
9057
9058         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9059         dbus-launch utility to launch the bus from a shell script.  Didn't
9060         actually implement dbus-launch yet, it's just a placeholder still.
9061
9062 2003-05-03  Havoc Pennington  <hp@pobox.com>
9063
9064         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9065         daemon; also documents daemon config file, so replaces
9066         doc/config-file.txt. Corrected some stuff from config-file.txt in
9067         the process of moving it.
9068
9069 2003-05-03  Havoc Pennington  <hp@pobox.com>
9070
9071         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9072         add some man pages
9073
9074 2003-05-03  Colin Walters  <walters@verbum.org>
9075
9076         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9077         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9078
9079         * Makefile.am: Update to use new .pc versioning scheme.
9080
9081 2003-05-02  Havoc Pennington  <hp@redhat.com>
9082
9083         * bus/system.conf.in: allow send/receive to/from message bus
9084         service
9085
9086 2003-04-30  Havoc Pennington  <hp@redhat.com>
9087
9088         * configure.in: print a note when building with unit tests and
9089         without assertions
9090
9091 2003-04-30  Havoc Pennington  <hp@redhat.com>
9092
9093         * Makefile.am: add a check-local that complains if you didn't
9094         configure with --enable-tests
9095
9096 2003-04-29  Havoc Pennington  <hp@redhat.com>
9097
9098         * glib/dbus-gmain.c: docs cleanups
9099
9100         * dbus/dbus-types.h: add docs on int64 types
9101
9102         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9103         public API docs section
9104
9105 2003-04-29  Havoc Pennington  <hp@redhat.com>
9106
9107         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9108         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9109         parallel install API version, not with the D-BUS package version.
9110
9111         * HACKING: move some of README over here
9112
9113         * README: updates, and document API/ABI policy
9114
9115         * configure.in: reindentation
9116
9117 2003-04-29  Havoc Pennington  <hp@redhat.com>
9118
9119         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9120         to use this library" to be sure people have the right
9121         expectations.
9122
9123 2003-04-28  Havoc Pennington  <hp@redhat.com>
9124
9125         * configure.in: add --enable-docs which by default is auto yes if
9126         doxygen and db2html found, no otherwise; but can be forced on/off
9127
9128         * doc/Makefile.am: conditionalize whether to build docs on
9129         --enable-docs
9130
9131 2003-04-28  Havoc Pennington  <hp@redhat.com>
9132
9133         * configure.in: 0.10
9134
9135         * NEWS: update
9136
9137         * bus/system.conf.in: add <includedir>system.d</includedir>
9138
9139         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9140         username was provided but not uid
9141
9142         * bus/config-parser.c (struct BusConfigParser): keep track of
9143         whether the parser is toplevel or was included; change some
9144         of the error handling if it's included.
9145
9146 2003-04-27  Havoc Pennington  <hp@pobox.com>
9147
9148         Unbreak my code...
9149
9150         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9151         report correct status if we finish processing authentication
9152         inside this function.
9153
9154         * bus/activation.c (try_send_activation_failure): use
9155         bus_transaction_send_error_reply
9156
9157         * bus/connection.c (bus_connection_get_groups): return an error
9158         explaining the problem
9159
9160         * bus/bus.c (bus_context_check_security_policy): implement
9161         restriction here that inactive connections can only send the
9162         hello message. Also, allow bus driver to send anything to
9163         any recipient.
9164
9165         * bus/connection.c (bus_connection_complete): create the
9166         BusClientPolicy here instead of on-demand.
9167         (bus_connection_get_policy): don't return an error
9168
9169         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9170         sender field in message being replied to
9171
9172         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9173         causing it to return FALSE always
9174
9175         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9176         we checked sender rather than destination
9177
9178 2003-04-25  Havoc Pennington  <hp@redhat.com>
9179
9180         test suite is slightly hosed at the moment, will fix soon
9181
9182         * bus/connection.c (bus_connections_expire_incomplete): fix to
9183         properly disable the timeout when required
9184         (bus_connection_set_name): check whether we can remove incomplete
9185         connections timeout after we complete each connection.
9186
9187         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9188         probably still broken.
9189
9190         * bus/services.c (bus_registry_acquire_service): implement max
9191         number of services owned, and honor allow/deny rules on which
9192         services a connection can own.
9193
9194         * bus/connection.c (bus_connection_get_policy): report errors here
9195
9196         * bus/activation.c: implement limit on number of pending
9197         activations
9198
9199 2003-04-25  Havoc Pennington  <hp@redhat.com>
9200
9201         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9202         where we used >= 0 instead of != DBUS_UID_UNSET.
9203
9204 2003-04-25  Havoc Pennington  <hp@redhat.com>
9205
9206         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9207         were toggled without add/remove, fix from Anders Gustafsson
9208
9209 2003-04-24  Havoc Pennington  <hp@redhat.com>
9210
9211         * test/data/valid-config-files/basic.conf: add <limit> tags to
9212         this test
9213
9214         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9215         <limit> tag in configuration file.
9216
9217 2003-04-24  Havoc Pennington  <hp@redhat.com>
9218
9219         * bus/dispatch.c: somehow missed some name_is
9220
9221         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9222         (_dbus_timeout_set_interval): new
9223
9224         * bus/connection.c (bus_connections_setup_connection): record time
9225         when each connection is first set up, and expire them after the
9226         auth timeout passes.
9227
9228 2003-04-24  Havoc Pennington  <hp@redhat.com>
9229
9230         * dbus/dbus-message.c (dbus_message_name_is): rename
9231         (dbus_message_service_is): rename
9232         (dbus_message_sender_is): rename
9233         (dbus_message_get_service): rename
9234
9235 2003-04-24  Havoc Pennington  <hp@redhat.com>
9236
9237         * configure.in: add --enable-checks
9238
9239         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9240
9241         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9242         to use thread locks.
9243         (_dbus_connection_handler_destroyed_locked): move some private
9244         functions into proper docs group
9245
9246         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9247         _dbus_return_val_if_fail
9248
9249         Throughout: use dbus_return_if_fail
9250
9251 2003-04-23  James Willcox  <jwillcox@gnome.org>
9252
9253         * glib/dbus-glib.h:
9254         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9255         (dbus_connection_setup_with_g_main),
9256         (dbus_server_setup_with_g_main):
9257         * glib/test-dbus-glib.c: (main):
9258         * glib/test-thread-client.c: (main):
9259         * glib/test-thread-server.c: (new_connection_callback), (main):
9260         * tools/dbus-monitor.c: (main):
9261
9262         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9263         and dbus_server_setup_with_g_main().
9264
9265 2003-04-20  Havoc Pennington  <hp@pobox.com>
9266
9267         * doc/dbus-specification.sgml: document the restrictions on
9268         message and service names
9269
9270 2003-04-22  Havoc Pennington  <hp@redhat.com>
9271
9272         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9273         support, and do some code cleanups to share more code and
9274         speed up array marshal/demarshal.
9275
9276         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9277
9278         * configure.in: generate dbus-arch-deps.h
9279
9280         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9281         64-bit typecodes
9282
9283 2003-04-22  Havoc Pennington  <hp@redhat.com>
9284
9285         * test/data/valid-messages/opposite-endian.message: fix test
9286         to use proper type for rply field
9287
9288         * test/data/invalid-messages: add tests for below validation
9289
9290         * dbus/dbus-message.c (decode_header_data): validate field types,
9291         and validate that named fields are valid names
9292         (decode_name_field): consider messages in the
9293         org.freedesktop.Local. namespace to be invalid.
9294
9295         * dbus/dbus-string.c (_dbus_string_validate_name): new
9296
9297 2003-04-19  Havoc Pennington  <hp@pobox.com>
9298
9299         * bus/driver.c (bus_driver_handle_hello): check limits and
9300         return an error if they are exceeded.
9301
9302         * bus/connection.c: maintain separate lists of active and inactive
9303         connections, and a count of each. Maintain count of completed
9304         connections per user. Implement code to check connection limits.
9305
9306         * dbus/dbus-list.c (_dbus_list_unlink): export
9307
9308         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9309         number of bytes in the message queue for a connection
9310
9311 2003-04-18  Havoc Pennington  <hp@pobox.com>
9312
9313         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9314
9315         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9316         memleaks
9317
9318         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9319         on realloc be sure to update the pointer in the keyring
9320
9321         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9322         offset to avoid writing to unallocated memory
9323
9324         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9325         try the next mechanism, so we properly handle OOM
9326
9327         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9328         on OOM.
9329         (_dbus_keyring_new): fix OOM bug
9330         (_dbus_keyring_new_homedir): always set error; impose a maximum
9331         number of keys we'll load from the file, mostly to speed up the
9332         test suite and make its OOM checks more useful, but also for
9333         general sanity.
9334
9335         * dbus/dbus-auth.c (process_error_server): reject authentication
9336         if we get an error from the client
9337         (process_cancel): on cancel, send REJECTED, per the spec
9338         (process_error_client): send CANCEL if we get an error from the
9339         server.
9340
9341 2003-04-18  Havoc Pennington  <hp@pobox.com>
9342
9343         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9344         debug spew
9345
9346         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9347         handling problem
9348
9349         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9350         about DBUS_TEST_HOMEDIR once
9351
9352         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9353         the environment
9354
9355         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9356         config file so we test the right thing
9357
9358         Throughout: assorted docs improvements
9359
9360 2003-04-18  Havoc Pennington  <hp@pobox.com>
9361
9362         * glib/dbus-gmain.c: adapt to watch changes
9363
9364         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9365
9366         * dbus/dbus-server.h: remove dbus_server_handle_watch
9367
9368         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9369
9370         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9371         like DBusTimeout, so we don't need dbus_connection_handle_watch
9372         etc.
9373
9374 2003-04-17  Havoc Pennington  <hp@redhat.com>
9375
9376         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9377         database usage so it all goes via the DBusUserDatabase cache.
9378
9379 2003-04-17  Havoc Pennington  <hp@redhat.com>
9380
9381         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9382         there was an OOM watch we skipped, we always return TRUE so we
9383         iterate again to have a look at it again. Fixes test suite hang.
9384         Code rearrangement also lets us lose some memset and only iterate
9385         over callbacks once.
9386
9387         * bus/driver.c (bus_driver_handle_message): sense of test for
9388         reply was backward
9389
9390 2003-04-16  Havoc Pennington  <hp@pobox.com>
9391
9392         * doc/dbus-specification.sgml: make spec say serials are unsigned
9393
9394         * dbus/dbus-message.h: change message serials to unsigned
9395
9396         * dbus/dbus-connection.c: adapt to message serials being unsigned
9397
9398 2003-04-15  Havoc Pennington  <hp@pobox.com>
9399
9400         * bus/bus.c: create and keep around a shared DBusUserDatabase
9401         object.
9402
9403         * bus/connection.c (bus_connection_get_groups): don't cache
9404         groups for user in the connection object, since user database
9405         object now does that.
9406
9407 2003-04-16  Havoc Pennington  <hp@redhat.com>
9408
9409         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9410         list of size counters
9411         (_dbus_message_loader_putback_message_link): put back a popped link
9412
9413         * dbus/dbus-connection.c
9414         (dbus_connection_set_max_live_messages_size): rename
9415         max_received_size
9416         (dbus_connection_get_outgoing_size): get size of outgoing
9417         queue
9418         (_dbus_connection_set_connection_counter): remove this cruft
9419
9420 2003-04-14  Havoc Pennington  <hp@redhat.com>
9421
9422         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9423         caching, but at some point we might want to be able to use a
9424         different database.
9425
9426         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9427         SHA1 conf file to test the sha1 auth mechanism, since the regular
9428         test always uses EXTERNAL when available.
9429
9430         * configure.in,
9431         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9432         add conf file that requires use of sha1 auth
9433
9434 2003-04-13  Havoc Pennington  <hp@pobox.com>
9435
9436         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9437         from Philip Blundell to send messages and monitor them.
9438
9439 2003-04-13  Havoc Pennington  <hp@pobox.com>
9440
9441         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9442         callbacks
9443
9444         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9445         users
9446
9447         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9448         fix to only recover unused bytes if we're already authenticated
9449         (_dbus_transport_get_is_authenticated): fix to still mark us
9450         authenticated if there are unused bytes.
9451
9452         * bus/dispatch.c: implement security policy checking
9453
9454         * bus/connection.c (bus_transaction_send_from_driver): new
9455
9456         * bus/bus.c (bus_context_check_security_policy): new
9457
9458         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9459         now we just set the DBusError and it gets converted to an error
9460         reply.
9461
9462         * bus/connection.c (allow_user_function): enable code using actual
9463         data from the config file
9464
9465         * bus/policy.c (list_allows_user): handle wildcard rules for
9466         user/group connection perms
9467
9468 2003-04-13  Havoc Pennington  <hp@pobox.com>
9469
9470         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9471
9472         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9473
9474         * bus/policy.c (bus_policy_append_mandatory_rule)
9475         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9476         (bus_policy_append_group_rule): new functions
9477
9478 2003-04-12  Havoc Pennington  <hp@pobox.com>
9479
9480         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9481
9482         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9483         the pid/gid/uid, just for paranoia.
9484
9485         * test/break-loader.c (randomly_do_n_things): find a byte
9486         containing a type code, and randomly change it to a different
9487         type code.
9488
9489 2003-04-12  Havoc Pennington  <hp@pobox.com>
9490
9491         * bus/policy.h: change BusPolicy to be the thing from the config
9492         file, and rename old BusPolicy to BusClientPolicy
9493
9494         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9495         match change in how policy works
9496
9497         * dbus/dbus-internals.h: mark assert_not_reached as
9498         __attribute((noreturn))__
9499
9500 2003-04-11  Havoc Pennington  <hp@redhat.com>
9501
9502         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9503         the broadcast service. Use boolean return for ServiceExists.
9504
9505 2003-04-11  Havoc Pennington  <hp@redhat.com>
9506
9507         * configure.in: add another directory to look for qt in.
9508
9509 2003-04-11  Havoc Pennington  <hp@redhat.com>
9510
9511         * AUTHORS: add Colin Walters
9512
9513 2003-04-11  Havoc Pennington  <hp@redhat.com>
9514
9515         * NEWS: update
9516
9517         * configure.in: 0.9
9518
9519 2003-04-11  Havoc Pennington  <hp@redhat.com>
9520
9521         * bus/messagebus.in: remove pid file when stopping the
9522         message bus, since the bus won't have privileges to remove it
9523         itself.
9524
9525 2003-04-11  Havoc Pennington  <hp@redhat.com>
9526
9527         * bus/bus.c (bus_context_new): move credentials change after
9528         creating pidfile
9529
9530 2003-04-11  Havoc Pennington  <hp@pobox.com>
9531
9532         * test/decode-gcov.c: add "below average functions" to the
9533         coverage report, and change how some of the code works.
9534
9535         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9536         not in the coverage stats.
9537
9538         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9539         couple places so running the test suite doesn't result in megaspam.
9540
9541 2003-04-11  Havoc Pennington  <hp@pobox.com>
9542
9543         * bus/dispatch.c (check_existent_service_activation): accept a no
9544         memory error in a place we didn't before
9545
9546         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9547         in case the first one failed," since the test suite is less
9548         broken now.
9549
9550 2003-04-10  Havoc Pennington  <hp@pobox.com>
9551
9552         * bus/dispatch.c (check_segfault_service_activation): add test
9553         for launching an executable that just crashes.
9554
9555         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9556         don't leave a million cores. We'll see how portable this is.
9557
9558 2003-04-10  Havoc Pennington  <hp@pobox.com>
9559
9560         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9561         the possible parent failures before we fork, so that we don't
9562         fail to create a babysitter after creating the child.
9563
9564         * bus/activation.c (bus_activation_activate_service): kill child
9565         if we don't successfully complete the activation.
9566
9567 2003-04-10  Havoc Pennington  <hp@redhat.com>
9568
9569         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9570         the connection if it's disconnected
9571
9572         * bus/activation.c (bus_activation_service_created): use new
9573         transaction features to roll back removal of pending activation if
9574         we don't successfully create the service after all. Don't remove
9575         pending activation if the function fails.
9576
9577         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9578         (_dbus_list_insert_after_link): new code to facilitate
9579         services.c fixes
9580
9581         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9582         new functionality, so we can preallocate the ability to insert
9583         into a hash table.
9584
9585         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9586         allowing us to put custom hooks in a transaction to be used for
9587         cancelling said transaction
9588
9589         * doc/dbus-specification.sgml: add some discussion of secondary
9590         service owners, and disallow zero-length service names
9591
9592         * bus/services.c (bus_registry_acquire_service): new function,
9593         splits out part of bus_driver_handle_acquire_service() and fixes
9594         a bug where we didn't remove the service doing the acquiring
9595         from the secondary queue if we failed to remove the current owner
9596         from the front of the queue.
9597
9598 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9599
9600         * doc/dbus-specification.sgml:
9601         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9602
9603 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9604
9605         * bus/.cvsignore:
9606         * glib/.cvsignore:
9607         * test/.cvsignore:
9608         Added files to cvsignore
9609
9610         * dbus/dbus-message.h:
9611         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9612         Make get_named() take two out argument and return a boolean.
9613         (dbus_message_iter_get_args_valist):
9614         Update usage of get_named().
9615         (dbus_message_iter_append_byte):
9616         Fix typo
9617         (dbus_message_iter_append_named)
9618         Fix typo
9619         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9620         More tests.
9621
9622 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9623
9624         * dbus/dbus-marshal.[ch]:
9625         Add array_type_pos argument to _dbus_marshal_validate_arg.
9626         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9627
9628         * dbus/dbus-message.[ch]:
9629         Multi-dimensional arrays have full type specification in the
9630         outermost array. Iter code re-arranged to handle this.
9631         Added some more iter tests.
9632
9633         * doc/dbus-specification.sgml:
9634         Add me to authors.
9635         Remove old FIXME.
9636         Update new array encoding description.
9637         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9638
9639         * test/data/invalid-messages/array-with-mixed-types.message:
9640         * test/data/valid-messages/array-of-array-of-uint32.message:
9641         Change to the new array format.
9642
9643         * test/data/invalid-messages/too-short-dict.message:
9644         Fix bug in test.
9645
9646         * test/data/valid-messages/recursive-types.message:
9647         Fix up and extend test.
9648
9649 2003-04-10  Havoc Pennington  <hp@pobox.com>
9650
9651         * bus/dispatch.c: lots of fixes
9652
9653         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9654         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9655         that was crack, broke the test service.
9656
9657         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9658         handling to avoid piling up errors if we get a failure on the
9659         first address.
9660
9661         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9662         pid in assertion failures.
9663
9664         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9665         to some fixed size of file descriptor array. Don't return TRUE
9666         anytime a timeout exists, that led to lots of busy loop silliness
9667         in the tests.
9668
9669 2003-04-09  Havoc Pennington  <hp@redhat.com>
9670
9671         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9672         I'd checked this in earlier but hadn't.
9673
9674 2003-04-09  Havoc Pennington  <hp@redhat.com>
9675
9676         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9677         the activation test (man this is getting old!)
9678
9679 2003-04-09  Havoc Pennington  <hp@redhat.com>
9680
9681         * test/test-utils.c: use dispatch status function to fix this up
9682
9683         * bus/connection.c (connection_watch_callback): don't dispatch
9684         from here
9685         (connection_timeout_callback): don't dispatch from here
9686         (bus_connections_setup_connection): set the dispatch status function
9687         (bus_connection_disconnected): unset it
9688
9689         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9690         used to add a connection to be dispatched
9691         (_dbus_loop_iterate): do the dispatching at the end of each
9692         iteration
9693
9694         * dbus/dbus-connection.c
9695         (dbus_connection_set_dispatch_status_function): new function
9696         allowing us to fix up main loop usage
9697         (_dbus_connection_last_unref): free all the various function
9698         user data
9699         (dbus_connection_dispatch): call the DispatchStatusFunction
9700         whenever this function returns
9701         (dbus_connection_handle_watch): call DispatchStatusFunction
9702         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9703         (reply_handler_timeout): call DispatchStatusFunction
9704         (dbus_connection_flush): call DispatchStatusFunction
9705
9706 2003-04-09  Havoc Pennington  <hp@redhat.com>
9707
9708         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9709         a memory leak
9710
9711         * bus/dispatch.c (check_service_activated): fix bug in test
9712
9713         * dbus/dbus-mainloop.c (check_timeout): fix this up
9714
9715         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9716         verbose output so we can sort out output from different processes,
9717         e.g. in the activation case.
9718
9719 2003-04-08  Colin Walters  <walters@gnu.org>
9720
9721         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9722         the pid file.
9723         (bus_context_new): Set it.
9724         (bus_context_unref): Use it to delete the pid file.
9725
9726 2003-04-08  Havoc Pennington  <hp@redhat.com>
9727
9728         * test/data/invalid-messages/array-with-mixed-types.message:
9729         regression test that fails for the moment
9730
9731         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9732         tests for convenience
9733
9734         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9735         array of nil, it broke things.
9736
9737         * test/data/invalid-messages/array-of-nil.message: regression test
9738
9739         * test/data/valid-messages/array-of-array-of-uint32.message:
9740         happened to write this so added it to suite
9741
9742 2003-04-08  Havoc Pennington  <hp@redhat.com>
9743
9744         * bus/driver.c (bus_driver_handle_acquire_service): init
9745         retval/reply before checking name
9746
9747         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9748         recursion depth argument
9749
9750         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9751         in the public struct for future extension
9752
9753         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9754         typo
9755
9756         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9757         message
9758
9759         * doc/dbus-specification.sgml: fix typo
9760
9761 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9762
9763         Implemented recursive types, named types and new-style iters
9764
9765         * bus/driver.c:
9766         * glib/test-thread-client.c: (thread_func):
9767         * glib/test-thread-server.c: (handle_test_message):
9768         * test/test-service.c: (handle_echo):
9769         Update to new api
9770
9771         * dbus/Makefile.am:
9772         * dbus/dbus-dict.c:
9773         * dbus/dbus-dict.h:
9774         * dbus/dbus.h
9775         Remove DBusDict
9776
9777         * dbus/dbus-internals.c: (_dbus_type_to_string):
9778         Update for new types.
9779
9780         * dbus/dbus-marshal.[ch]:
9781         Implement recursive types and the new marshalling format.
9782         Remove hardcoded dict marshalling.
9783         Marshal named types.
9784
9785         * dbus/dbus-message-builder.c:
9786         Add BYTE_ARRAY.
9787         Remove references to old types
9788
9789         * dbus/dbus-message.[ch]:
9790         New non-refcounted iter API that supports recursive iters.
9791         Use iters for appending, including support for recursive
9792         iters.
9793         Add byte and named type support.
9794         Update everything to new marshalling formats.
9795         Add tests for new API.
9796
9797         * dbus/dbus-protocol.h:
9798         Remove old array types.
9799         Add types: BYTE, ARRAY, DICT, NAMED
9800
9801         * dbus/dbus-string.c:
9802         * dbus/dbus-sysdeps.c:
9803         Make parse_double locale safe.
9804
9805         * dbus/dbus-test-main.c:
9806         Call setlocale.
9807
9808         * dbus/dbus-test.c:
9809         Kill dict test
9810
9811         * doc/dbus-specification.sgml:
9812         Update spec
9813
9814         * test/data/incomplete-messages/missing-body.message:
9815         * test/data/invalid-messages/bad-boolean.message:
9816         * test/data/invalid-messages/bad-boolean-array.message:
9817         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9818         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9819         * test/data/invalid-messages/too-short-dict.message:
9820         * test/data/valid-messages/dict-simple.message:
9821         * test/data/valid-messages/dict.message:
9822         * test/data/valid-messages/emptiness.message:
9823         * test/data/valid-messages/lots-of-arguments.message:
9824         * test/data/valid-messages/no-padding.message:
9825         * test/data/valid-messages/recursive-types.message:
9826         Add missing NAME fields
9827         Fix up dicts & arrays
9828
9829         * test/data/invalid-messages/dict-with-nil-value.message:
9830         Removed, this is not invalid anymore.
9831
9832         * test/data/valid-messages/recursive-types.message:
9833         Add new test for deeply recursive types.
9834
9835 2003-04-07  Havoc Pennington  <hp@pobox.com>
9836
9837         * bus/driver.c (bus_driver_handle_acquire_service): return an
9838         error if you try to acquire a service that starts with ':'
9839
9840 2003-04-07  Havoc Pennington  <hp@redhat.com>
9841
9842         * doc/dbus-specification.sgml: require that base service names
9843         start with ':' and that the base service is created/deleted
9844         as first and last things a connection does on the bus
9845
9846         * bus/dispatch.c (check_existent_service_activation): lots more
9847         work on the activation test; it doesn't fully pass yet...
9848
9849         * test/test-service.c (main): fix so we don't memleak the
9850         connection to the message bus
9851         (filter_func): accept a message asking us to exit
9852
9853 2003-04-06  Havoc Pennington  <hp@pobox.com>
9854
9855         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9856         from Colin Walters
9857
9858         * configure.in: fixes to Qt detection from Colin Walters
9859
9860         * doc/Makefile.am: Only remove generated docbook dirs if they
9861         exist, from Colin Walters
9862
9863         * dbus/dbus-bus.c: change how we set well-known connections to
9864         NULL, so that it works if a single connection is stored in
9865         two well-known array slots.
9866
9867         * test/Makefile.am: remove a lot of stuff that isn't immediately
9868         useful, it's in CVS history if we want it.
9869
9870         * test/test-service.c: use dbus-mainloop instead of that
9871         watch.[hc] crack
9872
9873 2003-04-06  Havoc Pennington  <hp@pobox.com>
9874
9875         * dbus/Makefile.am: split lists of sources into stuff that goes in
9876         the library, util functions that go in the lib and are also used
9877         elsewhere, and util functions that are used in tests/daemon but
9878         don't go in the lib.
9879
9880         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9881         here so it can be used in test binaries also
9882
9883 2003-04-06  Havoc Pennington  <hp@pobox.com>
9884
9885         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9886         here in the parent process, so we can return an error if it
9887         fails. Also, move some of the code into the child so the parent
9888         is less hosed if we fail midway through.
9889
9890         * bus/bus.c (bus_context_new): move pidfile detection further up
9891         in the function, before we start overwriting sockets and such.
9892
9893         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9894
9895         * configure.in: add --with-system-pid-file and --with-system-socket
9896
9897 2003-04-06  Colin Walters  <walters@verbum.org>
9898
9899         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9900
9901         * bus/system.conf.in: Declare a pidfile.
9902
9903         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9904         create one (if appropriate).
9905
9906         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9907         (struct BusConfigParser) [pidfile]: New.
9908         (element_type_to_name, merge_included, start_busconfig_child)
9909         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9910         (bus_config_parser_unref): Free it.
9911         (bus_config_parser_get_pidfile): New function.
9912
9913         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9914
9915         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9916
9917         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9918
9919         * dbus/dbus-sysdeps.h: Prototype it.
9920
9921 2003-04-06  Havoc Pennington  <hp@pobox.com>
9922
9923         * bus/bus.c (bus_context_new): print the address in here, rather
9924         than in main(), because we need to do it before forking the daemon
9925
9926         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9927         on the service nonexistent error
9928
9929         * bus/driver.c (bus_driver_handle_acquire_service): set the
9930         sender on the AcquireService reply
9931
9932         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9933         server also listen on a UNIX socket so services can connect to it.
9934
9935 2003-04-06  Havoc Pennington  <hp@pobox.com>
9936
9937         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9938         so it detects deadlocks and also we actually init threads when
9939         debugging.
9940
9941 2003-04-06  Havoc Pennington  <hp@pobox.com>
9942
9943         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9944         save the domain socket name, and unlink it when we disconnect the
9945         server. Means that at least when we exit normally, we won't leave
9946         a bunch of junk in /tmp
9947
9948         * dbus/dbus-transport-unix.c
9949         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9950         memory management). (I was making a real change here but then
9951         didn't)
9952
9953 2003-04-06  Havoc Pennington  <hp@pobox.com>
9954
9955         * bus/bus.c (bus_context_new): fix wrong handling of
9956         server_data_slot_unref() in the error case.
9957
9958         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9959         "(condition) != 0" to _dbus_real_assert so that
9960         "_dbus_assert (pointer)" doesn't cause a warning
9961
9962         * bus/main.c (main): accept --print-address option to print out
9963         the message bus address
9964
9965         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9966
9967         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9968         "tmpdir" option to unix: address on client side
9969
9970         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9971         to unix: address
9972
9973         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9974         we can use to create sockets in the test suite.
9975
9976         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9977         cleanly. To be used for testing.
9978
9979         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9980
9981         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9982
9983         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9984         handle trying to call this when there's no servers active
9985
9986 2003-04-05  Havoc Pennington  <hp@pobox.com>
9987
9988         * NEWS: update
9989
9990         * configure.in: 0.8
9991
9992 2003-04-05  Havoc Pennington  <hp@pobox.com>
9993
9994         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9995         crash on startup. Need to get "try starting the daemon"
9996         in the test suite I guess. ;-)
9997
9998         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9999         tracked the number of open connections; it's better done in
10000         application-specific code as you want it to span all servers etc.
10001
10002 2003-04-05  Havoc Pennington  <hp@pobox.com>
10003
10004         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10005         patch from Colin Walters
10006
10007 2003-04-05  Havoc Pennington  <hp@pobox.com>
10008
10009         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10010         reality; in fact multiple mechanisms are allowed.
10011
10012         * dbus/dbus-internals.c (_dbus_real_assert)
10013         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10014         _dbus_assert_not_reached() into functions, so that they don't show
10015         up in basic block counts for test coverage, and don't use up as
10016         much disk space. Does mean slower execution speed though, so
10017         assumes --disable-asserts is the normal production case.
10018
10019 2003-04-05  Havoc Pennington  <hp@pobox.com>
10020
10021         * test/Makefile.am (dist-hook): also dist *.in files
10022
10023         * NEWS: update
10024
10025         * configure.in: 0.7
10026
10027 2003-04-05  Havoc Pennington  <hp@pobox.com>
10028
10029         * dbus/dbus-string.c: docs warning
10030
10031         * dbus/dbus-spawn.c: missing docs
10032
10033         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10034
10035 2003-04-05  Havoc Pennington  <hp@pobox.com>
10036
10037         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10038         magic from GLib
10039
10040         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10041         to -1 once we've reaped the babysitter
10042         (_dbus_babysitter_handle_watch): do as much work as we can, not
10043         just one go of it
10044
10045         * bus/activation.c: add code using DBusBabysitter so that we
10046         handle it when a service fails to start up properly.
10047         (bus_activation_service_created): don't remove the activation
10048         entries as we go, just let them get removed when we free the pending
10049         activation. Unref reply messages after sending them.
10050
10051 2003-04-05  Havoc Pennington  <hp@pobox.com>
10052
10053         * test/decode-gcov.c (main): print per-directory stats in the report
10054
10055         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10056
10057 2003-04-05  Havoc Pennington  <hp@pobox.com>
10058
10059         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10060
10061         * test/decode-gcov.c: hack up a little program to suck data
10062         out of gcov files. Yes this is sort of silly.
10063
10064         * configure.in: define something in config.h and do an
10065         AM_CONDITIONAL when gcov is enabled
10066
10067 2003-04-04  Havoc Pennington  <hp@redhat.com>
10068
10069         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10070         return a "babysitter" object that is used to monitor the status of
10071         the spawned process and reap it when required.
10072
10073         * test/test-segfault.c, test/test-exit.c,
10074         test/test-sleep-forever.c: binaries that do various lame things,
10075         used in the test suite.
10076
10077         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10078
10079 2003-04-03  Havoc Pennington  <hp@pobox.com>
10080
10081         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10082         in preparation for modifying it, dbus-sysdeps is getting
10083         a bit unmanageable.
10084
10085 2003-04-03  Havoc Pennington  <hp@redhat.com>
10086
10087         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10088         have multiple ones
10089
10090         * bus/*.[hc]: adapt to mainloop change
10091
10092 2003-04-03  Havoc Pennington  <hp@redhat.com>
10093
10094         * bus/activation.c (load_directory): fix up memleaks
10095         (bus_activation_entry_free): free the entry
10096
10097         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10098         we get one from the message bus; fix memleaks.
10099
10100         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10101
10102 2003-04-03  Havoc Pennington  <hp@pobox.com>
10103
10104         * bus/config-parser.c (bus_config_parser_unref): free
10105         list of mechanisms, bug discovered by test suite enhancements
10106         (putting system.conf and session.conf into suite)
10107
10108         * test/Makefile.am, test/test-service.c: add placeholder for a
10109         test service that we'll activate as part of test suite. Doesn't
10110         do anything yet.
10111
10112         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10113         setting NULL value, and use system malloc not dbus_malloc()
10114         when we have unavoidable memleakage.
10115
10116         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10117         didn't work, and support DBUS_BUS_ACTIVATION.
10118
10119         * bus/activation.c (child_setup): pass our well-known bus type to
10120         the child
10121
10122         * bus/config-parser.c: support <type> to specify well-known type
10123
10124         * doc/dbus-specification.sgml: document the env variables to
10125         locate well-known buses and find service activator
10126
10127 2003-04-02  Havoc Pennington  <hp@redhat.com>
10128
10129         * test/Makefile.am (all-local): add a rule to copy tests to
10130         builddir, so we can have generated tests. Use this to remove the
10131         silly hack for testing system.conf and session.conf. Will use this
10132         shortly to generate .service files pointing to test binaries.
10133
10134 2003-04-02  Havoc Pennington  <hp@redhat.com>
10135
10136         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10137         current alloc and needed new length, not max of the doubled
10138         allocation and needed new length. Also, when building tests,
10139         don't do the double-allocation stuff, just realloc every time.
10140
10141 2003-04-02  Havoc Pennington  <hp@redhat.com>
10142
10143         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10144         in error messages
10145         (_dbus_string_get_dirname): new
10146         (_dbus_sysdeps_test): new
10147         (_dbus_directory_open): include dirnames in error messages
10148
10149         * bus/config-parser.c: interpret <include> and <includedir> and
10150         <servicedir> relative to config file location if the given
10151         filename is not absolute.
10152
10153         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10154
10155 2003-04-02  Havoc Pennington  <hp@redhat.com>
10156
10157         * bus/connection.c (bus_transaction_send_error_reply): set sender
10158         service for the error, and unref the reply on success
10159
10160         * bus/activation.c: convert to use BusTransaction so OOM can be
10161         handled correctly
10162         (bus_activation_service_created): set sender of the message
10163
10164 2003-04-01  Havoc Pennington  <hp@redhat.com>
10165
10166         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10167         <includedir> (at least mostly)
10168
10169         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10170         first, then the user ID
10171
10172 2003-04-01  Havoc Pennington  <hp@pobox.com>
10173
10174         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10175         function
10176
10177         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10178
10179         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10180
10181         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10182         socket 0777, and unlink any existing socket.
10183
10184         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10185         the configuration file so specifies; set up auth mechanism
10186         restrictions
10187
10188         * bus/config-parser.c (bus_config_parser_content): add support
10189         for <fork> option and fill in code for <auth>
10190
10191         * bus/system.conf.in: add <fork/> to default configuration,
10192         and limit auth mechanisms to EXTERNAL
10193
10194         * doc/config-file.txt (Elements): add <fork>
10195
10196         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10197         (_dbus_change_identity): new function
10198
10199 2003-03-31  Havoc Pennington  <hp@redhat.com>
10200
10201         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10202         (_dbus_listen_unix_socket): fix off-by-one error in null
10203         termination spotted by Nalin
10204
10205 2003-03-31  Havoc Pennington  <hp@redhat.com>
10206
10207         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10208         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10209         having a real home directory available.
10210
10211 2003-03-31  Havoc Pennington  <hp@redhat.com>
10212
10213         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10214
10215         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10216
10217         * configure.in: add support for specifying a style of init script
10218         to install
10219
10220 2003-03-31  Havoc Pennington  <hp@redhat.com>
10221
10222         Fix some annoying DBusString API and fix all affected code.
10223
10224         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10225         max_length argument
10226         (_dbus_string_get_data): change to return string instead of using
10227         an out param
10228         (_dbus_string_get_const_data): ditto
10229         (_dbus_string_get_data_len): ditto
10230         (_dbus_string_get_const_data_len): ditto
10231
10232 2003-03-31  Havoc Pennington  <hp@redhat.com>
10233
10234         * bus/main.c (main): fix up the command line arguments to be nicer
10235
10236 2003-03-31  Havoc Pennington  <hp@redhat.com>
10237
10238         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10239         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10240         final location that lands in the config file
10241
10242         * bus/config-loader-expat.c (bus_config_load): fix type of
10243         XML_Parser variable
10244
10245         * doc/TODO: remove TODO item for dbus_bus_get()
10246
10247         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10248
10249 2003-03-31  Havoc Pennington  <hp@pobox.com>
10250
10251         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10252         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10253         argument since they are always client side
10254
10255         * dbus/dbus-server.c (dbus_server_get_address): new function
10256
10257         * bus/main.c (main): take the configuration file as an argument.
10258
10259         * test/data/valid-config-files/debug-allow-all.conf: new file to
10260         use with dispatch.c tests for example
10261
10262         * bus/test-main.c (main): require test data dir
10263
10264         * bus/bus.c (bus_context_new): change this to take a
10265         configuration file name as argument
10266
10267         * doc/config-file.txt (Elements): add <servicedir>
10268
10269         * bus/system.conf, bus/session.conf: new files
10270
10271         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10272         well-known socket if none set
10273
10274         * configure.in: create system.conf and session.conf
10275
10276 2003-03-30  Havoc Pennington  <hp@pobox.com>
10277
10278         * bus/config-parser.c: hacking
10279
10280         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10281         to shut down, since it could cause weirdness with the DBusList
10282         lock
10283
10284         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10285         link-oriented stack routines
10286         (alloc_link): free the mempool if the first alloc from it fails
10287
10288         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10289
10290         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10291         from GLib
10292         (_dbus_string_skip_white): new
10293
10294         * doc/config-file.txt (Elements): add <includedir>
10295
10296 2003-03-28  Havoc Pennington  <hp@pobox.com>
10297
10298         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10299         (_dbus_string_copy_data): new functions
10300
10301 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10302
10303         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10304         * dbus/dbus-bus.h:
10305         Add dbus_bus_get.
10306
10307         * dbus/dbus-memory.c:
10308         Fix a doc comment.
10309
10310 2003-03-28  Havoc Pennington  <hp@pobox.com>
10311
10312         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10313         I think it may have just been superstition. Not sure.
10314
10315         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10316         failures that were not being handled.
10317
10318         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10319
10320         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10321         row that will fail on out-of-memory.
10322
10323         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10324         function for testing out-of-memory handling.
10325
10326         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10327         allocation functions, they do map exactly to the expat ones.
10328
10329 2003-03-27  Havoc Pennington  <hp@redhat.com>
10330
10331         * bus/config-loader-libxml.c (bus_config_load): add another error
10332         check
10333
10334 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10335
10336         * doc/TODO:
10337         Add note about automatic service activation.
10338
10339         * doc/dbus-specification.sgml:
10340         Rename the specification and clarify a few things.
10341
10342 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10343
10344         * Doxyfile.in:
10345         * dbus/dbus-address.c:
10346         * dbus/dbus-dict.c:
10347         * dbus/dbus-marshal.c:
10348         * dbus/dbus-server-debug-pipe.c:
10349         * dbus/dbus-transport-unix.c:
10350         Fix documentation warnings.
10351
10352 2003-03-26  Havoc Pennington  <hp@pobox.com>
10353
10354         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10355         after every test so it's quick and easy to see which leaked, and
10356         so we test multiple dbus_shutdown() calls
10357
10358         * configure.in: change configure.in XML stuff to also support
10359         expat
10360
10361         * config-loader-libxml.c: some hacking
10362
10363         * config-loader-expat.c: some hacking
10364
10365         * config-parser.c: some hacking, plus tests
10366
10367 2003-03-25  Havoc Pennington  <hp@redhat.com>
10368
10369         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10370
10371         * configure.in: add --with-xml option to specify XML library,
10372         right now only libxml is supported.
10373
10374         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10375         nonworking code between home and work, still just stubs
10376
10377 2003-03-24  Havoc Pennington  <hp@redhat.com>
10378
10379         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10380         file
10381
10382         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10383         NULL argument for "message" if the error is a well-known one,
10384         fill in a generic message in this case.
10385
10386         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10387         favor of DBusError
10388
10389         * bus/test.c (bus_test_flush_bus): add
10390
10391         * bus/policy.c (bus_policy_test): test code stub
10392
10393 2003-03-24  Havoc Pennington  <hp@pobox.com>
10394
10395         * bus/connection.c (bus_connections_setup_connection): set up
10396         the "can this user connect" function, but it always returns
10397         TRUE until we have a config file parser so we can have a config
10398         file that allows connections.
10399
10400 2003-03-23  Havoc Pennington  <hp@pobox.com>
10401
10402         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10403         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10404         the mutex, so we can check for proper memory management
10405         and OOM handling.
10406
10407         * dbus/dbus-dataslot.c: remove the mutex from
10408         DBusDataSlotAllocator and lock it manually when using it,
10409         to simplify fitting it into the global slots framework.
10410
10411         * dbus/dbus-threads.c (init_static_locks): rework how we're
10412         handling global locks so they are easily shut down.
10413
10414         * bus/policy.c (bus_policy_append_rule): fix
10415
10416         * bus/test-main.c (main): check for memleaks
10417
10418         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10419         test suite check for memleaks
10420
10421         * dbus/dbus-memory.c: add support in test mode for tracking
10422         number of outstanding blocks
10423
10424 2003-03-23  Havoc Pennington  <hp@pobox.com>
10425
10426         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10427         policies code
10428
10429         * dbus/dbus-hash.h: add ULONG hash keys
10430
10431         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10432         (_dbus_get_group_id): new function
10433
10434 2003-03-20  Havoc Pennington  <hp@redhat.com>
10435
10436         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10437         new function
10438         (dbus_connection_get_unix_user): new function
10439
10440 2003-03-20  Havoc Pennington  <hp@pobox.com>
10441
10442         * bus/connection.c (bus_connection_send_oom_error): assert that
10443         message has a sender
10444         (connection_execute_transaction): ditto
10445         (bus_connection_preallocate_oom_error): fix to set the sender, and
10446         set recipient to the destination service, not the bus driver
10447
10448         * bus/policy.c: hacking
10449
10450         * dbus/dbus-message.c (dbus_message_service_is): new function
10451         (dbus_message_sender_is): new
10452
10453 2003-03-19  Havoc Pennington  <hp@redhat.com>
10454
10455         * bus/policy.c: start sketching code for policy restrictions on
10456         what connections can do.
10457
10458 2003-03-18  Havoc Pennington  <hp@redhat.com>
10459
10460         * doc/TODO: some notes on high-level todo items. Little nitpick
10461         stuff is all in @todo, so no need to add it here.
10462
10463         * doc/config-file.txt: some notes on how config file might look
10464
10465 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10466
10467         * configure.in: 0.6
10468
10469         * NEWS: Update.
10470
10471 2003-03-17  Havoc Pennington  <hp@redhat.com>
10472
10473         * dbus/dbus-internals.h: add gcc attributes so that
10474         our printf-style functions warn on bad arguments to
10475         format
10476
10477         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10478         format bug
10479
10480         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10481         printf format bug
10482
10483 2003-03-17  Havoc Pennington  <hp@redhat.com>
10484
10485         * bus/test-main.c (main): make it print something as it runs
10486         so make check doesn't look stuck
10487
10488         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10489         from CVS, now obsolete
10490
10491 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10492
10493         * bus/dispatch.c: (bus_dispatch):
10494         Refetch the service name since it may have been reallocated
10495         when dbus_message_set_sender was called.
10496
10497         * dbus/dbus-sysdeps.c: (_dbus_accept):
10498         Add address and address length variables and use them to stop
10499         valgrind from complaining.
10500
10501 2003-03-17  Havoc Pennington  <hp@pobox.com>
10502
10503         All tests pass, no memleaks, no valgrind complaints.
10504
10505         * bus/test.c: refcount handler_slot
10506
10507         * bus/connection.c (bus_connections_new): refcount
10508         connection_data_slot
10509
10510         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10511         bytes so that auth scripts pass.
10512
10513         * bus/dispatch.c: init message_handler_slot so it gets allocated
10514         properly
10515
10516         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10517
10518         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10519         dealloc server_pipe_hash when no longer used for benefit of
10520         leak checking
10521
10522         * dbus/dbus-auth.c (process_command): memleak fix
10523
10524         * bus/dispatch.c (check_hello_message): memleak fix
10525
10526 2003-03-16  Havoc Pennington  <hp@pobox.com>
10527
10528         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10529
10530 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10531
10532         * bus/activation.c (bus_activation_activate_service): Append
10533         the pending activation entry to the list of pending activations.
10534
10535 2003-03-16  Havoc Pennington  <hp@pobox.com>
10536
10537         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10538         connections
10539
10540         * dbus/dbus-address.c (create_entry): fix OOM handling when
10541         failing to alloc entry->method
10542
10543 2003-03-16  Havoc Pennington  <hp@pobox.com>
10544
10545         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10546         the watch
10547
10548         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10549         add some missing dbus_set_result
10550
10551         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10552         alloc the DBusMessageHandler
10553
10554         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10555         the transport here, since we call this from the finalizer; it
10556         resulted in a double-finalize.
10557
10558         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10559         where we tried to use transport->connection that was NULL,
10560         happened when transport was disconnected early on due to OOM
10561
10562         * bus/*.c: adapt to handle OOM for watches/timeouts
10563
10564         * dbus/dbus-transport-unix.c: port to handle OOM during
10565         watch handling
10566
10567         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10568         reference to unused bytes instead of a copy
10569
10570         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10571         out of memory
10572
10573         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10574         FALSE on OOM
10575
10576         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10577         of memory
10578
10579 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10580
10581         * doc/dbus-specification.sgml:
10582         Document reply message for ActivateService.
10583
10584 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10585
10586         * bus/activation.c: (bus_pending_activation_entry_free),
10587         (bus_pending_activation_free), (bus_activation_new),
10588         (bus_activation_unref), (bus_activation_service_created),
10589         (bus_activation_activate_service):
10590         * bus/activation.h:
10591         * bus/bus.c: (bus_context_new):
10592         * bus/desktop-file.c: (new_section):
10593         * bus/driver.c: (bus_driver_send_service_deleted),
10594         (bus_driver_handle_activate_service):
10595         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10596         * bus/services.h:
10597         * dbus/dbus-connection.c:
10598         (dbus_connection_send_with_reply_and_block):
10599         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10600         * dbus/dbus-protocol.h:
10601         Make activation work better. Now pending activations will be queued
10602         and the daemon won't try to activate services that are already registered.
10603
10604 2003-03-16  Havoc Pennington  <hp@pobox.com>
10605
10606         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10607         connection data
10608
10609         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10610         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10611
10612 2003-03-16  Havoc Pennington  <hp@pobox.com>
10613
10614         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10615         this. always run the test suite before commit...
10616
10617         * bus/*: adapt to DBusConnection API changes
10618
10619         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10620         requires renaming stuff to avoid dbus_connection_dispatch name
10621         conflict.
10622
10623         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10624         function
10625
10626         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10627         separate from _dbus_message_loader_return_buffer()
10628
10629         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10630         this, because it's now always broken to use; the number of
10631         messages in queue vs. the number still buffered by the message
10632         loader is undefined/meaningless. Should use
10633         dbus_connection_get_dispatch_state().
10634         (dbus_connection_dispatch): rename from
10635         dbus_connection_dispatch_message
10636
10637 2003-03-16  Havoc Pennington  <hp@pobox.com>
10638
10639         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10640         implementation
10641
10642 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10643
10644         * dbus/dbus-connection.c:
10645         (dbus_connection_send_with_reply_and_block):
10646         Decrease connection->n_incoming when removing an entry
10647         from the list.
10648         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10649         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10650         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10651         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10652         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10653         (dbus_dict_get_byte_array):
10654         Handle NULL arrays and strings. Also add support for byte arrays.
10655
10656         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10657         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10658         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10659         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10660         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10661         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10662         * dbus/dbus-marshal.h:
10663         Add support for marshalling and demarshalling empty arrays and strings.
10664
10665         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10666         (dbus_message_append_string_array),
10667         (dbus_message_iter_get_boolean),
10668         (dbus_message_iter_get_boolean_array),
10669         (dbus_message_iter_get_int32_array),
10670         (dbus_message_iter_get_uint32_array),
10671         (dbus_message_iter_get_double_array),
10672         (dbus_message_iter_get_byte_array),
10673         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10674         (check_message_handling):
10675         Add support for getting empty arrays and dicts.
10676
10677         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10678         Don't do any validation at all for now, that's better than just checking
10679         for ASCII.
10680
10681         * test/data/valid-messages/emptiness.message:
10682         New test message with lots of empty arrays.
10683
10684 2003-03-16  Havoc Pennington  <hp@pobox.com>
10685
10686         * dbus/dbus-connection.c
10687         (_dbus_connection_queue_received_message_link): new function that
10688         can't fail due to OOM
10689
10690         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10691         new function pops a message together with a list link
10692         containing it.
10693
10694         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10695         message queuing functions to avoid needing to alloc memory
10696
10697 2003-03-16  Havoc Pennington  <hp@pobox.com>
10698
10699         Oops - test code was only testing failure of around 30 of the
10700         mallocs in the test path, but it turns out there are 500+
10701         mallocs. I believe this was due to misguided linking setup such
10702         that there was one copy of dbus_malloc etc. in the daemon and one
10703         in the shared lib, and only daemon mallocs were tested. In any
10704         case, the test case now tests all 500+ mallocs, and doesn't pass
10705         yet, though there are lots of fixes in this patch.
10706
10707         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10708         this so that it doesn't need to allocate memory, since it
10709         has no way of indicating failure due to OOM (and would be
10710         annoying if it did).
10711
10712         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10713
10714         * bus/Makefile.am: rearrange to create two self-contained
10715         libraries, to avoid having libraries with overlapping symbols.
10716         that was resulting in weirdness, e.g. I'm pretty sure there
10717         were two copies of global static variables.
10718
10719         * dbus/dbus-internals.c: move the malloc debug stuff to
10720         dbus-memory.c
10721
10722         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10723         empty.
10724
10725         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10726
10727         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10728         on failure.
10729
10730         * bus/dispatch.c (bus_dispatch_add_connection): free
10731         message_handler_slot when no longer using it, so
10732         memory leak checkers are happy for the test suite.
10733
10734         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10735
10736         * bus/bus.c (new_connection_callback): disconnect in here if
10737         bus_connections_setup_connection fails.
10738
10739         * bus/connection.c (bus_connections_unref): fix to free the
10740         connections
10741         (bus_connections_setup_connection): if this fails, don't
10742         disconnect the connection, just be sure there are no side
10743         effects.
10744
10745         * dbus/dbus-string.c (undo_alignment): unbreak this
10746
10747         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10748         leaking
10749         (_dbus_auth_new): fix the order in which we free strings
10750         on OOM failure
10751
10752         * bus/connection.c (bus_connection_disconnected): fix to
10753         not send ServiceDeleted multiple times in case of memory
10754         allocation failure
10755
10756         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10757         get the base service name
10758         (dbus_bus_register_client): don't return base service name,
10759         instead store it on the DBusConnection and have an accessor
10760         function for it.
10761         (dbus_bus_register_client): rename dbus_bus_register()
10762
10763         * bus/dispatch.c (check_hello_message): verify that other
10764         connections on the bus also got the correct results, not
10765         just the one sending hello
10766
10767 2003-03-15  Havoc Pennington  <hp@pobox.com>
10768
10769         Make it pass the Hello handling test including all OOM codepaths.
10770         Now to do other messages...
10771
10772         * bus/services.c (bus_service_remove_owner): fix crash when
10773         removing owner from an empty list of owners
10774         (bus_registry_ensure): don't leave service in the list of
10775         a connection's owned services if we fail to put the service
10776         in the hash table.
10777
10778         * bus/connection.c (bus_connection_preallocate_oom_error): set
10779         error flag on the OOM error.
10780
10781         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10782         handle _dbus_transport_set_connection failure
10783
10784         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10785         to create watches up front and simply enable/disable them as
10786         needed.
10787         (unix_connection_set): this can now fail on OOM
10788
10789         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10790         of enabling/disabling a watch or timeout.
10791
10792         * bus/loop.c (bus_loop_iterate): don't touch disabled
10793         watches/timeouts
10794
10795         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10796
10797 2003-03-15  Havoc Pennington  <hp@pobox.com>
10798
10799         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10800         write useful test code, after all that futzing around ;-)
10801
10802         Test does not yet pass because we can't handle OOM in
10803         _dbus_transport_messages_pending (basically,
10804         dbus_connection_preallocate_send() does not prealloc the write
10805         watch). To fix this, I think we need to add new stuff to
10806         set_watch_functions, namely a SetEnabled function so we can alloc
10807         the watch earlier, then enable it later.
10808
10809         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10810         dbus-memory.c to the convenience lib
10811
10812         * bus/test.c: rename some static functions to keep them clearly
10813         distinct from stuff in connection.c. Handle client disconnection.
10814
10815 2003-03-14  Havoc Pennington  <hp@pobox.com>
10816
10817         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10818         transport, tests more of the real codepath. Set up clients
10819         with bus_setup_debug_client.
10820
10821         * bus/test.c (bus_setup_debug_client): function to set up debug
10822         "clients" on the main loop
10823
10824         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10825         support
10826
10827         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10828         server type
10829
10830         * dbus/dbus-server-debug.c: support a debug server based on pipes
10831
10832         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10833         (_dbus_close): new function
10834
10835         * configure.in: check for socketpair
10836
10837 2003-03-14  Havoc Pennington  <hp@redhat.com>
10838
10839         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10840         cheesy hack
10841
10842         * dbus/dbus-transport-debug.c: rework this a good bit to be
10843         less complicated. hopefully still works.
10844
10845         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10846         manually
10847
10848         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10849         after running it
10850
10851         * dbus/dbus-message.c (dbus_message_copy): rename from
10852         dbus_message_new_from_message, fix it up to copy
10853         all the message fields, add test case
10854
10855         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10856         not quite passing yet
10857
10858 2003-03-14  Havoc Pennington  <hp@pobox.com>
10859
10860         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10861         until no work remains" in test code. (the large diff here
10862         is just code movement, no actual changes)
10863
10864         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10865         1, no point waiting around for test code.
10866         (_dbus_server_debug_accept_transport): unref the timeout
10867         after adding it (right?)
10868
10869         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10870
10871 2003-03-13  Havoc Pennington  <hp@redhat.com>
10872
10873         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10874         out of memory
10875
10876         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10877         of memory
10878
10879         * dbus/dbus-connection.h: Make AddWatchFunction and
10880         AddTimeoutFunction return a bool so they can fail on out-of-memory
10881
10882         * bus/bus.c (bus_context_new): set up timeout handlers
10883
10884         * bus/connection.c (bus_connections_setup_connection): set up
10885         timeout handlers
10886
10887         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10888         can fail
10889
10890         * bus/bus.c (bus_context_new): adapt to changes
10891
10892         * bus/connection.c: adapt to changes
10893
10894         * test/watch.c: adapt to DBusWatch changes
10895
10896         * bus/dispatch.c (bus_dispatch_test): started adding this but
10897         didn't finish
10898
10899 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10900
10901         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10902
10903 2003-03-13  Havoc Pennington  <hp@pobox.com>
10904
10905         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10906         set up a test framework as for the library
10907
10908 2003-03-12  Havoc Pennington  <hp@pobox.com>
10909
10910         Throughout: purge global variables, introduce BusActivation,
10911         BusConnections, BusRegistry, etc. objects instead.
10912
10913         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10914         message bus object
10915
10916         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10917         going to redo this a bit differently I think
10918
10919 2003-03-12  Havoc Pennington  <hp@redhat.com>
10920
10921         Mega-patch that gets the message bus daemon initially handling
10922         out-of-memory. Work still needed. Also lots of random
10923         moving stuff to DBusError instead of ResultCode.
10924
10925         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10926
10927         * dbus/dbus-connection.c
10928         (dbus_connection_send_with_reply_and_block): use DBusError
10929
10930         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10931         DBusResultCode
10932
10933         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10934         code here, as the only failure possible is OOM.
10935
10936         * bus/connection.c (bus_connection_disconnect):
10937         rename bus_connection_disconnected as it's a notification only
10938
10939         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10940         "name" on get_args failure, should be done by get_args;
10941         don't disconnect client for bad args, just return an error.
10942         (bus_driver_handle_service_exists): ditto
10943
10944         * bus/services.c (bus_services_list): NULL-terminate returned array
10945
10946         * bus/driver.c (bus_driver_send_service_lost)
10947         (bus_driver_send_service_acquired): send messages from driver to a
10948         specific client to the client's unique name, not to the broadcast
10949         service.
10950
10951         * dbus/dbus-message.c (decode_header_data): reject messages that
10952         contain no name field
10953         (_dbus_message_get_client_serial): rename to
10954         dbus_message_get_serial and make public
10955         (_dbus_message_set_serial): rename from set_client_serial
10956         (_dbus_message_set_reply_serial): make public
10957         (_dbus_message_get_reply_serial): make public
10958
10959         * bus/connection.c (bus_connection_foreach): allow stopping
10960         iteration by returning FALSE from foreach function.
10961
10962         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10963         (dbus_connection_free_preallocated_send)
10964         (dbus_connection_preallocate_send): new API for sending a message
10965         without possibility of malloc failure.
10966         (dbus_connection_send_message): rename to just
10967         dbus_connection_send (and same for whole function family)
10968
10969         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10970
10971         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10972
10973         * bus/activation.c: handle/return errors
10974
10975         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10976
10977         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10978         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10979         (_dbus_result_from_errno): move to this file
10980
10981 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10982
10983         * dbus/dbus-marshal.c:
10984         (_dbus_marshal_set_string):
10985         Take a length argument so we can marshal the correct string
10986         length.
10987
10988         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10989         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10990         (_dbus_marshal_test):
10991         * dbus/dbus-marshal.h:
10992         Add support for marshalling and demarshalling dicts.
10993
10994         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10995         Add support for TYPE DICT.
10996
10997         * dbus/dbus-message.c: (set_string_field):
10998         Adjust header padding.
10999
11000         (dbus_message_append_args_valist), (dbus_message_append_dict),
11001         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11002         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11003         (check_message_handling), (check_have_valid_message):
11004         * dbus/dbus-message.h:
11005         Add functions for setting and getting dicts.
11006
11007         * dbus/dbus-protocol.h:
11008         Add DBUS_TYPE_DICT.
11009
11010         * dbus/dbus.h:
11011         Add dbus-dict.h
11012
11013         * doc/dbus-specification.sgml:
11014         Add information about how dicts are marshalled.
11015
11016         * test/data/invalid-messages/dict-with-nil-value.message:
11017         * test/data/invalid-messages/too-short-dict.message:
11018         * test/data/valid-messages/dict-simple.message:
11019         * test/data/valid-messages/dict.message:
11020         Add sample messages containing dicts.
11021
11022 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11023
11024         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11025
11026 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11027
11028         * dbus/Makefile.am:
11029         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11030         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11031         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11032         (dbus_dict_set_double), (dbus_dict_set_string),
11033         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11034         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11035         (dbus_dict_set_string_array), (_dbus_dict_test):
11036         * dbus/dbus-dict.h:
11037         Fix according to comments from Havoc.
11038
11039 2003-03-06  Michael Meeks  <michael@server.home>
11040
11041         * configure.in: if we don't have kde-config, disable have_qt.
11042
11043 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11044
11045         * dbus/Makefile.am:
11046         Add dbus-dict.[ch]
11047
11048         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11049         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11050         (dbus_dict_remove), (dbus_dict_get_value_type),
11051         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11052         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11053         (dbus_dict_put_double), (dbus_dict_put_string),
11054         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11055         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11056         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11057         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11058         (dbus_dict_get_double), (dbus_dict_get_string),
11059         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11060         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11061         (dbus_dict_get_string_array), (_dbus_dict_test):
11062         * dbus/dbus-dict.h:
11063         Add DBusDict implementation
11064
11065         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11066         * dbus/dbus-test.h:
11067         Add _dbus_dict_test
11068
11069 2003-03-04  Havoc Pennington  <hp@pobox.com>
11070
11071         * test/data/auth/*: adapt to changes
11072
11073         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11074         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11075         userid
11076
11077         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11078         more stuff from being in a context name, to make the protocol
11079         simpler to deal with
11080
11081         * dbus/dbus-errors.c (dbus_error_has_name): new function
11082         (dbus_error_is_set): new function
11083
11084         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11085         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11086
11087         * dbus/dbus-connection.c (dbus_connection_flush): also read
11088         messages during a flush operation
11089
11090         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11091
11092 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11093
11094         * configure.in: Check for gethostbyname on Solaris.
11095
11096         * dbus/dbus-transport.c: (_dbus_transport_open):
11097         Remove duplicate "tcp" entry.
11098
11099         * doc/dbus-specification.sgml:
11100         Clarify some things.
11101
11102 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11103
11104         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11105         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11106         (_dbus_keyring_test):
11107         * dbus/dbus-md5.c: (_dbus_md5_compute):
11108         * dbus/dbus-sha.c: (_dbus_sha_compute):
11109         Plug memory leaks.
11110
11111 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11112
11113         * README: Add some things.
11114
11115 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11116
11117         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11118         after case DBUS_TYPE_BOOELAN.
11119
11120 2003-03-02  Havoc Pennington  <hp@pobox.com>
11121
11122         * test/break-loader.c (randomly_set_extreme_ints): add test that
11123         sets really huge and small integers
11124
11125         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11126         that length of boolean array fits in the string, and that
11127         string has room for boolean value in single-bool case.
11128
11129         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11130         optional value to "ALIGN" command which is what to fill the
11131         alignment with.
11132
11133         * test/data/valid-messages/no-padding.message: add regression
11134         test for the message padding problem
11135
11136 2003-03-02  Havoc Pennington  <hp@pobox.com>
11137
11138         * dbus/dbus-message.c (decode_header_data): fix to always init
11139         message_padding, from Benjamin Dauvergne
11140
11141 2003-03-02  Havoc Pennington  <hp@pobox.com>
11142
11143         * configure.in: 0.5
11144
11145         * NEWS: Update.
11146
11147 2003-03-01  Joe Shaw  <joe@assbarn.com>
11148
11149         * configure.in: Check for "struct cmsgcred" and try to access its
11150         members for BSD-like unices.
11151
11152         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11153         _dbus_read_credentials_unix_socket().
11154         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11155         read() for reading the credential byte off the unix socket.  Use
11156         struct cmsgcred on systems that support it.
11157
11158 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11159
11160         * glib/Makefile.am:
11161         * configure.in:
11162         Make gthreads-2.0 dependency optional. Don't build thread test if
11163         its not found.
11164
11165 2003-02-27  Havoc Pennington  <hp@pobox.com>
11166
11167         * dbus/dbus-connection.c
11168         (dbus_connection_send_message_with_reply_and_block): fix doh!
11169         doh! doh! bug that resulted in never removing a reply from the
11170         queue, no wonder we called get_reply_serial so much ;-)
11171
11172         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11173         and client serial instead of demarshaling them every time
11174
11175 2003-02-27  Havoc Pennington  <hp@pobox.com>
11176
11177         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11178         more inlined, using dbus-string-private.h, speeds things up
11179         substantially
11180
11181         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11182         when freeing the string
11183         (_dbus_string_steal_data): fix for align offset
11184         (undo_alignment): new function
11185
11186 2003-02-26  Havoc Pennington  <hp@redhat.com>
11187
11188         All kinds of audit fixes from Owen, plus initial attempt to
11189         handle unaligned memory returned from malloc.
11190
11191         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11192         leave room for align_offset and nul byte
11193         (fixup_alignment): function to track an align_offset and
11194         ensure real->str is aligned
11195         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11196         to allow a nul byte plus align offset
11197         (_dbus_string_lock): fix overflow issue
11198         (_dbus_string_init_const_len): add assertions on sanity of len,
11199         assign allocated to be ALLOCATION_PADDING larger than len
11200         (set_length): fixup the overflow handling
11201         (_dbus_string_get_data_len): fix overflow in assertion
11202         (open_gap): detect overflow in size of gap to be opened
11203         (_dbus_string_lengthen): add overflow check
11204         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11205         (_dbus_string_append): add overflow check
11206         (_dbus_string_append_unichar): overflow
11207         (_dbus_string_delete): fix overflow in assertion
11208         (_dbus_string_copy_len): overflow in assertion
11209         (_dbus_string_replace_len): overflows in assertions
11210         (_dbus_string_find): change to implement in terms of
11211         _dbus_string_find_to
11212         (_dbus_string_find_to): assorted fixage
11213         (_dbus_string_equal_c_str): assert c_str != NULL,
11214         fix logic so the function works
11215         (_dbus_string_ends_with_c_str): fix overflow thingy
11216         (_dbus_string_base64_encode): overflow fix
11217         (_dbus_string_validate_ascii): overflow
11218         (_dbus_string_validate_nul): overflow
11219
11220 2003-02-26  Havoc Pennington  <hp@redhat.com>
11221
11222         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11223
11224 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11225
11226         * configure.in:
11227         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11228
11229         * dbus/dbus-connection.c:
11230         * dbus/dbus-connection.h:
11231         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11232         Add dbus_connection_set_wakeup_main_function and use it when queueing
11233         incoming and outgoing messages.
11234
11235
11236         * dbus/dbus-dataslot.c:
11237         Threadsafe usage of DBusDataSlotAllocator
11238
11239         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11240         dbus_new can fail.
11241
11242         * dbus/dbus-server-unix.c:
11243         Add todo comment
11244
11245         * glib/dbus-gmain.c:
11246         Implement the new wakeup functions for glib.
11247
11248         * glib/Makefile.am:
11249         * glib/test-thread-client.c:
11250         * glib/test-thread-server.c:
11251         * glib/test-thread.h:
11252         Initial cut at some thread test code. Not really done yet.
11253
11254 2003-02-26  Havoc Pennington  <hp@pobox.com>
11255
11256         * dbus/dbus-connection.c
11257         (dbus_connection_send_message_with_reply_and_block): fix crash
11258         where we ref'd the outgoing message instead of the returned reply
11259
11260         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11261         at the end of this function, so if we didn't need to read for
11262         authentication, we reinstall it for receiving messages
11263
11264         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11265         a NULL sender for peer-to-peer case
11266
11267         * dbus/dbus-transport-unix.c (check_read_watch): handle
11268         !authenticated case correctly
11269
11270         * glib/dbus-gmain.c: add support for DBusServer
11271
11272         * dbus/dbus-server.c: add data slot support
11273
11274         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11275         return values and handle errors
11276
11277         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11278         DBusConnection
11279
11280         * Doxyfile.in (INPUT): add glib subdir
11281
11282         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11283         setup_with_g_main instead of hookup_with_g_main; write docs
11284
11285 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11286
11287         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11288         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11289         * dbus/dbus-message.c: (dbus_message_append_boolean),
11290         (dbus_message_append_boolean_array),
11291         (dbus_message_get_args_valist), (_dbus_message_test):
11292         * dbus/dbus-message.h:
11293         * doc/dbus-specification.sgml:
11294         Various fixes as pointed out by Havoc.
11295
11296         * test/data/invalid-messages/bad-boolean-array.message:
11297         * test/data/invalid-messages/bad-boolean.message:
11298         Add invalid boolean value test cases.
11299
11300 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11301
11302         * dbus/dbus-internals.c: (_dbus_type_to_string):
11303         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11304         (_dbus_marshal_validate_arg):
11305         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11306         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11307         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11308         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11309         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11310         (dbus_message_iter_get_double),
11311         (dbus_message_iter_get_boolean_array), (message_iter_test):
11312         * dbus/dbus-message.h:
11313         * dbus/dbus-protocol.h:
11314         * doc/dbus-specification.sgml:
11315         * test/data/valid-messages/lots-of-arguments.message:
11316         Add support for boolean and boolean array types.
11317
11318 2003-02-23  Havoc Pennington  <hp@pobox.com>
11319
11320         * dbus/dbus-keyring.c: finish most of this implementation and
11321         simple unit test
11322
11323         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11324         these barf if the error isn't cleared to NULL
11325
11326         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11327         (_dbus_create_directory): new function
11328
11329         * dbus/dbus-errors.c (dbus_set_error): fix warning
11330
11331         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11332         (_dbus_string_hex_decode): new function
11333         (test_hex_roundtrip): test code
11334
11335         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11336
11337         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11338
11339         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11340         the save-to-temp/rename trick to atomically write the new file
11341         (_dbus_string_parse_uint): new function
11342
11343 2003-02-22  Havoc Pennington  <hp@pobox.com>
11344
11345         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11346
11347 2003-02-22  Havoc Pennington  <hp@pobox.com>
11348
11349         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11350         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11351
11352         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11353
11354         * dbus/test/data/sha-1: add US government test suite for SHA-1
11355
11356 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11357
11358         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11359         Make string arrays NULL-terminated.
11360
11361         * dbus/dbus-memory.c: (dbus_free_string_array):
11362         * dbus/dbus-memory.h:
11363         New function for freeing NULL-terminated string arrays.
11364
11365         * dbus/dbus-message-builder.c: (append_quoted_string),
11366         (_dbus_message_data_load):
11367         Add support for array types.
11368
11369         * dbus/dbus-message.c: (check_message_handling):
11370         Add more types as test cases.
11371
11372         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11373         (_dbus_string_parse_double):
11374         Add the start offset to the end offset.
11375
11376         * test/data/valid-messages/lots-of-arguments.message:
11377         New test message with lots of arguments.
11378
11379 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11380
11381         * dbus/dbus-message.c: (dbus_message_append_nil),
11382         (dbus_message_append_int32), (dbus_message_append_uint32),
11383         (dbus_message_append_double), (dbus_message_append_string),
11384         (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):
11389         Fix all out-of-memory handling in these functions.
11390
11391 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11392
11393         * dbus/dbus-message.c: (dbus_message_append_nil):
11394         Fix a silly.
11395
11396 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11397
11398         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11399         (dbus_message_append_nil), (dbus_message_append_int32_array),
11400         (dbus_message_append_uint32_array),
11401         (dbus_message_append_double_array),
11402         (dbus_message_append_byte_array),
11403         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11404         (dbus_message_iter_get_int32_array),
11405         (dbus_message_iter_get_uint32_array),
11406         (dbus_message_iter_get_double_array),
11407         (dbus_message_iter_get_byte_array),
11408         (dbus_message_iter_get_string_array):
11409
11410         * dbus/dbus-message.h:
11411         Add functions for appending and getting arrays.
11412
11413 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11414
11415         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11416         element size at least 8 bytes, fixes mempool tests on
11417         64-bit machines.
11418
11419 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11420
11421         * dbus/dbus-transport-unix.c (unix_do_iteration):
11422         Unlock the connection mutex during a blocking select call.
11423         Add todo about how we need a way to wake up the select.
11424
11425         * dbus/dbus-connection-internal.h:
11426         * dbus/dbus-connection.c:
11427         Add _dbus_connection_lock and _dbus_connection_unlock.
11428
11429 2003-02-19  Havoc Pennington  <hp@pobox.com>
11430
11431         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11432         Doxyfile.in, not Doxyfile
11433
11434         * dbus/dbus-keyring.c: do some hacking on this
11435
11436         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11437
11438         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11439         dbus_error_init
11440         (dbus_set_error): remove dbus_error_init, check for message ==
11441         NULL *before* we sprintf into it, and add @todo about including
11442         system headers in this file
11443
11444         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11445
11446         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11447
11448         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11449         get various bits of user information based on either username
11450         or user ID
11451         (_dbus_homedir_from_username): new function
11452
11453 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11454
11455         * configure.in:
11456         Add check for nonposix getpwnam_r
11457
11458         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11459         Align the pool element size to a sizeof (void *) boundary.
11460
11461         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11462         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11463         General Solaris fixes.
11464
11465         * test/data/valid-messages/simplest-manual.message:
11466         Explicitly state that we want little-endian packing.
11467
11468 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11469
11470         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11471
11472         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11473         Added to create a transport connecting using a tcp/ip socket.
11474
11475         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11476         to a tcp socket at given host and port.
11477         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11478         hostname and port.
11479
11480         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11481
11482         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11483         Added to create a server listening on a TCP/IP socket.
11484
11485 2003-02-19  Havoc Pennington  <hp@pobox.com>
11486
11487         Throughout: mop up all the Doxygen warnings and undocumented
11488         stuff.
11489
11490         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11491         to search any paths.
11492
11493         * dbus/dbus-threads.c: move global mutex initializers to
11494         dbus-internals.h, multiple prototypes was confusing doxygen
11495         besides being kind of ugly
11496
11497         * Doxyfile (PREDEFINED): have Doxygen define
11498         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11499         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11500         (do not abuse the feature! it's for stuff like the autogenerated
11501         macros in dbus-md5.c, not just for things you don't feel like
11502         documenting...)
11503
11504 2003-02-18  Havoc Pennington  <hp@pobox.com>
11505
11506         * dbus/dbus-string.c (_dbus_string_zero): new function
11507
11508         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11509         wrap it in some dbus-friendly API
11510
11511         * dbus/dbus-types.h: add 16-bit types
11512
11513 2003-02-18  Joe Shaw  <joe@assbarn.com>
11514
11515         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11516         credentials from our currently running process.
11517         (get_word): Fix a buglet where we were copying the entire length
11518         instead of relative to our position.
11519
11520         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11521         keys on the stack... it's 640k of data.
11522
11523         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11524         read the credentials byte off the socket, even if we don't have
11525         SO_PEERCRED.
11526         (_dbus_poll): Implement poll() using select() for systems which
11527         don't have it.
11528
11529         * glib/test-dbus-glib.c (main): Print out an error if no
11530         parameters are given.
11531
11532         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11533         can fallback to a secondary auth mechanism if the first fails.
11534
11535 2003-02-18  Havoc Pennington  <hp@pobox.com>
11536
11537         * AUTHORS: add Alex
11538
11539 2003-02-17  Havoc Pennington  <hp@pobox.com>
11540
11541         * doc/dbus-specification.sgml: lots of cosmetic
11542         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11543         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11544         s/server/bus/ (except in authentication section). Add a section
11545         "Message Bus Message Routing"
11546
11547 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11548
11549         Release 0.4
11550
11551         * NEWS: Update
11552
11553 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11554
11555         * doc/dbus-specification.sgml:
11556         Specification updates.
11557
11558 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11559
11560         * bus/activation.c: (bus_activation_init), (child_setup),
11561         (bus_activation_activate_service):
11562         * bus/activation.h:
11563         * bus/main.c: (main):
11564         Set DBUS_ADDRESS environment variable.
11565
11566         * dbus/dbus-errors.c: (dbus_set_error):
11567         Don't use va_copy since that's a C99 feature.
11568
11569         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11570         (_dbus_spawn_async):
11571         * dbus/dbus-sysdeps.h:
11572         Add child_setup_func to _dbus_spawn_async.
11573
11574         * doc/dbus-specification.sgml:
11575         Update specification.
11576
11577         * test/spawn-test.c: (setup_func), (main):
11578         Fix test.
11579
11580 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11581
11582         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11583         Added todo.
11584
11585 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11586
11587         * doc/.cvsignore:
11588         * doc/Makefile.am:
11589         * doc/dbus-test-plan.sgml:
11590         Add test plan document.
11591
11592         * test/Makefile.am:
11593         Fix distcheck.
11594
11595 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11596
11597         * dbus/dbus-message.c: (decode_header_data),
11598         (_dbus_message_loader_return_buffer):
11599         Set the header padding amount when loading a message.
11600
11601 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11602
11603         * bus/dispatch.c: (send_one_message):
11604         Only send broadcast messages to registered connections.
11605
11606         * dbus/dbus-message.c: (dbus_message_name_is):
11607         * dbus/dbus-message.h:
11608         New convenience function.
11609
11610         * dbus/dbus-transport-debug.c: (do_reading):
11611         Only dispatch one message per run.
11612
11613         * test/Makefile.am:
11614         * test/bus-test.c: (new_connection_callback), (die),
11615         (test_hello_client1_handler), (test_hello_client2_handler),
11616         (test_hello_replies), (main):
11617
11618         * test/bus-test-loop.[ch]:
11619         Add these.
11620
11621 2003-02-16  Havoc Pennington  <hp@pobox.com>
11622
11623         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11624         backward conditional
11625
11626 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11627
11628         * dbus/dbus-connection.c:
11629         Implement sent_message_with_reply. (with_reply_and block is still
11630         busted).
11631         Made dispatch_message not lose message if OOM.
11632
11633         * dbus/dbus-errors.h:
11634         Add NoReply error (for reply timeouts).
11635
11636 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11637
11638         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11639         Actually free keys and values when destroying hashtable.
11640
11641 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11642
11643         * dbus/dbus-auth.c: (client_try_next_mechanism):
11644         Plug a leak.
11645
11646         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11647         Return TRUE if there's no thread implementation around.
11648
11649         * glib/dbus-gmain.c: (free_source),
11650         (dbus_connection_hookup_with_g_main):
11651         Make sure to remove the GSource when the connection is finalized.
11652
11653 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11654
11655         * bus/dispatch.c: (bus_dispatch_message_handler):
11656         * dbus/dbus-errors.h:
11657         Return an error if someone tries to send a message to a service
11658         that doesn't exist.
11659
11660 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11661
11662         * bus/activation.c: (load_directory), (bus_activation_init),
11663         (bus_activation_activate_service):
11664         * bus/activation.h:
11665         * bus/driver.c:
11666         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11667         More work on the activation handling.
11668
11669         * dbus/dbus-errors.h:
11670         Add some error messages
11671
11672         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11673         * dbus/dbus-message.h:
11674         New function that creates an error message.
11675
11676         * dbus/dbus-protocol.h:
11677         Add ACTIVATE_SERVER message.
11678
11679         * dbus/dbus-server-unix.c: (unix_handle_watch),
11680         (_dbus_server_new_for_domain_socket):
11681         Call _dbus_fd_set_close_on_exec.
11682
11683         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11684         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11685         (_dbus_fd_set_close_on_exec):
11686         * dbus/dbus-sysdeps.h:
11687         Add _dbus_fd_set_close_on exec function. Also add function that checks
11688         that all open fds are set to close-on-exec and warns otherwise.
11689
11690         * dbus/dbus-transport-unix.c:
11691         (_dbus_transport_new_for_domain_socket):
11692         Call _dbus_fd_set_close_on_exec.
11693
11694 2003-02-16  Havoc Pennington  <hp@pobox.com>
11695
11696         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11697         allow people to avoid setting SIGPIPE to SIG_IGN
11698         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11699         we've been asked not to
11700
11701 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11702
11703         * dbus/dbus-list.c: (_dbus_list_append_link),
11704         (_dbus_list_prepend_link):
11705         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11706         (dbus_realloc):
11707         Warning fixes.
11708
11709 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11710
11711         * bus/Makefile.am:
11712         * bus/activation.c: (bus_activation_entry_free),
11713         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11714         * bus/activation.h:
11715         * bus/main.c: (main):
11716         Add simple activation support, doesn't work yet though.
11717
11718 2003-02-15   Zack Rusin  <zack@kde.org>
11719
11720         * qt/dbus-qthread.cpp:  small casting fix
11721
11722 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11723
11724         * dbus/dbus-errors.c: (dbus_set_error):
11725         * dbus/dbus-errors.h:
11726         Add a few errors and make dbus_set_error void.
11727
11728         * dbus/dbus-sysdeps.c:
11729         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11730         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11731         * dbus/dbus-sysdeps.h:
11732         Add _dbus_spawn_async.
11733
11734         * test/spawn-test.c: (main):
11735         Test for _dbus_spawn_async.
11736
11737 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11738
11739         * dbus/dbus-internals.h:
11740         Fix build without tests.
11741
11742         * dbus/dbus-list.c: (alloc_link):
11743         Fix a segfault when a malloc fails.
11744
11745         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11746         (dbus_malloc0), (dbus_realloc):
11747         Add support for malloc debugging.
11748
11749 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11750
11751         * dbus/dbus-threads.c:
11752         * dbus/dbus-threads.h:
11753         Add condvars. Remove static mutext from API.
11754         Implement static mutexes by initializing them from threads_init.
11755
11756         * glib/dbus-gthread.c:
11757         * qt/dbus-qthread.cpp:
11758         Update with the thread api changes.
11759
11760
11761         * dbus/dbus-list.c:
11762         * dbus/dbus-list.h:
11763         Turn StaticMutex into normal mutex + init function.
11764         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11765         _dbus_list_append_link, _dbus_list_prepend_link
11766
11767
11768         * dbus/dbus-sysdeps.c:
11769         * dbus/dbus-sysdeps.h:
11770         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11771         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11772
11773         * dbus/dbus-protocol.h:
11774         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11775
11776         * dbus/dbus-message.c:
11777         Make ref/unref atomic.
11778         Fix some docs.
11779
11780         * dbus/dbus-connection-internal.h:
11781         * dbus/dbus-connection.c:
11782         * dbus/dbus-connection.h:
11783         Make threadsafe.
11784         Change _peek to _borrow,_return & _steal_borrowed.
11785         Change disconnect callback to event.
11786         Make dbus_connection_dispatch_messages reentrant.
11787
11788         * dbus/dbus-transport.c:
11789         Don't ref the connection on calls to the transport
11790         implementation.
11791
11792         * dbus/dbus-message-handler.c:
11793         Make threadsafe.
11794
11795         * glib/dbus-gmain.c:
11796         Don't use peek_message anymore
11797
11798         * test/Makefile.am:
11799         * test/debug-thread.c:
11800         * test/debug-thread.h:
11801         Simple thread implementation that asserts() on deadlocks in
11802         single-threaded code.
11803
11804         * test/bus-test.c:
11805         (main) Call debug_threads_init.
11806
11807         * test/watch.c:
11808         Use disconnect message instead of disconnect callback.
11809
11810         * bus/connection.c:
11811         * bus/connection.h:
11812         Don't call dbus_connection_set_disconnect_function. Instead export
11813         bus_connection_disconnect.
11814
11815         * bus/dispatch.c:
11816         Call bus_connection_disconnect when we get a disconnected message.
11817
11818 2003-02-15  Havoc Pennington  <hp@pobox.com>
11819
11820         * dbus/dbus-message.c (dbus_message_new): fool around with the
11821         docs
11822
11823 2003-02-14  Havoc Pennington  <hp@pobox.com>
11824
11825         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11826
11827         * dbus/dbus-memory.c: fail if the debug functions indicate we
11828         should
11829
11830         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11831         (_dbus_decrement_fail_alloc_counter): debug functions to
11832         simulate memory allocation failures
11833
11834 2003-02-14  Havoc Pennington  <hp@pobox.com>
11835
11836         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11837         to DBusError
11838
11839 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11840
11841         * bus/driver.c: (bus_driver_handle_hello):
11842         * bus/driver.h:
11843         * bus/services.c: (bus_service_lookup):
11844         Reorder message sending so we get a more sane order.
11845
11846         * test/bus-test.c: (message_handler):
11847         Fix tyop.
11848
11849 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11850
11851         * bus/driver.c: (bus_driver_send_service_deleted),
11852         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11853         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11854         (bus_driver_send_welcome_message),
11855         (bus_driver_handle_list_services),
11856         (bus_driver_handle_acquire_service),
11857         (bus_driver_handle_service_exists):
11858         * dbus/dbus-bus.c: (dbus_bus_register_client),
11859         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11860         * dbus/dbus-errors.c: (dbus_result_to_string):
11861         * dbus/dbus-errors.h:
11862         * dbus/dbus-message.c: (dbus_message_append_args),
11863         (dbus_message_append_args_valist), (dbus_message_get_args),
11864         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11865         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11866         (dbus_message_iter_get_byte_array),
11867         (dbus_message_iter_get_string_array), (message_iter_test),
11868         (check_message_handling), (_dbus_message_test):
11869         * dbus/dbus-message.h:
11870         * test/bus-test.c: (main):
11871         Change fields to arguments in messages, so that they won't be
11872         confused with header fields.
11873
11874         * glib/test-dbus-glib.c: (main):
11875         Remove append_fields from hello message.
11876
11877 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11878
11879         * dbus/dbus-errors.c:
11880         * dbus/dbus-message.c:
11881         * dbus/dbus-string.c:
11882         Documentation fixes.
11883
11884 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11885
11886         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11887         (remove_timeout):
11888         Implement support for timeouts in dbus-glib.
11889
11890 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11891
11892         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11893         * dbus/dbus-message.c: (process_test_subdir):
11894         * test/break-loader.c: (find_breaks_based_on):
11895         Plug some memory leaks.
11896
11897 2003-02-13  Richard Hult  <rhult@codefactory.se>
11898
11899         * bus/main.c: Fix build.
11900
11901         * dbus/dbus-errors.h:
11902         * dbus/dbus-errors.c: Fix copyright for Anders.
11903
11904 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11905
11906         * bus/Makefile.am:
11907         Add utils.[ch]
11908
11909         * bus/connection.c: (bus_connection_foreach):
11910         Fix a warning.
11911
11912         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11913         (unescape_string), (new_section), (parse_section_start),
11914         (parse_key_value), (report_error), (bus_desktop_file_load),
11915         (bus_desktop_file_get_string):
11916         * bus/desktop-file.h:
11917         Use DBusError for error reporting.
11918
11919         * bus/dispatch.c: (send_one_message),
11920         (bus_dispatch_message_handler):
11921         * bus/driver.c: (bus_driver_send_service_deleted),
11922         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11923         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11924         (bus_driver_send_welcome_message),
11925         (bus_driver_handle_list_services),
11926         (bus_driver_handle_acquire_service),
11927         (bus_driver_handle_service_exists):
11928         * bus/loop.c: (bus_loop_run):
11929         * bus/main.c:
11930         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11931
11932         * bus/utils.c: (bus_wait_for_memory):
11933         * bus/utils.h:
11934         New files with general utility functions.
11935
11936         * dbus/dbus-internals.h:
11937         Remove _DBUS_HANDLE_OOM.
11938
11939 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11940
11941         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11942         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11943         * dbus/dbus-errors.h:
11944         Add DBusError structure.
11945
11946 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11947
11948         * test/data/valid-messages/standard-acquire-service.message:
11949         * test/data/valid-messages/standard-hello.message:
11950         * test/data/valid-messages/standard-list-services.message:
11951         * test/data/valid-messages/standard-service-exists.message:
11952         Add some standard messages.
11953
11954 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11955
11956         * bus/driver.c: (bus_driver_send_welcome_message),
11957         (bus_driver_handle_list_services),
11958         (bus_driver_handle_acquire_service),
11959         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11960         Update for API changes in libdbus.
11961
11962         * dbus/dbus-message.c: (dbus_message_new_reply):
11963         * dbus/dbus-message.h:
11964         Remove the name argument. The spec states that replies shouldn't
11965         have a name.
11966
11967 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11968
11969         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11970         (report_error), (bus_desktop_file_load), (lookup_section),
11971         (lookup_line), (bus_desktop_file_get_raw),
11972         (bus_desktop_file_get_string):
11973         * bus/desktop-file.h:
11974         Some fixes, and new functions for getting a key value from a section.
11975
11976 2003-02-13  Havoc Pennington  <hp@pobox.com>
11977
11978         * test/data/auth/fail-after-n-attempts.auth-script: new test
11979
11980         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11981         reject the client.
11982
11983 2003-02-13  Havoc Pennington  <hp@pobox.com>
11984
11985         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11986         dbus_credentials_match were backward
11987
11988         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11989         NO_CREDENTIALS and ROOT_CREDENTIALS
11990
11991         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11992         into here. Never process more commands after we've reached an
11993         end state; store further data as unused bytes.
11994
11995         * test/data/auth/*: add more auth tests
11996
11997         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11998         command to match exact string and EXPECT_UNUSED to match unused
11999         bytes
12000
12001         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12002
12003 2003-02-12  Havoc Pennington  <hp@pobox.com>
12004
12005         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12006         \r off of popped lines
12007
12008         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12009         scripts
12010
12011         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12012         SEND, append \r\n
12013
12014 2003-02-12  Havoc Pennington  <hp@pobox.com>
12015
12016         * dbus/Makefile.am: remove break-loader from the build, since it
12017         moved.
12018
12019         * configure.in: add --enable-gcov to turn on coverage profiling
12020         flags and disable optimization
12021
12022 2003-02-10  Havoc Pennington  <hp@pobox.com>
12023
12024         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12025         initial cut at test framework for DBusAuth from laptop.
12026         Doesn't quite work yet but it compiles and I need to get
12027         it off the 266mhz laptop. ;-)
12028
12029         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12030         fix a memleak in error case
12031
12032 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12033
12034         * bus/Makefile.am:
12035         * bus/desktop-file.c:
12036         * bus/desktop-file.h:
12037         Add a desktop file parser.
12038
12039 2003-02-11  Zack Rusin  <zack@kde.org>
12040
12041         * qt/message.[h|cpp]: sample implementation
12042         of the KDE wrapper for DBusMessage
12043
12044 2003-02-09  Zack Rusin  <zack@kde.org>
12045
12046         * test/bus-test.c: make_it_compile
12047         * doc/dbus-specification.sgml: minimal semantic fix
12048
12049 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12050
12051         Release 0.3
12052
12053         * NEWS: Update
12054
12055 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12056
12057         * dbus/Makefile.am:
12058         * dbus/dbus-break-loader.c:
12059         * test/Makefile.am:
12060         * test/break-loader.c:
12061         Move dbus-break-loader to test/ and rename it to break-loader.
12062
12063 2003-02-02  Havoc Pennington  <hp@pobox.com>
12064
12065         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12066         for code to manage cookies in your home directory
12067
12068         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12069
12070         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12071         to authenticate, then disconnect the client.
12072
12073 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12074
12075         * dbus/dbus-message.c (dbus_message_append_fields):
12076         Correct docs.
12077
12078 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12079
12080         * doc/dbus-specification.sgml:
12081         Update address format section.
12082
12083 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12084
12085         * test/Makefile.am:
12086         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12087         (message_handler), (new_connection_callback), (loop_quit),
12088         (loop_run), (main):
12089         Add bus test.
12090
12091 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12092
12093         * bus/driver.c: (bus_driver_handle_service_exists):
12094         Simplify the code a bit.
12095
12096         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12097         Fix a silly.
12098
12099 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12100
12101         * bus/Makefile.am:
12102         Add libdbus-daemon.la and link to it.
12103
12104 2003-02-01  James Willcox  <jwillcox@gnome.org>
12105
12106         * bus/driver.c: (bus_driver_handle_own_service):
12107         Actually include the service reply code in the message.
12108
12109 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12110
12111         * bus/driver.c: (bus_driver_handle_service_exists):
12112         Don't unref the incoming message.
12113
12114 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12115
12116         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12117
12118 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12119
12120         * dbus/dbus-server.c: (dbus_server_listen):
12121         * dbus/dbus-transport.c: (_dbus_transport_open):
12122         ifdef out the calls to the debug transport and server.
12123
12124 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12125
12126         * dbus/dbus-watch.c (dbus_watch_get_flags):
12127         Add note in the docs that ERROR or HANGUP won't be returned
12128         and are assumed always on.
12129
12130         * glib/dbus-gmain.c (add_watch):
12131         Always add IO_ERR | IO_HUP
12132
12133         * dbus/dbus-message.h:
12134         Add semicolon after dbus_message_iter_get_string_array().
12135         Makes qt code build again
12136
12137 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12138
12139         * bus/driver.c: (create_unique_client_name),
12140         (bus_driver_handle_hello):
12141         Don't take a name, just use a numeric id to identify
12142         each client.
12143
12144         * dbus/Makefile.am:
12145         * dbus/dbus-bus.c: (dbus_bus_register_client),
12146         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12147         * dbus/dbus-bus.h:
12148         Add new convenience functions for communicating with the bus.
12149
12150         * dbus/dbus-message.h:
12151
12152         * dbus/dbus-protocol.h:
12153         Fix a typo.
12154
12155 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12156
12157         * dbus/dbus-message.c (dbus_message_append_fields):
12158         Add some more doc comments.
12159
12160 2003-02-01  Havoc Pennington  <hp@pobox.com>
12161
12162         * dbus/dbus-break-loader.c (randomly_modify_length): change
12163         a 4-byte value in the message as if it were a length
12164
12165         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12166         execute bit on saved files
12167
12168 2003-02-01  Havoc Pennington  <hp@pobox.com>
12169
12170         * dbus/dbus-break-loader.c (main): new program to find messages
12171         that break the loader.
12172
12173         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12174         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12175
12176         * dbus/dbus-string.c (_dbus_string_set_byte): new
12177
12178 2003-01-31  Havoc Pennington  <hp@pobox.com>
12179
12180         * dbus/dbus-message.c: refactor the test code to be more general,
12181         in preparation for writing a "randomly permute test cases to
12182         try to break the loader" program.
12183
12184 2003-01-31  Havoc Pennington  <hp@pobox.com>
12185
12186         * doc/dbus-specification.sgml: work on the specification
12187
12188         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12189         the protocol version of the message.
12190
12191         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12192         no longer specifies that.
12193         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12194         1/2/3/4)
12195
12196         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12197         "break" for DBUS_TYPE_NIL, remove @todo
12198
12199 2003-01-31  Havoc Pennington  <hp@pobox.com>
12200
12201         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12202         just set_is_error/get_is_error as this is a commonly-used
12203         function, and write docs.
12204
12205 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12206
12207         * dbus/dbus-address.c: (dbus_address_entry_free):
12208         Free key and value lists.
12209
12210         * dbus/dbus-internals.c: (_dbus_type_to_string):
12211         Add the types we didn't have.
12212
12213         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12214         (_dbus_marshal_validate_arg):
12215         Add NIL types.
12216
12217         * dbus/dbus-message.c: (dbus_message_set_sender):
12218         Remove todo about being able to set sender to NULL.
12219
12220         (dbus_message_set_is_error_reply),
12221         (dbus_message_get_is_error_reply):
12222         * dbus/dbus-message.h:
12223         New functions.
12224
12225         * dbus/dbus-protocol.h:
12226         Add error reply flag.
12227
12228         * test/data/valid-messages/opposite-endian.message:
12229         Add NIL type to test.
12230
12231 2003-01-31  Havoc Pennington  <hp@pobox.com>
12232
12233         * doc/dbus-specification.sgml: fully specify the header.  Add
12234         flags and major protocol version, and change header/body len to
12235         unsigned.
12236
12237         * dbus/dbus-message-builder.c (append_saved_length): append length
12238         as uint32
12239
12240         * dbus/dbus-message.c (dbus_message_create_header): change header
12241         length and body length to unsigned. Add the new fields from the
12242         spec
12243         (_dbus_message_loader_return_buffer): unsigned header/body len
12244
12245 2003-01-30  Havoc Pennington  <hp@pobox.com>
12246
12247         * dbus/dbus-auth.c: rework to use only REJECTED, no
12248         MECHANISMS
12249
12250         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12251         use REJECTED, suggested by Mark McLoughlin
12252
12253 2003-01-30  Havoc Pennington  <hp@pobox.com>
12254
12255         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12256         a better way to report errors here. e.g.  "unix address lacks
12257         path" or something. also "no such file" when the path doesn't
12258         exist, etc.
12259
12260         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12261         leaking list nodes
12262         (dbus_parse_address): add @todo about documenting address format,
12263         and allowing , and ; to be escaped
12264
12265 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12266
12267         * dbus/Makefile.am:
12268         Add dbus-address.[ch]
12269
12270         * dbus/dbus-address.c: (dbus_address_entry_free),
12271         (dbus_address_entries_free), (create_entry),
12272         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12273         (dbus_parse_address), (_dbus_address_test):
12274         * dbus/dbus-address.h:
12275         New files for dealing with address parsing.
12276
12277         * dbus/dbus-connection.c:
12278         Document timeout functions.
12279
12280         * dbus/dbus-message.c:
12281         Document dbus_message_new_from_message.
12282
12283         * dbus/dbus-server-debug.c:
12284         Document.
12285
12286         * dbus/dbus-server.c: (dbus_server_listen):
12287         Parse address and use correct server implementation.
12288
12289         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12290         * dbus/dbus-string.h:
12291         New function with test.
12292
12293         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12294         * dbus/dbus-test.h:
12295         Add address tests.
12296
12297         * dbus/dbus-transport-debug.c:
12298         Document.
12299
12300         * dbus/dbus-transport.c: (_dbus_transport_open):
12301         Parse address and use correct transport implementation.
12302
12303 2003-01-30  Havoc Pennington  <hp@pobox.com>
12304
12305         * dbus/dbus-message.c: use message->byte_order instead of
12306         DBUS_COMPILER_BYTE_ORDER throughout.
12307         (dbus_message_create_header): pad header to align the
12308         start of the body of the message to 8-byte boundary
12309
12310         * dbus/dbus-marshal.h: make all the demarshalers take const
12311         DBusString arguments.
12312
12313         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12314         validate message args here, so we don't have to do slow validation
12315         later, and so we catch bad messages as they are incoming. Also add
12316         better checks on header_len and body_len. Also fill in
12317         message->byte_order
12318
12319         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12320         implemented properly)
12321         (_dbus_string_validate_nul): new function to check all-nul
12322
12323         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12324         get_arg_end_pos and remove all validation
12325         (_dbus_marshal_validate_arg): actually do validation here.
12326
12327 2003-01-29  Havoc Pennington  <hp@pobox.com>
12328
12329         * dbus/dbus-message.c (check_message_handling): fix assertion
12330         failure on set_client_serial
12331
12332 2003-01-28  Havoc Pennington  <hp@pobox.com>
12333
12334         * dbus/dbus-server-debug.c: Add doc section comments
12335
12336         * dbus/dbus-transport-debug.c: add doc section comments
12337
12338 2003-01-28  Havoc Pennington  <hp@redhat.com>
12339
12340         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12341         the reverse order from how I had it
12342         (_dbus_string_base64_encode): reverse encoding order. I was
12343         basically byteswapping everything during encoding.
12344
12345 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12346
12347         * dbus/dbus-connection-internal.h:
12348         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12349         (_dbus_connection_remove_timeout):
12350         Add functions for adding and removing timeouts.
12351
12352         * dbus/dbus-message.c: (dbus_message_new_from_message):
12353         Add new function that takes a message and creates an exact
12354         copy of it, but with the refcount set to 1.
12355         (check_message_handling):
12356         Fix build error.
12357
12358         * dbus/dbus-server-protected.h:
12359         * dbus/dbus-server.c: (_dbus_server_init_base),
12360         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12361         (dbus_server_set_timeout_functions):
12362         (_dbus_server_remove_timeout):
12363         New functions so that a server can add and remove timeouts.
12364
12365         (dbus_server_listen):
12366         Add commented out call to dbus_server_debug_new.
12367
12368         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12369         Actually set the handler, doh.
12370
12371         * dbus/dbus-transport.c: (_dbus_transport_open):
12372         Add commented out call to dbus_transport_debug_client_new.
12373
12374         * dbus/Makefile.am:
12375         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12376
12377 2003-01-28  Havoc Pennington  <hp@pobox.com>
12378
12379         * dbus/dbus-message.c (check_message_handling): function to check
12380         on the loaded message, iterates over it etc.
12381
12382 2003-01-28  Havoc Pennington  <hp@pobox.com>
12383
12384         * test/Makefile.am (dist-hook): fix make distdir
12385
12386         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12387
12388 2003-01-27  Havoc Pennington  <hp@pobox.com>
12389
12390         * dbus/dbus-mempool.c (time_for_size): replace printf with
12391         _dbus_verbose
12392
12393         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12394         empty lines; fix the SAVE_LENGTH stuff to be
12395         START_LENGTH/END_LENGTH so it actually works; couple other
12396         bugfixes
12397
12398         * test/Makefile.am (dist-hook): add dist-hook for .message files
12399
12400         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12401         can be constant or locked.
12402         (_dbus_string_free): allow freeing a const string as
12403         documented/intended
12404
12405         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12406
12407         * dbus/dbus-test-main.c (main): take an argument which is the
12408         directory containing test data
12409
12410         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12411         argument to this and load all the messages in test/data/
12412         checking that they can be loaded or not loaded as appropriate.
12413
12414 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12415
12416         * bus/dispatch.c: (bus_dispatch_message_handler):
12417         Dispatch messages sent to services.
12418
12419         * bus/driver.c: (bus_driver_send_service_deleted),
12420         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12421         (bus_driver_send_service_acquired):
12422         Add helper functions for sending service related messages.
12423
12424         (bus_driver_send_welcome_message):
12425         Send HELLO_REPLY instead of WELCOME.
12426
12427         (bus_driver_handle_list_services):
12428         Send LIST_SERVICES_REPLY instead of SERVICES.
12429
12430         (bus_driver_handle_own_service),
12431         (bus_driver_handle_service_exists):
12432         New message handlers.
12433
12434         (bus_driver_handle_message):
12435         Invoke new message handlers.
12436
12437         (bus_driver_remove_connection):
12438         Don't remove any services here since that's done automatically
12439         by bus_service_remove_owner now.
12440
12441         * bus/driver.h:
12442         New function signatures.
12443
12444         * bus/services.c: (bus_service_add_owner):
12445         Send ServiceAcquired message if we're the only primary owner.
12446
12447         (bus_service_remove_owner):
12448         Send ServiceAcquired/ServiceLost messages.
12449
12450         (bus_service_set_prohibit_replacement),
12451         (bus_service_get_prohibit_replacement):
12452         Functions for setting prohibit replacement.
12453
12454         (bus_service_has_owner):
12455         New function that checks if a connection is in the owner queue of
12456         a certain service.
12457
12458         * bus/services.h:
12459         Add new function signatures.
12460
12461         * dbus/dbus-list.c: (_dbus_list_test):
12462         Add tests for _dbus_list_remove_last and traversing the list backwards.
12463
12464         * dbus/dbus-list.h:
12465         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12466         go any further, so return NULL then.
12467
12468         * dbus/dbus-protocol.h:
12469         Add new messages, service flags and service replies.
12470
12471 2003-01-26  Havoc Pennington  <hp@pobox.com>
12472
12473         * dbus/dbus-message-builder.c: implement, completely untested.
12474
12475         * test/data/*: add data to be used in testing.
12476         ".message" files are our simple loadable text format.
12477         ".message-raw" will be binary dumps of messages.
12478
12479         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12480
12481 2003-01-26  Havoc Pennington  <hp@pobox.com>
12482
12483         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12484
12485         * dbus/dbus-errors.c (dbus_result_to_string): add
12486         file errors
12487
12488         * dbus/dbus-message-builder.c: new file, will contain code to load
12489         up messages from files. Not implemented yet.
12490
12491 2003-01-26  Havoc Pennington  <hp@pobox.com>
12492
12493         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12494         the sender by setting to NULL
12495
12496 2003-01-26  Havoc Pennington  <hp@pobox.com>
12497
12498         The unit tests pass, but otherwise untested.  If it breaks, the
12499         tests should have been better. ;-)
12500
12501         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12502         the connection.
12503
12504         * dbus/dbus-message.c: redo everything so we maintain
12505         message->header as the only copy of the various fields.
12506         This avoids the possibility of out-of-memory in some cases,
12507         for example dbus_message_lock() can't run out of memory anymore,
12508         and avoids extra copying. Figured I may as well go ahead and do
12509         this since it was busted for dbus_message_lock to not return
12510         failure on OOM, and dbus_message_write_header was totally
12511         unchecked for OOM. Also fixed some random other bugs.
12512
12513         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12514         that strings are nul-terminated. Also, end_pos can be equal
12515         to string length just not greater than, I think.
12516         (_dbus_marshal_set_int32): new function
12517         (_dbus_marshal_set_uint32): new function
12518         (_dbus_marshal_set_string): new function
12519
12520         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12521         a warning, init timeout_list to NULL
12522         (dbus_connection_send_message): don't use uninitialized variable
12523         "serial"
12524
12525         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12526
12527 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12528
12529         * bus/driver.c: (bus_driver_handle_hello),
12530         (bus_driver_send_welcome_message):
12531         Plug leaks
12532
12533 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12534
12535         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12536         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12537         (dbus_connection_unref):
12538         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12539         * dbus/dbus-message.c: (dbus_message_unref),
12540         Plug memory leaks.
12541
12542         (dbus_message_get_fields):
12543         Remove debugging printout.
12544
12545         (_dbus_message_loader_return_buffer):
12546         Don't store the header string.
12547
12548         (_dbus_message_test):
12549         Plug leaks.
12550
12551 2003-01-26  Richard Hult  <rhult@codefactory.se>
12552
12553         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12554         the file descriptor list, since it can change under us.
12555
12556 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12557
12558         * glib/dbus-gmain.c: (dbus_connection_prepare),
12559         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12560         (remove_watch), (dbus_connection_hookup_with_g_main):
12561         Rewrite the glib handling to use its own GSource instead of a
12562         GIOChannel so we can catch messages put in the queue while waiting
12563         for a reply.
12564
12565 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12566
12567         * bus/Makefile.am:
12568         * bus/connection.c: (connection_disconnect_handler),
12569         (connection_watch_callback), (bus_connection_setup):
12570         * bus/dispatch.c: (send_one_message),
12571         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12572         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12573         * bus/dispatch.h:
12574         * bus/driver.c: (bus_driver_send_service_deleted),
12575         (bus_driver_send_service_created), (bus_driver_handle_hello),
12576         (bus_driver_send_welcome_message),
12577         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12578         (bus_driver_handle_message):
12579         * bus/driver.h:
12580         Refactor code, put the message dispatching in its own file. Use
12581         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12582         is disconnected.
12583
12584 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12585
12586         * dbus/dbus-internals.h:
12587         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12588
12589         * dbus/dbus-message.c: (dbus_message_get_sender):
12590         * dbus/dbus-message.h:
12591         Implement dbus_message_get_sender.
12592
12593         * dbus/dbus-protocol.h:
12594         Add message and service defines.
12595
12596 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12597
12598         * dbus/dbus-connection.c: (dbus_connection_send_message):
12599         * dbus/dbus-message-internal.h:
12600         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12601         (dbus_message_write_header):
12602         Remove _dbus_messag_unlock and don't set the client serial on a
12603         message if one already exists.
12604
12605 2003-01-24  Havoc Pennington  <hp@pobox.com>
12606
12607         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12608         list_pool
12609
12610         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12611         on OOM
12612
12613 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12614
12615         * dbus/dbus-list.c: (alloc_link), (free_link):
12616         Use a memory pool for the links.
12617
12618 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12619
12620         * bus/connection.c: (bus_connection_foreach):
12621         * bus/connection.h:
12622         Add new bus_connection_foreach function.
12623
12624         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12625         Add function that broadcasts a message to all clients.
12626
12627         (bus_driver_send_service_created), (bus_driver_handle_hello),
12628         (bus_driver_send_welcome_message),
12629         (bus_driver_handle_list_services), (bus_driver_message_handler):
12630         Implement functions that take care of listing services, and notifying
12631         clients when new services are created.
12632
12633         * bus/services.c: (bus_services_list):
12634         * bus/services.h:
12635         Add new function that returns an array of strings with the currently
12636         registered services.
12637
12638         * glib/dbus-glib.h:
12639         * glib/dbus-gmain.c:
12640         Update copyright year.
12641
12642 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12643
12644         * dbus/dbus-connection.c: (dbus_connection_send_message):
12645         Unlock the message in case it was sent earlier.
12646
12647         (dbus_connection_send_message_with_reply_and_block):
12648         Remove the reply message from the list.
12649
12650         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12651         Set array_len and new_pos correctly.
12652
12653         (_dbus_marshal_test):
12654         Remove debug output.
12655
12656         * dbus/dbus-message-internal.h:
12657         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12658         New function that returns the reply serial.
12659
12660         (_dbus_message_unlock):
12661         New function that unlocks a message and resets its header.
12662
12663         (dbus_message_append_string_array),
12664         (dbus_message_get_fields_valist),
12665         (dbus_message_iter_get_field_type),
12666         (dbus_message_iter_get_string_array),
12667         (dbus_message_get_fields),
12668         (dbus_message_append_fields_valist):
12669         Handle string arrays.
12670
12671         (dbus_message_set_sender):
12672         Make this function public since the bus daemon needs it.
12673
12674         (decode_header_data):
12675         Set the reply serial to -1 initially.
12676
12677         * dbus/dbus-message.h:
12678         Add dbus_message_set_sender.
12679
12680 2003-01-24  Havoc Pennington  <hp@pobox.com>
12681
12682         * doc/dbus-specification.sgml: add some stuff
12683
12684 2003-01-22  Havoc Pennington  <hp@pobox.com>
12685
12686         * doc/dbus-specification.sgml: Start to document the protocol.
12687
12688 2003-01-22  Havoc Pennington  <hp@pobox.com>
12689
12690         * dbus/dbus-connection.c
12691         (dbus_connection_send_message_with_reply_and_block): add some @todo
12692
12693         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12694
12695 2003-01-21  Havoc Pennington  <hp@pobox.com>
12696
12697         (patch untested because can't compile)
12698
12699         * bus/driver.c (create_unique_client_name): make this function
12700         never recycle client names. Also, caller should initialize
12701         the DBusString.
12702
12703         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12704
12705 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12706
12707         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12708         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12709         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12710         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12711         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12712         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12713         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12714         * dbus/dbus-marshal.h:
12715         * dbus/dbus-protocol.h:
12716         Add support for marshalling and demarshalling integer, double
12717         and string arrays.
12718
12719 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12720
12721         * bus/Makefile.am:
12722         Add driver.[ch]
12723
12724         * bus/connection.c: (connection_disconnect_handler):
12725         Remove the connection from the bus driver's list.
12726
12727         (connection_watch_callback): Dispatch messages.
12728
12729         (free_connection_data): Free connection name.
12730
12731         (bus_connection_setup): Add connection to the bus driver's list.
12732         (bus_connection_remove_owned_service):
12733         (bus_connection_set_name), (bus_connection_get_name):
12734         Add functions for setting and getting the connection's name.
12735
12736         * bus/connection.h:
12737         Add function headers.
12738
12739         * bus/driver.c: (create_unique_client_name),
12740         (bus_driver_handle_hello_message),
12741         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12742         (bus_driver_add_connection), (bus_driver_remove_connection):
12743         * bus/driver.h:
12744         * bus/main.c:
12745         * bus/services.c: (bus_service_free):
12746         * bus/services.h:
12747         New file that handles communication and registreation with the bus
12748         itself.
12749
12750 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12751
12752         * dbus/dbus-connection.c: (dbus_connection_send_message):
12753         Add a new client_serial parameter.
12754
12755         (dbus_connection_send_message_with_reply):
12756         Remove a @todo since we've implemented the blocking function.
12757
12758         (dbus_connection_send_message_with_reply_and_block):
12759         New function that sends a message and waits for a reply and
12760         then returns the reply.
12761
12762         * dbus/dbus-connection.h:
12763         Add new functions.
12764
12765         * dbus/dbus-errors.c: (dbus_result_to_string):
12766         * dbus/dbus-errors.h:
12767         Add new DBUS_RESULT.
12768
12769         * dbus/dbus-message-internal.h:
12770         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12771         (_dbus_message_set_sender), (dbus_message_write_header),
12772         (dbus_message_new_reply), (decode_header_data),
12773         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12774         * dbus/dbus-message.h:
12775         Add new functions that set the reply serial and sender.
12776         Also marshal and demarshal them correctly and add test.
12777
12778         * dbus/dbus-protocol.h:
12779         Add new DBUS_MESSAGE_TYPE_SENDER.
12780
12781         * glib/dbus-glib.h:
12782         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12783         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12784         (dbus_connection_hookup_with_g_main):
12785         * glib/test-dbus-glib.c: (main):
12786         Rewrite to use GIOChannel and remove the GSource crack.
12787
12788         * test/echo-client.c: (main):
12789         * test/watch.c: (check_messages):
12790         Update for changed APIs
12791
12792 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12793
12794         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12795
12796         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12797         Create a DBusTimeoutList.
12798         (dbus_connection_set_timeout_functions): Add new function to
12799         set timeout callbacks
12800
12801         * dbus/dbus-connection.h: Add public DBusTimeout API.
12802
12803         * dbus/dbus-message.c: (dbus_message_get_service):
12804         * dbus/dbus-message.h:  New function.
12805
12806         * dbus/dbus-server.c: Fix small doc typo.
12807
12808         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12809
12810 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12811
12812         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12813         of the string, just as long as specified.
12814
12815 2003-01-19  Havoc Pennington  <hp@pobox.com>
12816
12817         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12818         new function
12819
12820         * dbus/dbus-server.c (dbus_server_set_max_connections)
12821         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12822         keep track of current number of connections, and add API for
12823         setting a max (but haven't implemented enforcing the max yet)
12824
12825 2003-01-18  Havoc Pennington  <hp@pobox.com>
12826
12827         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12828         reading/writing if read_watch != NULL or write_watch != NULL.
12829
12830         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12831         the message loader code to actually load message->header and
12832         message->body into the newly-created message.
12833
12834         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12835         in OOM case
12836
12837         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12838         (dbus_connection_get_max_message_size)
12839         (dbus_connection_set_max_live_messages_size)
12840         (dbus_connection_get_max_live_messages_size): implement some
12841         resource limitation functions
12842
12843         * dbus/dbus-resources.c: new file implementing some of the
12844         resource limits stuff
12845
12846         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12847         missing docs, add @todo to handle OOM etc.
12848
12849         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12850         docs
12851
12852 2003-01-18  Havoc Pennington  <hp@pobox.com>
12853
12854         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12855         connection if it hasn't been already.
12856
12857         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12858         replace with DisconnectFunction.
12859
12860 2003-01-18  Havoc Pennington  <hp@pobox.com>
12861
12862         Building --disable-verbose-mode --disable-asserts --disable-tests
12863         cuts the library from 112K to 45K or so
12864
12865         * configure.in: check for varargs macro support,
12866         add --enable-verbose-mode, --enable-asserts.
12867
12868         * dbus/dbus-internals.h (_dbus_assert): support
12869         DBUS_DISABLE_ASSERT
12870         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12871
12872 2003-01-18  Havoc Pennington  <hp@pobox.com>
12873
12874         * dbus/dbus-test.c: include config.h so that tests actually run
12875
12876         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12877         so the failure mode when that assumption fails will be plenty
12878         obvious.
12879
12880 2003-01-18  Havoc Pennington  <hp@pobox.com>
12881
12882         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12883
12884         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12885         the distribution
12886
12887         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12888         since we don't want to use those in make check
12889
12890 2003-01-15  Havoc Pennington  <hp@redhat.com>
12891
12892         Release 0.2
12893
12894         * NEWS: update
12895
12896 2003-01-15  Havoc Pennington  <hp@redhat.com>
12897
12898         * test/Makefile.am: fix so that test source code ends up in the
12899         distribution on make distcheck
12900
12901 2003-01-15  Havoc Pennington  <hp@redhat.com>
12902
12903         Release 0.1.
12904
12905         * NEWS: update
12906
12907 2003-01-15  Havoc Pennington  <hp@redhat.com>
12908
12909         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12910         fix build when --disable-tests
12911
12912         * Makefile.am (EXTRA_DIST): put HACKING in here
12913
12914         * HACKING: document procedure for making a tarball release.
12915
12916 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12917
12918         * bus/connection.c: (connection_error_handler),
12919         (bus_connection_setup):
12920         * bus/main.c: (main):
12921         Make sure that the DBusConnectionData struct is NULLed
12922         out to prevent a segfault.
12923
12924         * dbus/dbus-errors.c: (dbus_result_to_string):
12925         * dbus/dbus-errors.h:
12926         * dbus/dbus-message.c: (dbus_message_get_fields),
12927         (dbus_message_get_fields_valist), (_dbus_message_test):
12928         * dbus/dbus-message.h:
12929         Make dbus_message_get_fields return a result code so we can
12930         track invalid fields as well as oom.
12931
12932 2003-01-11  Havoc Pennington  <hp@pobox.com>
12933
12934         * configure.in: change --enable-test/--enable-ansi action-if-given
12935         to enable_foo=$enableval instead of enable_foo=yes
12936
12937 2003-01-08  Havoc Pennington  <hp@pobox.com>
12938
12939         * dbus/dbus-string.c (_dbus_string_align_length): new function
12940
12941         * dbus/dbus-test-main.c: move main() for test app here
12942         * dbus/dbus-test.c
12943         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12944         symbol to run tests, because dbus-test isn't in the main
12945         library
12946
12947         Code review nitpicks.
12948
12949         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12950         for people with narrow emacs ;-). Assert client_serial was filled
12951         in. Assert message->name != NULL.
12952         (dbus_message_append_fields): have "first_field_type" arg separate
12953         from va list, needed for C++ binding that also uses varargs IIRC
12954         and helps with type safety
12955         (dbus_message_new): add @todo about using DBusString to store
12956         service/name internally
12957         (dbus_message_new): don't leak ->service and ->name on OOM later
12958         in the function
12959         (dbus_message_unref): free the service name
12960         (dbus_message_get_fields): same change to varargs
12961         i.e. first_field_type
12962         (_dbus_message_loader_return_buffer): assert that the message data
12963         is aligned (if not it's a bug in our code). Put in verbose griping
12964         about why we set corrupted = TRUE.
12965         (decode_header_data): add FIXME that char* is evil.  Was going to
12966         add FIXME about evil locale-specific string.h strncmp, but just
12967         switched to wacky string-as-uint32 optimization. Move check for
12968         "no room for field name" above get_const_data_len() to avoid
12969         assertion failure in get_const_data_len if we have trailing 2
12970         bytes or the like. Check for service and name fields being
12971         provided twice. Don't leak service/name on error. Require field
12972         names to be aligned to 4 bytes.
12973
12974         * dbus/dbus-marshal.c: move byte swap stuff to header
12975         (_dbus_pack_int32): uscore-prefix
12976         (_dbus_unpack_int32): uscore-prefix
12977         (_dbus_unpack_uint32): export
12978         (_dbus_demarshal_string): add @todo complaining about use of
12979         memcpy()
12980         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12981         handling allowing corrupt data to go unchecked
12982
12983 2003-01-08  Havoc Pennington  <hp@redhat.com>
12984
12985         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12986         to the select() as needed for authentication. (should be using
12987         _dbus_poll() not select, but for another day)
12988
12989         * dbus/dbus.h: include dbus/dbus-protocol.h
12990
12991 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12992
12993         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12994         dbus-connection.h
12995
12996 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12997
12998         * dbus/dbus-internals.c: (_dbus_type_to_string):
12999         New function that returns a string describing a type.
13000
13001         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13002         * dbus/dbus-marshal.h:
13003         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13004         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13005         (dbus_message_iter_get_byte_array):
13006         * dbus/dbus-message.h:
13007         Add new convenience functions for appending and getting message fields.
13008         Also add demarshalling routines for byte arrays.
13009
13010 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13011
13012         * dbus/dbus-connection-internal.h:
13013         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13014         (_dbus_connection_get_next_client_serial),
13015         (dbus_connection_send_message):
13016         * dbus/dbus-internals.h:
13017         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13018         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13019         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13020         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13021         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13022         (_dbus_verbose_bytes), (_dbus_marshal_test):
13023         * dbus/dbus-marshal.h:
13024         * dbus/dbus-message-internal.h:
13025         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13026         (dbus_message_write_header), (_dbus_message_lock),
13027         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13028         (dbus_message_get_name), (dbus_message_append_int32),
13029         (dbus_message_append_uint32), (dbus_message_append_double),
13030         (dbus_message_append_string), (dbus_message_append_byte_array),
13031         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13032         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13033         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13034         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13035         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13036         (decode_header_data), (_dbus_message_loader_return_buffer),
13037         (message_iter_test), (_dbus_message_test):
13038         * dbus/dbus-message.h:
13039         * dbus/dbus-protocol.h:
13040         * dbus/dbus-test.c: (main):
13041         * dbus/dbus-test.h:
13042         * glib/test-dbus-glib.c: (message_handler), (main):
13043         * test/echo-client.c: (main):
13044         * test/watch.c: (check_messages):
13045         Make messages sendable and receivable for real.
13046
13047 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13048
13049         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13050         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13051         * dbus/dbus-message.c: (dbus_message_append_int32),
13052         (dbus_message_append_uint32), (dbus_message_append_double),
13053         (dbus_message_append_string), (dbus_message_append_byte_array):
13054         Handle OOM restoration.
13055
13056 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13057
13058         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13059         (_dbus_demarshal_string), (_dbus_marshal_test):
13060         * dbus/dbus-marshal.h:
13061         * dbus/dbus-message.c: (dbus_message_get_name),
13062         Document these functions.
13063
13064         (dbus_message_append_int32), (dbus_message_append_uint32),
13065         (dbus_message_append_double), (dbus_message_append_string),
13066         (dbus_message_append_byte_array):
13067         * dbus/dbus-message.h:
13068         Add functions for adding message fields of different types.
13069
13070         * dbus/dbus-protocol.h:
13071         Add the different types.
13072
13073 2003-01-05  Havoc Pennington  <hp@pobox.com>
13074
13075         * bus/connection.c: implement routines for handling connections,
13076         first thing is keeping a list of owned services on each connection
13077         and setting up watches etc.
13078
13079         * bus/services.c: implement a mapping from service names to lists
13080         of connections
13081
13082         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13083
13084         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13085         to use static mutexes for global data
13086
13087         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13088         collection of functions to set/get application-specific data
13089         on the DBusConnection.
13090
13091 2003-01-04  Havoc Pennington  <hp@pobox.com>
13092
13093         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13094         (_dbus_poll): new function
13095
13096         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13097         copied from GLib
13098
13099         * bus/loop.c: initial code for the daemon main loop
13100
13101 2003-01-04  Havoc Pennington  <hp@pobox.com>
13102
13103         * test/watch.c (error_handler): make it safe if the error handler
13104         is called multiple times (if we s/error handler/disconnect
13105         handler/ we should just guarantee it's called only once)
13106
13107         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13108         error handler on disconnect (it's quite possible we should
13109         just change the error handler to a "disconnect handler," I'm
13110         not sure we have any other meaningful errors)
13111
13112         * configure.in: check for getpwnam_r
13113
13114         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13115         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13116         mechanism as in SASL spec, using socket credentials
13117
13118         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13119         (_dbus_send_credentials_unix_socket): new function
13120
13121         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13122         dbus_accept()
13123         (_dbus_write): only check errno if <0 returned
13124         (_dbus_write_two): ditto
13125
13126 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13127
13128         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13129         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13130         (_dbus_marshal_test):
13131         * dbus/dbus-marshal.h:
13132         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13133         to _dbus_marshal_utf8_string. Also fix some tests.
13134
13135 2002-12-28  Harri Porten  <porten@kde.org>
13136
13137         * configure.in: added check for C++ compiler and a very cheesy
13138         check for the Qt integration
13139
13140         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13141
13142         * qt/Makefile.am: added
13143
13144         * qt/.cvsignore: added
13145
13146         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13147         latter, added #ifdef QT_THREAD_SUPPORT guard.
13148
13149         * dbus/Makefile.am: added missing headers for make dist
13150
13151 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13152
13153         * dbus/Makefile.am: fixup export-symbols-regex.
13154
13155 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13156
13157         * acinclude.m4: Add this file and put the
13158         PKG_CHECK_MODULE macro in it.
13159
13160 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13161
13162         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13163         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13164         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13165         (_dbus_marshal_test):
13166         Make the demarshalling routines align the pos argument.
13167         Add string marshalling tests and fix the obvious bugs
13168         discovered.
13169
13170 2002-12-26  Havoc Pennington  <hp@pobox.com>
13171
13172         * dbus/dbus-auth.c: fixes fixes fixes
13173
13174         * dbus/dbus-transport-unix.c: wire up support for
13175         encoding/decoding data on the wire
13176
13177         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13178         (_dbus_auth_decode_data): append to target string
13179         instead of nuking it.
13180
13181 2002-12-26  Havoc Pennington  <hp@pobox.com>
13182
13183         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13184         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13185         doh
13186
13187         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13188         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13189         now). Main point is because I wanted unpack_uint32 to implement
13190         _dbus_verbose_bytes
13191         (_dbus_verbose_bytes): new function
13192
13193         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13194
13195         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13196         mechanism to handle a corrupt message stream
13197         (_dbus_message_loader_new): fix preallocation to only prealloc,
13198         not prelengthen
13199
13200         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13201         (_dbus_string_test): enhance tests for copy/move and fix the
13202         functions
13203
13204         * dbus/dbus-transport-unix.c: Hold references in more places to
13205         avoid reentrancy problems
13206
13207         * dbus/dbus-transport.c: ditto
13208
13209         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13210         leak reference count in no-message case
13211
13212         * test/watch.c (do_mainloop): handle adding/removing watches
13213         during iteration over the watches. Also, ref the connection/server
13214         stored on a watch, so we don't try to mangle a destroyed one.
13215
13216         * dbus/dbus-transport-unix.c (do_authentication): perform
13217         authentication
13218
13219         * dbus/dbus-auth.c (get_state): add a state
13220         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13221         (_dbus_auth_get_unused_bytes): append the unused bytes
13222         to the passed in string, rather than prepend
13223
13224         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13225         the auth conversation DBusAuth
13226
13227         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13228         (_dbus_transport_new_for_domain_socket): when creating a
13229         transport, pass in whether it's a client-side or server-side
13230         transport so we know which DBusAuth to create
13231
13232 2002-12-03  Havoc Pennington  <hp@pobox.com>
13233
13234         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13235         _after_ finalizing the derived members
13236         (unix_connection_set): unref watch if we fail to add it
13237
13238         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13239         transport first, so that the connection owned by the
13240         transport will be valid as the transport finalizes.
13241
13242         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13243         if necessary, and remove watches from the connection.
13244
13245         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13246
13247 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13248
13249         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13250         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13251         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13252         (_dbus_marshal_test):
13253         * dbus/dbus-marshal.h:
13254         Add string marshal functions and have the demarshal functions
13255         return the new position.
13256
13257 2002-12-25  Havoc Pennington  <hp@pobox.com>
13258
13259         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13260         it is a simple protocol that just maps directly to SASL.
13261
13262         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13263         initial implementation, not actually used yet.
13264
13265         * dbus/dbus-string.c (_dbus_string_find): new function
13266         (_dbus_string_equal): new function
13267         (_dbus_string_base64_encode): new function
13268         (_dbus_string_base64_decode): new function
13269
13270 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13271
13272         * dbus/Makefile.am:
13273         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13274         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13275         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13276         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13277         * dbus/dbus-marshal.h:
13278         * dbus/dbus-protocol.h:
13279         * dbus/dbus-test.c: (main):
13280         * dbus/dbus-test.h:
13281         Add un-optimized marshalling/demarshalling routines.
13282
13283 2002-12-25  Harri Porten  <porten@kde.org>
13284
13285         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13286
13287 2002-12-24  Zack Rusin  <zack@kde.org>
13288
13289         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13290         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13291         main loop stuff
13292
13293 2002-12-24  Havoc Pennington  <hp@pobox.com>
13294
13295         * glib/dbus-gthread.c: fix include
13296
13297         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13298         I think glib API needs to change, though, as you don't
13299         want to use DBusMessageFunction, you want to use the
13300         DBusMessageHandler object. Probably
13301         dbus_connection_open_with_g_main_loop()
13302         and dbus_connection_setup_g_main_loop() or something like that
13303         (but think of better names...) that just create a connection
13304         that has watch/timeout functions etc. already set up.
13305
13306         * dbus/dbus-connection.c
13307         (dbus_connection_send_message_with_reply): new function just to
13308         show how the message handler helps us deal with replies.
13309
13310         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13311
13312         * dbus/dbus-string.c (_dbus_string_test): free a string that
13313         wasn't
13314
13315         * dbus/dbus-hash.c: use memory pools for the hash entries
13316         (rebuild_table): be more paranoid about overflow, and
13317         shrink table when we can
13318         (_dbus_hash_test): reduce number of sprintfs and write
13319         valid C89. Add tests for case where we grow and then
13320         shrink the hash table.
13321
13322         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13323
13324         * dbus/dbus-connection.c (dbus_connection_register_handler)
13325         (dbus_connection_unregister_handler): new functions
13326
13327         * dbus/dbus-message.c (dbus_message_get_name): new
13328
13329         * dbus/dbus-list.c: fix docs typo
13330
13331         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13332         an object representing a handler for messages.
13333
13334 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13335
13336         * glib/dbus-glib.h:
13337         * glib/dbus-gthread.c: (dbus_gthread_init):
13338         Don't use the gdbus prefix for public functions.
13339
13340 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13341
13342         * Makefile.am:
13343         * configure.in:
13344         Add GLib checks and fixup .pc files
13345
13346         * glib/Makefile.am:
13347         * glib/dbus-glib.h:
13348         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13349         (gdbus_connection_check), (gdbus_connection_dispatch),
13350         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13351         (dbus_connection_gsource_new):
13352         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13353         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13354         * glib/test-dbus-glib.c: (message_handler), (main):
13355         Add GLib support.
13356
13357 2002-12-15  Harri Porten  <porten@kde.org>
13358
13359         * autogen.sh: check for libtoolize before attempting to use it
13360
13361         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13362         struct.
13363
13364         * .cvsignore: ignore more stamp files
13365
13366         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13367
13368         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13369         without make install.
13370
13371 2002-12-15  Havoc Pennington  <hp@pobox.com>
13372
13373         * dbus/dbus-threads.c: add thread stubs that a higher library
13374         layer can fill in. e.g. the GLib wrapper might fill them in with
13375         GThread stuff. We still need to use this thread API to
13376         thread-safe-ize the library.
13377
13378 2002-12-12  Havoc Pennington  <hp@pobox.com>
13379
13380         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13381         below new interfaces and include fewer system headers.
13382
13383         * dbus/dbus-sysdeps.c (_dbus_read): new function
13384         (_dbus_write): new function
13385         (_dbus_write_two): new function
13386         (_dbus_connect_unix_socket): new function
13387         (_dbus_listen_unix_socket): new function
13388
13389         * dbus/dbus-message-internal.h: change interfaces to use
13390         DBusString
13391
13392 2002-12-11  Havoc Pennington  <hp@pobox.com>
13393
13394         * dbus/dbus-types.h: add dbus_unichar
13395
13396         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13397
13398         * dbus/dbus-connection.c (dbus_connection_send_message): return
13399         TRUE on success
13400
13401         * dbus/dbus-transport.c: include dbus-watch.h
13402
13403         * dbus/dbus-connection.c: include dbus-message-internal.h
13404
13405         * HACKING: add file with coding guidelines stuff.
13406
13407         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13408         handling here, for security purposes (as in vsftpd). Not actually
13409         using this class yet.
13410
13411         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13412         system/libc usage here, as in vsftpd, for ease of auditing (and
13413         should also simplify portability). Haven't actually moved all the
13414         system/libc usage into here yet.
13415
13416 2002-11-25  Havoc Pennington  <hp@pobox.com>
13417
13418         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13419         always print the first verbose message.
13420
13421 2002-11-24  Havoc Pennington  <hp@pobox.com>
13422
13423         * test/echo-client.c, test/echo-server.c: cheesy test
13424         clients.
13425
13426         * configure.in (AC_CHECK_FUNCS): check for writev
13427
13428         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13429         function
13430
13431         * dbus/dbus-list.c (_dbus_list_foreach): new function
13432
13433         * dbus/dbus-internals.c (_dbus_verbose): new function
13434
13435         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13436         representing a server that listens for connections.
13437
13438         * dbus/.cvsignore: create
13439
13440         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13441         public API for reporting errors
13442
13443         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13444         public object representing a connection that
13445         sends/receives messages. (Same object used for
13446         both client and server.)
13447
13448         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13449         Basic abstraction for different kinds of stream
13450         that we might read/write messages from.
13451
13452 2002-11-23  Havoc Pennington  <hp@pobox.com>
13453
13454         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13455         _DBUS_INT_MAX
13456
13457         * dbus/dbus-test.c (main): add list test, and include
13458         dbus-test.h as intended
13459
13460         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13461         (_dbus_hash_table_remove_int): return value indicates
13462         whether the entry existed to remove
13463
13464         * dbus/dbus-list.c: add linked list utility class,
13465         with docs and tests
13466
13467         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13468         array sometimes.
13469
13470 2002-11-23  Havoc Pennington  <hp@pobox.com>
13471
13472         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13473         DBUS_END_DECLS to nothing, that should fix this once and for all
13474
13475         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13476
13477         * dbus/dbus-message.c, dbus/dbus-hash.c:
13478         add some missing @brief
13479
13480 2002-11-23  Havoc Pennington  <hp@pobox.com>
13481
13482         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13483         to avoid confusing Doxygen
13484
13485         * dbus/dbus-hash.c: @} not }@
13486
13487         * dbus/dbus-message.c (struct DBusMessage): split out
13488         internals docs
13489
13490 2002-11-23  Havoc Pennington  <hp@pobox.com>
13491
13492         * configure.in: pile on more warning flags if using gcc
13493
13494         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13495         to document static functions
13496
13497         * configure.in: add summary to end of configure so it
13498         looks nice and attractive
13499
13500         * dbus/dbus-hash.c: finish implementation and write unit
13501         tests and docs
13502
13503         * configure.in: add --enable-tests to enable unit tests
13504
13505         * dbus/dbus-test.c: test program to run unit tests
13506         for all files in dbus/*, initially runs a test for
13507         dbus-hash.c
13508
13509         * dbus/dbus-internals.h: file to hold some internal utility stuff
13510
13511 2002-11-22  Havoc Pennington  <hp@redhat.com>
13512
13513         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13514         "ported" away from Tcl
13515
13516         * dbus/dbus-types.h: header for types such as dbus_bool_t
13517
13518 2002-11-22  Havoc Pennington  <hp@redhat.com>
13519
13520         * dbus/dbus.h: fixups for doc warnings
13521
13522         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13523         macros
13524         (QUIET): make it quiet so we can see warnings
13525
13526         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13527
13528 2002-11-22  Havoc Pennington  <hp@redhat.com>
13529
13530         * Makefile.am: include "Doxyfile" target in all-local
13531
13532         * configure.in: generate the Doxyfile
13533
13534         * Doxyfile.in: move Doxyfile here, so we can use
13535         configure to generate a Doxyfile with the right
13536         version number etc.
13537
13538 2002-11-22  Havoc Pennington  <hp@redhat.com>
13539
13540         * dbus/dbus-message.c: move inline docs into .c file
13541
13542         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13543         so all docs are under doc/
13544         (MAN_EXTENSION): generate man pages. Use extension
13545         ".3dbus" which matches ".3qt" on my system,
13546         I guess this is OK, I don't know really.
13547         (FILE_PATTERNS): look for .c files not .h, makes sense
13548         for plain C I think
13549
13550 2002-11-22  Havoc Pennington  <hp@pobox.com>
13551
13552         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13553         because any app can be a server, and any app can be a client,
13554         the bus is a special kind of server.
13555
13556 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13557
13558         * Doxyfile : adding. Still needs Makefile rules to be generated
13559         automatically (just run "doxygen" in the toplevel dir for now to
13560         generate docs)
13561
13562         * dbus/dbus-message.h : Adding sample docs (javadoc since
13563         resembles gtk-doc a little more)
13564
13565         * dbus/dbus.h : Adding sample docs
13566
13567 2002-11-21  Havoc Pennington  <hp@redhat.com>
13568
13569         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13570         so we can allow ourselves to include files directly,
13571         instead of having to use dbus.h
13572
13573         * dbus/dbus.h: fill in
13574
13575         * dbus/dbus-message.h: sketch out a sample header file.
13576         Include griping if you include it directly instead of
13577         via dbus.h
13578
13579         * dbus/dbus-macros.h: new file with macros for extern "C",
13580         TRUE/FALSE, NULL, etc.
13581
13582         * doc/file-boilerplate.c: put include guards in here
13583
13584 2002-11-21  Havoc Pennington  <hp@redhat.com>
13585
13586         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13587
13588         * COPYING: include the GPL as well, and license code
13589         under both AFL and GPL.
13590
13591 2002-11-21  Havoc Pennington  <hp@redhat.com>
13592
13593         * acconfig.h: get rid of this
13594
13595         * autogen.sh (run_configure): add --no-configure option
13596
13597         * configure.in: remove AC_ARG_PROGRAM to make
13598         autoconf complain less. add AC_PREREQ.
13599         add AC_DEFINE third arg.
13600
13601 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13602
13603         * doc/Makefile.am:
13604         Fix references so we can distcheck.
13605
13606 2002-11-21  Havoc Pennington  <hp@redhat.com>
13607
13608         * Initial module creation
13609