* Release 0.90
[platform/upstream/dbus.git] / ChangeLog
1 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
2
3         * Released 0.90
4
5 2006-07-17  Havoc Pennington  <hp@redhat.com>
6
7         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
8         ints, reported by Owen Taylor
9
10 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
11
12         * doc/TODO:
13         * dbus/dbus-bus.c:
14         * dbus-errors.c:
15         * dbus/dbus-marshal-validate.c:
16           Removed TODO items which were fixed or are no longer relevent
17
18 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
19
20         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
21         Remove stray files from the stripped bindings
22
23 2006-07-16  Havoc Pennington  <hp@redhat.com>
24
25         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
26         Improve the error message on reply timeout
27
28 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
29
30         * Remove all bindings
31
32 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
33
34         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
35         and set pending_reply out arg to NULL is connection is disconnected
36         (connection_timeout_and_complete_all_pending_calls_unlocked): New
37         static method for cleaning up pending calls on disconnect
38         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
39         calls queued timeouts on disconnect 
40
41          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
42         Remove 
43
44 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
45
46         * bus/activation.[ch] (bus_activation_list_services): new function to 
47         get the list of services that can be activated
48
49         * bus/dispatch.c: test coverage for the new bus method
50         ListActivatableNames
51
52         * bus/driver.c: new bus method ListActivatableNames to get the list of
53         services that can be activated
54
55         * doc/dbus-specification.xml: ListActivatableNames method documentation
56
57 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
58         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
59         source files
60
61 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
62         * dbus/dbus-message-factory.c:
63         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
64
65 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
66         * dbus/dbus-connection-internal.h:
67         * dbus/dbus-connection.c:
68         * file dbus/dbus-pending-call.c:
69         * dbus/dbus-pending-call.h:
70         Make DBusPendingCall an opaque type even to D-Bus internals
71
72 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
73
74         * dbus/dbus-connection.h: remove connection_disconnect and replace with
75         connection_close
76
77         * dbus/dbus-connection.c: include dbus-bus.h
78         (_dbus_connection_read_write_dispatch): make static
79
80 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
81
82         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
83         function
84         (dbus_connection_dispatch): On disconnect unref any shared connections
85
86         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
87         for cleaning up shared connections on disconnect
88         (internal_bus_get): get a hard refrence to shared connections when
89         they are created
90         
91         * doc/TODO: Remove items which are no longer relevent or have been fixed
92         Split 1.0 todo items with a 0.90 freeze todo list
93  
94 2006-06-14  Ross Burton  <ross@openedhand.com>
95
96         * glib/dbus-gobject.c:
97         Free a leaking GArray (surely not!) in dbus_g_method_return.
98
99 2006-06-14  Ross Burton  <ross@openedhand.com>
100
101         * tools/Makefile.am:
102         * tools/dbus-monitor.c:
103         Don't use the GLib bindings in dbus-monitor (patch from Ralf
104         Habacker).
105         
106 2006-06-14  Ross Burton  <ross@openedhand.com>
107
108         * tools/dbus-print-message.c:
109         Also print the object path when outputting signals or method calls.
110
111 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
112
113         * qt/src/Makefile.am: install the qdbus.h header.
114         This allows people to actually use the installed code.
115
116 2006-06-12  Ross Burton  <ross@openedhand.com>
117
118         * glib/dbus-gproxy.c:
119         Don't leak a GArray when firing signals (thank Rob Taylor for review).
120
121 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
122
123         * Released 0.62
124
125 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
126
127         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
128         break pedantic builds. Closes bug 6043 (patch approved by
129         Havoc back in February).
130
131 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
132
133         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
134         that took a QDBusMessage parameter.
135         * qt/src/qdbusbus.h: Add a default flag for RequestName.
136         * qt/tools/dbus.cpp: Don't use automatic call because we might
137         be calling an async method: request a reply.
138
139 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
140
141         * test/qt/*: Update the testcases, including testing the new
142         functionality of sending null QByteArray and QString over the
143         bus. Add new headertest test and restore the old
144         qdbusxmlparser test.
145
146 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
147
148         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
149         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
150
151         * qt/examples/Makefile.am:
152         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
153         form.
154
155         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
156         QByteArray() (nulls) over the bus.
157         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
158         the one that has the signature suffix stripped.
159         * qt/src/qdbusreply.h: Make some methods const.
160
161 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
162
163         Patch from Timo Hoenig <thoenig@suse.de>.
164
165         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
166         required during build to EXTRA_DIST.
167         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
168         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
169         * configure.in: Fix "make dist", take care that the Makefile for
170         qt/dbus is being generated.
171
172 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
173
174         * bus/bus.c: Fix eavesdropping on method calls
175
176 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
177
178         * configure.in:
179         * dbus/dbus-userdb-util.c:
180         Add Solaris console owner patch from Artem Kachitchkine
181
182 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
183
184         * qt/Makfile.am:
185         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
186         reorganisation. Thanks to Timo Hoenig for pointing this out.
187
188 2006-06-06  Robert McQueen  <robot101@debian.org>
189
190         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
191           call to dbus_g_type_get_struct.
192
193 2006-06-06  Robert McQueen  <robot101@debian.org>
194
195         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
196           pointers were put into a GPtrArray-based specialised collection, and
197           then freed along with the array. GValues which you add into
198           collections or maps which have the NOCOPY flag set are assumed to not
199           belong to the caller, so rather than the existing pointer-stealing
200           semantics, they are copied instead. Given that the main consumers of
201           this abstraction are the bindings themselves, I don't think this is
202           too bad, but others should watch their choice of take vs set_static.
203
204 2006-06-06  Robert McQueen  <robot101@debian.org>
205
206         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
207           of g_slist_prepend not being used. Fixed copying of slist-based
208           specialised collections, then wrote a test case and found that it was
209           all broken. Went on to fix iterating and appending too. Good thing
210           nobody uses this code yet.
211
212 2006-06-06  Robert McQueen  <robot101@debian.org>
213
214         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
215           the iterators use gvalue_take_ptrarray_value (the GValues themselves
216           are discarded without unsetting, so it makes no difference whether
217           we take or set_static). Remove cases for G_TYPE_POINTER because
218           there really is nothing useful we can do with them in our
219           specialised types - we *need* boxed copy/free functions at the very
220           least.
221
222 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
223
224         * qt/dbus: Add directory. I had forgotten to add this
225         yesterday after the move...
226
227         * qt/examples/Makefile.am:
228         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
229
230         * qt/tools/Makefile.am:
231         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
232         Added feature to get and set properties.
233         Added validation of service, object path and interface names.
234
235         * qt/tools/dbusidl2cpp.cpp: Two new features:
236         1) Allow specifying both the header and the source file names,
237         by separating them with a colon.
238         2) Don't write an interface output if the -p switch wasn't
239         given, but the -a was.
240
241         * qt/src/*: Fix usage of Iterators and ConstIterators.
242         Fix shadowing of variables by other variables (-Wshadow).
243         Fix keyword-cleanliness in headers.
244         Fix ASCII-cast (QLatin1String, QLatin1Char).
245         Fix validation of member names.
246         Add extra checking of introspection data during XML parsing.
247         Various bug fixes.
248
249 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
250
251         * dbus/Makefile.am:
252         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
253         qt/dbus/qdbus.h now.
254
255 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
256
257         * configure.in: Make --disable-qt actually do
258           something. Patch inspired by Zack Rusin.
259
260 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
261
262         * qt/: Update to Subversion r548032.
263         This includes a big reorganisation of the files inside the
264         subdir.
265
266 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
267
268         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
269         clear:  
270         "Failed to connect to socket <host>:<port> <error>" instead of
271         "Failed to connect to socket <host>: <error>:<port>"
272
273         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
274         for a tcp transport. 
275
276 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
277
278         * qt/*: Update the QtDBus bindings up to revision 546310 in
279         Subversion.
280         This adds the dbuscpp2xml tool, that parses a C++ header and
281         outputs a D-BUS Introspection XML.
282
283 2006-05-21  Havoc Pennington  <hp@redhat.com>
284
285         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
286         is not NULL when it shouldn't be. Also a couple of possible fixes
287         for #4637 though I don't understand why the bug happens, to be
288         honest... also the object constructor has an assert name != NULL
289         and the name is only currently NULL for peer-to-peer proxies that 
290         I don't think anyone uses? So it should be asserting.
291         Anyway, for now at least see if we get an earlier assertion failure.
292
293         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
294         apparently broken code to be sure the tests fail and someone 
295         will fix them...
296
297 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
298
299         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
300         and arrays when they had a single element: has_next returns
301         false, even before you read the element. So, instead, check
302         the array length.
303
304 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
305
306         * qt/qdbusmessage.cpp:
307         * qt/qdbustypehelper_p.h:
308         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
309         the list is a const-reference
310
311 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
312
313         * Adding old doc patch that never got applied
314         
315         * dbus/bus.c (dbus_bus_add_match): Add documentation
316
317         * doc/dbus-specification.xml: Add documentation for the match rules
318           and the AddMatch and RemoveMatch methods
319
320 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
321
322         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
323         call (r535506)
324
325         * qt/dbusidl2cpp.cpp:
326         * qt/qdbusabstractadaptor.cpp:
327         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
328         sibling of the QDBusAbstractAdaptor objects instead of the
329         parent. (r535848)
330
331         * qt/dbusidl2cpp.cpp:
332         * qt/qdbusabstractinterface.cpp:
333         * qt/qdbusabstractinterface.h:
334         * qt/qdbusabstractinterface_p.h:
335         * qt/qdbusinterface.cpp: Make properties in interfaces
336         actually work. The code that was generated would not compile,
337         due to moc calls to functions that did not exist. They now
338         shall. (r536571)
339
340 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
341
342         * Makefile.am:
343         * configure.in:
344         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
345         Thanks to Brad Hards for providing the patch
346
347 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
348
349         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
350         call. (r535506)
351
352 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
353
354         * qt/examples/dbus.cpp: Enhance error messages and use
355         QDBusInterfacePtr.
356
357 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
358
359         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
360         and disable the copy operators. (r533772, r534746)
361
362         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
363
364         * qt/qdbusabstractinterface.cpp:
365         * qt/qdbusabstractinterface.h: Change the default call mode to
366         not use the event loop. Add convenience call() methods that
367         take a CallMode parameter. (r534042)
368
369         * qt/qdbusconnection.h: Change the default call mode to not
370         use the event loop. (r534042)
371
372         * qt/qdbusinterface.cpp:
373         * qt/qdbusinterface.h: Add a method to tell us if the
374         interface is valid (since we don't return a null pointer
375         anymore) (r534099)
376
377         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
378         (r534101)
379
380         * qt/qdbusinternalfilters.cpp: Decouple the introspection
381         function in two so taht we get the chance to introspect
382         without having a QDBusMessage (r534102)
383
384         * qt/qdbusbus.h:
385         * qt/qdbusconnection.cpp:
386         * qt/qdbusconnection_p.h:
387         * qt/qdbusintegrator.cpp: Keep a list of our own names to
388         avoid a round-trip to the server when attempting to introspect
389         one of our own objects. Also make sure the filter functions
390         match the empty interface as well. (r534108)
391         Don't keep the connection names. Instead, trust the unique
392         connection name (r534111)
393         Remove event loop usage (r534112)
394
395 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
396
397         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
398         Brad Hards.
399
400 2006-04-28  Robert McQueen  <robot101@debian.org>
401
402         * glib/dbus-gproxy.c: Fix properties so that they can be given in
403         any order, making it easier for people who inherit from this
404         object.
405
406 2006-04-28  Robert McQueen  <robot101@debian.org>
407
408         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
409         of memory from within pointer arrays and lists. Fixes bug #6300.
410
411 2006-04-28  Robert McQueen  <robot101@debian.org>
412
413         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
414         generating struct signatures. Fixes bug #6083.
415
416 2006-04-28  Robert McQueen  <robot101@debian.org>
417
418         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
419         to qdbusconnection_p.moc.
420
421 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
422
423         * README, INSTALL: Doc fixes
424         Patch from Brad Hards <bradh at frogmouth.net>
425
426 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
427
428         * qt/examples/dbus.cpp: Use the new merged-interface mode for
429         the dynamic meta object. No need to guess which interface to
430         call.
431
432 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
433
434         * qt/qdbusconnection_p.h:
435         * qt/qdbusmetaobject.cpp:
436         * qt/qdbusmetaobject_p.h:
437         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
438         for the dynamic meta object. No need to guess which
439         interface to call.
440         * qt/qdbusabstractinterface_p.h:
441         * qt/qdbusconnection.cpp:
442         * qt/qdbusintegrator.cpp:
443         * qt/qdbusinterface.cpp:
444         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
445         Add a QDBusRef that looks and behaves like DCOPRef.
446
447 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
448
449         * dbus/dbus-connection.c: Interfaces are optional in method
450         calls, so don't give up if the interface parameter is NULL.
451         Patch reviewed by Havoc Pennington.
452
453 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
454
455         * qt/qdbusreply.h: Add default constructor and operator=
456           (r532625)
457         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
458           in public headers (r532952)
459         * qt/qdbusabstractinterface.cpp:
460         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
461           make it the default (r532951)
462
463 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
464
465         * dbus/dbus-connection.c: Fix asserts
466         Patch from Tim Moloney <t.moloney at verizon.net>
467
468 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
469
470         * mono/Connection.cs, mono/Message.cs: Check Target type
471         Patch from Aaron Bockover (abockover at novell.com)
472
473 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
474
475         * INSTALL: fine-tune the requirements for the Qt4 binding.
476
477 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
478
479         * tools/dbus-print-message.c: Added support for printing of all 
480           remaining data types. Fixed logic for indentation of compound
481           data types.
482         
483 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
484
485         * INSTALL: fill out content of file providing DBus specific
486           build installations, followed by generic Auto* INSTALL file
487           content
488         
489 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
490
491         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
492           Patch by Stefan Eilers. (r529537)
493
494 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
495
496         * qt/qdbusinternalfilters.cpp: Don't show the parent's
497           contents (r528208)
498
499 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
500
501         * qt/Makefile.am: fix the dependency for
502           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
503           not in qdbusconnection.cpp.
504           Thanks to Jakub Stachowski <stachowski@hypair.net> for
505           spotting this.
506
507 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
508
509         * qt/examples/listnames.cpp:
510         * qt/examples/Makefile.am: Three ways to list the names on the
511           bus.
512
513 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
514
515         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
516           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
517
518 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
519
520         Merge from Subversion:
521         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
522           something that exists (r526315)
523         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
524           slots/signals (r526316)
525         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
526           also return an unknown-method error if the parameters don't
527           match for org.freedesktop.DBus.Properties. (r526842)
528         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
529         * qt/qdbusintegrator.cpp: Restore the proper order of
530           delivery: don't make method returns be delivered on priority
531           (r528150)
532
533 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
534
535         * configure.in qt/Makefile.am: add qt/examples
536         * qt/examples: Add QtDBus example programs:
537           - hello: Hello, World
538           - ping: Simple method-calling program
539           - pong: Simple object-exporting program (not using adaptors)
540           - complexping: Interactive method-calling program 
541                 (also gets and sets properties).
542           - complexpong: Sample program exporting methods, signals and
543                 properties, using adaptors.
544           - dbus: Simple implementation of a generic method-calling
545                 program, similar to 'dbus-send', but with semantics
546                 similar to 'dcop'.
547           - chat: Simplistic chat program, implemented using signals
548                 and the system bus. Looks like IRC.
549
550 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
551
552         * configure.in: Detect QtGui (necessary for one of the
553           example programs). Note: this increases the minimum required
554           version of Qt to 4.1.3.
555
556 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
557
558         * test/qt/*: Sync with KDE Subversion revision 523647.
559         Update the testcases to the new API. Remove testcases for
560         classes that are no longer public or have been removed.
561
562 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
563
564         * qt/*: 
565         * dbus/qdbus.h: Sync with KDE Subversion revision
566         523647. Hopefully, this will be the last of the
567         source-incompatible changes. Documentation has been improved;
568         support for QList<basic-types> has been added; QDBusObject is
569         gone; QDBus(Abstract)Interface is now a QObject with
570         auto-generated meta-object; QDBusIntrospection is marked
571         private, since QMetaObject can be used now; lots of bugfixes.
572
573 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
574
575         Patch from Milosz Derezynski <internalerror at gmail.com>
576         
577         * configure.in:
578         Output the service directory in the configure summary
579
580         * dbus-1.pc.in:
581         Add session_bus_services_dir
582
583 2006-03-10  Ross Burton  <ross@openedhand.com>
584
585         * tools/dbus-print-message.c:
586         Add support for object paths and signatures.
587
588 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
589
590         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
591         config reload.
592         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
593         information caches
594         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
595         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
596         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
597         * dbus/dbus-userdb.h: Add function to flush all user/group information
598         caches.
599
600 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
601
602         * qt/dbusidl2cpp.cpp:
603         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
604         for dcopidl2cpp, found in the KDE installations (or the more
605         modern kalyptus): generate Qt4 C++ code for the input XML
606         introspection. Currently no IDL parsing.
607
608 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
609
610         * test/qt/*: Update the self-tests.
611
612 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
613
614         * qt/*: 
615         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
616         represents the first feature-complete version of the Qt4
617         bindings since I took ove maintainership.
618
619 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
620
621         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
622         dir. This is C++, so we can't use the DBus ones.
623
624 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
625
626         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
627         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
628
629 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
630
631         * dbus/dbus-connection.c: 
632         (_dbus_connection_block_pending_call):
633         Check to see if our data has already been read off the connection
634         by another blocking pending call before we block in poll.
635         (check_for_reply_and_update_dispatch_unlocked):
636         Code taken from _dbus_connection_block_pending_call - checks for
637         an already read reply and updates the dispatch if there is one.
638
639         * test/name-test/test-pending-call-dispatch.c:
640         New test for making sure we don't get stuck polling a 
641         dbus connection which has no data on the socket when
642         blocking out of order on two or more pending calls.
643
644 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
645
646         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
647         make/automake don't detect that we're talking about the same
648         .lo file if I specify the full path to the source files.
649
650 2006-02-26  Havoc Pennington  <hp@redhat.com>
651
652         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
653
654         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
655         session bus variable is unset, suggest "man dbus-launch" and "man
656         dbus-daemon" to figure out how to fix the problem
657
658 2006-02-25  Havoc Pennington  <hp@redhat.com>
659
660         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
661         should make this thing use the new glib options parser
662
663 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
664
665         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
666         .lo files taking moc sources.
667
668 2006-02-25  Havoc Pennington  <hp@redhat.com>
669
670         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
671         and install it as a public header
672
673 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
674
675         * Released 0.61
676
677 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
678         
679         * proxies.py: Fix the callchain
680
681 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
682         
683         * patch from Sjoerd Simons <sjoerd at debian.org>:      
684
685         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
686         dbus/dbus-sysdeps.c
687
688         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
689         call _dbus_group_info_free_allocated which causes infinite loop,
690         correctly call _dbus_group_info_free
691
692 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
693
694         * qt/qdbusinterface_p.h:
695         * qt/qdbusinterface.cpp: Use the standard
696         org.freedesktop.DBus.Method.NoReply annotation for the "async"
697         calls instead of creating one for us.
698
699         * qt/qdbusconnection_p.h:
700         * qt/qdbusintegrator.cpp: Remove debugging code.
701
702         * qt/qdbusintegrator.cpp:
703         * qt/qdbusmessage.cpp:
704         * qt/qdbusmessage_p.h:
705         * qt/qdbusmessage.h: Change the behaviour of automatic
706         reply-sending: now a reply is always sent, unless the caller
707         didn't request one or if the user slot has already sent one.
708
709 2006-02-16  Robert McQueen  <robot101@debian.org>
710
711         * configure.in: Patch from Debian packages by Sjoerd Simons
712         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
713         arguments so it's possible to build both bindings in the
714         same tree.
715
716         * qt/Makefile.am: Fix truncated value so that make dist works.
717
718 2006-02-16  Robert McQueen  <robot101@debian.org>
719
720         * acinclude.m4, configure.in: Patch from Brad Hards
721         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
722         improving quoting, re-ordering a few checks, and a few other
723         aesthetic tidy-ups.
724
725 2006-02-16  Robert McQueen  <robot101@debian.org>
726
727         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
728         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
729         assertion that the next element to read from the iter is fixed in
730         size. This is not the case when you are at the end of the iter,
731         because the next element type is INVALID.
732
733         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
734         a bogus assert which means that you may not initialise a 0-length
735         string unless you provide a non-NULL pointer. This prevented
736         you from marshalling messages containing zero-length arrays in
737         some cases.
738
739         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
740         from Rob to correct bogus asserts when trying to demarshal an
741         array and get_fixed_array got you 0 elements. Append nothing to
742         the GArray in this case.
743
744         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
745         an empty array via the glib bindings. Without all of the above
746         patches, this new test fails.
747
748 2006-02-16  Robert McQueen  <robot101@debian.org>
749
750         * glib/dbus-gmain.c: Make the previous commit compile.
751
752         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
753         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
754         specify sender_keyword="foo", path_keyword="bar" when adding
755         a signal listener, so that you can bind to signals generically
756         but still do something useful in your callback.
757
758         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
759         chars so that they're not cast to chars and made negative. Thanks
760         to Jakub Stachowski for reporting this and testing the fix.
761
762 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
763
764         * dbus/dbus-glib.h:
765         * glib/dbus-gmain.h:
766         (dbus_g_connection_open): new method for openning
767         a connection to an arbitrary address in the glib bindings
768
769         * ChangeLog: checkin last entry which doesn't seem to be commited
770
771 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
772
773         * tools/dbus-launch.c: Fixed sh syntax output
774
775 2006-02-13  Robert McQueen  <robot101@debian.org>
776
777         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
778         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
779         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
780         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
781         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
782         missing piece of the glib bindings jigsaw puzzle. This modifies
783         the existing specialised types to have N type parameters (rather
784         than the current 1 or 2 for arrays and dictionaries respectively).
785         You can then use this to get a glib type to represent any arbitrary
786         D-Bus struct type using dbus_g_type_get_struct. The only
787         implementation of these types is with GValueArrays as before,
788         but it's now possible to store these in arrays, emit them in
789         signals, etc.
790
791 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
792
793         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
794         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
795         <thiago.macieira at trolltech.com>
796
797 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
798
799         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
800         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
801
802 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
803
804         * bus/connection.c (bus_connections_expect_reply): Make
805         pending reply limit not common to all connections (Bug #5416)
806         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
807
808 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
809
810         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
811
812 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
813
814         * gcj/Makefile.am: point to correct jar command (Bug #4529)
815         patch from Doug Goldstein <cardoe at gentoo.org>
816
817 2006-02-09  Joe Shaw  <joeshaw@novell.com>
818
819         * mono/Arguments.cs: Fix a magic number in the mono bindings
820         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
821
822 2006-01-27  Robert McQueen  <robot101@debian.org>
823
824         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
825         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
826         when generating the client-side methods, instead of overloading
827         CSymbol which broke everything horribly. My apologies.
828
829 2006-01-27  Robert McQueen  <robot101@debian.org>
830
831         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
832         by me and Rob Taylor to add a simple_free function to D-Bus map
833         and collection types, which allows those types which can be freed
834         with a GDestroyNotify (such as GHashTables and GArrays, but not
835         GPtrArrays) to be stored as the values in hashtables.
836
837         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
838         Patch by Rob Taylor to add nested dicts to the glib tests to check
839         the above code works, and appears not to leak when called repeatedly.
840
841 2006-01-27  Robert McQueen  <robot101@debian.org>
842
843         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
844         to free a D-Bus allocated string with dbus_free () instead of
845         g_free ().
846
847 2006-01-27  Iain Holmes  <iain@openedhand.com>
848
849         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
850         method from being called multiple times.
851
852 2006-01-19  Robert McQueen  <robot101@debian.org>
853
854         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
855         <rob.taylor@collabora.co.uk> to add support for generating bindings
856         to arrays that are represented as GPtrArrays rather than GArrays (ie
857         size-variable things, such as strings, objects, structs, etc).
858
859 2006-01-05  Robert McQueen  <robot101@debian.org>
860
861         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
862         <ricardo.kekki@movial.fi> to make it possible to inherit from
863         DBusGProxy, by splitting the DBusGProxy struct into a public part and
864         a private part, and moving the setting of the DBusGProxyManager into a
865         connection property, allowing proper GObject construction.
866
867 2006-01-05  Robert McQueen  <robot101@debian.org>
868
869         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
870         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
871         annotations when generating glib client bindings.
872
873 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
874
875         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
876
877         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
878
879 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
880
881         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
882
883 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
884
885         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
886
887 2005-12-19  Ross Burton  <ross@openedhand.com>
888
889         * doc/dbus-tutorial.xml:
890         Document the Glib client-side bindings, and list all possible annotations.
891
892 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
893
894         * dbus/bus.c (dbus_bus_release_name): Add documentation
895
896 2005-12-06  Robert McQueen  <robot101@debian.org>
897
898         * python/service.py: s/sucessful/successful/ so we're allocating to
899         and reading from the same variable. Oops.
900
901 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
902
903         * Released 0.60
904
905 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
906
907         * test/qt/Makefile.am: build from srcdir
908
909         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
910         Note - this code is wrong and needs to be fixed by the Qt binding
911         developers.  The flags should be treated as bitfields and not enums.
912
913         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
914
915 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
916
917         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
918           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
919           in production code
920
921 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
922
923         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
924         method for getting messages off the bus in the absence of a
925         mainloop.  This method is much like 
926         dbus_connection_read_write_dispatch except it does not dispatch
927         the messages to a registered filter function.  Instead it
928         allows a developer to process messages by directly popping
929         them off the bus.
930
931 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
932
933         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
934         the parser to continue instead of returning error
935         (bus_desktop_file_load): Do not free parser data when
936         parse_section_start or parse_key_value fails because it was 
937         already freed by parser_free (patch from Carlos Garcia Campos  
938         <carlosgc at gnome.org>)
939
940 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
941
942         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
943         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
944         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
945         test/test-segfault.c, test/test-utils.c,
946         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
947         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
948         Various cleanup of dead code and compiler warnings (patch from
949         Kjartan Maraas <kmaraas at gnome.org>) 
950
951 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
952
953         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
954         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
955
956 2005-11-27  Robert McQueen  <robot101@debian.org>
957
958         * python/dbus_bindings.pyx: Repair my previous commit which reverted
959         part of the preceding one. Oops. Merge patch by Johan Hedberg
960         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
961         on big-endian platforms.
962
963         * test/python/test-client.py: Add some 16-bit integers to the test
964         values.
965
966 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
967
968         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
969         method return message for property getters
970
971 2005-11-27  Robert McQueen  <robot101@debian.org>
972
973         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
974         with type v of an instance of dbus.Variant(foo, type='x') caused
975         it to be boxed twice before sending over the bus.
976
977         * python/dbus_bindings.pyx, python/service.py,
978         test/python/test-client.py: Update the constants for the new
979         request_name flags, and update comments/test cases now that queueing
980         is the default action.
981
982 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
983
984         * configure.in:
985         - Change version to 0.60 for impending release
986         - upped the sonames because of ABI and API breakage
987
988 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
989
990         * configure.in: Add test/name-test/Makefile to the generated
991         Makefile list
992
993         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
994         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
995         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
996         not to queue an ower if it can't be the primary owner
997
998         * bus/bus.h: Add new internal BusOwner struct
999
1000         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1001         to bus_registry_ensure and don't set the prohibit_replacement flag
1002         since they are now set per BusOwner and not per name.
1003         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1004         that returns the list of connections in a name's connection queue
1005         
1006         * bus/services.c (struct BusService): remove prohibit_replacement field
1007         (struct BusOwner): new struct for keeping track of queued connections
1008         and their associated flags for the queue
1009         (struct BusRegistry): add a BusOwner memory pool
1010         (bus_registry_new): initialize the BusOwner memory pool
1011         (bus_registry_unref): free the BusOwner memory pool
1012         (_bus_service_find_owner_link): new internal method for
1013         searching the queue for a specific connection
1014         (bus_owner_set_flags): new method for adding setting the flags on a
1015         bus owner
1016         (bus_owner_new): new method that creates a BusOwner object from the
1017         pool and sets its flags
1018         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1019         (bus_registry_ensure): Add the flags parameter
1020         (bus_registry_acquire_service): Switch from using raw connections to
1021         using the BusOwner struct
1022         Add new state machine for dealing with the new set of flags
1023         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1024         cancel_ownership, free_ownership_cancel_data, 
1025         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1026         restore_ownership, free_ownership_restore_data, 
1027         add_restore_ownership_to_transaction): Switch to using BusOwner 
1028         instead of raw connections
1029         (bus_service_add_owner): Add flags parameter
1030         Switch to using BusOwner instead of raw connections
1031         Add state machine for dealing with the new set of flags
1032         (bus_service_swap_owner): Swaps the first and second owners in the
1033         queue.  Used to make sure proper signals are sent when a service looses 
1034         or gains primary ownership.  We never insert an owner at the top of the
1035         queue.  Instead we insert it in the second position and then swap.
1036         (bus_service_remove_owner): Remove the owner from the queue sending
1037         out the NameLost and NameOwnerChanged signals if the we were the 
1038         primary owner
1039         (bus_service_get_primary_owners_connection): New method that extracts
1040         the connection from the primary owner
1041         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1042         connection
1043         (bus_service_get_allow_replacement): Changed from the old 
1044         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1045         primary owner and returns if it can be replaced or not
1046         (bus_service_set_prohibit_replacement): removed
1047         (bus_service_has_owner): returns TRUE if and owner with
1048         the specified connection exists in the queue
1049         
1050         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1051         method that only compiles if tests are enabled.  Allows us to get the 
1052         unique name of a connection so we can check it against the queue when
1053         doing regression tests
1054
1055         * bus/activation.c (bus_activation_send_pending_auto_activate),
1056         bus/dispatch.c (bus_dispatch),  
1057         bus/driver.c (bus_driver_handle_get_service_owner, 
1058         bus_driver_handle_get_connection_unix_user, 
1059         bus_driver_handle_get_connection_unix_process_id,
1060         bus_driver_handle_get_connection_selinux_security_context),
1061         bus/signals.c (connection_is_primary_owner): 
1062         use bus_service_get_primary_owners_connection instead of
1063         bus_service_get_primary_owner
1064
1065         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1066         _dbus_listen_unix_socket): Calculate the length of the socket
1067         path and use that instead of using a fixed length which was
1068         causing socket names to contain many trailing Nul bytes.
1069
1070         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1071         (dbus_g_method_get_sender): New method for extracting the sender 
1072         from a DBusGMethodInvocation
1073         (dbus_g_method_return_get_reply): changed name to 
1074         dbus_g_method_get_reply
1075         (dbus_g_method_return_send_reply): changed name to
1076         dbus_g_method_send reply
1077
1078         * doc/dbus-specification.xml: New docs that describe how the new
1079         queueing system works and talks about the changes to the how
1080         we specify socket names
1081
1082         * glib/examples/example-service.c, 
1083         glib/examples/example-signal-emitter.c,
1084         glib/examples/statemachine/statemachine-server.c:
1085         Changed the RequestName flags to the new system
1086
1087         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1088         regression test suite for testing various states of the new
1089         queueing system
1090         
1091 2005-11-15  Robert McQueen  <robot101@debian.org>
1092
1093         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1094         Taylor to add two methods, dbus_g_method_return_get_reply and
1095         dbus_g_method_return_send_reply, to allow you to get the reply
1096         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1097         and send it. The GLib bindings can't marshal a return value of
1098         something like a(s) if the array is empty - ultimately they should be
1099         made to heed the signature of the out arguments as the Python bindings
1100         now can, but this is a workable interim solution which might have
1101         other applications.
1102
1103 2005-11-15  Robert McQueen  <robot101@debian.org>
1104
1105         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1106         method to org.freedesktop.DBus to release a bus name or give up
1107         waiting in the queue for it.
1108
1109         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1110         dbus_bus_release_name method to send the ReleaseName method calls.
1111         Add constants for the return values to dbus/dbus-shared.h.
1112
1113         * doc/dbus-specification.xml: Document the new ReleaseName method
1114         in the specification.
1115
1116         * python/dbus_bindings.pyx: Add a low-level python binding for the
1117         release name method.
1118
1119         * python/exceptions.py, python/service.py: Make freeing BusName
1120         objects release the name. Add a NameExistsException, and fix a
1121         bug with creating UnknownMethodException.
1122
1123         * test/python/test-client.py: Add tests for freeing BusName
1124         objects causing names to be released.
1125
1126 2005-11-14  Robert McQueen  <robot101@debian.org>
1127
1128         * python/service.py: Include the traceback in the error reply when we
1129         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1130
1131 2005-11-14  David Zeuthen  <davidz@redhat.com>
1132
1133         Patch from Timo Hoenig <thoenig@suse.de>.
1134
1135         * bus/bus.c: I've recently investigated why the automatic reload
1136         of configuration files does not work as expected.
1137
1138         Currently, reloading configuration files does only work when
1139         running dbus-daemon with --nodaemon.  If we are running as daemon
1140         we're hitting a dnotify bug once we fork the process.
1141
1142         We're initializing the dnotify fds before calling fork().  Once
1143         the child process forked it does still have the fds (and they
1144         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1145         getting SIGIO as changes are made to the configuration files.
1146
1147         The attached patch moves the initialization of the dnotify fds to
1148         process_config_postinit().  This is safe for all current code
1149         paths and solves the dnotify disfunction.  If we're running
1150         dbus-daemon as daemon the fds for dnotify are now being
1151         initialized after fork() for the child process.
1152
1153         * configure.in: The current configure.in check for dnotify probes
1154         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1155         match for 'xlinux', too. Additionally I have adapted the configure
1156         option's style to match with the others.
1157
1158 2005-11-14  Robert McQueen  <robot101@debian.org>
1159
1160         * python/decorators.py, python/service.py: Add a new argument to the
1161         dbus.service.method decorator called sender_keyword, which if set,
1162         specifies the name of an argument which will be provided the bus
1163         name of the method caller.
1164
1165         * test/python/test-client.py, test/python/test-service.py: Add a
1166         method and test to check the sender_keyword functionality.
1167
1168 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1169
1170         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1171         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1172         Simons <sjoerd at luon.net>)
1173
1174         * AUTHORS: Add Robert McQueen for his work on the Python
1175         Bindings and other parts of D-Bus
1176
1177 2005-11-07  Robert McQueen  <robot101@debian.org>
1178
1179         * python/decorators.py: Change emit_signal function to use the
1180         signature annotation of the signal when marhsalling the arguments from
1181         the service. Fix a bug where the code checking signature length
1182         against argument length referenced the wrong variable.
1183
1184         * python/introspect_parser.py: Avoid adding the type signature of
1185         signal arguments to any methods which occur after them in the
1186         introspection data (!) by making the parser a little more careful
1187         about its current state.
1188
1189         * python/service.py: Remove debug prints from last commit (again :D).
1190
1191         * test/python/test-client.py, test/python/test-service.py: Add test
1192         signals with signature decorators to test the strict marshalling code
1193         gives errors at the right time. Could do with checking the signals
1194         actually get emitted too, given that the test does nothing with
1195         signals at the moment...
1196
1197 2005-11-07  Robert McQueen  <robot101@debian.org>
1198
1199         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1200         instances to stop madness of creating new instances representing
1201         the same bus connection all the time, rendering any tracking of
1202         match rules and bus names quite meaningless. Caught a bug where
1203         the private argument to SessionBus() and friends was being passed
1204         in as use_default_mainloop by mistake. Still some problems with
1205         multiple dbus_binding.Connection instances representing the same
1206         low-level connection (eg when you use both SessionBus() and
1207         StarterBus() in same process), but it's a lot better now than it
1208         was.
1209
1210         * python/dbus_bindings.pyx: Add constants with the return values
1211         for bus_request_name().
1212
1213         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1214         and retrieve the same instances for the same name, so deletion can be
1215         done with refcounting. Also now throws some kind of error if you
1216         don't actually get the name you requested, unlike previously...
1217
1218         * test/python/test-client.py: Add tests for instance caching of buses
1219         and bus name objects.
1220
1221 2005-11-04  Robert McQueen  <robot101@debian.org>
1222
1223         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1224         marshalling of boolean values. Add some booleans to the values in
1225         the test client.
1226
1227         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1228         argument to the dbus.service.method decorator, which allows you to
1229         name arguments to take two callback functions for replying with
1230         return values or an exception.
1231
1232         * test/python/test-client.py, test/python/test-service.py: Add test
1233         case using asynchronous method reply functions, both return values and
1234         errors, and from within both the function itself and from a mainloop
1235         callback.
1236
1237         * python/decorators.py, python/service.py: Perform checking that the
1238         number of method/signal arguments matches the number of types in the
1239         signature at class loading time, not when you first introspect the
1240         class.
1241
1242         * python/service.py: Remove debug print left by the last commit.
1243
1244 2005-11-03  Robert McQueen  <robot101@debian.org>
1245
1246         * python/service.py: Heavy refactoring of method invocation, with
1247         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1248         in favour of a new _message_cb that uses seperate functions for
1249         looking up the method to call, marshalling the return values, and
1250         sending exceptions as errors, and is easier to follow as a
1251         consequence.  Fixes some corner cases about returning things that
1252         don't match your declared out_signature, allows exceptions to define
1253         _dbus_error_name and have it be sent over the bus as the error name,
1254         and paves the way for cool stuff like heeding the message no reply
1255         flag, asynchronous method implementations, informing the method of the
1256         sender, and including backtraces in the error messages.
1257
1258         * test/python/test-client.py: Catch and print exceptions thrown in the
1259         async callback tests, rather than passing them to the low-level
1260         bindings to be ignored in a noisy and frustrating manner.
1261
1262 2005-11-03  Robert McQueen  <robot101@debian.org>
1263
1264         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1265         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1266         tweak others to be consistent.
1267
1268         * test/python/test-client.py: Tweak output of testInheritance.
1269
1270 2005-10-29  Robert McQueen  <robot101@debian.org>
1271
1272         * python/service.py: Major changes to allow multiple inheritance
1273         from classes that define D-Bus interfaces:
1274         
1275          1. Create a new Interface class which is the parent class of
1276             Object, and make the ObjectType metaclass into InterfaceType.
1277         
1278          2. Patch written with Rob Taylor to replace use of method_vtable
1279             with code that walks the class's __MRO__ (method resolution order)
1280             to behave like Python does when invoking methods and allow
1281             overriding as you'd expect. Code is quite tricky because
1282             we have to find two methods, the one to invoke which has the
1283             right name and isn't decorated with the /wrong/ interface,
1284             and the one to pick up the signatures from which is decorated
1285             with the right interface.
1286         
1287             The same caveats apply as to normal multiple inheritance -
1288             this has undefined behaviour if you try and inherit from two
1289             classes that define a method with the same name but are
1290             decorated with different interfaces. You should decorate
1291             your overriding method with the interface you want.
1292         
1293          3. Replace grungy introspection XML generation code in the metaclass
1294             with dictionaries that cope correctly with multiple inheritance
1295             and the overriding of methods. This also uses the signature
1296             decorations to provide correct introspection data, including
1297             the debut appearance of the types of your return values. :D
1298
1299         * test/python/test-client.py, test/python/test-service.py: Add a test
1300         case to try invoking an method that overrides one inherited from a
1301         D-Bus interface class.
1302
1303 2005-10-29  Robert McQueen  <robot101@debian.org>
1304
1305         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1306         Add checking for the end of struct character when marshalling a
1307         struct in MessageIter.append_strict.
1308
1309         * python/examples/example-service.py,
1310         python/examples/gconf-proxy-service.py,
1311         python/examples/gconf-proxy-service2.py: Update to use gobject
1312         mainloop directly rather than appearing to depend on gtk.
1313
1314         * python/test/test-client.py, python/test/test-server.py: Remove
1315         obsolete and broken test scripts for old bindings. We have up to date
1316         and working tests in test/python/.
1317
1318 2005-10-29  Robert McQueen  <robot101@debian.org>
1319
1320         * python/decorators.py: Add optional arguments to the method and
1321         signal decorators to allow you to specify the signature of arguments
1322         and return values. Preserve the doc strings of signal functions in the
1323         decorated version, for pydoc and friends.
1324
1325         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1326         parse_signature_block function with an iterable dbus.Signature()
1327         type. Fix a bug in MessageIter.append_strict where you could append
1328         anything by claiming it was a string.
1329
1330         * python/service.py: Use the out_signature decoration on methods to
1331         marshal return values, meaning you no longer require dbus.Array()
1332         or dbus.Dictionary() to indicate the type when returning empty
1333         arrays or dictionaries. Fix a bug where exceptions which are defined
1334         in __main__ are not turned into error replies.
1335
1336         * test/python/test-client.py, test/python/test-service.py: Add test
1337         for correct marshalling of return values according to out_signature.
1338         Fix a bug in the async call test where the error_handler is missing a
1339         self argument.
1340
1341 2005-10-29  Robert McQueen  <robot101@debian.org>
1342
1343         * glib/Makefile.am, glib/examples/Makefile.am,
1344         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1345         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1346
1347         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1348
1349         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1350         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1351         the command line.
1352
1353 2005-10-27  Ross Burton  <ross@openedhand.com>
1354
1355         * dbus/dbus-marshal-header.c:
1356         Remove dead code.
1357
1358         * glib/dbus-gobject.c:
1359         Stop compiler warning.
1360
1361 2005-10-25  Ross Burton  <ross@openedhand.com>
1362
1363         * dbus/dbus-auth.c:
1364         * dbus/dbus-server-unix.c:
1365         * dbus/dbus-transport-unix.c:
1366         * glib/dbus-gmain.c:
1367         * glib/dbus-gobject.c:
1368         Add some const keywords.
1369
1370 2005-10-25  Ross Burton  <ross@openedhand.com>
1371
1372         * doc/dbus-specification.xml:
1373         Document the NoReply annotation.
1374
1375         * glib/dbus-binding-tool-glib.h:
1376         * glib/dbus-binding-tool-glib.c:
1377         Respect the NoReply annotation.
1378
1379 2005-10-24  Robert McQueen <robot101@debian.org>
1380
1381         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1382         derive from unicode instead of str, and encode/decode UTF-8 when
1383         marshalling/unmarshalling bus messages
1384
1385         * python/introspect_parser.py: encode introspection data as UTF-8
1386         before passing the buffer into libxml2
1387
1388         * test/python/test-client.py: add unicode test strings
1389
1390         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1391         ignore generated python test files
1392
1393 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1394
1395         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1396         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1397         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1398
1399         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1400         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1401         when constructing struct signatures
1402
1403         * python/_dbus.py (Bus): handle private connections using the
1404         private keyword in the constructor. defaults to private=False
1405         (Bus::close): new method to close a connection to the bus
1406
1407         * python/dbus_bindings.pyx (Connection::close): renamed method
1408         was previously called disconnect
1409         (bus_get): now supports getting a private connection
1410
1411         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1412         keyword is set to True.  if it is, execute the method without waiting
1413         for a reply
1414         (ProxyObject::_introspect_execute_queue): new method for executing
1415         all the pending methods that were waiting for the introspect to
1416         finish.  this is called when introspect either succeeds or fails
1417         (ProxyObject::_introspect_error_handler): call queued methods
1418
1419 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1420
1421         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1422         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1423
1424         * python/service.py (Object::_message_cb): handle exceptions correctly
1425         by sending them over the wire to the calling app.  This makes sure
1426         the client returns immediately instead of waiting the 15 seconds to
1427         timeout.
1428
1429         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1430         Add a test to benchmark how long it takes to introspect a service and 
1431         call a method which returns a large element (pretty fast)
1432
1433         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1434         method which pushes a lot of data
1435
1436 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1437
1438         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1439         reclaim memory outside of the loop and use del istead of just setting
1440         the key to None
1441
1442 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1443
1444         * python/service.py (ObjectType::_reflect_on_signal): Always close
1445         signal tag even when there are no arguments
1446
1447 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1448
1449         * configure.in: Set mono, mono-docs and Qt3 to default
1450         to no instead of auto when building.  These bindings do not
1451         have full time maintainers and will not be supported for the
1452         1.0 release.
1453
1454 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1455
1456         patches from Michael Krivoruchko <misha at sun.com>: 
1457         
1458         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1459         _dbus_connection_message_sent, 
1460         _dbus_connection_send_preallocated_unlocked_no_update, 
1461         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1462         is NULL when calling _dbus_verbose
1463
1464         * configure.in: check for functions getpeerucred and getpeereid
1465
1466         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1467         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1468         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1469         Patch was only tested on Solaris 10 x86 so it might be issues
1470         with other platforms (i.e. BSDs and MacOSX)
1471         
1472
1473 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1474
1475         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1476         instead of marshal basic so we can handle recursive types in a variant
1477
1478         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1479         in variants
1480
1481         * test/glib/test-service-glib.c, test-service-glib.xml
1482         (my_object_echo_variant [EchoVariant], 
1483         my_object_process_variant_of_array_of_ints123
1484         [ProcessVariantOfArrayOfInts123]): 
1485         Add two test methods
1486
1487         * python/introspect_parser.py: New module for parsing introspect
1488         data.
1489
1490         * python/dbus_bindings.pyx:
1491         (various places): when throwing errors fix to use errormsg instead 
1492         of message local variable because Pyrex can get confused with other 
1493         message variables (initial patch by Robert McQueen 
1494         <robert.mcqueen at collabora.co.uk>)
1495         (MessageIter::parse_signature_block): new method for getting the next
1496         block in a signiture.
1497         (MessageIter::append_strict): new method for appending values strictly
1498         using the passed in signature instead of guessing at the type
1499         (MessageItter:: append_dict, append_struct, append_array): use 
1500         signatures to marshal children if the signature is available
1501         
1502         * python/exceptions.py (IntrospectionParserException): new exception
1503
1504         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1505         introspected signatures if available, else we fall back to the
1506         old way of doing things.
1507         (ProxyObject::_introspect_reply_handler ): parse introspection data
1508         
1509         * python/service.py (ObjectType::_reflect_on_method): Properly
1510         terminate <method> if there are no args in the reflection data
1511
1512         * test/python/test-client.py: add tests for talking with the GLib
1513         test server.  This gives us better coverage for introspection since
1514         python to python will always generate arguments as variants.  It also
1515         allows us to test the robustness of the GLib bindings and interlanguage
1516         communications.
1517
1518         
1519 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1520
1521         * bus/driver.c (bus_driver_handle_introspect): Add signals
1522         to the introspect data. (patch from Daniel P. Berrange 
1523         <dan at berrange.com>)
1524
1525         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1526         
1527         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1528         _dbus_connection_run_builtin_filters): Changed these to
1529         be unlock_no_update functions and call 
1530         _dbus_connection_send_unlocked_no_update instead of
1531         dbus_connection_send to avoid locking errors.
1532         
1533         * doc/TODO: Removed the make Ping test TODO
1534         
1535 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1536
1537         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1538         We now copy the message from a DBusError and then free 
1539         the error object befor throwing the error
1540
1541         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1542         DBusBindingOutputMode enum which was causing a warning.
1543         #include <time.h> so using time_t is explicitly defined
1544
1545 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1546
1547         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1548         - dbus/dbus-bus.c
1549         (internal_bus_get): new method that take over the heavy lifting
1550         of dbus_bus_get and adds the ability to get a private connection
1551         to the bus
1552         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1553         interface as in previous versions
1554         (dbus_bus_get_private): new method that is a wrapper to 
1555         internal_bus_get to get a private connection to the bus
1556
1557         - dbus/dbus-bus.h
1558         (dbus_bus_get_private): add as a public libdbus interface
1559
1560         - dbus-1.pc.in: output system_bus_default_address and 
1561         sysconfdir variables so apps can use them when compiling
1562
1563 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1564         * dbus/qt: New Qt bindings
1565
1566 2005-09-12  Waldo Bastian  <bastian@kde.org>
1567
1568         * dbus/dbus-marshal-validate.c,
1569         doc/dbus-specification.xml, test/Makefile.am,
1570         test/test-names.c: allow hyphens in bus names.
1571
1572 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1573
1574         * test/data/auth/fallback.auth-script: we don't
1575         retry the EXTERNAL method when we know its going
1576         to fail anymore.
1577
1578 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1579
1580         * dbus/dbus-connection-internal.h: rename
1581         (add|remove|toggle)_(watch|timeout) to unlocked()
1582         
1583         * dbus/dbus-connection.c: ditto.
1584         
1585         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1586         Update some callers for the renaming.
1587
1588 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1589
1590         * dbus/dbus-auth.c: (record_mechanisms): don't
1591         retry the first auth mechanism because we know
1592         we're just going to get rejected again.
1593         
1594         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1595         Fix thinko ... and what a nasty little bugger to
1596         track down you were ...
1597
1598         * dbus/dbus-connection.c:
1599         (_dbus_connection_add_watch),
1600         (_dbus_connection_remove_watch): add note about
1601         these needing the connection to be locked.
1602         (_dbus_connection_get_dispatch_status_unlocked):
1603         set status to DATA_REMAINS when we queue the
1604         disconnected message.
1605         
1606         * bus/dispatch.c:
1607         (bus_dispatch): fix warning.
1608         (check_existent_service_no_auto_start):
1609         Expect ChildSignaled error too.
1610         (check_existent_hello_from_self): fix another
1611         couple of warnings.
1612         
1613 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1614
1615         Patches from James Willcox <snorp@snorp.net>
1616
1617         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1618
1619         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1620         support array "out" parameters.
1621
1622         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1623         for 16-bit int support.
1624
1625 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1626
1627         * Released 0.50
1628
1629         * Patch from Steve Grubb:
1630         - bus/activation.c (bus_activation_service_reload_test): clean up
1631         some indentation
1632         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1633         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1634         buffer overflows in the test suite.  This is non critical because
1635         it can not be exploited and this code is only run when doing a 
1636         make check.
1637
1638         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1639         - configure.in: Don't check and link against kdecore, only qt headers
1640         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1641         - gcj/org/freedesktop/dbus/Makefile.am:
1642         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1643         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1644         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1645         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1646         - tools/Makefile.am: Add platform extentions to binaries 
1647         (i.e. .exe on windows)
1648
1649         * configure.in: 
1650         - Make it so if no suitable version of python is found we only 
1651         disable building python instead of exiting the configure script
1652         - Require version 2.4 of glib for glib bindings
1653         - Up version to 0.50
1654
1655         * python/__init__.py: Sync version with libdbus to (0,50,0)
1656         
1657 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1658
1659         * dbus/dbus-object-tree.c (find_subtree_recurse):
1660         a couple of optimizations (bug #710):
1661         - do a binary search in the tree
1662         - insert a new child at the right place directly, no need for
1663           qsort anymore
1664         - do the "double alloc" thing when allocating children
1665
1666 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1667
1668         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1669
1670         * python/dbus_bindings.pyx: Memory management foo
1671         (global): remove hacky _user_data_references global list
1672         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1673         tuples. Unref user_data
1674         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1675         (Connection::__del__): Remove and replace with __dealloc__ method
1676         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1677         to keep tuple from being deallocated instead of the global var hack
1678         (Connection::register_object_path): Stuff user_data into a tuple.
1679         Use Py_INCREF to keep tuple from being deallocated instead of the 
1680         global var hack
1681         (Connection::register_fallback): Stuff user_data into a tuple.
1682         Use Py_INCREF to keep tuple from being deallocated instead of the 
1683         global var hack
1684         (GIL_safe_pending_call_notification): Don't unref the message
1685         because it gets unreffed when going out of scope.  Py_XDECREF
1686         the user_data
1687         (PendingCall::__del__): Remove and replace with __dealloc__ method
1688         (PendingCall::set_notify): ref the pending call because we will
1689         need it to stick around for when the notify callback gets called
1690         (Message::__del__): Remove and replace with __dealloc__ method
1691
1692         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1693         gthreads_init to match up with the dbus call
1694
1695         * python/glib.py (init_threads): Changed to threads_init to match
1696         up with gobject.threads_init().  init_threads is kept for backwards
1697         compat but will most likely be deprecated in the future
1698
1699         * test/python/test-client.py: 
1700         - revamp to use Python's unittest functionality
1701         - add async call tests
1702         - setup threads in glib and dbus so we make sure locks are working
1703         
1704 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1705
1706         * python/dbus_bindings.pyx 
1707         (_pending_call_notification, cunregister_function_handler, 
1708         cmessage_function_handler): All callback functions have been rearranged 
1709         to workaround a bug in Pyrex when working with the GIL which is Python's 
1710         global lock when dealing with threads.  They have been split into
1711         a wrapper function (which assumes the name of the old function) and
1712         a _GIL_safe_<function name> function which contains the functionality
1713         of the old function.  This ensures that Pyrex does not write code
1714         the lock is released.
1715         
1716
1717 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1718
1719         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1720         GIL global lock when calling back into Python
1721
1722 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1723
1724         * Release 0.36.2
1725
1726         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1727
1728         * bus/policy.c (bus_policy_allow_user): change default "user is
1729         allowed" to be "user has same uid as the bus itself"; any
1730         allow/deny rules will override.
1731
1732         * bus/session.conf.in: don't allow all users, since now by default
1733         the user that ran the bus can connect.
1734
1735 2005-08-26  Colin Walters  <walters@verbum.org>
1736
1737         * tools/dbus-print-message.c (print_message): Flush stdout
1738         after printing a message, so that redirecting to a file, then
1739         hitting Ctrl-C works.
1740
1741 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1742
1743         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1744         (EmptyMessage): new class that subclasses Message.  This is a workaround
1745         to a Pyrex bug that fails to call __del__ when the Message object goes out
1746         of scope.  For some reason subclassing Message fixes this bug
1747         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1748         - s/Message(_create=0)/EmptyMessage everywhere else
1749         
1750         * test/python/test-{server|client}.py: add the python/.libs directory
1751         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1752         get picked up from the system
1753
1754 2005-08-25  Colin Walters  <walters@verbum.org>
1755
1756         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1757         to Ryan Lortie for the suggestion.
1758
1759 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1760
1761         * test/python: Add python regression test
1762
1763         * configure.in: Add test/python/Makefile
1764
1765         * test/Makefile.am: Add the python directory to SUBDIRS
1766
1767 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1768
1769         * Release 0.36.1
1770
1771         * python/_dbus.py: 
1772         (Interface::connect_to_signal): propigate keywords for match on args
1773         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1774
1775         * python/proxies.py (ProxyObject::connect_to_signal):
1776         propigate keywords for match on args
1777
1778         * Makefile.am: point everything to pyexecdir since python borks
1779         on multilib
1780
1781 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1782
1783         * Release 0.36
1784
1785 2005-08-23  Colin Walters  <walters@verbum.org>
1786
1787         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1788
1789 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1790
1791         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1792         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1793         of defining DBusConnection ourselves.
1794
1795 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1796
1797         * python/dbus.pth: New path file to fix up problems when installing
1798         c libraries to lib64 and python files to lib.
1799
1800         * python/Makefile.am: install dbus.pth in the correct spot
1801
1802 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1803         * ChangeLog: clean up my last entry a bit
1804
1805         * doc/introspect.xsl: New stylesheet for converting introspection data
1806         into browser renderable xhtml. Contributed by Lennart Poettering.
1807
1808         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1809         Poettering.
1810
1811         * doc/dbus-tutorial.xml: 
1812         - Add Colin Walter to the Authors section for authoring the GLib
1813         section
1814         - Add descriptions of the new signature and type functionality
1815         in the Python complex type mapping section
1816         - Add a sidenote on the new args matching functionality in 
1817         the Python bindings
1818         - Fixed up some of the examples to use the gobject.MainLoop
1819         instead of gtk.main
1820         
1821         * python/_dbus.py:
1822         (Bus::_create_args_dict): New. Converts a hash of arg matches
1823         to a more useable format
1824         (Bus::add_signal_receiver): add a **keywords parameter for catching
1825         arg match parameters
1826         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1827         arg match parameters
1828         
1829         * python/matchrules.py:
1830         (MatchTree::exec_matches): Check for arg matches
1831         (SignalMatchRule::add_args_match): New method
1832         (SignalMatchRule::execute): Added args_list parameter as an optimization
1833         so we don't have to marshal the args more than once
1834         (SignalMatchRule::match_args_from_list): New method that checks to see
1835         if the rule's arg matches match an argument list.  Only arguments
1836         set in the rule are checked.
1837         (SignalMatchRule::match_args_from_rule): New method that checks to see
1838         if the rule's arg matches match another rule's.  All args have to match
1839         in order for this method to return true.  If either rule has more args
1840         then it is not a match.
1841         (SignalMatchRule::is_match): Add args match
1842         (SignalMatchRule::repr): Add args to the final output if they exist
1843
1844 2005-08-17  Ross Burton  <ross@burtonini.com>
1845
1846         * glib/dbus-gproxy.c:
1847         (dbus_g_proxy_call_no_reply): unref the message once sent.
1848         (dbus_g_proxy_call): protect against NULL proxy.
1849
1850 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1851
1852         * python/__init__.py: Version updated (0, 43, 0)
1853         
1854         * python/dbus_bindings.pyx: 
1855         - Fixed type objects to have self passed into __init__
1856         - Added the Variant type
1857         - Add the ability to specify types or signatures for Array, Variant 
1858         and Dictionary
1859         (Connection::send_with_reply_handlers): return a PendingCall object
1860         (_pending_call_notification): handle the case when an error is returned 
1861         without an error message in the body
1862         (MessageIter::get_boolean): return True or False instead of an integer
1863         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1864         and add checks for objects with embeded signatures or types (Array, 
1865         Variant and Dictionary)
1866         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1867         (MessageIter::append_dict): handle embeded types or signatures
1868         (MessageIter::append_array): handle embeded types or signatures
1869         (MessageIter::append_variant): new method
1870         
1871         * python/proxies.py:
1872         (DeferedMethod): New. Dummy executable object used when queuing calls 
1873         blocking on introspection data
1874         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1875         or shorter timeouts for method calls
1876         (ProxyObject): Add first pass at an introspection state machine
1877         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1878         introspection. 
1879         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1880         the usual mechanisms for sending messages.  This is to avoid a deadlock
1881         where the Intospect call would be queued waiting for the Introspect 
1882         call to finish ;-)
1883         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1884         when introspection returns with no error
1885         (ProxyObject::_introspect_error_handler): New.  This method is called 
1886         when introspection encounters an error
1887         (ProxyObject::__getattr__): Code to handle different introspection 
1888         states.  Queue async calls or block blocking calls if we are 
1889         introspecting.  Pass through as normal if we are not or are done with 
1890         introspecting.
1891         
1892         * python/service.py: Import signal and method from decorators.py
1893
1894         * python/types.py: Add Variant type
1895
1896 2005-08-16  Colin Walters  <walters@verbum.org>
1897
1898         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1899         DBusError message is NULL.
1900
1901 2005-08-09  Havoc Pennington  <hp@redhat.com>
1902
1903         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1904         malloc'd copy of the name parameter
1905
1906 2005-08-09  Havoc Pennington  <hp@redhat.com>
1907
1908         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1909         warning if the reply serial is set to 0
1910
1911 2005-08-04  Colin Walters  <walters@verbum.org>
1912
1913         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1914         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1915         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1916         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1917         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1918         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1919         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1920         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1921         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1922         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1923         
1924         Prefix name with _ to ensure they're not exported.  All callers
1925         updated.
1926
1927         * glib/dbus-gvalue.c (typecode_to_gtype)
1928         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1929         (signature_iter_to_g_type_dict)
1930         (signature_iter_to_g_type_array)
1931         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1932         (dbus_gtypes_from_arg_signature):
1933         Move to dbus-gsignature.c.
1934
1935         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1936         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1937         (dbus_binding_tool_output_glib_client): Ditto.
1938
1939         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1940         and dbus-gsignature.h
1941
1942         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1943         unused variable.
1944
1945 2005-08-03  Colin Walters  <walters@verbum.org>
1946
1947         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1948         catch any incompatible changes accidentally made.
1949
1950 2005-08-03  Havoc Pennington  <hp@redhat.com>
1951
1952         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1953         typo, from Julien Puydt
1954
1955         * bus/connection.c (bus_connection_disconnected): we were always
1956         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1957
1958 2005-08-01  Colin Walters  <walters@verbum.org>
1959
1960         Patch from Joe Markus Clarke:   
1961         
1962         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1963         use-after-free.
1964
1965 2005-08-01  Colin Walters  <walters@verbum.org>
1966         
1967         Patch from Joe Markus Clarke:   
1968         
1969         * tools/dbus-send.c (main): 
1970         
1971         Don't use C99 style initializers (bug #3933).
1972         
1973 2005-08-01  Colin Walters  <walters@verbum.org>
1974
1975         Patch from Joe Markus Clarke:   
1976
1977         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1978         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1979         * glib/dbus-gobject.c (write_interface):
1980
1981         Don't use C99 style initializers (bug #3933).
1982
1983 2005-07-31  Havoc Pennington  <hp@redhat.com>
1984
1985         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1986         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1987
1988 2005-07-30  Havoc Pennington  <hp@redhat.com>
1989
1990         * fix a bunch of Doxygen warnings and mistakes
1991
1992 2005-07-30  Havoc Pennington  <hp@redhat.com>
1993
1994         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1995         DBUS_BUILD_TESTS since it's now used in production code
1996
1997 2005-07-29  Havoc Pennington  <hp@redhat.com>
1998
1999         * test/glib/test-profile.c (write_junk): initialize the junk
2000         buffer so valgrind doesn't have a breakdown
2001
2002 2005-07-29  Havoc Pennington  <hp@redhat.com>
2003
2004         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2005         (match_rule_matches): remove unused arg
2006         (test_matching): add tests for match_rule_matches()
2007
2008         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2009         do arg0='foo' arg5='bar' in the match rules
2010         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2011
2012         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2013
2014 2005-07-29  Ross Burton  <ross@openedhand.com>
2015
2016         * dbus/dbus-connection.c:
2017         Don't create a DBusCondVar which is never used.
2018
2019 2005-07-27  Ross Burton  <ross@openedhand.com>
2020
2021         * dbus/dbus-message.c:
2022         Reduce the size of the maximum cached message to 10K.
2023
2024 2005-07-25  Ross Burton  <ross@openedhand.com>
2025
2026         * glib/dbus-gproxy.c:
2027         Remove matches when all proxies are unregistered.
2028
2029 2005-07-24  Colin Walters  <walters@verbum.org>
2030
2031         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2032         typedata; recursive arrays won't have it.
2033
2034         * test/glib/test-dbus-glib.c:
2035         * test/glib/test-service-glib.c:
2036         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2037         
2038 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2039
2040         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2041         proxies.py, service.py: Cleanup of code after running it through the
2042         pyflakes code checker mostly dealing with undefined names.  
2043         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2044
2045 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2046
2047         * NEWS: Update to 0.35.2
2048
2049 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2050
2051         * python/_dbus.py: Remove import of the dbus.services
2052         module as it no longer exists (patch from Dimitur Kirov)
2053
2054         * python/service.py (Object::__init__): Fixed typo
2055         s/name/bus_name (patch from Dimitur Kirov)
2056
2057         * python/examples/example-signal-emitter.py: import dbus.glib
2058         to get the main loop and use glib mainloop instead of gtk so
2059         X doesn't have to be running.
2060
2061         * python/examples/example-signal-recipient.py: import dbus.glib
2062         to get the main loop and use glib mainloop instead of gtk so
2063         X doesn't have to be running. Import the decorators module
2064         directly.
2065
2066         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2067         didn't pick up on but are needed to build
2068
2069         * configure.in: upped version to 0.35.2
2070
2071         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2072         added Colin Walters' SELinux API rename patch from head 
2073         s/unix sercurity context/selinux security context/
2074
2075 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2076
2077         * python/Makefile.am: dbus_binding.pxd.in should be included 
2078         in EXTRA_DIST not dbus_binding.pxd
2079         fix up $(srcdir) hopefully for the last time
2080
2081         * NEWS: Update to 0.35.1
2082
2083 2005-07-16  Colin Walters  <walters@verbum.org>
2084
2085         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2086         from bus_driver_handle_get_connection_unix_security_context.  Update for
2087         error usage.
2088         (message_handlers): Update for renames.
2089
2090         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2091         _dbus_string_init failure correctly.
2092         (bus_selinux_append_context): Convert SID to context.  Append it
2093         as a byte array.
2094         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2095         hasn't been called.
2096
2097         * bus/selinux.h: Update prototype.
2098
2099         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2100         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2101
2102 2005-07-15  Colin Walters  <walters@verbum.org>
2103
2104         * doc/TODO: Add note about convenience wrappers.
2105
2106 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2107
2108         * NEWS: Update to 0.35
2109
2110 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2111
2112         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2113         so distcheck doesn't fail
2114
2115         * glib/examples/Makefile.am: Add example-service.xml and 
2116         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2117
2118         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2119         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2120
2121         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2122         compiler looks in the right places during distcheck
2123
2124 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2125
2126         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2127         to fail
2128
2129 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2130
2131         * python/examples/example-service.py,
2132         python/examples/example-signal-emitter.py: Fixed up examples
2133         for API changes
2134
2135 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2136
2137         * python/__init__.py: Upped to version (0,42,0) because of
2138         the API change
2139
2140 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2141
2142         * ChangeLog: fix date in last entry
2143
2144         * configure.in, bus/system.conf.in: add the ability to configure 
2145         the system bus user at compiletime with the --with-dbus-user flag
2146         (patch from Kristof Vansant)
2147
2148 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2149
2150         * bus/dispatch.c, test/test-service.c: Add testcase
2151         for sending messages to oneself (TODO item).
2152
2153         * python/service.py (class Object): Swap ordering of bus_name 
2154         and object_path parameters to better support inheritance.
2155
2156         * doc/dbus-tutorial.xml: change Python docs to reflect change
2157         in parameter ordering and fix the inheritance section.
2158
2159         * doc/TODO: remove sending message to oneself TODO item
2160
2161 2005-07-15  Ross Burton  <ross@openedhand.com>
2162
2163         * glib/dbus-gproxy.c:
2164         Fix a leak when calling methods via the proxy.
2165
2166 2005-07-15  Colin Walters  <walters@verbum.org>
2167
2168         * bus/selinux.c (bus_selinux_append_context): Wrap in
2169         HAVE_SELINUX.
2170
2171 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2172
2173         * python/_dbus.py (Bus::remove_signal_receiver):
2174         don't add a callback to the match if none has been passed in
2175         
2176         * python/matchrules.py (SignalMatchTree::remove): if the rule
2177         being matched does not have a callback treat it as a wildcard
2178         fix matching logic
2179
2180         * doc/dbus-tutorial.xml: Add Python tutorial
2181
2182 2005-07-14  Colin Walters  <walters@verbum.org>
2183
2184         * bus/driver.c
2185         (bus_driver_handle_get_connection_unix_security_context): New function.
2186         (message_handlers): Add.
2187
2188         * bus/selinux.c (bus_selinux_append_context): New function; appends
2189         security context to message.
2190
2191         * bus/selinux.h: Prototype.
2192
2193         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2194
2195 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2196
2197         * bus/activation.c: clean up all tabs to be 8 spaces 
2198         (bus_activation_activate_service): make sure we clean up
2199         if activation fails
2200
2201         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2202         (check_shell_fail_service_auto_start): New function
2203         tests to make sure we get fail properly when trying to auto start a service
2204         with a faulty command line
2205         (check_shell_service_success_auto_start): New function tests to make sure
2206         auto started services get the arguments on the command line
2207
2208         * test/test-shell-service.c: Added service for testing auto-starting with 
2209         command line arguments
2210
2211         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2212         test/data/valid-service-files/debug-shell-echo-success.service.in:
2213         Added service files for testing auto-starting with command line arguments
2214
2215         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2216
2217 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2218
2219         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2220         
2221         * dbus/Makefile.am: added new files to build.
2222
2223         * bus/activation.c (bus_activation_activate_service): support
2224         activation commands with parameters.
2225
2226         * test/shell-test.c: added test program for the shell parsing
2227         code.
2228
2229 2005-07-13  David Zeuthen  <davidz@redhat.com>
2230
2231         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2232         64 bit signed and unsigned parameters
2233
2234 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2235
2236         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2237
2238         * python/service.py (class Name): renamed BusName to make it clearer
2239         what the object is for (a name on the bus)
2240
2241         * python/examples/example-service.py,
2242         python/examples/example-signal-emitter.py: change the Name object to
2243         BusName
2244
2245 2005-07-12  Colin Walters  <walters@verbum.org>
2246
2247         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2248
2249         * tools/dbus-launch.c: Include sys/select.h.
2250
2251 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2252         * python/dbus_bindings.pyx.in: removed
2253
2254         * python/dbus_bindings.pyx: Added.
2255         - Fixed some memleaks (patch from 
2256         Sean Meiners <sean.meiners@linspireinc.com>)
2257         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2258         own pxd file (Pyrex definition)
2259         - Broke out glib dependancies into its own pyx module
2260         
2261         * python/dbus_bindings.pdx: Added.
2262         - Defines C class Connection for exporting to other modules
2263
2264         * python/dbus_glib_bindings.pyx: Added.
2265         - New module to handle lowlevel dbus-glib mainloop integration
2266
2267         * python/glib.py: Added.
2268         - Registers the glib mainloop when you import this module
2269
2270         * python/services.py: Removed (renamed to service.py)
2271         
2272         * python/service.py: Added.
2273         - (class Server): renamed Name
2274
2275         * python/__init__.py: Bump ro version (0,41,0)
2276         -don't import the decorators or service module
2277         by default.  These now reside in the dbus.service namespace
2278
2279         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2280         setup function on creation 
2281
2282         * python/examples/example-service.py,
2283         python/examples/example-signal-emitter.py: update examples
2284
2285         * python/examples/gconf-proxy-service.py,
2286         python/examples/gconf-proxy-service2.py: TODO fix these up
2287
2288         * doc/TODO: Addition
2289         - Added a Python Bindings 1.0 section
2290         - added "Add match on args or match on details to match rules"
2291
2292
2293 2005-07-12  Colin Walters  <walters@verbum.org>
2294
2295         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2296         (statemachine-glue.h): 
2297         * glib/examples/Makefile.am (example-service-glue.h) 
2298         (example-signal-emitter-glue.h): 
2299         * glib/Makefile.am (dbus-glib-error-switch.h): 
2300         Add libtool --mode=execute so we use the built library instead
2301         of any installed one.
2302
2303 2005-07-11  Colin Walters  <walters@verbum.org>
2304
2305         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2306         (dbus_g_value_types_init): Remove assertion.
2307         (dbus_g_value_get_g_type, dbus_g_value_open)
2308         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2309         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2310         functions related to DBusGValue.  Now we marshal/demarshal
2311         structures as GValueArray.
2312         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2313         structures.
2314         (signature_iter_to_g_type_array): Don't call
2315         signature_iter_to_g_type_struct.
2316         (signature_iter_to_g_type_struct): Delete.
2317         (dbus_gvalue_to_signature): Delete.
2318         (dbus_gvalue_to_signature): New function with same name as other
2319         one; we can convert structures to signatures.
2320         (demarshal_valuearray): New function.
2321         (get_type_demarshaller): Use it.
2322         (demarshal_recurse): Delete.
2323         (marshal_proxy): New function.
2324         (marshal_map): Warn if we can't determine signature from type.
2325         (marshal_collection_ptrarray): Ditto.
2326         (marshal_collection_array): Ditto.
2327         (get_type_marshaller): Use marshal_valuearray.
2328         (marshal_recurse): Delete.
2329         (_dbus_gvalue_test): Add some tests.
2330
2331         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2332         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2333         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2334         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2335         (dbus_g_value_free): Remove prototypes.
2336
2337         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2338         G_TYPE_VALUE_ARRAY.
2339
2340         * glib/examples/example-service.c:
2341         * glib/examples/example-client.c: Implement GetTuple.
2342
2343         * test/glib/test-dbus-glib.c:
2344         * test/glib/test-service-glib.c:
2345         * test/glib/test-service-glib.xml: Add structure tests.
2346
2347 2005-07-10  Colin Walters  <walters@verbum.org>
2348
2349         * doc/TODO: Knock off some GLib items with this patch.
2350
2351         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2352         (_dbus_gvalue_signals_error): New functions.
2353
2354         * glib/dbus-gvalue-utils.h: Prototype them.
2355
2356         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2357         and change to not output const/retval flags for input args.  All
2358         callers updated.
2359         (invoke_object_method): Refactor to handle return values.  Add
2360         some more comments in various places.  Remove debug g_print.
2361
2362         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2363
2364         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2365         Handle G_TYPE_NONE.
2366         (compute_gsignature): New function; refactored from code from
2367         compute_marshaller and compute_marshaller_name.  Enhance to
2368         handle return values and async ops more cleanly.  Update for
2369         async ops returning NONE instead of BOOLEAN.
2370         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2371         and output appropriate string.
2372         (generate_glue): Handle return value annotation.  Also don't dump
2373         constness flag for input arguments.
2374
2375         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2376         files shared between installed library and utilities.
2377         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2378         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2379         binding tool can access gtype utility functions.
2380
2381         * test/glib/test-service-glib.c: 
2382         * test/glib/test-service-glib.xml: 
2383         * test/glib/test-dbus-glib.c: Add some tests for return values.
2384
2385 2005-07-09  Colin Walters  <walters@verbum.org>
2386
2387         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2388         argument if available, not method.
2389
2390         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2391         (invoke_object_method): First, remove some redundant
2392         GValues (object_value, error_value) in favor of working on
2393         array directly.  Second, rework constness to be less buggy.
2394         Now we iterate directly over the argument metadata instead
2395         of parallel iterating over output signature and metadata.
2396
2397         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2398
2399         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2400         annotation on input args.
2401         
2402 2005-07-09  Colin Walters  <walters@verbum.org>
2403
2404         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2405         Define.
2406
2407         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2408         annotation.
2409
2410         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2411         (method_dir_signature_from_object_info): Handle arg_iterate change.
2412         (write_interface): Ditto.
2413         (lookup_object_info): Don't barf if format_version is > 0.
2414         (invoke_object_method): Handle arg constness.
2415
2416         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2417         (arg_info_new): Create.
2418         (arg_info_unref): Destroy.
2419         (arg_info_get_annotations, arg_info_get_annotation) 
2420         (arg_info_add_annotation): New functions.
2421
2422         * glib/dbus-gidl.h: Prototype them.
2423
2424         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2425         args, disallow them in properties.
2426         (parse_annotation): Handle arg annotations.
2427
2428         * test/glib/test-service-glib.xml: 
2429         * test/glib/test-service-glib.c: Update to make some methods
2430         const.
2431
2432 2005-07-08  Colin Walters  <walters@verbum.org>
2433
2434         * test/glib/test-service-glib.xml: 
2435         * test/glib/test-service-glib.c:
2436         * test/glib/test-dbus-glib.c: Test a{sv}.
2437
2438         * glib/examples/statemachine/statemachine.c:
2439         * glib/examples/statemachine/statemachine-server.c:
2440         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2441         add progress bar, etc.
2442
2443         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2444         needed anymore due to generic array/map marshalling.
2445         (dbus_g_value_types_init): Don't register basic arrays or the
2446         string/string hash.
2447         (dbus_gtype_from_signature_iter): Don't try to recurse into
2448         variants.
2449         (dbus_gtype_to_signature): Check collection/map before type
2450         metadata.
2451         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2452         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2453         generic map creation/append functions instead of hash table
2454         specifically.
2455         (get_type_demarshaller): Handle maps.
2456         (demarshal_collection): Dispatch on collection type to either
2457         demarshal_collection_ptrarray or demarshal_collection_array.
2458         (get_type_marshaller): Handle maps.
2459         (marshal_collection): Dispatch collection type to either
2460         marshal_collection_ptrarray or marshal_collection_array.
2461         (_dbus_gvalue_test): New test.
2462
2463         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2464         (hash_free_from_gtype): Use it to free GValues.
2465         (hashtable_append): New function.
2466         (ptrarray_append): Fix prototype.
2467         (slist_append): Ditto.
2468         (_dbus_gvalue_utils_test): Extend tests.
2469
2470         * glib/dbus-gtype-specialized.c
2471         (dbus_g_type_specialized_init_append): Renamed from
2472         dbus_g_type_specialized_collection_init_append.  Remove const from
2473         value, since we steal it.
2474         (dbus_g_type_specialized_map_append): New function.
2475
2476         * glib/dbus-gtype-specialized.h: Update prototypes.
2477         Add DBusGTypeSpecializedMapAppendFunc.
2478
2479         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2480         _dbus_gvalue_test.
2481         
2482         * glib/dbus-gtest.h: Prototype it.
2483
2484 2005-07-08  Ross Burton  <ross@openedhand.com>
2485
2486         * dbus/dbus-glib.h:
2487         Add DBysGAsyncData for the async bindings.
2488
2489         * glib/dbus-binding-tool-glib.c:
2490         Re-enable the async bindings.
2491
2492         * test/glib/test-dbus-glib.c:
2493         Add a test for the generated async bindings.
2494
2495 2005-07-08  Colin Walters  <walters@verbum.org>
2496
2497         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2498         connection concept.
2499         
2500 2005-07-08  Colin Walters  <walters@verbum.org>
2501         
2502         * tools/Makefile.am: Kill of print-introspect in favor of using
2503         dbus-send --print-reply=literal.
2504
2505         * test/glib/test-service-glib.xml: 
2506         * test/glib/test-service-glib.c (my_object_get_objs): New test
2507         for "ao".
2508
2509         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2510         (main): Test GetObjs.
2511
2512         * glib/examples/statemachine/Makefile.am:
2513         * glib/examples/statemachine/sm-marshal.list:
2514         * glib/examples/statemachine/statemachine-client.c:
2515         * glib/examples/statemachine/statemachine-server.c:
2516         * glib/examples/statemachine/statemachine-server.xml:
2517         * glib/examples/statemachine/statemachine.c:
2518         * glib/examples/statemachine/statemachine.h:
2519         * glib/examples/statemachine/statemachine.xml:
2520
2521         New example.
2522
2523         * glib/examples/example-service.c (main): Move invocation
2524         of dbus_g_object_type_install_info earlier, to emphasize it
2525         should only be done once.
2526
2527         * glib/examples/example-signal-emitter.c (main): Ditto.
2528
2529         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2530
2531         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2532         (dbus_gvalue_marshal): Update prototypes.
2533
2534         * glib/dbus-gvalue.c: Update all marshalling functions to take
2535         const GValue instead of GValue.
2536         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2537         types.
2538         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2539         change.
2540         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2541         Return a newly-allocated string.
2542         (demarshal_proxy, demarshal_object_path, demarshal_object)
2543         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2544         we get the wrong types from message.
2545         (get_type_demarshaller): New function, extracted from
2546         dbus_gvalue_demarshal.
2547         (demarshal_collection): New function, demarshals generic
2548         collection.
2549         (dbus_gvalue_demarshal): Just invoke result of
2550         get_type_demarshaller.  Throw error if we don't have one.
2551         (marshal_garray_basic): Abort on OOM.
2552         (get_type_marshaller): New function, extracted from
2553         dbus_gvalue_marshal.
2554         (collection_marshal_iterator, marshal_collection): New functions;
2555         implements generic marshalling for an iteratable specialized
2556         collection.
2557         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2558
2559         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2560         G_TYPE_STRING.
2561         (ptrarray_value_from_gvalue): Ditto.
2562         (ptrarray_append, ptrarray_free): New functions.
2563         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2564         (slist_append, slist_end_append, slist_free): New functions.
2565         (dbus_g_type_specialized_builtins_init): Add append fuctions
2566         for GPtrArray and GSList.  Register GSList.
2567         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2568
2569         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2570         New.
2571         (dbus_g_type_specialized_collection_init_append)
2572         (dbus_g_type_specialized_collection_append)
2573         (dbus_g_type_specialized_collection_end_append): Prototype.
2574         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2575         end_append_func.
2576
2577         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2578         (dbus_g_type_specialized_collection_append) 
2579         (dbus_g_type_specialized_collection_end_append): New functions.
2580         (dbus_g_type_map_value_iterate): Take const GValue.
2581         (dbus_g_type_collection_value_iterate): Ditto.
2582
2583         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2584         _dbus_gvalue_utils_test.
2585         
2586         * glib/dbus-gtest.h: Prototype it.
2587
2588         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2589         using uninitialized owner_list.
2590         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2591         public API.
2592         (dbus_g_proxy_end_call_internal): Update to use error set
2593         from dbus_gvalue_demarshal instead of setting it here.
2594         (dbus_g_proxy_begin_call): Move return_if_fail here.
2595
2596         * glib/dbus-gobject.c (write_interface): Update for
2597         dbus_gtype_to_signature returning new string.
2598
2599         * configure.in: Add glib/examples/statemachine.
2600
2601 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2602
2603         * configure.in: Add a configure option, --with-console-auth-dir
2604         
2605         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2606         new setting.  Patch from Kay Sievers.
2607
2608 2005-07-06  Colin Walters  <walters@verbum.org>
2609
2610         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2611         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2612         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2613         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2614         Delete in favor of dbus_g_proxy_begin_call and
2615         dbus_g_proxy_cancel_call.
2616         (DBusGProxyCall, DBusGProxyCallNotify): New.
2617         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2618         data, and destroy function.  This replaces
2619         dbus_g_pending_call_set_notify.
2620         (dbus_g_proxy_cancel_call): Prototype.
2621         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2622
2623         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2624         pending_calls map.
2625         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2626         internal proxy for calls to the bus. Remove
2627         pending_nameowner_calls, now the internal proxy keeps track.
2628         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2629         pending_nameowner_calls.
2630         (got_name_owner_cb): Update prototype, and use
2631         dbus_g_proxy_end_call.
2632         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2633         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2634         favor of using internal proxy.
2635         (dbus_g_proxy_manager_unregister): Update to use
2636         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2637         (dbus_g_proxy_init): Initialize pending calls map.
2638         (dbus_g_proxy_constructor): New.
2639         (dbus_g_proxy_class_init): Add get/set property functions,
2640         constructor, and add NAME, PATH, and INTERFACE properties.
2641         (cancel_pending_call): New function.
2642         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2643         cancel them.
2644         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2645         (GPendingNotifyClosure): New structure.
2646         (d_pending_call_notify, d_pending_call_free): Moved here from
2647         dbus-glib.c.
2648         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2649         ordering.
2650         (manager_begin_bus_call): New internal function for talking to
2651         internal bus proxy.
2652         (dbus_g_proxy_new): Construct object using GObjet properties.
2653         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2654         Create closure of same, and insert call into map of pending calls.
2655         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2656         call.  Look up pending call in current set.  Remove it when we've
2657         completed.
2658         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2659         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2660         and destroy function directly.
2661         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2662         (dbus_g_proxy_call): Invoke with NULL callback.
2663         (dbus_g_proxy_cancel_call): New function, replaces
2664         dbus_g_pending_call_cancel.
2665
2666         * glib/dbus-gparser.c (validate_signature): Fix call to
2667         dbus_set_g_error.
2668
2669         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2670         New quark for attaching metadata to GType.
2671         (info_hash): Delete.
2672         (lookup_object_info): Look up using quark.
2673         (dbus_g_object_type_install_info): Check that a type is classed,
2674         not that it's an object.  Also just install type data using quark
2675         instead of using global hash.
2676
2677         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2678         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2679         (GPendingNotifyClosure): Delete.
2680         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2681         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2682
2683         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2684         client method generation until we can fix it...
2685         
2686         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2687         (load_from_service_thread_func): Ditto.
2688
2689         * tools/dbus-names-model.c (struct NamesModel): Hold
2690         DBusGProxyCall.
2691         (have_names_notify): Update prototype, use
2692         dbus_g_proxy_cancel_call.
2693         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2694
2695         * tools/dbus-monitor.c (filter_func): Update for print_message
2696         API change.
2697
2698         * test/glib/test-dbus-glib.c: Add more tests for async
2699         invocations.  Update many begin_call/end_call pairs to just use
2700         dbus_g_proxy_call.
2701
2702         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2703         allows us to dump print-introspect.c.
2704
2705         * tools/dbus-print-message.h (print_message): Add literal argument
2706         to print_message which is intended to allow printing arguments without
2707         metadata like "string=".
2708
2709         * tools/dbus-print-message.c (print_iter): Add literal argument.
2710         (print_message): Allow printing string messages literally.
2711
2712 2005-07-05  Colin Walters  <walters@verbum.org>
2713
2714         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2715         Remove value refcount leak, original patch from Jorn Baayen
2716         <jorn@openedhand.com>.  Also remove useless extra value in favor
2717         of prepending to value array directly.
2718
2719 2005-07-02  Colin Walters  <walters@verbum.org>
2720
2721         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2722
2723 2005-07-01  Colin Walters  <walters@verbum.org>
2724
2725         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2726         
2727         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2728         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2729         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2730         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2731
2732 2005-06-30  Colin Walters  <walters@verbum.org>
2733
2734         * test/glib/test-dbus-glib.c:
2735         * test/glib/test-service-glib.c:
2736         * test/glib/test-service-glib.xml: Update tests for new error
2737         setting bits, also add async tests (patch from Ross Burton).
2738
2739         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2740         DBUS_GLIB_THREADS_LIBS.
2741
2742         * glib/dbus-gproxy.c (get_name_owner)
2743         (dbus_g_pending_call_end_valist): Ditto.
2744
2745         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2746         domain (GQuark) to DBusGErrorInfo.  
2747         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2748         quark in error_metadata.  Take message interface as default
2749         error message interface.
2750         (gerror_to_dbus_error_message): Pass message interface.
2751         (dbus_set_g_error): Resurrected.
2752         (dbus_g_error_info_free): New function.
2753         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2754         of _peek to actually create the object class if it hasn't been
2755         created yet.
2756         (dbus_g_error_domain_register): New function.
2757
2758         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2759
2760         * glib/dbus-gparser.c (validate_signature): Ditto.
2761
2762         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2763         (dbus_g_error_domain_register): Prototype.
2764
2765         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2766         Update tests.
2767
2768 2005-06-29  Colin Walters  <walters@verbum.org>
2769
2770         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2771         DBUS_TYPE_G_OBJECT_PATH.
2772
2773         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2774         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2775         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2776         (dbus_g_object_path_get_g_type): New function.
2777         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2778         to DBUS_TYPE_G_OBJECT_PATH by default.
2779         (demarshal_proxy): Remove unused name variable.
2780         (demarshal_object_path, marshal_object_path): New functions.
2781         (demarshal_proxy_array, marshal_proxy_array): Delete.
2782         
2783         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2784         DBUS_TYPE_G_OBJECT_PATH to char *.
2785         (dbus_g_type_get_lookup_function): Map builtin
2786         DBUS_TYPE_G_OBJECT_PATH.
2787
2788         * test/glib/test-dbus-glib.c
2789         * test/glib/test-service-glib.c (my_object_objpath): 
2790         Adapt tests to new object path marshalling.
2791
2792 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2793
2794         * configure.in: force check for Python >= 2.4
2795
2796 2005-06-29  Colin Walters  <walters@verbum.org>
2797         
2798         Patch from Ross Burton <ross@openedhand.com>
2799         
2800         * glib/dbus-gobject.c (invoke_object_method): Unset object
2801         value in all cases, not only in async case.
2802
2803 2005-06-29  Colin Walters  <walters@verbum.org>
2804
2805         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2806         name_call for keeping track of any outgoing GetNameOwner call.
2807         Also add for_owner and associated.
2808         (struct _DBusGProxyManager): Add owner_names, which is hash table
2809         that maps a base name to a list of names it owns (that we're
2810         interested in).  Add pending_nameowner_calls which is a list of
2811         all outstanding GetNameOwner; avoids us having to iterate over
2812         every proxy.  Add unassociated_proxies which keeps track of name
2813         proxies with no associated name owner.
2814         (dbus_g_proxy_manager_unref): Destroy owner_names.
2815         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2816         name refcounts.
2817         (find_name_in_info, name_owner_foreach)
2818         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2819         (dbus_g_proxy_manager_monitor_name_owner)
2820         (dbus_g_proxy_manager_unmonitor_name_owner)
2821         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2822         New functions; they manipulate the owner_names mapping.
2823         (got_name_owner_cb): New function.
2824         (get_name_owner): New function, extracted from
2825         dbus_g_proxy_new_for_name_owner.
2826         (dbus_g_proxy_manager_register): For now we need to keep track of
2827         all NameOwnerChanged.  Also if the proxy is for a name, if we
2828         don't already know the name owner, queue a new GetNameOwner
2829         request and add it to our list of unassociated proxies.  Otherwise
2830         inc the refcount.
2831         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2832         cancel any pending GetNameOwner call, etc.
2833         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2834         the owner_names mapping to look up the current names for the
2835         signal source, and dispatch to any proxies for that name.
2836         (dbus_g_proxy_new): Initialize new members.
2837         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2838         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2839         (dbus_g_pending_call_end_valist): New function, extracted from
2840         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2841         but want to use the GLib infrastructure.  Also note how many
2842         arguments in reply were over.
2843         (dbus_g_pending_call_end): New function, just call
2844         dbus_g_pending_call_end_valist.
2845         (dbus_g_proxy_end_call_internal): Just call
2846         dbus_g_pending_call_end_valist.
2847
2848         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2849         of builtin marshaller for STRING_STRING_STRING.
2850
2851         * test/glib/test-dbus-glib.c: 
2852         * test/glib/test-service-glib.c:
2853         * test/glib/test-service-glib.xml:
2854         Extend tests to cover name proxies, destruction of owner proxies,
2855         etc.
2856         
2857         * glib/examples/example-signal-recipient.c
2858         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2859         
2860         * tools/dbus-send.c (main): Print D-BUS error name in addition
2861         to message.
2862
2863 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2864
2865         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2866         cmessage_function_handler): Patch from 
2867         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2868         by using the Py_GILState_Ensure/Release to synchronize with the
2869         python runtime.
2870         
2871 2005-06-28  Ray Strode  <rstrode@redhat.com>
2872
2873         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2874         babysitter helper process on last unref, bug #2813.
2875
2876 2005-06-27  Colin Walters  <walters@verbum.org>
2877
2878         * test/glib/test-dbus-glib.c: 
2879         * test/glib/test-service-glib.c:
2880         * test/glib/test-service-glib.xml:
2881         Test hash table signal emitting.
2882
2883         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2884         types to their fundamental basis types, since this is what
2885         marshallers operate on.  Also add an entry for VOID__BOXED.
2886         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2887
2888 2005-06-26  Havoc Pennington  <hp@redhat.com>
2889
2890         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2891         from Don Park
2892
2893 2005-06-26  Colin Walters  <walters@verbum.org>
2894
2895         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2896         (dbus_g_error_set): New public function from its ashes; used by
2897         both service-side method implementation and GLib bindings
2898         internals.
2899         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2900         (_dbus_glib_test): Add some tests.
2901
2902         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2903
2904         * test/glib/test-service-glib.c (my_object_throw_error): Use
2905         dbus_g_error_set.
2906
2907         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2908         errors thrown by dbus_g_error_set.
2909
2910         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2911
2912         * glib/dbus-gparser.c (validate_signature): Ditto.
2913
2914         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2915         (dbus_g_proxy_end_call_internal): Ditto.
2916
2917         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2918         converts DBUS_ERROR_x to DBUS_GERROR_x.
2919         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2920
2921         * doc/TODO: Remove error TODO.
2922
2923         * doc/dbus-tutorial.xml: Update with documentation about error
2924         handling.
2925
2926         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2927         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2928         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2929
2930 2005-06-22  Colin Walters  <walters@verbum.org>
2931         
2932         Patch from Ross Burton <ross@openedhand.com>
2933
2934         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2935
2936 2005-06-20  Colin Walters  <walters@verbum.org>
2937
2938         * configure.in: Add glib/examples.
2939
2940         * glib/Makefile.am: Add examples/
2941
2942         * glib/examples/.cvsignore
2943         * glib/examples/Makefile.am
2944         * glib/examples/example-client.c
2945         * glib/examples/example-service.c
2946         * glib/examples/example-service.xml
2947         * glib/examples/example-signal-emitter.c
2948         * glib/examples/example-signal-emitter.xml
2949         * glib/examples/example-signal-recipient.c:
2950         New files; GLib binding examples, ported from
2951         python/examples.
2952
2953 2005-06-20  Colin Walters  <walters@verbum.org>
2954
2955         * dbus/dbus-glib.h: 
2956         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2957         dbus_g_proxy_call.
2958
2959         * glib/dbus-binding-tool-glib.c: 
2960         * doc/dbus-tutorial.xml: 
2961         * test/glib/test-dbus-glib.c: Update for rename.
2962         
2963 2005-06-20  Colin Walters  <walters@verbum.org>
2964
2965         Patch suggested by Ross Burton <ross@openedhand.com>
2966
2967         * glib/dbus-gobject.c (export_signals): Free signal name.
2968         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2969         memory leak.  Add a bit of documentation.
2970         (dbus_g_method_return_error): Free context, and note we do
2971         so.
2972
2973 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2974
2975         * dbus/dbus-glib.h:
2976         * glib/dbus-gobject.c:
2977         * glib/dbus-gproxy.c:
2978         * glib/dbus-gvalue.c: Predeclare structs as 
2979         typedef struct _Something Something instead of 
2980         typedef struct Something Something, so we can 
2981         redeclare the prototypes. Other GNOME libraries 
2982         do this already.
2983
2984 2005-06-17  Colin Walters  <walters@verbum.org>
2985
2986         * tools/dbus-names-model.c (have_names_notify): Fix call
2987         to dbus_g_proxy_end_call.
2988         
2989 2005-06-17  Colin Walters  <walters@verbum.org>
2990
2991         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2992         spew warnings if we get malformed remote signals.
2993
2994         * glib/dbus-gobject.c (propsig_iterate): New function.
2995         (lookup_object_info): New function, extracted from
2996         lookup_object_and_method.
2997         (introspect_properties, introspect_signals): Delete; these
2998         are merged into write_interface.
2999         (write_interface): Write out signals and properties here;
3000         dump the org.gtk.object stuff and use the interface given
3001         in the introspection data blob.  Also fix up property XML.
3002         (lookup_values): New function.
3003         (introspect_interfaces): Gather a mapping from interface to a
3004         list of its methods, signals, and properties, then write out
3005         each interface.
3006         (lookup_object_and_method): Use lookup_object_info.
3007         (struct DBusGSignalClosure): Add interface.
3008         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3009         we can just use the constant data.
3010         (dbus_g_signal_closure_finalize): Don't free signal name.
3011         (signal_emitter_marshaller): Use interface from signal closure.
3012         (export_signals): Only export signals mentioned in introspection
3013         blob.
3014         (dbus_g_connection_register_g_object): Warn if we have no
3015         introspection data for an object.
3016         (funcsig_equal): Remove unused variable.
3017         (dbus_g_object_register_marshaller): Take varargs instead of
3018         list.
3019         (dbus_g_object_register_marshaller_array): New function,
3020         extracted from old dbus_g_object_register_marshaller.
3021
3022         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3023         signals and property data.
3024         (write_quoted_string): New function, extracted from generate_glue.
3025         (generate_glue): Write signals and properties to introspection
3026         blob.
3027
3028         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3029         exported_signals and exported_properties.
3030         (dbus_g_object_register_marshaller): Update prototype.
3031         (dbus_g_object_register_marshaller_array): Prototype.
3032         
3033         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3034
3035         * test/glib/test-service-glib.c: Add new test signals and method
3036         to emit them.
3037
3038         * test/glib/test-service-glib.xml: Add some test signals.
3039
3040         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3041         and my-object-marshal.h
3042         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3043         my-object-marshal.c.
3044         (my-object-marshal.c, my-object-marshal.h): Implement.
3045
3046         * test/glib/.cvsignore: Update.
3047
3048         * doc/TODO: Remove two GLib TODO items fixed by this
3049         patch.
3050
3051 2005-06-16  Colin Walters  <walters@verbum.org>
3052
3053         * doc/TODO: Update for GLib bindings.
3054         
3055 2005-06-16  Colin Walters  <walters@verbum.org>
3056
3057         * glib/dbus-binding-tool-glib.c:
3058         * glib/dbus-gobject.c:
3059         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3060         from Ross Burton, for his GLib bindings work.
3061
3062 2005-06-16  Colin Walters  <walters@verbum.org>
3063
3064         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3065         to iterate instead of walking to G_TYPE_INVALID.
3066
3067         Patch based on a patch from Ryan Gammon.
3068
3069 2005-06-16  Colin Walters  <walters@verbum.org>
3070
3071         * bus/bus.c (bus_context_new): Set parser to NULL
3072         after we unref it (Patch from Chris Boscolo, #2174).
3073         
3074 2005-06-16  Colin Walters  <walters@verbum.org>
3075
3076         * python/dbus_bindings.pyx.in: Import size_t,
3077         __int64_t, __uint64_t, and __signed.
3078
3079         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3080         Define cmsg struct, output it.
3081         (_dbus_read_credentials_unix_socket):
3082         Use cmsg struct.
3083         
3084         Patch from Joe Markus Clarke for FreeBSD support.
3085         
3086 2005-06-16  Colin Walters  <walters@verbum.org>
3087
3088         * tools/dbus-send.c (append_array): Use strtok.
3089         (append_dict): New function.
3090         (type_from_name): New function, extracted from main.
3091         (main): Handle sending dicts.
3092
3093         * tools/dbus-print-message.c (print_iter): Print dict
3094         entries.
3095         
3096 2005-06-16  Colin Walters  <walters@verbum.org>
3097
3098         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3099         values as the empty string (#2948).
3100         
3101 2005-06-16  Colin Walters  <walters@verbum.org>
3102
3103         * dbus/Makefile.am:
3104         * mono/doc/Makefile.am:
3105         * test/glib/Makefile.am:
3106
3107         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3108
3109 2005-06-16  Colin Walters  <walters@verbum.org>
3110
3111         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3112         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3113
3114         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3115         Increment pointer after swapping fixed array.  Add assertion
3116         for array length.
3117                 
3118 2005-06-15  Colin Walters  <walters@verbum.org>
3119
3120         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3121         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3122         
3123 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3124
3125         * NEWS: Update to 0.34
3126
3127 2005-06-15  David Zeuthen  <davidz@redhat.com>
3128
3129         * configure.in (LT_CURRENT): Revert back to 1 as the library
3130         hasn't changed and we've certainly not committed to protocol
3131         stability yet.  All this does is to break ABI. See commit note
3132         from hp@redhat.com 2005-05-05 for details.
3133         
3134 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3135
3136         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3137         (_dbus_connection_run_builtin_filters): New method
3138         (dbus_connection_dispatch): Run the builtin filters which in turn
3139         runs the peer filter which handles Ping messages.
3140
3141         * doc/TODO: 
3142          - Ping isn't handled: This patch fixes it
3143          
3144          - Add a test case for the Ping message: added TODO item
3145
3146 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3147
3148         * dbus/dbus-message.c:
3149         (dbus_message_has_path): New method
3150         (dbus_message_has_interface): New method
3151         (dbus_message_has_member): New method
3152
3153         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3154         New method
3155
3156         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3157         the keyring directory is private to the user
3158
3159         * doc/TODO:
3160          - The convenience functions in dbus-bus.h should perhaps have
3161          the signatures that they would have if they were autogenerated
3162          stubs. e.g. the acquire service function. We should also evaluate
3163          which of these functions to include, in light of the fact that
3164          GLib/Qt native stubs will probably also exist.: Punted
3165
3166          - add dbus_message_has_path(), maybe has_member/interface:
3167          fixed in this patch
3168
3169          - in dbus-keyring.c, enforce that the keyring dir is not
3170          world readable/writable: Fixed in this patch
3171
3172 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3173
3174         * dbus/dbus-marshal-validate.h: Added a new validation
3175         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3176         out of memory errors when validating signitures
3177
3178         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3179         in places where we previously used DBUS_VALID and a FALSE return 
3180         value to indicate OOM
3181         
3182         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3183         Use a stack to track the number of elements inside containers.  The 
3184         stack values are then used to validate that dict entries have only two
3185         elements within them.
3186         (validate_body_helper): check the reason for failure when validating
3187         varients
3188         
3189         * dbus/dbus-message.c (load_message): use 
3190         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3191         DBUS_VALID and a FALSE return value to indicate OOM
3192
3193         * doc/TODO: remove "- validate dict entry number of fields" as this
3194         patch fixes it
3195
3196 2005-06-14  David Zeuthen  <davidz@redhat.com>
3197
3198         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3199         watches (if applicable) and add new watches
3200
3201         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3202         (main): Setup SIGIO signal handler if using D_NOTIFY
3203
3204         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3205
3206         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3207         (merge_included): Also merge conf_dirs list
3208         (bus_config_parser_unref): Clear conf_dirs list
3209         (include_dir): Add directory to conf_dirs list
3210         (bus_config_parser_get_conf_dirs): New function
3211
3212         * bus/dir-watch.[ch]: New files
3213
3214         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3215
3216         * configure.in: Add checks for D_NOTIFY on Linux
3217
3218 2005-06-14  Colin Walters  <walters@verbum.org>
3219
3220         * glib/dbus-binding-tool-glib.c:
3221         * glib/dbus-gobject.c:
3222         * glib/dbus-gvalue.c: Fix indentation and brace style.
3223         
3224 2005-06-14  Ross Burton <ross@openedhand.com>.
3225
3226         * glib/dbus-glib.h: Make DBusGMethodInvocation
3227         a private structure.  Rearrange prototypes a bit.
3228         
3229         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3230         documentation for first_arg_type.
3231         
3232         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3233         here, add documentation.  Move dbus_g_method_return
3234         and dbus_g_method_return_error into public API
3235         section.
3236
3237 2005-06-14  Colin Walters  <walters@verbum.org>
3238
3239         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3240         Add missing return statements, noticed by Ross Burton.
3241         
3242 2005-06-13  Ross Burton <ross@openedhand.com>.
3243
3244         * glib/dbus-gobject.c: Handle errors on message
3245         demarshalling by sending error message back.
3246         * glib/dbus-gvalue.c: Initialize return variables.
3247
3248 2005-06-13  Colin Walters  <walters@verbum.org>
3249
3250         * glib/Makefile.am: Fix thinko in last patch.
3251
3252 2005-06-13  Colin Walters  <walters@verbum.org>
3253
3254         * glib/Makefile.am: Move dbus-gtype-specialized.c
3255         and dbus-gtype-specialized.h into a _HEADERS variable,
3256         install them.
3257
3258 2005-06-12  Colin Walters  <walters@verbum.org>
3259
3260         Async signals and various bugfixes and testing by
3261         Ross Burton <ross@openedhand.com>.
3262
3263         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3264         (dbus_gvalue_genmarshal_name_from_type)
3265         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3266         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3267         (dbus_g_value_types_init, dbus_gtype_from_signature)
3268         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3269         (dbus_gtypes_from_arg_signature): New function prototypes.
3270         (dbus_gvalue_demarshal): Take context and error arguments.
3271         (dbus_gvalue_demarshal_variant): New function.
3272         (dbus_gvalue_demarshal_message): New function.
3273         (dbus_gvalue_store): Delete.
3274
3275         * glib/dbus-gvalue.c:
3276
3277         File has been almost entirely rewritten; now we special-case
3278         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3279         hash tables correctly, etc.  Full support for recursive values
3280         is not yet complete.
3281
3282         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3283         argument of signal to G_TYPE_POINTER since we now pass a
3284         structure.
3285         (lookup_g_marshaller): Delete in favor of
3286         _dbus_gobject_lookup_marshaller.
3287         (marshal_dbus_message_to_g_marshaller): Use
3288         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3289         to handle remote signal callbacks.
3290         (dbus_g_proxy_new_from_proxy): New function; creates a new
3291         DBusGProxy by copying an existing one.
3292         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3293         (dbus_g_proxy_get_path): New functions.
3294         (dbus_g_proxy_marshal_args_to_message): New function;
3295         factored out of existing code.
3296         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3297         from a varargs array.
3298         (dbus_g_proxy_begin_call_internal): New function.
3299         (dbus_g_proxy_end_call_internal): New function.
3300         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3301         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3302         after collecting args into value array.
3303         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3304         invoke dbus_g_proxy_end_call_internal.
3305         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3306         end_call_internal.
3307         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3308         types.
3309         (array_free_all): New function.
3310         (dbus_g_proxy_add_signal): Take GTypes.
3311
3312         * glib/dbus-gobject.h:
3313         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3314         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3315         Prototype.
3316
3317         * glib/dbus-gobject.c: Add a global marshal_table hash which
3318         stores mappings from type signatures to marshallers.  Change lots
3319         of invocations of dbus_gtype_to_dbus_type to
3320         dbus_gtype_to_signature.
3321         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3322         (introspect_signals): Fix test for query.return_type.
3323         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3324         (invoke_object_method): Many changes.  Handle asynchronous
3325         invocations.  Convert arguments with
3326         dbus_gvalue_demarshal_message.  Handle errors.  Use
3327         DBusSignatureIter instead of strlen on args. Handle all arguments
3328         generically.  Special-case variants.
3329         (dbus_g_method_return, dbus_g_method_return_error): New function.
3330         (DBusGSignalClosure): New structure, closes over signal
3331         information.
3332         (dbus_g_signal_closure_new): New function.
3333         (dbus_g_signal_closure_finalize): New function.
3334         (signal_emitter_marshaller): New function; is special marshaller
3335         which emits signals on bus.
3336         (export_signals): New function; introspects object signals and
3337         connects to them.
3338         (dbus_g_object_type_install_info): Take GType instead of
3339         GObjectClass.
3340         (dbus_g_connection_register_g_object): Invoke export_signals.
3341         (dbus_g_connection_lookup_g_object): New function.
3342         (DBusGFuncSignature) New structure; used for mapping type
3343         signatures to marshallers.
3344         (funcsig_hash): New function; hashes DBusGFuncSignature.
3345         (funcsig_equal): New function; compares DBusGFuncSignature.
3346         (_dbus_gobject_lookup_marshaller): New function.
3347         (dbus_g_object_register_marshaller): New function; used to
3348         register a marshaller at runtime for a particular signature.
3349
3350         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3351
3352         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3353         which notes a server method implementation should be
3354         asynchronous.
3355
3356         * glib/dbus-binding-tool-glib.c
3357         (dbus_binding_tool_output_glib_server): Call
3358         dbus_g_value_types_init.
3359         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3360         variants specially.
3361         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3362         of a lookup function.
3363         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3364         (write_untyped_out_args): New method; write output arguments.
3365         (write_formal_declarations_for_direction): Function for
3366         writing prototypes.
3367         (write_formal_parameters_for_direction): Function for
3368         writing implementations.
3369         (write_typed_args_for_direction): Function for writing
3370         arguments prefixed with GTypes.
3371         (write_async_method_client): Write out async version
3372         of method.
3373
3374         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3375         (dbus_g_type_get_marshal_name): Move mapping from GType
3376         to marshal name into here.
3377         (dbus_g_type_get_c_name): Move into here.
3378         (compute_marshaller): Convert signature to type with
3379         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3380         (compute_marshaller_name): Ditto.
3381         (compute_marshaller): Handle async signal annotations.
3382         (gather_marshallers): Return if we don't have a known
3383         prefix.
3384         (generate_glue): Collect introspection blob here, and
3385         write all of the blob at the end.  This allows an object
3386         with multiple interfaces to work.
3387         Mark async methods in introspection blob.
3388
3389         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3390         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3391         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3392
3393         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3394         avoids people accidentally using DBUS_TYPE_* which should
3395         not be necessary anymore.
3396         Do include dbus-gtype-specialized.h, which are utilities
3397         for GLib container types.
3398         Add various #defines for types such as
3399         DBUS_TYPE_G_BOOLEAN_ARRAY.
3400         (DBusGValueIterator, DBusGValue): Define, not fully used
3401         yet.
3402         (dbus_g_value_get_g_type): Type for recursive value.
3403         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3404         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3405         (dbus_g_value_free): Prototypes.
3406         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3407         (dbus_g_proxy_set_interface): Prototype.
3408         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3409         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3410         types.
3411         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3412         Accessors.
3413         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3414         doing async invocations.
3415         (dbus_g_method_return, dbus_g_method_return_error):
3416         Prototypes.
3417         * doc/dbus-tutorial.xml: Update GLib section.
3418         
3419         * tools/dbus-viewer.c (load_child_nodes): Update
3420         for new invocation type of dbus_g_proxy_end_call.
3421         (load_from_service_thread_func): Ditto.
3422
3423         * tools/print-introspect.c (main): Ditto.
3424
3425         * tools/dbus-names-model.c (have_names_notify)
3426         (names_model_reload, names_model_set_connection)
3427         Use GTypes.
3428
3429         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3430         needed since Python bindings use GLib bindings.
3431
3432         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3433         Add --prefix argument.
3434
3435         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3436         unneeded --ignore-unsupported arg.
3437         
3438         * test/glib/test-service-glib.c: 
3439         * test/glib/test-service-glib.xml:
3440         * test/glib/test-dbus-glib.c: Add many more tests.
3441
3442 2005-06-06  David Zeuthen  <davidz@redhat.com>
3443
3444         * doc/TODO: Add item about need to remove deprecated functions.
3445
3446         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3447
3448         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3449         to repair the ABI which was broken with the last commit.
3450
3451 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3452
3453         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3454         (dbus_connection_disconnect): renamed to dbus_connection_close 
3455         for API symmetry with dbus_connection_open
3456         (_dbus_connection_open_internal): 
3457         s/dbus_connection_disconnect/dbus_connection_close
3458
3459         * dbus/dbus-bus.c (dbus_bus_get):
3460         s/dbus_connection_disconnect/dbus_connection_close
3461
3462         * bus/connection.c (bus_connections_unref, 
3463         bus_connections_setup_connection, bus_connections_expire_incomplete):
3464         s/dbus_connection_disconnect/dbus_connection_close
3465
3466         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3467         kill_client_connection_unchecked, check_hello_connection):
3468         s/dbus_connection_disconnect/dbus_connection_close
3469
3470         * bus/bus.c (new_connection_callback):
3471         s/dbus_connection_disconnect/dbus_connection_close
3472
3473         * tools/dbus-send.c (main):
3474         s/dbus_connection_disconnect/dbus_connection_close
3475
3476         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3477         s/dbus_connection_disconnect/dbus_connection_close
3478         
3479         * test/test-service.c (path_message_func, filter_func):
3480         s/dbus_connection_disconnect/dbus_connection_close
3481         
3482         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3483         
3484 2005-05-25  Colin Walters  <walters@verbum.org>
3485
3486         * dbus/dbus-protocol.h: Move various bus service #defines such
3487           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3488           dbus/dbus-shared.h.
3489         * dbus/dbus-shared.h: Various defines moved here.
3490         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3491
3492 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3493
3494         * python/__init__.py: Python bindings deserve a minor version
3495         update.  Upped to (0, 40, 2)
3496
3497 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3498
3499         * python/decorators.py: add explicitly_pass_message decorator
3500         for passing in the dbus message as keyword for edge case signal
3501         handling
3502
3503         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3504         to conform with what dbus expects for match rules
3505         (SignalMatchRule.execute): add the dbus message as a keyword
3506         if the signal handler has requested it
3507
3508         * python/examples/example/signal-recipient.py: added some more
3509         examples on how to hook up to signals
3510
3511 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3512
3513         * python/decorators.py: import dbus_bindings
3514
3515         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3516         SignalMatchNode): new classes that implement wildcard signal
3517         callback matching using a tree lookup. Heavily modified from a
3518         patch sent by Celso Pinto (fd.o bug #3241)
3519
3520         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3521         use new match classes to handle signals.
3522
3523 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3524         
3525         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3526
3527 2005-05-18  Havoc Pennington  <hp@redhat.com>
3528
3529         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3530         gettext. Not really worth requiring yet perhaps, but any
3531         production quality 1.0 would require it so we should go ahead and
3532         get things set up. We do have a couple token calls to
3533         bindtextdomain in the code already.
3534
3535 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3536
3537         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3538         when using recursive g_main_loops
3539
3540         * python/_dbus.py (class Bus): add the ProxyObjectClass
3541         alias for ProxyObject to make it easier for the Twisted 
3542         networking framework to integrate dbus.
3543
3544         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3545         alias for ProxyMethod to make it easier for the Twisted 
3546         networking framework to integrate dbus. 
3547
3548 2005-05-11  Ross Burton  <ross@openedhand.com>
3549
3550         * glib/dbus-glib-tool.c: Add --prefix argument.
3551         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3552         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3553         Add prefix argument.
3554         (generate_glue): Pass prefix argument down.
3555         (dbus_binding_tool_output_glib_server): Pass prefix to
3556         glib-genmarshal.
3557         
3558 2005-05-11  Colin Walters  <walters@verbum.org>
3559
3560         * tools/dbus-send.c (append_array): New function.
3561         (append_arg): Broken out from main.
3562         (main): Add cheesy hack to send arrays and variants.
3563         (usage): Update.
3564         * tools/dbus-print-message.c (print_iter): Broken out
3565         from main.
3566
3567 2005-05-11  Colin Walters  <walters@verbum.org>
3568
3569         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3570         New function, returns signature string for signature iter.
3571         * dbus/dbus-signature.h: Prototype it.
3572         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3573         New function, returns signature string for message iter.
3574         (dbus_message_iter_get_array_len): New function, returns
3575         length of array.
3576         (dbus_message_iter_get_fixed_array): Fix assertion; this
3577         function should be used when the iter is pointing to the
3578         contents of an array
3579         * dbus/dbus-message.h: Prototypes.
3580         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3581         New function; returns length of an array.
3582         * dbus/dbus-marshal-recursive.h: Prototype it.
3583         
3584 2005-05-11  Colin Walters  <walters@verbum.org>
3585
3586         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3587         compilation error.
3588         
3589 2005-05-08  Havoc Pennington  <hp@redhat.com>
3590
3591         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3592         daemon's pid, not the parent's pid, to the file descriptor.
3593         Reported by Taj Morton.
3594
3595 2005-05-05  Havoc Pennington  <hp@redhat.com>
3596
3597         * configure.in (LT_*): add notes on how the libtool versioning
3598         works to save thinking. Increment soname to indicate protocol
3599         breakage (though really the library interface hasn't changed I
3600         guess)
3601
3602         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3603         verify the GUID received from server matches what we were
3604         expecting, if we had an expectation
3605
3606         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3607         (_dbus_auth_get_guid_from_server): new function
3608         (send_begin): parse the OK args
3609
3610         * doc/dbus-specification.xml: add GUID to the auth protocol
3611
3612 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3613
3614         * Fix my name in previous changelog ;)
3615
3616         * python/proxies.py (ProxyObject.__getattr__): add further patch
3617         from Anthony Baxter to throw an AttributeError when python 
3618         __special__ functions are called instead of marshling them over 
3619         the bus (Bug#1685 comment 3).
3620
3621 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3622
3623         * python/Makefile.am: changed to use pyexecdir for the binding
3624         shared libraries (Bug#2494)
3625
3626         * python/exceptions.py: bring exceptions over from the bindings
3627         so they can be used in applications (Bug#2036)
3628         Make all exceptions derive from DBusException
3629
3630         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3631         of classes so that print obj doesn't throw an exception (Bug #1685)
3632
3633 2005-05-03  Ross Burton  <ross@openedhand.com>
3634
3635         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3636         Return if we get an error during registration.  Set up a
3637         weak reference on object to unregister if object is destroyed.
3638         (unregister_gobject): New function.
3639         
3640 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3641
3642         * python/dbus_bindings.pyx.in: 
3643         - added new type classes for hinting to the marashaler what type 
3644         to send over the wire
3645         - added int16 and uint16 marshalers
3646         - Fixed a bug in the type constants that caused int32 to go out
3647         as uint16 over the wire
3648         * python/dbus.py: split up into different files and renamed _dbus.py
3649         * python/__init__.py, python/_util.py, python/decorators.py, 
3650         python/exceptions.py, python/proxies.py, python/services.py,
3651         python/types.py: new files split off from dbus.py
3652         * python/Makefile.am: Add new files, remove dbus.py and 
3653         install all python files to <python module dir>/dbus
3654         * python/examples/*: Added #!/usr/bin/env python to the top of
3655         every example.  Patch provided by Tatavarty Kalyan
3656
3657 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3658
3659         * NEWS: Update to 0.33
3660
3661 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3662
3663         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3664         method for doing async calls
3665         (_pending_call_notification): New C function for handling pendning call
3666         callbacks
3667         (set_notify): New method for setting pending call notification
3668         
3669         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3670         Async capabilities added to remote method calls
3671         (Sender): class removed
3672         (RemoteService): class removed
3673         (ObjectTree): class removed for now
3674         (RemoteObject): Renamed to ProxyObject
3675         (RemoteMethod): Renamed to ProxyMethod
3676         (method): Decorator added for decorating python methods as dbus methods
3677         (signal): Decorator added for decorating python methods as signal emitters
3678         (ObjectType): Metaclass added for generating introspection data and the
3679         method callback vtable
3680         (Interface): Wrapper class added to wrap objects in a dbus interface
3681         (Object): Uses ObjectType as its metaclass and exports Introspect
3682         of the org.freedesktop.DBus.Introspectable interface
3683         (ValidationException, UnknownMethodException): new exceptions
3684
3685         * python/examples/*: Modified to fit with the new bindings
3686
3687 2005-04-23  Havoc Pennington  <hp@redhat.com>
3688
3689         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3690         reported by Tony Houghton
3691
3692         * test/test-service.c (main): test
3693         dbus_connection_get_object_path_data()
3694
3695         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3696         the exact_match
3697         (_dbus_object_tree_get_user_data_unlocked): new function used by
3698         dbus_connection_get_object_path_data()
3699         (do_register): add assertion test for get_user_data_unlocked
3700         (object_tree_test_iteration): more tests
3701
3702         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3703         new function from Dan Reed to let you get the user data from 
3704         dbus_connection_register_object_path()
3705
3706 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3707
3708         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3709         in numerous places that did not account for the NULL terminator
3710         (signature_from_seed): changed the manual string copy loop to 
3711         just use strcpy instead
3712         make check should now pass
3713
3714 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3715
3716         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3717         so that it allows messages that are not signals to pass in 
3718         NULL as the interface.
3719
3720 2005-04-18  David Zeuthen  <davidz@redhat.com>
3721
3722         * glib/dbus-gmain.c (io_handler_destroy_source): 
3723         (timeout_handler_destroy_source, connection_setup_free): 
3724         Also unref the source to avoid memory leaks.
3725
3726 2005-04-13  David Zeuthen  <davidz@redhat.com>
3727
3728         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3729         more reasonable, yet still totally arbitrary, value :-). 
3730
3731 2005-04-13  David Zeuthen  <davidz@redhat.com>
3732
3733         * doc/TODO: Added an "important for 1.0" item about selinux
3734         allow/deny messages
3735
3736 2005-04-13  David Zeuthen  <davidz@redhat.com>
3737
3738         * bus/selinux.c: Add c-file-style to top of file
3739         (log_audit_callback): Don't free the data here anymore
3740         (bus_selinux_check): Don't take spid and tpid since appending
3741         that to auxdata may OOM.
3742         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3743         to the caller if we are OOM by taking an error object.
3744         (bus_selinux_allows_send): -do-
3745
3746         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3747         and bus_selinux_allows_send
3748
3749         * bus/bus.c (bus_context_check_security_policy): Pass error and
3750         pass on OOM thrown by bus_selinux_allows_send()
3751
3752         * bus/services.c (bus_registry_acquire_service): Pass error and
3753         pass on OOM thrown by bus_selinux_allows_acquire_service()
3754
3755 2005-04-13  Havoc Pennington  <hp@redhat.com>
3756
3757         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3758         message at a time to avoid monopolizing the main loop, bug 
3759         #2953 from Benjamin Otte
3760
3761 2005-04-09  Havoc Pennington  <hp@redhat.com>
3762
3763         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3764         possible overlap, fix from Daniel Reed
3765         (fixup_alignment): fix signedness warnings
3766         (_dbus_string_append_unichar): ditto
3767
3768 2005-04-09  Havoc Pennington  <hp@redhat.com>
3769
3770         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3771
3772         * glib/dbus-glib-tool.c (main): fix warning
3773
3774         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3775
3776         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3777         add a new function that can be used in simple applications that
3778         don't have a main loop and are willing to block
3779
3780 2005-04-05  David Zeuthen  <davidz@redhat.com>
3781
3782         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3783
3784         * glib/dbus-gmain.c:
3785         (io_handler_destroy_source): Remove from list of IO handlers
3786         of the ConnectionSetup object
3787         (timeout_handler_destroy_source): -do- for timeout handlers
3788         (io_handler_source_finalized): Don't remove from list since
3789         we now do that in io_handler_destroy_source(). Renamed from
3790         io_handler_source_destroyed
3791         (timeout_handler_source_destroyed): -do- for timeout handlers
3792         (connection_setup_free): It is now safe to iterate over all
3793         IO and timeout handlers as the _destroy_source removes them
3794         from the list synchronously
3795
3796 2005-03-30  Havoc Pennington  <hp@redhat.com>
3797
3798         * configure.in: change check to gtk 2.4
3799
3800         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3801         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3802         to 2.4
3803
3804 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3805
3806         * News: Update 0.32
3807
3808         * HACKING: Fixed realease instructions.  configure.in should be updated to
3809           the next release by the person who made the last release.
3810
3811 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3812
3813         * python/lvalue_cast_post_process.py - removed.  Patch has been
3814           submitted to Pyrex maintainers that fixes gcc4.0 errors
3815
3816         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3817
3818 2005-03-24  Daniel Reed  <n@ml.org>
3819
3820         * tools/Makefile.am: Make print-introspect and
3821         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3822
3823 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3824
3825         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3826
3827         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3828           had in Red Hat packages for a while but for some reason never 
3829           got merged upstream
3830           (_dbus_is_a_number): New checks if a string
3831           can be converted to a number and does the conversion if it can
3832           (_dbus_user_database_lookup): Add check to see if the given username
3833           is a udi.  This allows udi's to be used instead of usernames in the
3834           config file.
3835           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3836           is a gdi.  This allows gdi's to be used instead of groupnames in the
3837           config file.
3838
3839 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3840
3841         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3842           code so that it compiles with gcc4.0
3843
3844         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3845           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3846           results back to dbus_binding.c
3847
3848 2005-03-20  Colin Walters  <walters@verbum.org>
3849
3850         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3851
3852         * configure.in: Require GTK+ 2.6.
3853         
3854 2005-03-20  Colin Walters  <walters@verbum.org>
3855
3856         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3857
3858 2005-03-17  Tom Parker  <palfrey@tevp.net>
3859
3860         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3861         print DBUS_UID_UNSET; instead print passed username.  Also
3862         be sure to actually use gid looked up in cache.
3863         
3864         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3865         for DBUS_GID_UNSET and groupname.
3866
3867 2005-03-17  Colin Walters  <walters@verbum.org>
3868
3869         * bus/print-introspect.c: Move to tools/.
3870         * bus/run-with-tmp-session-bus.sh: Ditto.
3871         
3872         * glib/Makefile.am (dbus-glib-bindings.h): Move
3873         generation to tools/Makefile.am.
3874
3875         * test/glib/run-test.sh: Update to handle move
3876         of run-with-tmp-session-bus.sh.
3877
3878         * test/glib/test-service-glib.c: Update to handle
3879         move of dbus-glib-bindings.h.
3880
3881         * tools/print-introspect.c: Moved here
3882         from bus/, and ported to GLib bindings.
3883
3884         * tools/run-with-tmp-session-bus.sh: Moved here
3885         from bus/.
3886
3887         * tools/Makefile.am: Generate dbus-glib-bindings.h
3888         and dbus-bus-introspect.xml here.
3889
3890         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3891         Update.
3892
3893 2005-03-17  Colin Walters  <walters@verbum.org>
3894
3895         * bus/driver.c (write_args_for_direction): Use
3896         _dbus_string_get_const_data to retrieve string;
3897         _dbus_string_get_const_data_len doesn't actually return
3898         a NULL-terminated substring.
3899
3900         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3901         (main): Change to use org_freedesktop_DBus_request_name
3902         instead of using g_proxy_begin_call/end_call.
3903
3904 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3905
3906         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3907         generating the finalizer.  Fixes from Ben Maurer.
3908
3909 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3910
3911         * mono/BusDriver.cs: Update method names: ListServices
3912         becomes ListNames; GetOwner becomes GetNameOwner.
3913
3914         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3915         onto the eval stack when removing the delegate.
3916
3917 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3918
3919         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3920         LT_CURRENT.  Set it to the autoconf variable.
3921                                                                                 
3922         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3923         classes that disconnects the signal handler delegate from the
3924         service object.  Fixes a big leak of proxy objects on the
3925         client side of things.  Patch from Ben Maurer
3926         <bmaurer@ximian.com>
3927
3928 2005-03-12  Colin Walters  <walters@verbum.org>
3929
3930         * bus/driver.c (write_args_for_direction): New function,
3931         parses a type signature into arguments and outputs to
3932         XML.
3933         (bus_driver_handle_introspect): Use it instead of
3934         hardcoding XML for certain signatures.
3935         
3936         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3937         dependency on dbus-daemon.
3938
3939         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3940         argument, pass it to dbus_binding_tool_output_glib_client.
3941
3942         * glib/dbus-binding-tool-glib.c
3943         (generate_client_glue): Protect against multiple inclusion.
3944         (dbus_binding_tool_output_glib_client): Add
3945         G_BEGIN_DECLS/G_END_DECLS.
3946
3947         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3948         Change to just take iface prefix directly.
3949         (write_formal_parameters): Clarify error message.
3950         (check_supported_parameters): New function; checks to see type
3951         signatures of method parameters are supported.
3952         (generate_client_glue): Handle ignore_unsupported flag.
3953         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3954         parameter.
3955
3956         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3957         --ignore-unsupported by default until glib bindings
3958         support arrays.
3959
3960 2005-03-11  Colin Walters  <walters@verbum.org>
3961
3962         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3963         install it.
3964
3965         * bus/print-introspect.c: New file; prints introspection
3966         data for a given name and object path.
3967
3968         * bus/run-with-tmp-session-bus.sh: New file, refactored
3969         from test/glib/run-test.sh.  Creates a temporary session
3970         bus and runs another program.
3971
3972         * test/glib/run-test.sh: Refactor to invoke
3973         run-with-tmp-session-bus.sh.
3974
3975         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3976         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3977         macros instead of hardcoding.
3978
3979         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3980
3981 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3982
3983         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3984         this unref; it doesn't match up evenly in some codepaths.
3985         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3986         this evenly matches with the ref near the top of this function.
3987
3988 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3989
3990         * dbus/dbus-object-tree.c
3991         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3992         and we try to unregister a path that's not registered, still go
3993         through the process of unlocking and don't just return.
3994
3995 2005-03-09  Colin Walters  <walters@verbum.org>
3996
3997         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3998         to this are generated for client-side wrappers.  Invokes a
3999         D-BUS method and returns reply values.  
4000
4001         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4002         function; writes signature string for argument direction.
4003         (write_args_for_direction): Change to pass input values directly
4004         instead of via address, and fix indentation.
4005         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4006         make generated wrappers inlineable.
4007
4008         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4009         note about using dbus_type_is_fixed.
4010
4011         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4012         dbus/dbus-signature.c as dbus_type_is_fixed.
4013
4014         All callers updated.
4015
4016         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4017         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4018
4019         * dbus/dbus-signature.h: Prototype.
4020
4021         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4022         error printf code.
4023
4024         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4025         appropriate instead of just freeing it.
4026         (main): Free returned strings using g_free.
4027
4028         * test/glib/Makefile.am (test-service-glib-glue.h)
4029         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4030
4031         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4032         simply maps a simple D-BUS type to GType.
4033         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4034         GType.
4035         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4036         initialize the value with it.
4037         (dbus_gvalue_binding_type_from_type): Unused, delete.
4038         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4039         various types instead of unmarshalling to value data directly.
4040         Remove can_convert boolean.
4041         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4042         returning directly instead of using can_convert boolean.
4043         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4044         Stores a GValue in a pointer to a value of its corresponding C
4045         type.
4046
4047         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4048         add dbus_gvalue_store.
4049
4050 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4051
4052         Fix a bunch of lifecycle and memory management problems
4053         in the mono bindings.
4054
4055         * mono/Arguments.cs (Arguments): Implement IDisposable
4056
4057         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4058         strictly a static class.
4059
4060         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4061         delegates into this file.
4062         (Connection): Implement IDisposable.
4063         (Dispose): Disconnect the connection and set the raw connection
4064         pointer to IntPtr.Zero.
4065         (~Connection): Call Dispose().
4066         (RegisterObjectPath): Added.  Manages the registration of object
4067         paths so we can cleanly disconnect them at dispose/finalize time.
4068         (UnregisterObjectPath): Ditto.
4069         (set_RawConnection): Unregister all of the object paths when
4070         changing the underlying DBusConnection.  Add them back onto the
4071         new connection, if any.
4072
4073         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4074         more unmanaged resources anymore, so it's not necessary.  Move all
4075         the DBusObjectPathVTable stuff out of here.
4076         (Handler): Save references to our delegates so that they don't get
4077         finalized.  Call Connection.RegisterObjectPath() instead of
4078         dbus_connection_register_object_path() directly.
4079         (Message_Called): Dispose the message after we're finished with
4080         it.
4081
4082         * mono/Message.cs (Message): Implement IDisposable.
4083         (Dispose): Dispose the Arguments, and set the RawMessage to
4084         IntPtr.Zero.
4085         (SendWithReplyAndBlock): We own the ref to the reply that comes
4086         back from dbus_connection_send_with_reply_and_block() so add a
4087         comment about that and unref it after we've constructed a managed
4088         MethodReturn class around it.  Fixes a big, big leak.
4089
4090         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4091         method.
4092         (BuildSignalHandler): After we've sent the Signal message, dispose
4093         of it.
4094         (BuildMethod): Dispose of the method call and reply messages after
4095         we've sent the message and extracted the data we want from the
4096         reply.
4097
4098         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4099         anymore.
4100         (Service_FilterCalled): Dispose of the message after we're
4101         finished with it.
4102
4103 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4104
4105         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4106         After we attach our pending call to the connection, unref
4107         it.  Fixes a leak.
4108  
4109         * mono/Connection.cs (set_RawConnection): Disconnect our
4110         filter and match callbacks from the old connection and
4111         reconnect them to the new connection, if any.
4112
4113         * mono/DBusType/Array.cs: "Code" is a static member, so
4114         don't use "this" to refer to it.  Fix for stricter checking
4115         in Mono 1.1.4.
4116  
4117         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4118         object path that we pass into unmanaged code.
4119  
4120         * mono/DBusType/String.cs (Append): Don't leak the string
4121         that we pass into unmanged code.
4122
4123 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4124         * NEWS: Update for 0.31
4125
4126         * configure.in: Release 0.31
4127         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4128
4129         * qt/Makefile.am: fixed build
4130
4131         * dbus/Makefile.am: soname bump for libdbus
4132
4133         * glib/Makefile.am: soname bump for libdbus-glib
4134
4135 2005-03-05  Havoc Pennington  <hp@redhat.com>
4136
4137         * dbus/dbus-sysdeps.c:
4138         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4139         value
4140         (_dbus_generate_random_bytes_buffer): fix return value
4141
4142         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4143         checks actually work, from Tom Parker <fdo@tevp.net>
4144
4145 2005-03-01  Colin Walters  <walters@verbum.org>
4146
4147         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4148         functions copied from dbus-glib-tool.c.
4149         (main): Convert lots of error code to use them.
4150         Also add some testing for introspection bits.
4151
4152 2005-03-01  Colin Walters  <walters@verbum.org>
4153         
4154         * doc/TODO: Remove introspection signature TODO.
4155
4156 2005-02-27  Colin Walters  <walters@verbum.org>
4157
4158         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4159         Change return value to const char * instead of int so we can do
4160         full signatures.
4161         (struct PropertyInfo, struct ArgInfo): Store char *.
4162         (property_info_new, arg_info_new): Update parameters, strdup.
4163         (property_info_unref, arg_info_unref): Free.
4164
4165         * glib/dbus-gidl.h: Update prototypes.
4166
4167         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4168         (validate_signature): New function, just validates signature and
4169         sets GError.
4170         (parse_property, parse_arg): Invoke validate_signature.  Store
4171         signature instead of just type code.
4172
4173         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4174         function to return a primary type for a signature, dropping
4175         information about types in container types.
4176         (dbus_gvalue_genmarshal_name_from_type)
4177         (dbus_gvalue_binding_type_from_type)
4178         (dbus_gvalue_ctype_from_type): Update to take full signature
4179          instead of type code.
4180         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4181
4182         * glib/dbus-gvalue.h: Update prototypes for above.
4183
4184         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4185         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4186         (introspect_properties, introspect_signals, write_interface):
4187         Update to handle signatures, and remove usage of
4188         _dbus_gutils_type_to_string.
4189         (handle_introspect): Print out type codes instead of e.g. "string"
4190         in hardcoded introspection XML; also use x_AS_STRING constants
4191         instead of hardcoding in string.
4192
4193         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4194         to string.  Remove usage of _dbus_gutils_type_to_string.
4195
4196         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4197
4198         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4199         deletion.
4200         
4201         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4202         (compute_marshaller_name, generate_glue): Handle signature change
4203         to string.
4204         (write_formal_parameters, write_args_for_direction): Ditto, and
4205         remove FIXME.
4206
4207         * tools/dbus-tree-view.c (type_to_string): Delete.
4208         (info_set_func_text): Update to print full signatures.
4209
4210         * test/glib/test-service-glib.xml: Change types to new
4211         introspection format.
4212
4213 2005-02-26  Havoc Pennington  <hp@redhat.com>
4214
4215         * doc/TODO: remove the "guid" item
4216
4217         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4218         (with_bus_thread_func): use open_private
4219
4220         * dbus/dbus-connection.c (dbus_connection_open_private): new
4221         function that works like the old dbus_connection_open()
4222         (dbus_connection_open): now returns an existing connection if
4223         possible
4224
4225         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4226         through the GUID to the transport
4227
4228         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4229         GUID in hex-encoded form.
4230
4231         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4232         pass GUID argument in to the transport
4233
4234         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4235         guid argument
4236
4237         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4238
4239         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4240
4241 2005-02-25  Havoc Pennington  <hp@redhat.com>
4242
4243         * doc/dbus-specification.xml: document the GUID thing
4244
4245         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4246         globally unique ID for the server, and put a "guid=hexencoded"
4247         field in the address
4248
4249         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4250
4251         * dbus/dbus-message.c: ditto
4252
4253         * dbus/dbus-dataslot.c: ditto
4254
4255         * dbus/dbus-list.c: ditto
4256
4257         * dbus/dbus-internals.h: wait, just include
4258         dbus-threads-internal.h here
4259         
4260         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4261         use in main library
4262
4263         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4264
4265 2005-02-24  Colin Walters  <walters@verbum.org>
4266
4267         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4268
4269 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4270
4271         * glib/Makefile.am: added dbus-gobject.h to sources list
4272         so distcheck doesn't fail
4273         
4274 2005-02-24  Havoc Pennington  <hp@redhat.com>
4275
4276         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4277         you must disconnect before unref, since locking and other things
4278         are screwed up otherwise. Fix assorted other locking stuff.
4279
4280         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4281         fix compilation
4282
4283         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4284         into a private header and don't export from the library
4285
4286         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4287
4288 2005-02-24  Colin Walters  <walters@verbum.org>
4289         
4290         * dbus/dbus-signature.c: New file; implements various functions
4291         related to type signatures.  Includes an interator for parsing,
4292         validation functions.
4293         (dbus_type_is_basic): Moved here from
4294         dbus-marshal-basic.c:_dbus_type_is_basic.
4295         (dbus_type_is_container): Moved here from
4296         dbus-marshal-basic.c:_dbus_type_is_container.
4297
4298         All callers of _dbus_type_is_container and _dbus_type_is_basic
4299         updated, and include dbus-signature.h.
4300
4301         * dbus/dbus-signature.h: New file; prototypes for the above.
4302
4303         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4304         dbus-signature.h.
4305
4306         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4307         function factored out of _dbus_first_type_in_signature.
4308         (_dbus_first_type_in_signature_c_str): New function; returns first
4309         type code for a type signature character.
4310
4311         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4312         handle function moves.
4313
4314         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4315
4316         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4317         function; skips to next complete type in type signature.
4318         Implemented using previous skip_one_complete_type.  Now
4319         skip_one_complete_type just delegates to
4320         _dbus_type_signature_next.
4321
4322         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4323         to dbus-signature.c
4324         (_dbus_type_is_container): Ditto.
4325
4326         * doc/dbus-specification.xml: Update introspection sample to
4327         use real type signatures.
4328
4329         * dbus/dbus-test.h: Prototype signature test.
4330
4331         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4332         signature tests.
4333
4334         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4335
4336 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4337
4338         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4339         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4340
4341 2005-02-21  Colin Walters  <walters@verbum.org>
4342
4343         * dbus/dbus-test-main.c (main): Take optional specific test
4344         argument.
4345
4346         * dbus/dbus-test.c (run_test): New function, runs a test function
4347         with no data directory.
4348         (run_data_test): Like above, but takes data directory.
4349         (dbus_internal_do_not_use_run_tests): Take
4350         specific test argument.  Replace lots of cut n' paste code
4351         with run_test and run_data_test.
4352
4353         * dbus/dbus-test.h: Update prototype for
4354         dbus_internal_do_not_use_run_tests.
4355
4356 2005-02-20  Havoc Pennington  <hp@redhat.com>
4357
4358         Fix bugs reported by Daniel P. Berrange
4359         
4360         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4361         (protected_change_watch): new function
4362         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4363         (_dbus_server_add_watch): change to work like the
4364         dbus-connection.c equivalents; like those, probably kind of
4365         busted, but should at least mostly work for now
4366         (dbus_server_disconnect): drop the lock if we were already
4367         disconnected, patch from Daniel P. Berrange
4368
4369         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4370         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4371         same stuff
4372
4373         * doc/TODO: todo about unscrewing this mess
4374
4375 2005-02-19  Colin Walters  <walters@verbum.org>
4376
4377         * glib/dbus-binding-tool-glib.c
4378         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4379
4380         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4381         as errno.h and sys/stat.h.
4382         (lose): New function, prints error with
4383         newline and exits.
4384         (lose_gerror): Similar, but takes GError for message.
4385         (main): Add --output argument to specify output file to write to,
4386         instead of always printing to stdout.  In this mode, determine
4387         timestamps on source files to see whether any are newer than the
4388         target file.  If not, exit.  Also convert a number of error
4389         messages to use lose (since it's shorter), and switch to using
4390         g_io_channel_shutdown.
4391
4392 2005-02-19  Havoc Pennington  <hp@redhat.com>
4393
4394         * glib/dbus-gobject.c
4395         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4396
4397         * glib/dbus-glib.c: fix doxygen warnings
4398
4399         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4400         is found on an <arg>
4401
4402 2005-02-17  Colin Walters  <walters@verbum.org>
4403
4404         * glib/dbus-gobject.h: Don't export
4405         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4406         
4407         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4408         (invoke_object_method): Handle it.
4409
4410         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4411         Handle rename.
4412         
4413 2005-02-17  Colin Walters  <walters@verbum.org>
4414
4415         * bus/.cvsignore, doc/.cvsignore
4416         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4417         Update.
4418
4419 2005-02-17  Colin Walters  <walters@verbum.org>
4420         
4421         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4422         Rename to DBUS_SERVICE_DBUS.
4423         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4424         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4425         Change the value from "org.freedesktop.Local"
4426         to "org.freedesktop.DBus.Local".
4427         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4428         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4429         DBUS_INTERFACE_INTROSPECTABLE.
4430         Change the value from "org.freedesktop.Introspectable"
4431         to "org.freedesktop.DBus.Introspectable".
4432         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4433         DBUS_INTERFACE_PROPERTIES.
4434         Change the value from "org.freedesktop.Properties"
4435         to "org.freedesktop.DBus.Properties".
4436         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4437         DBUS_INTERFACE_PEER.
4438         Change the value from "org.freedesktop.Peer"
4439         to "org.freedesktop.DBus.Peer".
4440         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4441         DBUS_INTERFACE_LOCAL.
4442         Change the value from "org.freedesktop.Local"
4443         to "org.freedesktop.DBus.Local".
4444
4445         All other users of those constants have been changed.
4446
4447         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4448
4449         * glib/dbus-gobject.c (handle_introspect): Use constants.
4450
4451         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4452
4453 2005-02-17  Colin Walters  <walters@verbum.org>
4454
4455         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4456         (parse_node, parse_interface, parse_method, parse_signal)
4457         (parse_property, parse_annotation): Lose if we're currently in an
4458         annotation.
4459         (parse_annotation): New function.
4460         (parser_start_element, parser_end_element): Handle annotation.
4461         (parse_method, parse_interface): Remove support for c_name attribute,
4462         switch to annotations.
4463
4464         * glib/dbus-gidl.h (interface_info_get_binding_names)
4465         (method_info_get_binding_names)
4466         (interface_info_get_binding_name, method_info_get_binding_name)
4467         (interface_info_set_binding_name, method_info_set_binding_name):
4468         Remove.
4469         (interface_info_get_annotations, method_info_get_annotations)
4470         (interface_info_get_annotation, method_info_get_annotation)
4471         (interface_info_add_annotation, method_info_add_annotation):
4472         Prototype.
4473
4474         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4475         for "bindings".
4476         (struct MethodInfo): Ditto.
4477         Straightfoward conversion of binding methods into annotation methods
4478         as prototyped.
4479
4480         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4481
4482         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4483
4484         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4485         Use new annotation API.
4486
4487         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4488         annotation element.
4489         
4490         * doc/dbus-specification.xml: Discuss introspection annotations,
4491         include list of well-known annotations.
4492
4493         * test/glib/test-service-glib.xml: Make validate against new DTD.
4494
4495 2005-02-17  Colin Walters  <walters@verbum.org>
4496
4497         This patch is based on initial work from
4498         Paul Kuliniewicz <kuliniew@purdue.edu>.
4499
4500         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4501         initialization of GValue from dbus type to here.
4502         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4503         for the "glib-genmarshal" program from a DBus type.
4504         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4505         into the C name for it we use in the glib bindings.
4506         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4507         glib C type (not GValue).
4508         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4509
4510         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4511         from dbus-gobject.c.
4512
4513         * glib/dbus-gutils.h: Prototype it.
4514
4515         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4516         (marshal_dbus_message_to_g_marshaller): Use new shared function
4517         dbus_glib_marshal_dbus_message_to_gvalue_array.
4518
4519         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4520         Will be changed once we have annotations.
4521
4522         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4523         GStaticRWLock.  Callers updated.
4524         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4525         (string_table_next): New function for iterating over zero-terminated
4526         string value array.
4527         (string_table_lookup): New function; retrieves specific entry in
4528         array.
4529         (get_method_data): New function; look up method data in object data chunk.
4530         (object_error_domain_prefix_from_object_info)
4531         (object_error_code_from_object_info): New functions, but not implemented yet.
4532         (method_interface_from_object_info): New function; retrieve interface name.
4533         (method_name_from_object_info): New function; retrieve method name.
4534         (method_arg_info_from_object_info): New function; retrieve argument data.
4535         (arg_iterate): New function; iterates over serialized argument data.
4536         (method_dir_signature_from_object_info): New function; returns a
4537         GString holding type signature for arguments for just one
4538         direction (input or output).
4539         (method_input_signature_from_object_info)
4540         (method_output_signature_from_object_info): New functions.
4541         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4542         converts dbus message arguments into a GValue array.  Used for both
4543         signal handling and method invocation.
4544         (struct DBusGlibWriteIterfaceData): New utility structure.
4545         (write_interface): New function; generate introspection XML for
4546         an interface.
4547         (introspect_interfaces): New function; gathers all interface->methods,
4548         generates introspection XML for them.
4549         (handle_introspect): Invoke introspect_interfaces.
4550         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4551         (lookup_object_and_method): New function; examines an incoming message
4552         and attempts to match it up (via interface, method name, and argument
4553         signature) with a known object and method.
4554         (gerror_domaincode_to_dbus_error_name): New function; converts a
4555         GError domain and code into a DBus error name.  Needs GError data
4556         added to object introspection to work well.
4557         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4558         GError.
4559         (invoke_object_method): New function to invoke an object method
4560         looked up via lookup_object_and_method.  Parses the incoming
4561         message, turns it into a GValue array, then invokes the marshaller
4562         specified in the DBusGMethodInfo.  Creates a new message with
4563         either return values or error message as appropriate.
4564         (gobject_message_function): Invoke lookup_object_and_method and
4565         invoke_object_method.
4566
4567         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4568         (enum DBusBindingOutputMode): New enum for binding output modes.
4569         (pretty_print): Print binding names.
4570         (dbus_binding_tool_error_quark): GError bits.
4571         (version): Fix typo.
4572         (main): Create GIOChannel for output.  Parse new --mode argument,
4573         possible values are "pretty-print", "glib-server", "glib-client".
4574         Use mode to invoke appropriate function.
4575         
4576         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4577
4578         * glib/dbus-glib-tool.h: New header, just includes GError bits
4579         for now.
4580
4581         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4582         maps binding style to name.
4583         (struct MethodInfo): Ditto.
4584         (get_hash_keys, get_hash_key): Utility function, returns keys for
4585         a GHashTable.
4586         (interface_info_new, method_info_new): Initialize bindings.
4587         (interface_info_unref, method_info_unref): Destroy bindings.
4588         (method_info_get_binding_names, method_info_get_binding_name)
4589         (interface_info_get_binding_names, interface_info_get_binding_name):
4590         Functions for retrieving binding names.
4591         (method_info_set_binding_name, interface_info_set_binding_name):
4592         Functions for setting binding names.
4593
4594         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4595         for glib binding generation.
4596
4597         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4598         and client-side glib glue generation.
4599
4600         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4601         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4602         dbus-glib-tool.h.
4603
4604         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4605         of using GClosureMarshal directly.
4606         (struct DBusGObjectInfo): Add n_infos member.
4607
4608         * test/glib/test-service-glib.xml: New file; contains introspection data
4609         for MyTestObject used in test-service-glib.c.
4610
4611         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4612         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4613         (my_object_uppercase, my_object_many_args): New test methods.
4614         (main): Use dbus_g_object_class_install_info to include generated object
4615         info.
4616
4617         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4618         as well as client-side bindings.
4619
4620         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4621         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4622         using both the dbus_gproxy stuff directly as well as the generated bindings.
4623
4624 2005-02-15  Havoc Pennington  <hp@redhat.com>
4625
4626         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4627         complete a pending call, don't run filters first.
4628
4629         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4630         dbus_pending_call_steal_reply
4631
4632         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4633         _dbus_connection_block_pending_call
4634         (dbus_pending_call_get_reply): change to steal_reply and return a
4635         ref
4636
4637         * dbus/dbus-connection.c
4638         (dbus_connection_send_with_reply_and_block): port to work in terms
4639         of DBusPendingCall
4640         (_dbus_connection_block_pending_call): replace block_for_reply
4641         with this
4642
4643 2005-02-14  Havoc Pennington  <hp@redhat.com>
4644
4645         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4646         properly handle looking up group information by name; fix 
4647         from j@bootlab.org
4648
4649 2005-02-13  Havoc Pennington  <hp@redhat.com>
4650
4651         * dbus/dbus-connection.c (dbus_connection_return_message) 
4652         (dbus_connection_borrow_message): hold dispatch lock while message
4653         is outstanding
4654         (_dbus_connection_block_for_reply): hold dispatch lock while we
4655         block for the reply, so nobody steals our reply
4656         (dbus_connection_pop_message): hold the dispatch lock while we
4657         pluck the message
4658
4659 2005-02-13  Havoc Pennington  <hp@redhat.com>
4660
4661         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4662         (_dbus_connection_release_dispatch)
4663         (_dbus_connection_acquire_io_path)
4664         (_dbus_connection_release_io_path): make the mutex and condvar
4665         control access to the "acquired" flag. Drop the connection lock
4666         while waiting on the condvar. Hopefully these are baby steps in
4667         roughly the right direction.
4668
4669 2005-02-13  Havoc Pennington  <hp@redhat.com>
4670
4671         * dbus/dbus-connection.c: use separate mutexes for the condition
4672         variables; this is some kind of baseline for sanity, but the
4673         condition variables still aren't used correctly afaict
4674
4675 2005-02-13  Havoc Pennington  <hp@redhat.com>
4676
4677         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4678         fix a double-unlock
4679
4680         * dbus/dbus-connection.c
4681         (_dbus_connection_detach_pending_call_unlocked): add this
4682
4683         Initial semi-correct pass through to fix thread locking; there are
4684         still some issues with the condition variable paths I'm pretty
4685         sure
4686         
4687         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4688         lock/unlock calls
4689
4690         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4691         rename to add _unlocked
4692         (struct DBusConnection): move "dispatch_acquired" and
4693         "io_path_acquired" to use only one bit each.
4694         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4695         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4696         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4697         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4698         (_dbus_connection_remove_timeout) 
4699         (_dbus_connection_toggle_timeout): drop lock when calling out to
4700         user functions; done in a hacky/bad way.
4701         (_dbus_connection_send_and_unlock): add a missing unlock
4702         (_dbus_connection_block_for_reply): add a missing unlock
4703
4704         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4705         drop lock in a hacky probably unsafe way to call out to user
4706         function
4707
4708 2005-02-12  Havoc Pennington  <hp@redhat.com>
4709
4710         * tools/dbus-tree-view.c (info_set_func_text): display more
4711         details on args
4712
4713         * bus/driver.c (bus_driver_handle_list_services): list the bus
4714         driver
4715
4716         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4717
4718         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4719         (method_info_get_n_args): new function
4720
4721 2005-02-12  Havoc Pennington  <hp@redhat.com>
4722
4723         * bus/driver.c (bus_driver_handle_introspect): add introspection
4724         for bus driver
4725
4726 2005-02-12  Havoc Pennington  <hp@redhat.com>
4727
4728         * bus/driver.c: put the signature of each bus driver method in the
4729         table of handlers and check it on incoming calls; this isn't
4730         really useful, but going to add introspect support in a minute.
4731
4732 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4733
4734         * mono/Connection.cs: The unpredictability of finalizers in mono
4735         prevents us from deterministically disconnecting the filters from
4736         the Service class's finalizer, so move tracking of filters and
4737         matches here.  Add API for that.
4738
4739         * mono/Service.cs: Remove the code, add code which calls the
4740         methods now on the Connection class.
4741
4742 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4743
4744         * python/dbus.py (class Sender): added to support dbus signals better
4745         (Bus::add_signal_receiver): added expand_args parameter which defaults
4746         to True.  When expand args is True the signal handler will pass the 
4747         message arguments as parameters to the signal handler.  If False
4748         revert to previous behavior where the signal handler must get the
4749         argument list from the message.  This is to help port applications
4750         like HAL that have a tendancy to send variable length argument lists.
4751         self._match_rule_to_receivers is now a dict of dicts.
4752         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4753         removing it from a list
4754         (Bus::_signal_func): change signal handlers so that interface,
4755         signal_name, service, path and message are packed into a Sender
4756         object and that is passed to the handler.  If expand_args is True
4757         extract the args list from the message and append it to the parameter
4758         list
4759         
4760         * python/dbus_bindings.pyx.in (class Signature): added to support 
4761         signiature types
4762         (MessageIter::__init__): changed iteration limit to match D-BUS
4763         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4764         STRUCT and VARIENT type support
4765         (MessageIter::python_value_to_dbus_sig): made recursive to support
4766         recursive types
4767         (MessageIter::append*): added Signature, dict, tuple 
4768         support
4769
4770         * python/examples/example-client.py: added examples of getting tuples
4771         and dicts
4772
4773         * python/examples/example-service.py: added examples of sending tuples
4774         and dicts
4775
4776         * python/examples/example-signal-recipient.py: Fixed to handle new
4777         signal callback format
4778
4779 2005-02-10  Havoc Pennington  <hp@redhat.com>
4780
4781         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4782         (call dbus_g_proxy_add_signal)
4783
4784         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4785         escape the hostname
4786         (_dbus_server_new_for_domain_socket): escape the path
4787
4788         * dbus/dbus-address.c (dbus_address_escape_value): new
4789         (dbus_address_unescape_value): new
4790         (dbus_parse_address): unescape values
4791
4792         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4793
4794         * doc/dbus-specification.xml: explain how to escape values in
4795         addresses
4796
4797 2005-02-10  Havoc Pennington  <hp@redhat.com>
4798
4799         * dbus/dbus-message-factory.c (generate_special): modify test to
4800         avoid using a non-basic dict key
4801
4802         * dbus/dbus-marshal-validate-util.c: add test for the below
4803
4804         * doc/dbus-specification.xml: require that dict keys are a basic
4805         type
4806
4807         * dbus/dbus-marshal-validate.c
4808         (_dbus_validate_signature_with_reason): require that dict key is a
4809         basic type
4810
4811 2005-02-10  Havoc Pennington  <hp@redhat.com>
4812
4813         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4814         change to be _and_unlock instead of _unlocked
4815
4816         * dbus/dbus-connection.c
4817         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4818         have no_update so we can find this bug quickly in future
4819
4820 2005-02-10  Havoc Pennington  <hp@redhat.com>
4821
4822         * dbus/dbus-message-util.c (verify_test_message): tests for string
4823         array
4824
4825         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4826         support for arrays of string/signature/path
4827
4828 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4829
4830         * dbus/dbus-connection.c
4831         (_dbus_connection_queue_received_message_link,
4832         _dbus_connection_message_sent): Add the path to
4833         the verbose output.
4834         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4835         _dbus_connection_send_preallocated_unlocked(), updated the
4836         dispatch status, and unlocks.  Fixes a bug where certain
4837         situations (like a broken pipe) could cause a Disconnect message
4838         to not be sent, tricking the bus into thinking a service was still
4839         there when the process had quit.
4840         (_dbus_connection_send_preallocated): Call
4841         _dbus_connection_send_preallocated_and_unlock().
4842         (_dbus_connection_send_and_unlock): Added.  Calls
4843         _dbus_connection_send_preallocated_and_unlock().
4844         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4845         (dbus_connection_send_with_reply): Update the dispatch status and
4846         unlock.
4847
4848         * mono/Service.cs (~Service): Added.  Removes the filter so that
4849         we don't get unmanaged code calling back into a GCed delegate.
4850         (RemoveFilter); Added.
4851
4852 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4853
4854         * dbus/dbus-message.c (dbus_message_iter_open_container):
4855         - Removed check for iterator type being an array because
4856         get_arg_type does not work with writer iterators
4857         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4858
4859 2005-02-07  Havoc Pennington  <hp@redhat.com>
4860
4861         * doc/dbus-specification.xml: some more language cleanups; add
4862         stuff about how to deal with invalid protocol and extension
4863         points; add _ to allowed chars in auth commands; add EXTENSION_
4864         auth command prefix
4865
4866 2005-02-06  Havoc Pennington  <hp@redhat.com>
4867
4868         * s/expected/required/ in a couple places for clarity
4869
4870 2005-02-07  Colin Walters  <walters@verbum.org>
4871
4872         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4873         sender or proposed_recipient.
4874
4875 2005-02-06  Havoc Pennington  <hp@redhat.com>
4876
4877         * dbus/dbus-message-factory.c (generate_special): more tests
4878
4879         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4880         array length that exceeds the maximum
4881
4882 2005-02-05  Havoc Pennington  <hp@redhat.com>
4883
4884         * dbus/dbus-message-factory.c (generate_special): more test cases,
4885         increasing coverage
4886
4887         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4888         reason why a signature was invalid
4889
4890         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4891         skip the length of the string before we look at it in validation
4892
4893         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4894         equal_substring
4895
4896         * dbus/dbus-message.c (_dbus_message_loader_new): default
4897         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4898
4899 2005-02-05  Havoc Pennington  <hp@redhat.com>
4900
4901         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4902         if the signature of a variant was empty
4903         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4904         struct with no element type)
4905
4906         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4907         mangled messages to break things
4908
4909 2005-02-04  Havoc Pennington  <hp@redhat.com>
4910
4911         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4912         g_quark_try_string() so it actually can return 0
4913         (dbus_g_proxy_connect_signal): ditto
4914
4915 2005-02-04  Havoc Pennington  <hp@redhat.com>
4916
4917         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4918         bogus warning
4919         (tristring_from_message): assert cleanly on null path/interface
4920         (should not be possible though I decided later)
4921         (dbus_g_proxy_dispose): move proxy manager unregistration here
4922         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4923         g_return_if_fail() checks
4924
4925 2005-02-04  Havoc Pennington  <hp@redhat.com>
4926
4927         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4928
4929         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4930         (with some minor changes)
4931
4932         * doc/dbus-specification.xml: add deprecated attribute to
4933         introspection format
4934
4935 2005-01-31  Havoc Pennington  <hp@redhat.com>
4936
4937         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4938         think it's sort of right
4939
4940 2005-01-30  Havoc Pennington  <hp@redhat.com>
4941
4942         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4943
4944 2005-01-30  Havoc Pennington  <hp@redhat.com>
4945
4946         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4947
4948         * autogen.sh: change to autotools 1.9
4949
4950         * glib/dbus-gproxy.c: completely change how signals work
4951         (dbus_g_proxy_add_signal): new function to specify signature of a
4952         signal
4953         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4954         and g_warning if the incoming message has the wrong signature.
4955
4956 2005-01-30  Havoc Pennington  <hp@redhat.com>
4957
4958         * tools/dbus-names-model.c (have_names_notify): fix this
4959
4960         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4961         up the string array handling a bit 
4962
4963 2005-01-30  Havoc Pennington  <hp@redhat.com>
4964
4965         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4966         (dbus_g_pending_call_cancel): new function
4967
4968         * dbus/dbus-glib.h: move GType decls for connection/message here;
4969         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4970         here, just kind of rationalizing how we handle all that
4971
4972         * tools/dbus-names-model.c: new file for a tree model listing the
4973         services on a bus
4974
4975         * tools/dbus-tree-view.c (model_new): use proper typing on the
4976         model rows
4977
4978 2005-01-30  Havoc Pennington  <hp@redhat.com>
4979
4980         * glib/dbus-gmain.c: add a custom GSource back that just checks
4981         whether the message queue has anything in it; otherwise, there are 
4982         cases where we won't see messages in the queue since there was no 
4983         IO visible to the glib main loop
4984
4985         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4986         increase default message timeout to 25 seconds
4987
4988 2005-01-30  Havoc Pennington  <hp@redhat.com>
4989
4990         * test/glib/test-profile.c (no_bus_stop_server): remove the
4991         warning about the g_warning that I just fixed
4992
4993         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4994         custom source, seems to be a lot easier to understand and work
4995         better.
4996
4997 2005-01-30  Havoc Pennington  <hp@redhat.com>
4998
4999         I think this main loop thing is conceptually broken, but here are 
5000         some band aids. I'll maybe rewrite it in a minute.
5001         
5002         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5003         custom GSource, so don't pass it in; confusing
5004         (gsource_server_finalize, gsource_connection_finalize): add
5005         finalize handlers that remove all the watches.  
5006
5007 2005-01-30  Havoc Pennington  <hp@redhat.com>
5008
5009         * glib/dbus-gobject.c (introspect_properties): fix the XML
5010         generated
5011
5012         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5013         which effectively detects the use of freed messages
5014
5015         * glib/dbus-gobject.c (handle_introspect): modify and return the
5016         reply message instead of the incoming message
5017
5018         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5019         gee, maybe it should SEND THE XML instead of just making a string
5020         and freeing it again ;-)
5021
5022         * tools/dbus-print-message.c (print_message): improve printing of
5023         messages
5024
5025         * configure.in: add debug-glib.service to the output
5026
5027 2005-01-30  Havoc Pennington  <hp@redhat.com>
5028
5029         dbus-viewer introspected and displayed the bus driver
5030         
5031         * dbus/dbus-object-tree.c 
5032         (object_tree_test_iteration): add tests for a handler registered on "/"
5033
5034         * dbus/dbus-object-tree.c
5035         (_dbus_decompose_path): fix to handle path "/" properly
5036         (run_decompose_tests): add tests for path decomposition
5037         
5038         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5039         properly
5040
5041         * glib/dbus-gobject.c (handle_introspect): fix quotes
5042
5043         * test/glib/run-test.sh: support launching the bus, then running
5044         dbus-viewer
5045
5046         * test/glib/test-service-glib.c (main): put in a trivial gobject
5047         subclass and register it on the connection
5048
5049         * bus/driver.c (bus_driver_handle_introspect): implement
5050         introspection of the bus driver service
5051
5052         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5053         identifiers, doctype decl
5054
5055         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5056         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5057         returning the service unchanged.
5058         (bus_driver_handle_message): remove old check for reply_serial in
5059         method calls, now the message type deals with that
5060         (bus_driver_handle_message): handle NULL interface
5061
5062         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5063
5064         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5065         -1 for len
5066
5067         * tools/dbus-viewer.c: add support for introspecting a service on
5068         a bus
5069
5070         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5071         (dbus_g_pending_call_unref): add
5072
5073 2005-01-29  Havoc Pennington  <hp@redhat.com>
5074
5075         * tools/dbus-tree-view.c: add support for displaying properties.
5076         (run dbus-viewer with an introspect xml file as arg, then resize
5077         the window so the tree elements show up, not sure what that is)
5078
5079         * glib/dbus-gobject.c (handle_introspect): return
5080         org.freedesktop.Properties and org.freedesktop.Introspectable
5081         interfaces when we are introspected.
5082
5083         * doc/dbus-specification.xml: allow empty interface name when 
5084         Get/Set a property
5085
5086 2005-01-29  Havoc Pennington  <hp@redhat.com>
5087
5088         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5089         though it uses glib, it could be extended for any binding in
5090         principle
5091
5092         * glib/dbus-gobject.c (gobject_message_function): change to the
5093         new way properties work
5094
5095         * dbus/dbus-protocol.h: add the new interfaces
5096
5097         * doc/dbus-specification.xml: document the introspection format,
5098         Introspectable interface, and add an org.freedesktop.Properties
5099         interface.
5100
5101         * glib/dbus-gparser.c: add support for a <property> element
5102
5103         * glib/dbus-gidl.c: add PropertyInfo
5104
5105         * glib/dbus-gobject.c (handle_introspect): put the outermost
5106         <node> outside the signal and property descriptions.
5107         (introspect_properties): export properties as <property> rather
5108         than as method calls
5109
5110 2005-01-28  Havoc Pennington  <hp@redhat.com>
5111
5112         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5113         related to authentication protocol
5114
5115 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5116
5117         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5118                 - BUS_ACTIVATION -> BUS_STARTER
5119                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5120                 - class MessageIter (__init__): Added recursion checking 
5121                 so we throw a nice error instead of just disconnecting from the
5122                 bus.
5123                 (get): Added arg_type parameter for recursion.
5124                 Removed the nil type
5125                 Added signiture type placeholder (not implemented)
5126                 Added struct type placeholder (not implemented)
5127                 Added varient type placeholder (not implemented)
5128                 Commented out dict type for now     
5129                 (get_element_type): renamed from get_array_type
5130                 (get_*): changed to use the dbus_message_iter_get_basic API
5131                 (get_*_array): removed in favor of recursive get_array method
5132                 (get_array): new recursive method which calls get to marshal
5133                 the elements of the array
5134                 (value_to_dbus_sig): New method returns the corrasponding
5135                 dbus signiture to a python value
5136                 (append): Comment out dict handling for now
5137                 Handle lists with the new recursive API
5138                 Comment out None handling for now
5139                 (append_nil): removed
5140                 (append_*): changed to use dbus_message_iter_append_basic API
5141                 (append_*_array): removed in favor of recursive append_array 
5142                 method
5143                 (__str__): Make it easier to print out recursive iterators
5144                 for debugging
5145                 - class Message (__str__): moved type inspection to the
5146                 MessageIter class' __str__ method
5147                 (get_iter): Added an append parameter wich defaults to False
5148                 If True use the new API's to create an append iterator
5149
5150         * python/dbus.py: Update to use new bindings API
5151                 - TYPE_ACTIVATION -> TYPE_STARTER
5152                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5153                 - class ActivationBus -> class StarterBus
5154                 - class RemoteObject (__call__): get an append iterator
5155                 - (_dispatch_dbus_method_call): get an append iterator
5156                 - class Object (emit_signal): get an append iterator
5157
5158         * python/examples/: Fixed up the examples to work with the new API
5159                 
5160 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5161
5162         * configure.in: Bump version up to 0.30.
5163
5164         * HACKING: Add a release item to bump the version number up after 
5165         a release.
5166
5167 2005-01-28  Havoc Pennington  <hp@redhat.com>
5168
5169         * doc/dbus-specification.xml: update to describe 16-bit types and
5170         dict entries
5171
5172         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5173         assertion
5174
5175         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5176         type
5177
5178         * dbus/dbus-marshal-recursive.c: implement
5179
5180 2005-01-27  Havoc Pennington  <hp@redhat.com>
5181
5182         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5183
5184         * configure.in: find the right type for 16 and 32 bit ints as well
5185         as 64
5186
5187         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5188         the 16-bit types so people don't have to stuff them in 32-bit or
5189         byte arrays.
5190
5191 2005-01-27  Havoc Pennington  <hp@redhat.com>
5192
5193         * dbus/dbus-message.c: byteswap the message if you init an
5194         iterator to read/write from it
5195         
5196         * dbus/dbus-marshal-byteswap.c: new file implementing 
5197         _dbus_marshal_byteswap()
5198
5199         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5200
5201 2005-01-26  Havoc Pennington  <hp@redhat.com>
5202         
5203         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5204         build, apparently - nobody noticed?)
5205         
5206 2005-01-26  Havoc Pennington  <hp@redhat.com>
5207
5208         * dbus/dbus-marshal-recursive.h: remove todo comment
5209
5210 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5211
5212         * Land the mono binding changes to conform to the new APIs.
5213
5214         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5215         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5216
5217         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5218         type code as a string.
5219         (InitAppending): Rename dbus_message_append_iter_init() to
5220         dbus_message_iter_init_append().
5221
5222         * mono/BusDriver.cs: Rename ServiceEventHandler to
5223         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5224         Rename ServiceOwnerChanged to NameOwnerChanged.
5225
5226         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5227         underlying C call.
5228
5229         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5230
5231         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5232         dbus_bus_acquire_service() to dbus_bus_request_name().
5233
5234         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5235         of Type.UnderlyingSystemType to get the correct element type for
5236         the array.
5237         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5238         dbus_message_get_{element|arg}_type() instead of
5239         dbus_message_iter_init_array_iterator().
5240         (Append): Replace dbus_message_iter_append_array() with
5241         dbus_message_iter_open_container() and
5242         dbus_message_iter_close_container().
5243
5244         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5245         types have been removed.
5246         
5247         * mono/DBusType/*.cs: Replace calls of
5248         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5249         but specify the type in the DllImport extern declaration.  Ditto
5250         for dbus_message_iter_append_[type]() ->
5251         dbus_message_iter_append_basic().
5252
5253         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5254         NameOwnerChangedHandler.
5255
5256 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5257
5258         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5259                 - get_base_service -> get_unique_name
5260                 - bus_get_base_service -> bus_get_unique_name
5261                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5262                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5263                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5264                 - bus_activate_service -> bus_start_service_by_name
5265                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5266                 - bus_acquire_service -> bus_request_name
5267                 - dbus_bus_acquire_service -> dbus_bus_request_name
5268                 - bus_service_exists -> bus_name_has_owner
5269                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5270
5271         * python/dbus.py: Rename of methods
5272                 - activate_service -> start_service_by_name
5273                 - bus_acquire_service -> bus_request_name
5274                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5275                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5276
5277         
5278 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5279
5280         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5281         signature for the method that can't be found.
5282
5283         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5284         the message has any arguments, we need to call
5285         _dbus_type_reader_get_current_type(), not
5286         _dbus_type_reader_has_next().
5287
5288 2005-01-24  Havoc Pennington  <hp@redhat.com>
5289
5290         * dbus/dbus-message-factory.c: more testing of message validation
5291
5292         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5293         header
5294
5295 2005-01-23  Havoc Pennington  <hp@redhat.com>
5296
5297         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5298         get this all working, not many tests in the framework yet though
5299
5300 2005-01-22  Havoc Pennington  <hp@redhat.com>
5301
5302         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5303         tutorial, based on work from David Wheeler.
5304
5305 2005-01-21  Havoc Pennington  <hp@redhat.com>
5306
5307         * dbus/dbus-bus.c: add more return_if_fail checks
5308
5309         * dbus/dbus-message.c (load_message): have the "no validation"
5310         mode (have to edit the code to toggle the mode for now though)
5311
5312         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5313         skips all validation; I want to use this at least for benchmark
5314         baseline, I'm not sure if it should be a publicly-available switch.
5315
5316 2005-01-21  Havoc Pennington  <hp@redhat.com>
5317
5318         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5319         toplevel doxygen group as the low-level API stuff
5320
5321         * dbus/dbus.h: note that libdbus is the low-level API
5322
5323 2005-01-20  Havoc Pennington  <hp@redhat.com>
5324
5325         * update-dbus-docs.sh: script to update docs on the web site, only
5326         works for me though. neener.
5327
5328 2005-01-20  Havoc Pennington  <hp@redhat.com>
5329
5330         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5331         code can reveal bugs in it
5332
5333 2005-01-20  Havoc Pennington  <hp@redhat.com>
5334
5335         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5336         select() version, patches from Tor Lillqvist
5337
5338 2005-01-20  Havoc Pennington  <hp@redhat.com>
5339
5340         * doc/dbus-tutorial.xml: replace > with &gt;
5341
5342         * bus/services.c (bus_registry_acquire_service): validate the name
5343         and return a better error if it's no good.
5344
5345         * doc/dbus-specification.xml: note NO_AUTO_START change
5346
5347         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5348         from AUTO_START, we're toggling the default
5349
5350         * bus/dispatch.c: adapt the tests to change of auto-start default
5351
5352 2005-01-18  Havoc Pennington  <hp@redhat.com>
5353
5354         * rename dbus-daemon-1 to dbus-daemon throughout
5355
5356 2005-01-18  Havoc Pennington  <hp@redhat.com>
5357
5358         * Throughout, grand renaming to strip out the use of "service",
5359         just say "name" instead (or "bus name" when ambiguous).  Did not
5360         change the internal code of the message bus itself, only the
5361         programmer-facing API and messages.
5362         
5363         * doc/dbus-specification.xml: further update the message bus section
5364         
5365         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5366         in error case
5367
5368 2005-01-17  Havoc Pennington  <hp@redhat.com>
5369
5370         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5371         ever
5372
5373         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5374         "invalid name character" not only non-ASCII
5375
5376         * doc/dbus-specification.xml: further update spec, message bus 
5377         parts are still out-of-date but the marshaling etc. stuff is now
5378         accurate-ish
5379
5380 2005-01-17  Havoc Pennington  <hp@redhat.com>
5381
5382         * doc/dbus-specification.xml: partially update spec
5383
5384 2005-01-17  Havoc Pennington  <hp@redhat.com>
5385
5386         * Throughout, align variant bodies according to the contained
5387         type, rather than always to 8. Should save a fair bit of space in
5388         message headers.
5389         
5390         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5391         fix handling of case where p == end
5392
5393         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5394
5395 2005-01-17  Havoc Pennington  <hp@redhat.com>
5396
5397         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5398
5399         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5400         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5401         are marshaling/unmarshaling a boolean.
5402
5403 2005-01-16  Havoc Pennington  <hp@redhat.com>
5404
5405         This is about it on what can be disabled/deleted from libdbus
5406         easily, back below 150K anyhow. Deeper cuts are more work than 
5407         just turning the code off as I've done here.
5408         
5409         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5410         signed int convenience funcs
5411
5412         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5413         verbose mode
5414
5415         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5416         things out of libdbus
5417
5418         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5419         
5420         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5421         tests-enabled-only, though it should probably be deleted)
5422
5423         * dbus/dbus-message-util.c: same stuff
5424
5425         * dbus/dbus-auth-util.c: same stuff
5426
5427 2005-01-16  Havoc Pennington  <hp@redhat.com>
5428
5429         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5430
5431         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5432         way for stripping down dbus-userdb.c stuff included in libdbus.
5433         Rename _dbus_parse_uid for consistency.
5434
5435 2005-01-16  Havoc Pennington  <hp@redhat.com>
5436
5437         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5438         name the assertion failed in
5439
5440         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5441         (_dbus_return_val_if_fail): assert that the name of the function
5442         containing the check doesn't start with '_', since we only want to 
5443         use checks on public functions
5444         
5445         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5446         checks to assertions
5447
5448         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5449         change checks to asserts for private function
5450
5451         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5452         to asserts for private function
5453
5454         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5455         broken assertion that was breaking make check
5456         (_dbus_type_reader_array_is_empty): remove this rather than fix
5457         it, was only used in assertions
5458
5459 2005-01-16  Havoc Pennington  <hp@redhat.com>
5460
5461         * test/unused-code-gc.py: hacky script to find code that's used
5462         only by the bus (not libdbus) or used only by tests or not used at
5463         all. It has some false alarms, but looks like we can clean up a
5464         lot of size from libdbus.
5465
5466         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5467         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5468         
5469 2005-01-16  Havoc Pennington  <hp@redhat.com>
5470
5471         * Add and fix docs according to Doxygen warnings throughout
5472         source.
5473         
5474         * dbus/dbus-marshal-recursive.c
5475         (_dbus_type_reader_array_is_empty): change this to just call
5476         array_reader_get_array_len() and make it static
5477
5478         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5479         from get_array_type
5480         (dbus_message_iter_init_append): rename from append_iter_init
5481
5482         * dbus/dbus-marshal-recursive.c
5483         (_dbus_type_reader_get_element_type): rename from
5484         _dbus_type_reader_get_array_type
5485
5486 2005-01-15  Havoc Pennington  <hp@redhat.com>
5487
5488         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5489
5490         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5491         when DBUS_DISABLE_ASSERT
5492         (_dbus_marshal_set_basic): be sure we align for the string length
5493
5494         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5495         this look faster
5496
5497         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5498         inline macro version
5499         (_dbus_string_set_byte): provide inline macro version
5500
5501 2005-01-15  Havoc Pennington  <hp@redhat.com>
5502
5503         * Land the new message args API and type system.
5504
5505         This patch is huge, but the public API change is not 
5506         really large. The set of D-BUS types has changed somewhat, 
5507         and the arg "getters" are more geared toward language bindings;
5508         they don't make a copy, etc.
5509
5510         There are also some known issues. See these emails for details
5511         on this huge patch:
5512         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5513         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5514         
5515         * dbus/dbus-marshal-*: all the new stuff
5516
5517         * dbus/dbus-message.c: basically rewritten
5518
5519         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5520         freed blocks to be all non-nul bytes so using freed memory is less
5521         likely to work right
5522
5523         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5524         DBUS_FAIL_MALLOC=N environment variable, so you can do
5525         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5526         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5527         thorough.
5528
5529         * qt/message.cpp: port to the new message args API
5530         (operator<<): use str.utf8() rather than str.unicode()
5531         (pretty sure this is right from the Qt docs?)
5532
5533         * glib/dbus-gvalue.c: port to the new message args API
5534
5535         * bus/dispatch.c, bus/driver.c: port to the new message args API
5536
5537         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5538         "locked" flag to TRUE and align_offset to 0; I guess we never
5539         looked at these anyhow, but seems cleaner.
5540
5541         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5542         move allocation padding macro to this header; use it to implement
5543         (_DBUS_STRING_STATIC): ability to declare a static string.
5544
5545         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5546         change to return TRUE if the interface is not set.
5547
5548         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5549         to dbus-marshal-validate.[hc]
5550
5551         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5552         dbus-internals.c
5553
5554         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5555         to dbus-marshal-*.[hc]
5556
5557         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5558         function here from dbus-marshal.c
5559
5560 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5561
5562         * NEWS: Update for 0.23.
5563
5564         * configure.in: Release 0.23.
5565
5566 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5567
5568         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5569         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5570         behind.
5571
5572         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5573         uninstall"
5574
5575         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5576         is an enum, get the enum's underlying type.  Another mono
5577         1.1.3 fix.
5578
5579 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5580
5581         Patch from Sjoerd Simons <sjoerd@luon.net>
5582
5583         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5584         DESTDIR.  It breaks stuff.
5585
5586 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5587
5588         Patch from Tambet Ingo <tambet@ximian.com>
5589
5590         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5591         calling type.GetElementType().  The code previously depended on
5592         broken Mono behavior, which was fixed in Mono 1.1.3.
5593
5594         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5595         Activator.CreateInstance() so that the class's constructor is
5596         called with the right parameters.
5597
5598 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5599
5600         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5601
5602         * dbus/dbus-connection.c
5603         (_dbus_connection_queue_received_message_link): Call
5604         _dbus_connection_remove_timeout() instead of the _locked()
5605         variant, since it's always called from
5606         _dbus_connection_handle_watch(), which handles the locking.
5607         Removed the _locked() variant since it's no longer used.
5608
5609 2005-01-03  Havoc Pennington  <hp@redhat.com>
5610
5611         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5612         return
5613         
5614 2004-12-26  Havoc Pennington  <hp@redhat.com>
5615
5616         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5617
5618 2005-01-03  Havoc Pennington  <hp@redhat.com>
5619
5620         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5621         floating point
5622
5623         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5624
5625 2005-01-02  Havoc Pennington  <hp@redhat.com>
5626
5627         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5628
5629 2005-01-01  Havoc Pennington  <hp@redhat.com>
5630
5631         * configure.in: add -Wfloat-equal
5632
5633 2005-01-01  Havoc Pennington  <hp@redhat.com>
5634
5635         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5636         for a variety of reasons '==' doesn't do this.
5637
5638 2004-12-31  Havoc Pennington  <hp@redhat.com>
5639
5640         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5641         I keep wishing I had
5642
5643 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5644
5645         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5646
5647 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5648
5649         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5650         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5651         dbus-protocol.h.  Because they are defines and not enums they are not
5652         autogenerated.
5653
5654 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5655
5656         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5657         dbus_bus_activate_service
5658
5659         * python/dbus.py (Bus.activate_service): activate a service on the
5660         bus.
5661
5662 2004-12-24  Havoc Pennington  <hp@redhat.com>
5663
5664         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5665         file format has also changed and I haven't adapted to that yet
5666         
5667         * Makefile.am: load .gcno files from latest gcc
5668
5669 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5670         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5671
5672         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5673         lowlevel binding
5674
5675         * python/dbus.py (get_unix_user): Added binding to 
5676         call dbus_bindings.bus_get_unix_user
5677
5678         * python/extract.py: Modified the proto_pat regex to
5679         handle unsigned long
5680
5681 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5682
5683         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5684         better POSIX compliance.
5685
5686 2004-12-19  Havoc Pennington  <hp@redhat.com>
5687
5688         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5689         (_dbus_string_insert_8_aligned): new functions
5690
5691         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5692
5693 2004-12-18  Havoc Pennington  <hp@redhat.com>
5694
5695         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5696         macro
5697
5698         * dbus/dbus-message.c: fix a comment, and add a still-unused
5699         not-implemented function
5700
5701         * dbus/dbus-marshal.h: fix comment
5702
5703         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5704
5705 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5706
5707         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5708         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5709         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5710         Type.UnderlyingSystemType to get the actual system type
5711         underneath.  This code previously depended on the broken Mono
5712         behavior, which was fixed in 1.1.3.
5713
5714 2004-11-27  Havoc Pennington  <hp@redhat.com>
5715
5716         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5717         are disabled
5718         (_dbus_string_get_const_data): inline when asserts are disabled
5719
5720         * dbus/dbus-message.c: record the _dbus_current_generation of
5721         creation so we can complain if dbus_shutdown() is used improperly.
5722         Do this only if checks are enabled.
5723
5724         * dbus/dbus-connection.c: ditto
5725         
5726 2004-11-26  Havoc Pennington  <hp@redhat.com>
5727
5728         * test/glib/test-profile.c: add with_bus mode to profile echoes
5729         that go through the bus.
5730
5731         * test/glib/run-test.sh: add ability to run test-profile
5732
5733         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5734         config file reload.
5735
5736 2004-11-26  Havoc Pennington  <hp@redhat.com>
5737
5738         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5739         thing was implemented
5740
5741 2004-11-26  Havoc Pennington  <hp@redhat.com>
5742
5743         * test/glib/test-profile.c: tweak a bit, add support for some
5744         made-up minimal malloc overhead with plain sockets, since in 
5745         real life some sort of buffers are unavoidable thus we could 
5746         count them in the theoretical best case
5747
5748 2004-11-26  Havoc Pennington  <hp@redhat.com>
5749
5750         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5751         where I was trying to cache one too many messages
5752
5753 2004-11-26  Havoc Pennington  <hp@redhat.com>
5754
5755         * dbus/dbus-message.c: reimplement message cache as an array which 
5756         makes the cache about twice as fast and saves maybe 1.5% overall
5757
5758 2004-11-26  Havoc Pennington  <hp@redhat.com>
5759
5760         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5761         message cache lock here
5762
5763 2004-11-26  Havoc Pennington  <hp@redhat.com>
5764
5765         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5766         the "char byte_order" next to each other to save 4 bytes
5767         (dbus_message_new_empty_header): reduce preallocation, since the
5768         message cache should achieve a similar effect
5769         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5770         message cache that keeps a few DBusMessage around in a pool,
5771         another 8% speedup or so.
5772
5773         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5774
5775 2004-11-25  Havoc Pennington  <hp@redhat.com>
5776
5777         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5778         to write, without reading or blocking, try it before the poll()
5779         and skip the poll() if nothing remains to write. This is about a
5780         3% speedup in the echo client/server
5781
5782 2004-11-25  Havoc Pennington  <hp@redhat.com>
5783
5784         The primary change here is to always write() once before adding
5785         the write watch, which gives us about a 10% performance increase.
5786         
5787         * dbus/dbus-transport-unix.c: a number of modifications to cope
5788         with removing messages_pending
5789         (check_write_watch): properly handle
5790         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5791         messages_pending stuff
5792         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5793         AUTHENTICATED cases
5794         (unix_handle_watch): after writing, see if the write watch can be
5795         removed
5796         (unix_do_iteration): assert that write_watch/read_watch are
5797         non-NULL rather than testing that they aren't, since they 
5798         aren't allowed to be NULL. check_write_watch() at the end so 
5799         we add the watch if we did not finish writing (e.g. got EAGAIN)
5800
5801         * dbus/dbus-transport-protected.h: remove messages_pending call,
5802         since it resulted in too much inefficient watch adding/removing; 
5803         instead we now require that the transport user does an iteration 
5804         after queueing outgoing messages, and after trying the first
5805         write() we add a write watch if we got EAGAIN or exceeded our 
5806         max bytes to write per iteration setting
5807
5808         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5809         function
5810
5811         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5812         freed and then accessed, valgrind flagged this bug, fix it
5813
5814         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5815         as the last valid field plus 1, where really it is equal to the
5816         last valid field. Corrects some message corruption issues.
5817
5818         * dbus/dbus-mainloop.c: verbosity changes
5819
5820         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5821         instead of aborting in one of the test codepaths
5822
5823         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5824         caused not printing the pid ever again if a verbose was missing
5825         the newline at the end
5826         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5827
5828         * dbus/dbus-connection.c: verbosity changes; 
5829         (dbus_connection_has_messages_to_send): new function
5830         (_dbus_connection_message_sent): no longer call transport->messages_pending
5831         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5832         try to write() immediately, so we can avoid the write watch. This
5833         is the core purpose of this patchset
5834         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5835         dump the outgoing message queue, so nobody will get confused
5836         trying to send them or thinking stuff is pending to be sent
5837
5838         * bus/test.c: verbosity changes
5839
5840         * bus/driver.c: verbosity/assertion changes
5841
5842         * bus/dispatch.c: a bunch of little tweaks to get it working again
5843         because this patchset changes when/where you need to block.
5844
5845 2004-11-23  Havoc Pennington  <hp@redhat.com>
5846
5847         * test/glib/test-profile.c: modify to accept a plain_sockets
5848         argument in which case it will bench plain sockets instead of
5849         libdbus, for comparison purposes.
5850
5851 2004-11-22  Havoc Pennington  <hp@redhat.com>
5852
5853         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5854         threads for more time, so sysprof can get a grip on it.
5855
5856         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5857         pointless variable
5858
5859 2004-11-13  Havoc Pennington  <hp@redhat.com>
5860
5861         * test/glib/test-profile.c: fix this thing up a bit
5862
5863         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5864         preallocation sizes by a fair bit; not sure if this will be an
5865         overall performance win or not, but it does reduce reallocs.
5866
5867         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5868         the test hack that forced constant realloc if asserts are
5869         disabled, so we can profile sanely. Sprinkle in some
5870         _DBUS_UNLIKELY() which are probably pointless, but before I
5871         noticed the real performance problem I put them in.
5872         (_dbus_string_validate_utf8): micro-optimize this thing a little
5873         bit, though callgrind says it didn't help; then special-case
5874         ascii, which did help a lot; then be sure we detect nul bytes as
5875         invalid, which is a bugfix.
5876         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5877         superstition; use memset to nul the padding instead of a manual
5878         loop.
5879         (_dbus_string_get_length): inline this as a
5880         macro; it showed up in the profile because it's used for loop
5881         tests and so forth
5882
5883 2004-11-10  Colin Walters  <walters@verbum.org>
5884
5885         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5886         for extra paranoia.
5887
5888 2004-11-09  Colin Walters  <walters@verbum.org>
5889
5890         * dbus/dbus-string.c (_dbus_string_get_length): New
5891         function, writes DBusString to C buffer.
5892
5893         * dbus/dbus-string.h: Prototype it.
5894
5895         * dbus/dbus-message.c (dbus_message_type_to_string): New
5896         function, converts message type into C string.
5897
5898         * dbus/dbus-message.h: Prototype it.
5899
5900         * bus/selinux.c (bus_selinux_check): Take source pid,
5901         target pid, and audit data.  Pass audit data to
5902         avc_has_perm.
5903         (log_audit_callback): New function, appends extra
5904         audit information.
5905         (bus_selinux_allows_acquire_service): Also take
5906         service name, add it to audit data.
5907         (bus_selinux_allows_send): Also take message
5908         type, interface, method member, error name,
5909         and destination, and add them to audit data.
5910         (log_cb): Initialize func_audit.
5911         
5912         * bus/selinux.h (bus_selinux_allows_acquire_service)
5913         (bus_selinux_allows_send): Update prototypes 
5914
5915         * bus/services.c (bus_registry_acquire_service): Pass
5916         service name to bus_selinux_allows_acquire_service.
5917
5918         * bus/bus.c (bus_context_check_security_policy): Pass
5919         additional audit data.  Move assignment of dest
5920         to its own line.
5921
5922 2004-11-07  Colin Walters  <walters@verbum.org>
5923
5924         * dbus/dbus-transport-unix.c (do_authentication): Always
5925         initialize auth_completed.
5926         
5927 2004-11-07  Colin Walters  <walters@verbum.org>
5928
5929         * bus/bus.c (load_config): Break into three
5930         separate functions: process_config_first_time_only,
5931         process_config_every_time, and process_config_postinit.
5932         (process_config_every_time): Move call of
5933         bus_registry_set_service_context_table into
5934         process_config_postinit.
5935         (process_config_postinit): New function, does
5936         any processing that needs to happen late
5937         in initialization (and also on reload).
5938         (bus_context_new): Instead of calling load_config,
5939         open config parser here and call process_config_first_time_only
5940         and process_config_every_time directly.  Later, after
5941         we have forked but before changing UID,
5942         invoke bus_selinux_full_init, and then call
5943         process_config_postinit.
5944         (bus_context_reload_config): As in bus_context_new,
5945         load parse file inside here, and call process_config_every_time
5946         and process_config_postinit.
5947
5948         * bus/services.h, bus/services.c
5949         (bus_registry_set_service_context_table): Rename
5950         from bus_registry_set_sid_table.  Take string hash from config
5951         parser, and convert them here into SIDs.
5952
5953         * bus/config-parser.c (struct BusConfigParser): Have
5954         config parser only store a mapping of service->context
5955         string.
5956         (merge_service_context_hash): New function.
5957         (merge_included): Merge context string hashes instead
5958         of using bus_selinux_id_table_union.
5959         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5960         simply create a new string hash.
5961         (bus_config_parser_unref): Unref it.
5962         (start_selinux_child): Simply insert strings into hash,
5963         don't call bus_selinux_id_table_copy_over.
5964
5965         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5966         (bus_selinux_id_table_copy_over): Delete.
5967
5968 2004-11-03  Colin Walters  <walters@verbum.org>
5969
5970         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5971         variables.
5972         
5973 2004-11-03  Colin Walters  <walters@verbum.org>
5974
5975         * bus/test-main.c (test_pre_hook): Fix test logic,
5976         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5977
5978 2004-11-02  Colin Walters  <walters@redhat.com>
5979
5980         * bus/selinux.c (bus_selinux_init): Split into two functions,
5981         bus_selinux_pre_init and bus_selinux_post_init.
5982         (bus_selinux_pre_init): Just determine whether SELinux is
5983         enabled.
5984         (bus_selinux_post_init): Do everything else.
5985
5986         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5987         config file, and bus_selinux_post_init after.  This ensures that
5988         we don't lose the policyreload notification thread that
5989         bus_selinux_init created before forking previously.
5990         
5991         * bus/test-main.c (test_pre_hook): Update for split.
5992
5993 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5994
5995         Patch from Johan Fischer <linux@fischaz.com>
5996         
5997         * mono/doc/Makefile.am (install-data-local): Added directory
5998         install for DESTDIR
5999
6000 2004-10-29  Colin Walters  <walters@redhat.com>
6001
6002         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6003         parameter for fd to write pid to.       
6004
6005         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6006         
6007         * bus/bus.c (bus_context_new): Pass print_pid_fd
6008         to _dbus_become_daemon (bug #1720)
6009
6010 2004-10-29  Colin Walters  <walters@redhat.com>
6011
6012         Patch from Ed Catmur <ed@catmur.co.uk>
6013
6014         * mono/doc/Makefile.am (install-data-local): Handle
6015         DESTDIR.
6016
6017 2004-10-29  Colin Walters  <walters@redhat.com>
6018
6019         * bus/.cvsignore, qt/.cvsignore: Update.
6020
6021 2004-10-29  Colin Walters  <walters@redhat.com>
6022
6023         Patch from Kristof Vansant <de_lupus@pandora.be>
6024
6025         * configure.in: Detect Slackware.
6026         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6027         * bus/rc.messagebus.in: New file.
6028
6029 2004-10-29  Colin Walters  <walters@redhat.com>
6030
6031         * tools/dbus-monitor.c (filter_func): Return
6032         DBUS_HANDLER_RESULT_HANDLED in filter function
6033         for now.  See:
6034         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6035
6036 2004-10-29  Colin Walters  <walters@redhat.com>
6037
6038         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6039
6040         * bus/services.c (bus_registry_acquire_service): 
6041         Correctly retrieve service name from DBusString
6042         for printing.
6043
6044 2004-10-29  Colin Walters  <walters@redhat.com>
6045
6046         * dbus/dbus-glib.h: Update documentation to not
6047         refer to internal APIs.
6048
6049 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6050
6051         * mono/Arguments.cs (GetDBusTypeConstructor):
6052         type.UnderlyingSystemType will return "System.Byte" if you do it
6053         on "byte[]", which is not what we want.  So check the type.IsArray
6054         property and use System.Array instead.
6055
6056 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6057
6058         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6059         the DBusUserInfo structure since this is passed into the function.
6060         This would cause a double free when the function that allocated
6061         the structure would try to free it when an error occured.
6062
6063         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6064         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6065         for service activation to avoid 32bit/64bit parallel install issues
6066
6067 2004-10-21  Colin Walters  <walters@verbum.org>
6068
6069         * AUTHORS: Fix my email address, the @gnu.org one
6070         has been bouncing for some time.  Also add J5.
6071         
6072 2004-10-21  Colin Walters  <walters@verbum.org>
6073
6074         * dbus/dbus-transport-unix.c (do_authentication): Return
6075         authentication status to callers.
6076         (unix_handle_watch): If we completed authentication this round,
6077         don't do another read.  Instead wait until the next iteration,
6078         after we've read any pending data in the auth buffer.
6079         (unix_do_iteration): Ditto.
6080         (unix_handle_watch): Updated for new do_authentication prototype.
6081
6082 2004-10-18  Colin Walters  <walters@verbum.org>
6083
6084         * bus/selinux.c (bus_selinux_enabled): Handle
6085         --disable-selinux case.
6086         
6087 2004-10-18  Colin Walters  <walters@verbum.org>
6088
6089         * bus/selinux.h: Add bus_selinux_enabled.
6090         
6091         * bus/selinux.c (bus_selinux_enabled): Implement it.
6092         
6093         * bus/config-parser.c (struct include): Add
6094         if_selinux_enabled member.
6095         (start_busconfig_child): Parse if_selinux_enabled
6096         attribute for include.
6097         (bus_config_parser_content): Handle it.
6098
6099         * bus/session.conf.in, bus/system.conf.in: Add
6100         inclusion of context mapping to default config files;
6101         conditional on SELinux being enabled.
6102         
6103         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6104         
6105         * test/data/invalid-config-files/badselinux-1.conf, 
6106         test/data/invalid-config-files/badselinux-2.conf:
6107         Test files for bad syntax.
6108         
6109 2004-10-17  Colin Walters  <walters@verbum.org>
6110
6111         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6112         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6113         format specifier mismatches.
6114
6115 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6116
6117         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6118         format string.
6119
6120         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6121         pointer (bug #1540, Leonardo Boiko).
6122
6123 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6124
6125         * mono/BusDriver.cs: Changed BusDriver struct to remove
6126         the ServiceCreated and ServiceDeleted events and replace them
6127         with the new ServiceOwnerChanged event.
6128
6129         * mono/example/BusListener.cs: Added a new example program,
6130         which listens for and reports any ServiceOwnerChanged events
6131         on the bus driver.
6132
6133         * mono/example/Makefile.am (DESTDIR): Build changes for the
6134         new BusListener.cs example.
6135
6136 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6137
6138         * bus/signals.c (bus_match_rule_parse): validate the components of
6139         match rules (bug #1439).
6140
6141         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6142
6143 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6144
6145         * doc/dbus-specification.xml: document ServiceOwnerChanged
6146         signal.
6147         
6148         * bus/driver.c, bus/driver.h, bus/services.c: Use
6149         ServiceOwnerChanged signal instead of ServiceCreated and
6150         ServiceDeleted.
6151         
6152         * bus/dispatch.c: update testcase for the new signal.
6153
6154 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6155
6156         Patch from Nat Friedman <nat@novell.com>
6157
6158         * mono/Makefile.am: A number of small build fixes to allow "make
6159         distcheck" to succeed.
6160
6161         * mono/example/Makefile.am: "make distcheck" fixes.
6162
6163         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6164         key in @srcdir@.
6165
6166         * test/Makefile.am: "make distcheck" fixes.
6167
6168 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6169
6170         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6171
6172         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6173
6174         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6175         messages after the first one (bug #1389).
6176         
6177         * bus/dispatch.c (check_double_hello_message): add a test case for
6178         the double hello message bug.
6179         (check_existent_service_activation): fix check of spawning error.
6180         
6181 2004-09-16  David Zeuthen  <david@fubar.dk>
6182
6183         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6184
6185 2004-09-12  David Zeuthen  <david@fubar.dk>
6186
6187         Patch from Kay Sievers <kay.sievers@vrfy.org>
6188
6189         * bus/bus.c (bus_context_new):
6190         * bus/bus.h:
6191         * bus/main.c (usage)
6192         (main):
6193         Add commandline option --nofork to override configuration file
6194         setting.
6195
6196 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6197
6198         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6199         compilers don't like it (bug #974).
6200
6201 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6202
6203         * qt/connection.*: Applied patch by Jérôme Lodewyck
6204         <lodewyck@clipper.ens.fr> to integrate an existing
6205         connection into the Qt eventloop
6206
6207 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6208
6209         * mono/BusDriver.cs: Added.  This is a class for interacting with
6210         the org.freedesktop.DBus service.
6211
6212         * mono/Message.cs: Added a mechanism to expose the message that is
6213         currently being dispatched via the static Message.Current
6214         property.  Added Message.Sender and Message.Destination
6215         properties.
6216
6217         * mono/Handler.cs: Expose the dispatched message via
6218         Message.Current when handling method calls.
6219
6220         * mono/Service.cs: Expose the dispatched message via
6221         Message.Current when handling signal emissions.
6222         
6223         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6224         Connection.BaseService property.
6225
6226 2004-08-28  Havoc Pennington  <hp@redhat.com>
6227
6228         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6229
6230         More fixes from Steve Grubb
6231         
6232         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6233         (_dbus_listen_tcp_socket): fix fd leak
6234
6235         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6236         EINTR to a bit lower in the code
6237
6238 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6239
6240         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6241         TRUE if we are inquiring about the existence of the built-in
6242         org.freedesktop.DBus service.
6243
6244 2004-08-25  John Palmieri  <johnp@redhat.com>
6245         * bus/config-parser.c:
6246         (struct PolicyType): Add POLICY_CONSOLE
6247         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6248         (start_busconfig_child): Sets up console element when
6249         <policy at_console=""> is encountered in a policy file
6250         (append_rule_from_element): Convert console elements to console
6251         rules.
6252
6253         * bus/policy.c: 
6254         (bus_policy_create_client_policy): Add console rules to the client
6255         policy based on if the client is at the console
6256         (bus_policy_append_console_rule): New function for adding a
6257         console rule to a policy
6258         (bus_policy_merge): Handle console rule merging
6259
6260         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6261         where we check for console user files
6262         
6263         * dbus/dbus-sysdeps.c:
6264         (_dbus_file_exists): New function which checks if the given
6265         file exists
6266         (_dbus_user_at_console): New function which does the system
6267         specific process of checking if the user is at the console
6268
6269         * dbus/dbus-userdb.c:
6270         (_dbus_is_console_user): New function converts a UID to user name
6271         and then calls the system specific _dbus_user_at_console to 
6272         see if the user is at the console and therefor a console user
6273
6274 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6275
6276         * bus/config-parser.c (set_limit):
6277         * bus/dbus-daemon-1.1.in:
6278         * test/data/valid-config-files/many-rules.conf: set the
6279         max_match_rules_per_connection limt from the config file. 
6280
6281         * doc/busconfig.dtd: update the DTD.
6282
6283         * bus/driver.c: remove some unused variables.
6284
6285 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6286
6287         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6288         it's been replaced by dbus_g_bus_get
6289
6290 2004-08-23  Colin Walters  <walters@redhat.com>
6291
6292         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6293
6294         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6295
6296         * bus/selinux.c: Create a thread for policy reload notification.
6297         (bus_selinux_get_policy_root): Implement.
6298
6299         * bus/config-parser.c (start_busconfig_child)
6300         (bus_config_parser_content): Support SELinux-root relative
6301         inclusion.
6302
6303         * configure.in <HAVE_SELINUX>: Add -lpthread.
6304         
6305         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6306         (test_post_hook): Move memory checking into here.
6307         (test_pre_hook, test_post_hook): Move SELinux checks in
6308         here, but conditional on a DBUS_TEST_SELINUX environment
6309         variable.  Unfortunately we can't run the SELinux checks
6310         as a normal user, since they won't have any permissions
6311         for /selinux.  So this will have to be tested manually
6312         for now, until we have virtualization for most of
6313         libselinux.
6314         
6315 2004-08-23  Havoc Pennington  <hp@redhat.com>
6316
6317         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6318         drop supplementary groups, suggested by Steve Grubb
6319
6320 2004-08-20  Colin Walters  <walters@redhat.com>
6321
6322         * bus/config-parser.c (start_busconfig_child): Remove some unused
6323         variables.
6324         
6325         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6326         warning.
6327
6328 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6329
6330         * configure.in: If --enable-mono is passed in, if we can't find
6331         mono error out.
6332
6333         * mono/Makefile.am: Use /gacutil to install assemblies into the
6334         GAC and not /root.
6335
6336 2004-08-12  Havoc Pennington  <hp@redhat.com>
6337
6338         * NEWS: update for 0.22
6339
6340         * configure.in: release 0.22
6341
6342 2004-08-11  Colin Walters  <walters@redhat.com>
6343
6344         * tools/dbus-send.c (main, usage): Add --reply-timeout
6345         argument.
6346
6347 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6348
6349         * bus/bus.c (process_config_first_time_only): get rid of an unused
6350         DBusError that was causing a memoy leak (bug #989).
6351
6352         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6353         fix compilation on Solaris/Forte C (bug #974)
6354
6355         * bus/main.c (main): plug two minuscule memleaks.
6356
6357 2004-08-10  Havoc Pennington  <hp@redhat.com>
6358
6359         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6360
6361 2004-08-09  Havoc Pennington  <hp@redhat.com>
6362
6363         * COPYING: switch to Academic Free License version 2.1 instead of
6364         2.0, to resolve complaints about patent termination clause.
6365
6366 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6367
6368         * README: added documentation for the --enable-python 
6369         configure switch.
6370
6371 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6372
6373         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6374         _unref in the SELinux support.
6375
6376         * doc/busconfig.dtd: update DTD for SELinux support.
6377
6378         * bus/config-loader-libxml.c: fix error handler and parser
6379         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6380
6381         * configure.in: remove the warning about libxml2.
6382
6383         * dbus/dbus-bus.c: silence doxygen warning.
6384
6385 2004-07-31  Colin Walters  <walters@redhat.com>
6386
6387         * configure.in: Move #error in SELinux check to its own line.
6388
6389 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6390
6391         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6392         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6393         dbus_error_set.
6394
6395         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6396         broken by the change in the _SET_OOM macros.
6397
6398 2004-07-31  Colin Walters  <walters@redhat.com>
6399
6400         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6401         BUS_SET_OOM.
6402
6403 2004-07-31  Colin Walters  <walters@redhat.com>
6404
6405         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6406         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6407         AC_MSG_CHECKING.
6408
6409 2004-07-24  Havoc Pennington  <hp@redhat.com>
6410
6411         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6412
6413         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6414         functionality
6415
6416         * configure.in: add --enable-selinux
6417         
6418         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6419
6420         * bus/main.c (main): initialize and shut down selinux
6421
6422         * bus/connection.c: store SELinux ID on each connection, to avoid 
6423         repeated getting of the string context and converting it into 
6424         an ID
6425
6426         * bus/bus.c (bus_context_get_policy): new accessor, though it
6427         isn't used
6428         (bus_context_check_security_policy): check whether the security
6429         context of sender connection can send to the security context of
6430         recipient connection
6431
6432         * bus/config-parser.c: add parsing for <selinux> and <associate>
6433         
6434         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6435         implement dbus_connection_get_unix_fd()
6436
6437         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6438         function, used by the selinux stuff
6439         
6440 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6441
6442         * bus/config-loader-libxml.c: complete the implementation of
6443         libxml backend for config file loader. Doesn't work with full OOM
6444         test yet. 
6445         
6446         * configure.in: change error when selecting libxml into a warning.
6447         
6448         * test/data/invalid-config-files: add two non-well-formed XML
6449         files. 
6450         
6451         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6452         
6453         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6454         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6455         be necessary to read all the buffer. (bug #894)
6456
6457         * bus/activation.c (bus_activation_activate_service): fix a
6458         potential assertion failure (bug #896). Small optimization in the
6459         case of auto-activation messages.
6460
6461         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6462         add test case for byte-through-vararg bug (#901). patch by Kimmo
6463         Hämäläinen. 
6464
6465 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6466
6467         * python/dbus.py:
6468         * python/dbus_bindings.pyx.in:
6469         Add dbus.init_gthreads (), allow emit_signal to pass
6470         arguments to the signal.
6471         
6472 2004-07-24  Havoc Pennington  <hp@redhat.com>
6473
6474         * AUTHORS: add some people, not really comprehensively, let me
6475         know if I missed you
6476
6477 2004-07-24  Havoc Pennington  <hp@redhat.com>
6478
6479         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6480         Owen
6481
6482         * test/Makefile.am (DIST_SUBDIRS): here also
6483
6484 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6485
6486         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6487         breaking build on Solaris, reported by Farhad Saberi on the ML.
6488
6489         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6490         va_arg invocation to account for integer promotion in the case of
6491         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6492
6493         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6494         _dbus_list_get_first_link, not _dbus_list_get_first.
6495
6496         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6497
6498         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6499         handler functions so that the asserts in _dbus_object_subtree_unref
6500         do not fail.
6501
6502         * dbus/dbus-transport-unix.c (do_reading):
6503         _dbus_transport_queue_messages return value is of type
6504         dbus_bool_t, not DBusDispatchStatus.
6505         
6506 2004-07-19  David Zeuthen  <david@fubar.dk>
6507
6508         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6509
6510         * bus/dispatch.c:
6511         (check_get_connection_unix_user): Debug says GetProperty; but the
6512         method is called GetConnectionUnixUser
6513         (check_get_connection_unix_process_id): New function
6514         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6515         also call check_get_connection_unix_process_id()
6516         
6517         * bus/driver.c:
6518         (bus_driver_handle_get_connection_unix_process_id): New function,
6519         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6520         interface
6521         
6522         * dbus/dbus-auth.c:
6523         (handle_server_data_external_mech): Set pid from the credentials
6524         obtained from the socket
6525         
6526         * dbus/dbus-connection.c:
6527         (dbus_connection_get_unix_process_id): New function
6528         
6529         * dbus/dbus-connection.h: 
6530         Add prototype for dbus_connection_get_unix_process_id
6531         
6532         * dbus/dbus-transport.c:
6533         (_dbus_transport_get_unix_process_id): New function
6534         
6535         * dbus/dbus-transport.h:
6536         Add prototype for _dbus_transport_get_unix_process_id
6537         
6538 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6539
6540         * dbus/dbus-message.c: Message counter fix, patch by Christian
6541         Hammond <chipx86@gnupdate.org>
6542
6543 2004-07-18  Seth Nickell  <seth@gnome.org>
6544
6545         * python/dbus.py:
6546         * python/dbus_bindings.pyx.in:
6547         * python/tests/test-client.py:
6548
6549         Add dbus.ByteArray and dbus_bindings.ByteArray
6550         types so that byte streams can be passed back.
6551
6552         Give jdahlin the heaps of credit that are so
6553         rightfully his.
6554         
6555 2004-07-12  Seth Nickell  <seth@gnome.org>
6556
6557         * python/dbus.py:
6558
6559         Add message argument to the default object_method_handler
6560         function.
6561         
6562         * python/dbus_bindings.pyx.in:
6563
6564         Automatically return NIL when passed an empty list
6565         (we can't pass back a list since lists are typed
6566         and we don't have any idea what type the the client
6567         intended the list to be... :-( )
6568         
6569 2004-07-10  Seth Nickell  <seth@gnome.org>
6570
6571         * python/examples/Makefile.am:
6572
6573         Fix distcheck breakage caused by new examples.
6574
6575 2004-07-10  Seth Nickell  <seth@gnome.org>
6576
6577         * python/dbus.py:
6578
6579         Add "message" argument to service-side dbus.Object
6580         methods. This will break existing services written
6581         using the python bindings, but will allow extraction
6582         of all the message information (e.g. who its from).
6583
6584         Add improved "object oriented" signal handling/emission.
6585         
6586         * python/examples/example-service.py:
6587
6588         Nix this example.
6589         
6590         * python/examples/example-signal-emitter.py:
6591         * python/examples/example-signal-recipient.py:
6592
6593         Two new examples that show how to emit and receive
6594         signals using the new APIs.
6595         
6596         * python/examples/example-signals.py:
6597         * python/examples/gconf-proxy-service.py:
6598         * python/examples/gconf-proxy-service2.py:
6599
6600         Add "message" argument to service methods.
6601
6602 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6603
6604         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6605         * dbus/bus.c (dbus_bus_get_unix_user)
6606         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6607         method of org.freedesktop.DBus interface.
6608
6609         * bus/dispatch.c: test case
6610
6611 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6612
6613         * python/Makefile.am: switched include directory from glib/ to dbus/
6614         since dbus-glib.h moved
6615  
6616 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6617
6618         * configure.in: prevent building the gcj stuff and libxml loader
6619         since they are broken.
6620
6621 2004-06-20  Havoc Pennington  <hp@redhat.com>
6622
6623         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6624         codes from the dbus error names
6625         
6626         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6627         as dbus/dbus-glib.h and that breakage is now visible due to 
6628         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6629         
6630         * glib/dbus-glib.h: s/gproxy/g_proxy/
6631
6632         * dbus/dbus-shared.h: new header to hold stuff shared with
6633         binding APIs
6634         
6635         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6636         than dbus-errors.h
6637
6638         * glib/dbus-glib.h (dbus_set_g_error): move to
6639         dbus-glib-lowlevel.h
6640
6641         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6642         of stuff to enable this
6643
6644         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6645
6646         * a bunch of other changes with the same basic "separate glib 
6647         bindings from dbus.h" theme
6648         
6649 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6650
6651         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6652
6653         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6654
6655 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6656
6657         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6658         the reply value of the ServiceExists message.
6659
6660 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6661
6662         * python/dbus_bindings.pyx.in: No longer need to parse path
6663         elements and pass them as arrays of strings.  The C API now
6664         accepts plain path strings.
6665         (_build_parsed_path): removed 
6666
6667 2004-06-07  Havoc Pennington  <hp@redhat.com>
6668
6669         * doc/TODO: remove auto-activation item since it's done; sort
6670         items by importance/milestone
6671
6672 2004-06-07  Havoc Pennington  <hp@redhat.com>
6673
6674         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6675         random signature when using REQUIRED_FIELDS (this hack won't work
6676         in the long term)
6677
6678         * dbus/dbus-message.c: change the signature to be a header field,
6679         instead of message->signature special-case string. Incremental
6680         step forward. Then we can fix up code to send the signature in the
6681         message, then fix up code to validate said signature, then fix up
6682         code to not put the typecodes inline, etc.
6683         (load_one_message): don't make up the signature after the fact
6684         (decode_header_data): require signature field for the known
6685         message types
6686
6687         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6688
6689         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6690
6691 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6692
6693         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6694
6695         * mono/Handler.cs: Updated to follow new path argument for
6696         (un-)registering objects.
6697
6698         * mono/example/Makefile.am:
6699         * mono/Makefile.am:
6700         * configure.in: Bumped required version for mono and use new -pkg
6701         syntax for deps
6702
6703 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6704
6705         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6706         registration functions take the path argument as char* instead of
6707         char**.
6708
6709         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6710         split off the path decompostion part of
6711         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6712         warnings. 
6713
6714         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6715         
6716 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6717  
6718         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6719         machine approach.  A state is implemented as a function that
6720         handles incoming events as specified for that state.
6721         
6722         * doc/dbus-specification.xml: Update auth protocol state machine
6723         specification to match implementation.  Remove some leftover
6724         base64 examples.
6725
6726 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6727
6728         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6729         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6730         quiet doxygen.
6731
6732         * Doxyfile.in: remove deprecated options.
6733
6734         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6735         glib/test-thread.h, glib/test-thread-client.c,
6736         glib/test-thread-server.c, glib/test-profile.c,
6737         glib/test-dbus-glib.c: remove these unused files.
6738
6739 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6740
6741         * dbus/dbus-object-tree.c
6742         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6743         non-fallback handlers (bug #684).
6744         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6745         (find_subtree_recurse): report wether the returned subtree is an
6746         exact match or a "fallback" match higher up in the tree.
6747         (object_tree_test_iteration): update test case.
6748
6749 2004-06-01  Seth Nickell  <seth@gnome.org>
6750
6751         * python/dbus_bindings.pyx.in:
6752         * python/tests/test-client.py:
6753
6754         Round off basic type support. Add dicts (yay!), and 
6755         remaining array types.
6756
6757         Make MessageIter more general so it works for dicts too.
6758
6759         Mark all loop variables as C integers.
6760         
6761 2004-05-31  Havoc Pennington  <hp@redhat.com>
6762
6763         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6764         "in" before "out"
6765
6766         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6767
6768         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6769         option that runs the tests, and start filling in some code
6770         including for starters just dumping the interfaces to stdout
6771
6772         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6773
6774         * test/data/valid-introspection-files/lots-of-types.xml: test of
6775         an example introspection file
6776
6777         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6778         "node" (I think...)
6779
6780 2004-05-31  Seth Nickell  <seth@gnome.org>
6781
6782         * python/dbus_bindings.pyx.in:
6783         * python/tests/test-client.py:
6784
6785         Test Suite: 1
6786         Python Bindings: 0
6787
6788         Fix string array memory trashing bug... oops...
6789
6790 2004-05-30  Seth Nickell  <seth@gnome.org>
6791
6792         * python/dbus.py:
6793
6794         Add a nicer-but-less-flexible alternate API for handling 
6795         calls to virtual objects in dbus.ObjectTree.
6796
6797         Screw up the argument order to the dbus.Object constructor
6798         for consistency with dbus.ObjectTree (and to make dbus_methods
6799         optional for future extension)
6800         
6801         * python/examples/Makefile.am:
6802         * python/examples/gconf-proxy-service.py:
6803         * python/examples/gconf-proxy-service2.py:
6804
6805         Alternate implementation of gconf-proxy-service using the
6806         nicer dbus.ObjectTree API.
6807         
6808         * python/examples/example-service.py:
6809         * python/tests/test-server.py
6810
6811         Reverse the argument order to deal with dbus.Object constructor
6812         changes.
6813         
6814 2004-05-30  Seth Nickell  <seth@gnome.org>
6815
6816         * python/examples/example-client.py:
6817         * python/examples/example-service.py:
6818
6819         Take it back. Lists seem to work but they're broken
6820         in the test suite. Make the base examples use
6821         lists (works fine).
6822
6823 2004-05-30  Seth Nickell  <seth@gnome.org>
6824
6825         * python/dbus_bindings.pyx.in:
6826         * python/tests/test-client.py:
6827
6828         Add some more tests and fix errors that crop up.
6829         Unfortunately, currently it seems like marshalling
6830         and unmarshalling of lists is completely broken :-(
6831
6832 2004-05-30  Seth Nickell  <seth@gnome.org>
6833
6834         * python/dbus_bindings.pyx.in:
6835
6836         Add support for ObjectPath type.
6837
6838         * python/dbus.py:
6839
6840         Refactor message handling code to a common function.
6841         
6842         * python/tests/test-client.py:
6843         * python/tests/test-server.py:
6844
6845         Add tests that check to make sure values of all types
6846         can be echoed from a service w/o mangling.
6847         
6848 2004-05-29  Seth Nickell  <seth@gnome.org>
6849
6850         * python/dbus.py:
6851
6852         Add ObjectTree class which allows implementation
6853         of trees of "virtual" objects. Basically the python
6854         wrapper for "register_fallback".
6855         
6856         * python/examples/Makefile.am
6857         * python/examples/gconf-proxy-client.py:
6858         * python/examples/gconf-proxy-service.py:
6859
6860         Implement a simple GConf proxy service that supports
6861         get/set on string and int GConf keys using the ObjectTree.
6862         
6863 2004-05-29  Seth Nickell  <seth@gnome.org>
6864
6865         * python/dbus.py:
6866         * python/examples/example-client.py:
6867         * python/examples/example-service.py:
6868         * python/examples/list-system-services.py:
6869
6870         Add SessionBus, SystemBus and ActivationBus classes
6871         so you don't need to know the special little BUS_TYPE
6872         flag.
6873         
6874 2004-05-29  Havoc Pennington  <hp@redhat.com>
6875
6876         * bus/config-parser.c (process_test_valid_subdir): temporarily
6877         stop testing config parser OOM handling, since expat has issues
6878         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6879
6880         * bus/dbus-daemon-1.1.in: change requested_reply to
6881         send_requested_reply/receive_requested_reply so we can send the
6882         replies, not just receive them.
6883
6884         * bus/config-parser.c: parse the new
6885         send_requested_reply/receive_requested_reply
6886
6887         * bus/policy.c (bus_client_policy_check_can_send): add
6888         requested_reply argument and use it
6889
6890         * bus/bus.c (bus_context_check_security_policy): pass through
6891         requested_reply status to message send check
6892
6893         * bus/system.conf.in: adapt to requested_reply change
6894         
6895 2004-05-28  Havoc Pennington  <hp@redhat.com>
6896
6897         * test/glib/test-service-glib.c (main): remove unused variable
6898
6899         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6900
6901         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6902         from the enum, no longer in use.
6903
6904         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6905         works right.
6906
6907         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6908         whether error_name passed in is a valid error name.
6909
6910 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6911
6912         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6913         OBJECT_PATH and OBJECT_PATH_ARRAY
6914
6915 2004-05-28  Seth Nickell  <seth@gnome.org>
6916
6917         * python/examples/Makefile.am:
6918
6919         Forget to add Makefile.am. Do not pass go.
6920
6921 2004-05-28  Michael Meeks  <michael@ximian.com>
6922
6923         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6924         fix no int64 case.
6925
6926         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6927
6928         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6929         (_dbus_message_iter_get_basic_type_array): impl.
6930         drastically simplify ~all relevant _get methods to use these.
6931         (_dbus_message_iter_append_basic_array),
6932         (dbus_message_iter_append_basic): impl
6933         drastically simplify ~all relevant _append methods to use these.
6934
6935         * dbus/dbus-message-builder.c (parse_basic_type) 
6936         (parse_basic_array, lookup_basic_type): impl.
6937         (_dbus_message_data_load): prune scads of duplicate /
6938         cut & paste coding.
6939
6940         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6941         (_dbus_demarshal_basic_type): implement,
6942         (demarshal_and_validate_len/arg): beef up debug.
6943         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6944
6945 2004-05-27  Seth Nickell  <seth@gnome.org>
6946
6947         * configure.in:
6948         * python/Makefile.am:
6949
6950         Include the example python apps in the tarball.
6951         
6952         * python/examples/list-system-services.py
6953
6954         Add a python new example that fetches the list of services
6955         from the system bus.
6956         
6957 2004-05-27  Seth Nickell  <seth@gnome.org>
6958
6959         * python/dbus.py:
6960         * python/dbus_bindings.pyx.in:
6961
6962         Fix failure to notify that a signal was not handled,
6963         resulted in hung functions.
6964         
6965 2004-05-25  Colin Walters  <walters@redhat.com>
6966
6967         * tools/dbus-monitor.c (main): Monitor all types of messages.
6968
6969 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6970
6971         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6972         which unregisters the object path and disposes the handler.
6973
6974 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6975  
6976         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6977          
6978         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6979         operands to && so we call dbus_message_iter_next () for the last
6980         argument also.
6981
6982 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6983
6984         * dbus/dbus-object-tree.c
6985         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6986         children even if the requested path isn't registered.
6987         (object_tree_test_iteration): test object_tree_list_registered.
6988
6989         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6990         it to 0.
6991         
6992 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6993
6994         * doc/TODO: Remove resolved items.
6995
6996         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6997         field.
6998         
6999         * bus/connection.c (bus_connections_expect_reply): Enforce the
7000         per-connection limit on pending replies.
7001         
7002         Patch from Jon Trowbridge <trow@ximian.com>:
7003  
7004         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7005         up a watch that triggers a config reload when one end of the pipe
7006         becomes readable.
7007         (signal_handler): Instead of doing the config reload in our SIGHUP
7008         handler, just write to the reload pipe and let the associated
7009         watch handle the reload when control returns to the main loop.
7010  
7011         * bus/driver.c (bus_driver_handle_reload_config): Added.
7012         Implements a ReloadConfig method for requesting a configuration
7013         file reload via the bus driver.
7014  
7015 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7016
7017         * HACKING: Updated release instructions concerning the wiki page.
7018
7019 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7020
7021         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7022         filter against auth->allowed_mechs; we only add allowed mechs in
7023         record_mechanisms().
7024  
7025         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7026         ALLOWED_MECHS to auth-script format so we can set the list of
7027         allowed mechanisms.
7028  
7029         * data/auth/client-out-of-mechanisms.auth-script: New test to
7030         check client disconnects when it is out of mechanisms to try.
7031  
7032         * dbus/dbus-auth.c (process_command): Remove check for lines
7033         longer that 1 MB; we only buffer up maximum 16 kB.
7034  
7035         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7036         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7037         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7038         assume there might be unused bytes.
7039  
7040         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7041         client-out-of-mechs, it is handled in process_reject(). Move check
7042         for max failures to send_rejected(), as it's a server-only thing.
7043
7044         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7045         send_auth(), send_data(), send_rejected(), send_error(),
7046         send_ok(), send_begin() and send_cancel().
7047
7048 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7049
7050         Remove base64 encoding, replace with hex encoding. Original patch
7051         from trow@ximian.com, added error handling.
7052
7053         * dbus/dbus-string.c (_dbus_string_base64_encode)
7054         (_dbus_string_base64_decode): Remove.
7055         (_dbus_string_hex_decode): Add end_return argument so we can
7056         distinguish between OOM and invalid hex encoding.
7057         (_dbus_string_test): Remove base64 tests and add test case for
7058         invalid hex.
7059
7060         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7061         Replace base64 with hex.
7062
7063         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7064         for invalid hex encoded data in auth protocol.
7065
7066 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7067
7068         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7069         leak.
7070
7071 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7072
7073         * mono/dbus-sharp.dll.config.in: Added for GAC
7074         * mono/dbus-sharp.snk: Added for GAC
7075         * mono/Assembly.cs.in: Added for GAC
7076         * mono/Makefile.am: Changes for GAC installation        
7077         * configure.in: Added refs for dbus-sharp.dll.config.in and
7078         Assembly.cs.in. More fixes for mono testing
7079         * mono/example/Makefile.am: Changed var to CSC
7080         * Makefile.am: Changed flag name to DBUS_USE_CSC
7081
7082 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7083
7084         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7085         * mono/doc/*: Added documentation framework
7086         * configure.in: Added monodoc check
7087         * README: Added description of mono configure flags
7088
7089 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7090
7091         * doc/dbus-specification.xml: Added a "Required" column to the 
7092         header fields table and changed the "zero or more" verbage in
7093         the above paragraph to read "The header must contain the required 
7094         named header fields and zero or more of the optional named header 
7095         fields".
7096         * test/data/invalid-messages/*.message: Added the required PATH 
7097         named header field to the tests so that they don't fail on 
7098         'Missing path field'
7099
7100 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7101
7102         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7103         the stack by implicitly defining variable and parameter types and
7104         removing the hack of defining C pointers as python objects and later
7105         casting them.
7106
7107 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7108
7109         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7110
7111 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7112
7113         * mono/DBusType/Dict.cs: Handle empty dicts
7114         * mono/DBusType/Array.cs: Handle empty arrays
7115         * mono/Arguments.cs: Handle empty arguments
7116
7117 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7118
7119         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7120         field
7121
7122 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7123
7124         * test/data/valid-messages/standard-*.message: Update message
7125         test scripts to new header field names.
7126
7127 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7128
7129         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7130         overflow to times_we_did_each_thing array which would chop off the
7131         first character of the failure_dir string. Increased the size of
7132         the array to 7 to reflect the number of random mutation functions
7133         we have.
7134
7135 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7136
7137         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7138         unix_server->watch here, it is unreffed in disconnect.
7139         (_dbus_server_new_for_tcp_socket): convert NULL host to
7140         "localhost" here so we don't append NULL to address.
7141         
7142         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7143         various addresses, including tcp with no explicit host.
7144
7145 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7146
7147         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7148         fix incorrect setting of .name_offset in the HeaderField (it was
7149         off by two bytes, positioned right after the name and typecode)
7150
7151         * bus/bus.c (bus_context_new, bus_context_unref): test before
7152         calling dbus_server_free_data_slot and _dbus_user_database_unref
7153         in case of an error.
7154
7155         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7156         by libdbus-gtool.
7157
7158 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7159
7160         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7161         _dbus_poll() instead of select().
7162
7163 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7164
7165         * bus/main.c (signal_handler): Reload the configuration files
7166         on SIGHUP.
7167         (main): Set up our SIGHUP handler.
7168
7169         * bus/bus.c (struct BusContext): Store the config file, user and
7170         fork flag in the BusContext.
7171         (process_config_first_time_only): Added.  Contains the code
7172         (previously in bus_context_new) for setting up the BusContext from
7173         the BusConfigParser that should only be run the first time the
7174         config files are read.
7175         (process_config_every_time): Added.  Contains the code (previously
7176         in bus_context_new) for setting up the BusContext from the
7177         BusConfigParser that should be run every time the config files are
7178         read.
7179         (load_config): Added.  Builds a BusConfigParser from the config
7180         files and passes the resulting structure off to
7181         process_config_first_time_only (assuming this is the first time)
7182         and process_config_every_time.
7183         (bus_context_new): All of the config-related code has been moved
7184         to process_config_first_time_only and process_config_every_time.
7185         Now this function just does the non-config-related initializations
7186         and calls load_config.
7187         (bus_context_reload_config): Added.
7188
7189 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7190
7191         * bus/driver.c (bus_driver_handle_get_service_owner):
7192         implement a GetServiceOwner method.
7193         * doc/dbus-specification.xml: document it.
7194         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7195         
7196         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7197         implement, using the bus GetServiceOwner method.
7198
7199         * test/glib/test-dbus-glib.c:
7200         use dbus_gproxy_new_for_service_owner so that we can receive the
7201         signal. 
7202
7203 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7204
7205         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7206         dbus/dbus-message.c, dbus/dbus-protocol.h
7207         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7208
7209         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7210         dbus/dbus-message.c, dbus/dbus-protocol.h
7211         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7212
7213         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7214         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7215         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7216
7217         * doc/dbus-specification.xml (Header Fields Table):
7218         s/SERVICE/DESTINATION
7219         s/SENDER_SERVICE/SENDER
7220
7221
7222 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7223
7224         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7225         a few seconds.
7226
7227 2004-04-13  Michael Meeks  <michael@ximian.com>
7228
7229         * glib/dbus-gobject.c (handle_introspect): split out
7230         (introspect_properties): this.
7231         (handle_introspect): implement this.
7232
7233         * test/glib/Makefile.am: use the absolute path so the bus
7234         daemon's chdir ("/") doesn't kill us dead.
7235
7236         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7237
7238 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7239
7240         * bus/config-parser.c (struct BusConfigParser): Added
7241         included_files field.
7242         (seen_include): Added.  Checks whether or not a file has already
7243         been included by any parent BusConfigParser.
7244         (bus_config_parser_new): Copy the parent's included_files.
7245         (include_file): Track which files have been included, and fail on
7246         circular inclusions.
7247         (process_test_valid_subdir): Changed printf to report if we are
7248         testing valid or invalid conf files.
7249         (all_are_equiv): Changed printf to be a bit clearer about
7250         what we are actually doing.
7251         (bus_config_parser_test): Test invalid configuration files.
7252
7253 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7254
7255         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7256         argument.  If non-null, the newly-constructed BusConfigParser will
7257         be initialized with the parent's BusLimits instead of the default
7258         values.
7259         (include_file): When including a config file, pass in
7260         the current parser as the parent and then copy the BusLimits
7261         from the included BusConfigParser pack to the current parser.
7262         (process_test_valid_subdir): Renamed from process_test_subdir.
7263         (process_test_equiv_subdir): Added.  Walks through a directory,
7264         descending into each subdirectory and loading the config files
7265         it finds there.  If any subdirectory contains two config files
7266         that don't produce identical BusConfigParser structs, fail.
7267         For now, the BusConfigParser's BusPolicies are not compared.
7268         (bus_config_parser_test): Call both process_test_valid_subdir and
7269         process_test_equiv_subdir.
7270
7271         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7272         argument and pass it along to the call to bus_config_parser_new.
7273         Also made a few small changes to allow this code to compile.
7274
7275         * bus/config-loader-expat.c (bus_config_load): Take a parent
7276         argument and pass it along to the call to bus_config_parser_new.
7277
7278         * bus/bus.c (bus_context_new): Load the config file
7279         with a NULL parent argument.
7280
7281 2004-03-29  Michael Meeks  <michael@ximian.com>
7282
7283         * glib/dbus-gobject.c (introspect_properties): split
7284         out, fix mangled 'while' flow control.
7285         (introspect_signals): implement.
7286         (handle_introspect): update.
7287
7288 2004-03-29  Michael Meeks  <michael@ximian.com>
7289
7290         * glib/dbus-gobject.c (set_object_property): split out / 
7291         re-work, use the property type, and not the message type(!)
7292         (get_object_property): ditto.
7293
7294         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7295         (dbus_gvalue_marshal): make this code re-usable, needed
7296         for signals too, also on both proxy and server side.
7297         Re-write for more efficiency / readability.
7298
7299 2004-03-29  Michael Meeks  <michael@ximian.com>
7300
7301         * dbus/dbus-message.c
7302         (dbus_message_new_error_printf): impl.
7303
7304         * dbus/dbus-connection.c
7305         (dbus_connection_unregister_object_path): fix warning.
7306
7307         * configure.in: fix no-mono-installed situation.
7308
7309 2004-03-27  Havoc Pennington  <hp@redhat.com>
7310
7311         Patch from Timo Teräs:
7312         
7313         * tools/dbus-send.c (main): if --print-reply, assume type is
7314         method call; support boolean type args
7315         
7316         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7317         bunch of memleak and logic bugs
7318         
7319 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7320
7321         * mono/Arguments.cs:
7322         * mono/Introspector.cs:
7323         * mono/Handler.cs:
7324         * mono/InterfaceProxy.cs:
7325         * mono/Message.cs
7326         * mono/ProxyBuilder.cs:
7327         * mono/Service.cs:
7328         Added InterfaceProxy class to avoid building proxies for every
7329         object.
7330
7331         * dbus-message.h:
7332         * dbus-message.c (dbus_message_append_args_valist)
7333         (dbus_message_iter_get_object_path)
7334         (dbus_message_iter_get_object_path_array)
7335         (dbus_message_iter_append_object_path)
7336         (dbus_message_iter_append_object_path_array):
7337         Added object_path iter functions to handle OBJECT_PATH arguments
7338         
7339 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7340
7341         First checkin of mono bindings.
7342         * configure.in:
7343         * Makefile.am:
7344         Build stuff for the bindings
7345         * dbus-sharp.pc.in: Added for pkgconfig
7346         
7347 2004-03-21  Havoc Pennington  <hp@redhat.com>
7348
7349         * test/test-service.c (main): remove debug spew
7350
7351 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7352
7353         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7354         arrays
7355
7356         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7357         (dbus_message_iter_init_array_iterator)
7358         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7359         indicate whether the iterator is empty
7360
7361         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7362         warnings
7363
7364 2004-03-19  Havoc Pennington  <hp@redhat.com>
7365
7366         * NEWS: 0.21 updates
7367
7368         * configure.in: 0.21
7369
7370         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7371         
7372         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7373         you don't need pyrex to make dist
7374
7375         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7376         sources; run moc
7377         
7378 2004-03-18  Richard Hult  <richard@imendio.com>
7379
7380         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7381         (dbus_message_set_auto_activation): Add doxygen docs.
7382
7383 2004-03-16  Richard Hult  <richard@imendio.com>
7384
7385         * bus/activation.c: (bus_activation_service_created),
7386         (bus_activation_send_pending_auto_activation_messages),
7387         (bus_activation_activate_service):
7388         * bus/activation.h:
7389         * bus/dispatch.c: (bus_dispatch),
7390         (check_nonexistent_service_auto_activation),
7391         (check_service_auto_activated),
7392         (check_segfault_service_auto_activation),
7393         (check_existent_service_auto_activation), (bus_dispatch_test):
7394         * bus/driver.c: (bus_driver_handle_activate_service):
7395         * bus/services.c: (bus_registry_acquire_service):
7396         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7397         (dbus_message_get_auto_activation):
7398         * dbus/dbus-message.h:
7399         * dbus/dbus-protocol.h: Implement auto-activation.
7400         
7401         * doc/dbus-specification.xml: Add auto-activation to the spec.
7402
7403 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7404
7405         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7406         fix a bug with CUSTOM types.
7407
7408         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7409         a unit test for this bug (used to fail).
7410
7411 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7412
7413         * bus/activation.c:
7414         (babysitter_watch_callback): notify all pending activations waiting for
7415           the same exec that the activation failed.
7416         (bus_activation_activate_service): shortcut the activation if we 
7417           already waiting for the same executable to start up.
7418
7419 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7420
7421         * bus/activation.c: 
7422         - Added service file reloading. 
7423           Each service files directory is kept in an hash table in 
7424           BusActivation and each BusActivationEntry knows what .service-file it
7425           was read from. So when you try to activate a service the bus will 
7426           check if it's been updated, removed or if new .service-files has 
7427           been installed.
7428         - Test code at the bottom for the service file reloading.
7429         * bus/test-main.c: (main):
7430         * bus/test.h:
7431         - added service reloading test.
7432         * dbus/dbus-sysdeps.c: 
7433         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7434
7435 2004-03-08  Michael Meeks  <michael@ximian.com>
7436
7437         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7438         bail immediately if disconnected, to avoid busy loop.
7439
7440         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7441         cleanup cut/paste/inefficiency.
7442
7443 2004-03-01  David Zeuthen  <david@fubar.dk>
7444
7445         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7446         bug where args were used twice. This bug resulted in a segfault
7447         on a Debian/PPC system when starting the messagebus daemon. Include
7448         dbus-sysdeps.h for DBUS_VA_COPY
7449
7450         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7451
7452         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7453         appropriate va_copy implementation. From GLib
7454         
7455 2004-02-24  Joe Shaw  <joe@ximian.com>
7456
7457         * bus/services.c (bus_registry_acquire_service): We need to pass
7458         in the service name to dbus_set_error() to prevent a crash.
7459
7460 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7461
7462         * AUTHORS: Reveal my True identity.
7463
7464 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7465
7466         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7467         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7468
7469 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7470
7471         * doc/TODO: Added not about better error check of configuration files.
7472
7473 2003-12-02  Richard Hult  <richard@imendio.com>
7474
7475         * Update AFL version to 2.0 throughout the source files to reflect
7476         the update that was done a while ago.
7477
7478 2003-12-02  Richard Hult  <richard@imendio.com>
7479
7480         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7481         wrote_dict_key to FALSE on the iter that the dict is appended to,
7482         just like when appending other types. Fixes a bug where a dict
7483         couldn't be put inside a dict.
7484         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7485         (message_iter_test, _dbus_message_test): Add test case for dict
7486         inside dict.
7487
7488 2003-12-01  David Zeuthen  <david@fubar.dk>
7489
7490         * python/dbus.py: Add the actual message when calling the reciever
7491         of a signal such that parameters can be inspected. Add the method
7492         remove_signal_receiver
7493         
7494 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7495
7496         * bus/*.[ch]:
7497         * dbus/*.[ch]:
7498         * glib/*.[ch]: Made ref functions return the pointer
7499
7500 2003-11-25  Zack Rusin  <zack@kde.org>
7501
7502         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7503
7504         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7505         wrappers,
7506
7507         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7508         the Integrator and to better fit with the server,
7509
7510 2003-11-24  Zack Rusin  <zack@kde.org>
7511
7512         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7513         the integrator handles it now
7514
7515         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7516         since QTimer wasn't really meant to be used the way DBusTimeout is
7517
7518 2003-11-24  Zack Rusin  <zack@kde.org>
7519
7520         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7521         Integrator class which integrates D-BUS with the Qt event loop,
7522
7523         * qt/connection.h, qt/connection.cpp: Move all the code which
7524         was dealing with D-BUS integration to the Integrator class,
7525         and start using Integrator,
7526
7527 2003-11-23  Zack Rusin  <zack@kde.org>
7528
7529         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7530         wrapper
7531
7532         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7533         switching namespaces to DBusQt, reworking the class,
7534
7535         * Makefile.cvs: switching dependencies so that it matches KDE 
7536         schematics,
7537         
7538         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7539         the library
7540
7541 2003-11-19  Havoc Pennington  <hp@redhat.com>
7542
7543         * NEWS: update
7544
7545         * configure.in: bump version to 0.20
7546
7547         * configure.in (have_qt): add yet another place to look for qt
7548         (someone hand trolltech a .pc file...)
7549
7550 2003-11-01  Havoc Pennington  <hp@redhat.com>
7551
7552         * doc/dbus-specification.xml: add state machine docs on the auth
7553         protocol; just a first draft, I'm sure it's wrong.      
7554
7555 2003-10-28  David Zeuthen  <david@fubar.dk>
7556
7557         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7558         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7559         
7560 2003-10-28  Havoc Pennington  <hp@redhat.com>
7561
7562         * dbus/dbus-message.c (get_next_field): delete unused function
7563
7564 2003-10-28  Havoc Pennington  <hp@redhat.com>
7565
7566         * bus/expirelist.c (do_expiration_with_current_time): detect
7567         failure of the expire_func due to OOM
7568
7569         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7570
7571         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7572         NoReply error that's now created by the bus when the service exits
7573
7574 2003-10-28  Havoc Pennington  <hp@redhat.com>
7575
7576         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7577         tests for set_path, set_interface, set_member, etc.
7578
7579         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7580
7581         * dbus/dbus-message.c (set_string_field): always just delete and
7582         re-append the field; accept NULL for deletion
7583         (re_align_fields_recurse): reimplement
7584         
7585 2003-10-26  Havoc Pennington  <hp@redhat.com>
7586
7587         * dbus/dbus-connection.c: fix docs to properly describe the
7588         disconnected message
7589         (_dbus_connection_notify_disconnected): remove this function; 
7590         we can't synchronously add the disconnected message, we have to 
7591         do it after we've queued any remaining real messages
7592         (_dbus_connection_get_dispatch_status_unlocked): queue the
7593         disconnect message only if the transport has finished queueing all
7594         its real messages and is disconnected.
7595         (dbus_connection_disconnect): update the dispatch status here
7596
7597 2003-10-22  Havoc Pennington  <hp@redhat.com>
7598
7599         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7600
7601         * bus/connection.c (bus_transaction_send_from_driver): set the
7602         destination to the connection's base service
7603
7604 2003-10-20  Havoc Pennington  <hp@redhat.com>
7605
7606         hmm, make check is currently not passing.
7607         
7608         * doc/dbus-specification.xml: add requirement that custom type
7609         names follow the same rules as interface names.
7610
7611         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7612         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7613         'map'
7614
7615         * doc/dbus-specification.xml: update type codes to match
7616         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7617         CUSTOM. Add type OBJECT_PATH to the spec.
7618
7619 2003-10-17  Havoc Pennington  <hp@redhat.com>
7620
7621         * bus/driver.c (create_unique_client_name): use "." as separator
7622         in base service names instead of '-'
7623
7624         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7625         byte at the end of the string
7626
7627         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7628         optimization macros since string validation seems to be a slow
7629         point.
7630         
7631         * doc/dbus-specification.xml: restrict valid
7632         service/interface/member/error names. Add test suite code for the
7633         name validation.
7634
7635         * dbus/dbus-string.c: limit service/interface/member/error names 
7636         to [0-9][A-Z][a-z]_
7637
7638         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7639         format arg to verbose spew
7640
7641         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7642         memory, return instead of g_error
7643
7644         * test/test-service.c (path_message_func): support emitting a
7645         signal on request
7646
7647         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7648         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7649         assuming the activation bus was the session bus so that services
7650         started manually will still register.
7651         (init_connections_unlocked): fix so that in OOM situation we get
7652         the same semantics when retrying the function
7653         
7654         * test/test-service.c (main): change to use path registration, to
7655         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7656         than DBUS_BUS_SESSION
7657
7658 2003-10-16  Havoc Pennington  <hp@redhat.com>
7659
7660         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7661
7662         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7663         coverage of the tests
7664         (coverage-report.txt): don't move the .da and .bbg files around
7665
7666 2003-10-16  Havoc Pennington  <hp@redhat.com>
7667
7668         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7669         to put there
7670
7671 2003-10-16  Havoc Pennington  <hp@redhat.com>
7672
7673         * bus/connection.c (bus_pending_reply_expired): either cancel or
7674         execute, not both
7675         (bus_connections_check_reply): use unlink, not remove_link, as we
7676         don't want to free the link; fixes double free mess
7677
7678         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7679         where no reply was received
7680
7681         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7682         fix a refcount leak
7683
7684         * bus/signals.c (match_rule_matches): add special cases for the
7685         bus driver, so you can match on sender/destination for it.
7686
7687         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7688         DBUS_PRINT_BACKTRACE is set
7689
7690         * dbus/dbus-internals.c: add pid to assertion failure messages
7691
7692         * dbus/dbus-connection.c: add message type code to the debug spew
7693
7694         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7695         sender=foo not service=foo
7696
7697         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7698         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7699         DBUS_ACTIVATION_ADDRESS instead
7700
7701         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7702         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7703
7704         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7705         context struct
7706
7707         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7708         (dbus_message_iter_get_object_path_array): new function (half
7709         finished, disabled for the moment)
7710         
7711         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7712         DBUS_MESSAGE_TYPE_ERROR
7713
7714         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7715         avoid redirecting stderr to /dev/null
7716         (babysit): close stdin if not doing the "exit_with_session" thing
7717
7718         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7719         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7720         stdout/stdin, so things don't get confused
7721         
7722         * bus/system.conf.in: fix to allow replies, I modified .conf
7723         instead of .conf.in again.
7724
7725 2003-10-14  David Zeuthen  <david@fubar.dk>
7726
7727         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7728         argtype to arg_type when raising unknown arg type exception.
7729         Changed type list to reflect the changes in dbus-protocol.h so 
7730         the bindings actually work.
7731
7732 2003-10-14  Havoc Pennington  <hp@redhat.com>
7733
7734         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7735         to have a bug keeping it from outputting the .da files sometimes
7736         (string_get_string): don't append garbage nul bytes to the string.
7737
7738 2003-10-15  Seth Nickell  <seth@gnome.org>
7739
7740         * python/Makefile.am:
7741
7742         Include dbus_h_wrapper.h in the dist tarball.
7743
7744 2003-10-14  Havoc Pennington  <hp@redhat.com>
7745
7746         * bus/bus.c (bus_context_check_security_policy): revamp this to
7747         work more sanely with new policy-based requested reply setup
7748
7749         * bus/connection.c (bus_transaction_send_from_driver): set bus
7750         driver messages as no reply
7751
7752         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7753         requested_reply attribute on allow/deny rules
7754
7755         * bus/system.conf: add <allow requested_reply="true"/>
7756
7757         * bus/driver.c (bus_driver_handle_message): fix check for replies
7758         sent to the bus driver, which was backward. How did this ever work
7759         at all though? I think I'm missing something.
7760
7761         * dbus/dbus-message.c (decode_header_data): require error and
7762         method return messages to have a reply serial field to be valid
7763         (_dbus_message_loader_queue_messages): break up this function;
7764         validate that reply serial and plain serial are nonzero; 
7765         clean up the OOM/error handling.
7766         (get_uint_field): don't return -1 from this
7767         (dbus_message_create_header): fix signed/unsigned bug
7768
7769         * bus/connection.c (bus_connections_expect_reply): save serial of
7770         the incoming message, not reply serial
7771
7772 2003-10-14  Havoc Pennington  <hp@redhat.com>
7773
7774         * bus/connection.c: implement pending reply tracking using
7775         BusExpireList
7776
7777         * bus/bus.c (bus_context_check_security_policy): verify that a
7778         reply is pending in order to allow a reply to be sent. Deny 
7779         messages of unknown type.
7780
7781         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7782
7783         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7784         (bus_context_get_reply_timeout): new
7785
7786 2003-10-13  Seth Nickell  <seth@gnome.org>
7787
7788         * python/Makefile.am:
7789
7790         Pass "make distcheck": remove a couple files from DIST_FILES
7791         that weren't included in the final version.
7792
7793 2003-10-12  Havoc Pennington  <hp@pobox.com>
7794
7795         Added test code that 1) starts an actual bus daemon and 2) uses
7796         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7797         more testing possible, but this is the basic framework.
7798         
7799         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7800         empty proxy lists from the proxy list hash
7801
7802         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7803         couple of return_if_fail checks
7804
7805         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7806         to allocate, so everything is cleared to NULL as it should be.
7807
7808         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7809         source as data to dbus_connection_set_timeout_functions() as the 
7810         timeout functions expected
7811
7812         * test/glib/run-test.sh: add a little script to start up a message
7813         bus and run tests using it
7814
7815         * tools/dbus-launch.1: updates
7816
7817         * tools/dbus-launch.c (main): add --config-file option
7818
7819         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7820         that could never be reached.
7821
7822         * dbus/dbus-message.c (dbus_message_new_method_return) 
7823         (dbus_message_new_error, dbus_message_new_signal): set the
7824         no-reply-expected flag on all these. Redundant, but may
7825         as well be consistent.
7826
7827 2003-10-11  Havoc Pennington  <hp@pobox.com>
7828
7829         * test/decode-gcov.c (function_solve_graph): make broken block
7830         graph a nonfatal error since it seems to be broken. Need to debug
7831         this.
7832
7833         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7834         can't just check type > INVALID < LAST anymore
7835
7836         * dbus/dbus-message.c (dbus_message_get_signature): new function
7837         (dbus_message_has_signature): new function
7838         (struct DBusMessage): add signature field (right now it isn't sent
7839         over the wire, just generated on the fly)
7840         (dbus_message_copy): copy the signature, and init strings to
7841         proper length to avoid some reallocs
7842         (dbus_message_iter_init_array_iterator): return void, since it
7843         can't fail
7844         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7845         (_dbus_message_loader_queue_messages): add silly temporary hack to
7846         fill in message->signature on load
7847
7848         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7849         characters, so they are relatively human-readable.
7850
7851 2003-10-11  Havoc Pennington  <hp@pobox.com>
7852
7853         * dbus/dbus-message.c (_dbus_message_test): add more test
7854         coverage, but #if 0 for now since they uncover a bug 
7855         not fixed yet; I think in re_align_field_recurse()
7856         (re_align_field_recurse): add FIXME about broken assertion
7857
7858         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7859
7860         * bus/connection.c: share a couple code bits with expirelist.c
7861
7862         * bus/expirelist.h, bus/expirelist.c: implement a generic
7863         expire-items-after-N-seconds facility, was going to share between
7864         expiring connections and replies, decided not to use for expiring
7865         connections for now.
7866
7867         * COPYING: include AFL 2.0 (still need to change all the file headers)
7868
7869 2003-10-09  Havoc Pennington  <hp@redhat.com>
7870
7871         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7872         gcc 3.3. Not that we do anything about it yet.
7873
7874         * bus/signals.c (bus_match_rule_parse): impose max length on the
7875         match rule text
7876
7877         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7878
7879 2003-10-09  Havoc Pennington  <hp@redhat.com>
7880
7881         Make matching rules theoretically work (add parser).
7882         
7883         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7884         the case where destination is explicitly specified as bus driver
7885         and someone else is eavesdropping.
7886         
7887         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7888         definition of eavesdropping and assertion
7889
7890         * tools/dbus-send.c (main): use dbus_message_type_from_string
7891
7892         * bus/signals.c (bus_match_rule_parse): implement
7893
7894         * dbus/dbus-message.c (dbus_message_type_from_string): new
7895
7896         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7897
7898 2003-10-02  Havoc Pennington  <hp@pobox.com>
7899
7900         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7901         dbus_gproxy_oneway_call
7902
7903         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7904         (dbus_server_setup_with_g_main): fix to allow calling them more
7905         than once on the same args
7906         (dbus_bus_get_with_g_main): new function
7907
7908 2003-10-02  Havoc Pennington  <hp@redhat.com>
7909
7910         * doc/dbus-tutorial.xml: write some stuff
7911
7912 2003-09-29  Havoc Pennington  <hp@pobox.com>
7913
7914         * configure.in: split checks for Doxygen from XML docs, check for
7915         xmlto
7916
7917         * doc/Makefile.am: XML-ify all the docs, and add a blank
7918         dbus-tutorial.xml
7919
7920 2003-09-29  Havoc Pennington  <hp@pobox.com>
7921
7922         * Merge dbus-object-names branch. To see the entire patch 
7923         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7924         it's huuuuge though.
7925         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7926         
7927 2003-09-28  Havoc Pennington  <hp@pobox.com>
7928
7929         * HACKING: update to reflect new server
7930
7931 2003-09-26  Seth Nickell  <seth@gnome.org>
7932
7933         * python/dbus.py:
7934         * python/examples/example-signals.py:
7935
7936         Start implementing some notions of signals. The API
7937         is really terrible, but they sort of work (with the
7938         exception of being able to filter by service, and to
7939         transmit signals *as* a particular service). Need to
7940         figure out how to make messages come from the service
7941         we registered :-(
7942         
7943         * python/dbus_bindings.pyx.in:
7944
7945         Removed duplicate message_handler callbacks.
7946         
7947 2003-09-25  Havoc Pennington  <hp@redhat.com>
7948
7949         * bus/session.conf.in: fix my mess
7950
7951 2003-09-25  Havoc Pennington  <hp@pobox.com>
7952
7953         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7954
7955 2003-09-25  Seth Nickell  <seth@gnome.org>
7956
7957         * python/examples/example-service.py:
7958
7959         Johan notices complete wrong code in example-service, but
7960         completely wrong in a way that works exactly the same (!).
7961         Johan is confused, how could this possibly work? Example
7962         code fails to serve purpose of making things clear.
7963         Seth fixes.
7964
7965 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7966
7967         * doc/dbus-specification.sgml: don't require header fields
7968         to be 4-byte aligned and specify that fields should be
7969         distinguished from padding by the fact that zero is not
7970         a valid field name.
7971         
7972         * doc/TODO: remove re-alignment item and add item to doc
7973         the OBJECT_PATH type.
7974         
7975         * dbus/dbus-message.c:
7976         (HeaderField): rename the original member to value_offset
7977         and introduce a name_offset member to keep track of where
7978         the field actually begins.
7979         (adjust_field_offsets): remove.
7980         (append_int_field), (append_uint_field),
7981         (append_string_field): don't align the start of the header
7982         field to a 4-byte boundary.
7983         (get_next_field): impl finding the next marhsalled field
7984         after a given field.
7985         (re_align_field_recurse): impl re-aligning a number of
7986         already marshalled fields.
7987         (delete_field): impl deleting a field of any type and
7988         re-aligning any following fields.
7989         (delete_int_or_uint_field), (delete_string_field): remove.
7990         (set_int_field), (set_uint_field): no need to re-check
7991         that we have the correct type for the field.
7992         (set_string_field): ditto and impl re-aligning any
7993         following fields.
7994         (decode_header_data): update to take into account that
7995         the fields aren't 4-byte aligned any more and the new
7996         way to distinguish padding from header fields. Also,
7997         don't exit when there is too much header padding.
7998         (process_test_subdir): print the directory.
7999         (_dbus_message_test): add test to make sure a following
8000         field is re-aligned correctly after field deletion.
8001         
8002         * dbus/dbus-string.[ch]:
8003         (_dbus_string_insert_bytes): rename from insert_byte and
8004         allow the insert of multiple bytes.
8005         (_dbus_string_test): test inserting multiple bytes.
8006
8007         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8008         warning note to docs about having to re-align any
8009         marshalled values following the string.
8010         
8011         * dbus/dbus-message-builder.c:
8012         (append_string_field), (_dbus_message_data_load):
8013         don't align the header field.
8014         
8015         * dbus/dbus-auth.c: (process_test_subdir): print the
8016         directory.
8017         
8018         * test/break-loader.c: (randomly_add_one_byte): upd. for
8019         insert_byte change.
8020         
8021         * test/data/invalid-messages/bad-header-field-alignment.message:
8022         new test case.
8023         
8024         * test/data/valid-messages/unknown-header-field.message: shove
8025         a dict in the unknown field.
8026
8027 2003-09-25  Seth Nickell  <seth@gnome.org>
8028
8029         * python/dbus.py:
8030         * python/dbus_bindings.pyx.in:
8031
8032         Handle return values.
8033         
8034         * python/examples/example-client.py:
8035         * python/examples/example-service.py:
8036
8037         Pass back return values from the service to the client.
8038         
8039 2003-09-24  Seth Nickell  <seth@gnome.org>
8040
8041         * python/dbus.py:
8042
8043         Connect Object methods (when you are sharing an object) up... pass
8044         in a list of methods to be shared. Sharing all the methods just
8045         worked out too weird. You can now create nice Services over the
8046         DBus in Python. :-)
8047         
8048         * python/dbus_bindings.pyx.in:
8049
8050         Keep references to user_data tuples passed into C functions so 
8051         Python doesn't garbage collect on us.
8052
8053         Implement MethodReturn and Error subclasses of Message for creating
8054         DBusMessage's of those types.
8055         
8056         * python/examples/example-client.py:
8057         * python/examples/example-service.py:
8058
8059         Simple example code showing both how create DBus services and objects,
8060         and how to use them.
8061
8062 2003-09-23  Havoc Pennington  <hp@pobox.com>
8063
8064         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8065
8066 2003-09-23  Havoc Pennington  <hp@redhat.com>
8067
8068         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8069         (dbus_gproxy_disconnect_signal): implement
8070         (dbus_gproxy_manager_remove_signal_match): implement
8071         (dbus_gproxy_manager_add_signal_match): implement
8072         (dbus_gproxy_oneway_call): implement
8073
8074 2003-09-23  Havoc Pennington  <hp@pobox.com>
8075
8076         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8077         subclass. This means dropping the transparent thread safety of the
8078         proxy; you now need a separate proxy per-thread, or your own
8079         locking on the proxy. Probably right anyway.
8080         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8081
8082 2003-09-22  Havoc Pennington  <hp@redhat.com>
8083
8084         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8085
8086 2003-09-21  Seth Nickell  <seth@gnome.org>
8087
8088         First checkin of the Python bindings.
8089         
8090         * python/.cvsignore:
8091         * python/Makefile.am:
8092         * python/dbus_bindings.pyx.in:
8093         * python/dbus_h_wrapper.h:
8094
8095         Pieces for Pyrex to operate on, building a dbus_bindings.so
8096         python module for low-level access to the DBus APIs.
8097         
8098         * python/dbus.py:
8099
8100         High-level Python module for accessing DBus objects.
8101
8102         * configure.in:
8103         * Makefile.am:
8104
8105         Build stuff for the python bindings.
8106
8107         * acinclude.m4:
8108
8109         Extra macro needed for finding the Python C header files.
8110
8111 2003-09-21  Havoc Pennington  <hp@pobox.com>
8112
8113         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8114         implementing the proxy manager, didn't get very far.
8115
8116         * dbus/dbus-bus.c (dbus_bus_add_match): new
8117         (dbus_bus_remove_match): new
8118
8119         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8120         path_name argument; adjust the other not-yet-implemented 
8121         gproxy constructors to be what I think they should be.
8122
8123 2003-09-21  Havoc Pennington  <hp@pobox.com>
8124
8125         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8126         by default for message bus connections.
8127
8128         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8129         exit_on_disconnect flag is set and we process the disconnected
8130         signal.
8131         (dbus_connection_set_exit_on_disconnect): new function
8132
8133 2003-09-21  Havoc Pennington  <hp@pobox.com>
8134
8135         Get matching rules mostly working in the bus; only actually
8136         parsing the rule text remains. However, the client side of
8137         "signal connections" hasn't been started, this patch is only the
8138         bus side.
8139         
8140         * dbus/dispatch.c: fix for the matching rules changes
8141         
8142         * bus/driver.c (bus_driver_handle_remove_match)
8143         (bus_driver_handle_add_match): send an ack reply from these
8144         method calls
8145
8146         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8147         arguments, reported by Seth Nickell
8148
8149         * bus/config-parser.c (append_rule_from_element): support
8150         eavesdrop=true|false attribute on policies so match rules 
8151         can be prevented from snooping on the system bus.
8152
8153         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8154         and "destination" in attribute names; fix some docs bugs; 
8155         add eavesdrop=true|false attribute
8156
8157         * bus/driver.c (bus_driver_handle_add_match)
8158         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8159         messages
8160
8161         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8162         rid of broadcast service concept, signals are just always broadcast
8163
8164         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8165         mostly implement matching rules stuff (currently only exposed as signal
8166         connections)
8167
8168 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8169
8170         * doc/dbus-specification.sgml: Change the header field name
8171         to be an enum and update the rest of the spec to reference
8172         the fields using the conventinal name.
8173
8174         * dbus/dbus-protocol.h: update to reflect the spec.
8175
8176         * doc/TODO: add item to remove the 4 byte alignment requirement.
8177         
8178         * dbus/dbus-message.c: Remove the code to generalise the
8179         header/body length and serial number header fields as named
8180         header fields so we can reference field names using the 
8181         protocol values.
8182         (append_int_field), (append_uint_field), (append_string_field):
8183         Append the field name as a byte rather than four chars.
8184         (delete_int_or_uint_field), (delete_string_field): reflect the
8185         fact that the field name and typecode now occupy 4 bytes instead
8186         of 8.
8187         (decode_string_field), (decode_header_data): update to reflect
8188         protocol changes and move the field specific encoding from
8189         decode_string_field() back into decode_header_data().
8190         
8191         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8192         Add utility to aid debugging.
8193         
8194         * dbus/dbus-message-builder.c:
8195         (append_string_field), (_dbus_message_data_load): Update to
8196         reflect protocol changes; Change the FIELD_NAME directive
8197         to HEADER_FIELD and allow it to take the field's conventional
8198         name rather than the actual value.
8199         
8200         * test/data/*/*.message: Update to use HEADER_FIELD instead
8201         of FIELD_NAME; Always align the header on an 8 byte boundary
8202         *before* updating the header length.
8203
8204 2003-09-15  Havoc Pennington  <hp@pobox.com>
8205
8206         * dbus/dbus-pending-call.c: add the get/set object data
8207         boilerplate as for DBusConnection, etc. Use generic object data
8208         for the notify callback.
8209
8210         * glib/dbus-gparser.c (parse_node): parse child nodes
8211
8212         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8213         
8214         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8215         contain functions shared between the convenience lib and the
8216         installed lib
8217
8218         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8219         -export-symbols-regex to the GLib library
8220
8221         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8222         fix the locking in here, and add a default handler for
8223         Introspect() that just returns sub-nodes.
8224
8225 2003-09-14  Havoc Pennington  <hp@pobox.com>
8226
8227         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8228         rather than gfoo consistent
8229
8230         * glib/dbus-gproxy.h: delete for now, move contents to
8231         dbus-glib.h, because the include files don't work right since we
8232         aren't in the dbus/ subdir.
8233         
8234         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8235         (dbus_gproxy_end_call): finish
8236         (dbus_gproxy_begin_call): finish
8237
8238         * glib/dbus-gmain.c (dbus_set_g_error): new
8239
8240         * glib/dbus-gobject.c (handle_introspect): include information
8241         about child nodes in the introspection
8242
8243         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8244         function to help in implementation of introspection
8245
8246         * dbus/dbus-object-tree.c
8247         (_dbus_object_tree_list_registered_and_unlock): new function
8248
8249 2003-09-12  Havoc Pennington  <hp@pobox.com>
8250
8251         * glib/dbus-gidl.h: add common base class for all the foo_info
8252         types
8253
8254         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8255         similar to kdcop
8256
8257         * test/Makefile.am: try test srcdir -ef . in addition to test
8258         srcdir = ., one of them should work (yeah lame)
8259         
8260         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8261         library
8262         
8263         * glib/dbus-gparser.h: make description_load routines return
8264         NodeInfo* not Parser*
8265
8266         * Makefile.am (SUBDIRS): build test dir after all library dirs
8267
8268         * configure.in: add GTK+ detection
8269
8270 2003-09-07  Havoc Pennington  <hp@pobox.com>
8271
8272         * Make Doxygen contented.
8273
8274 2003-09-07  Havoc Pennington  <hp@pobox.com>
8275
8276         * doc/dbus-specification.sgml: more updates
8277
8278 2003-09-06  Havoc Pennington  <hp@pobox.com>
8279
8280         * doc/dbus-specification.sgml: partial updates
8281
8282         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8283         zillionth time; hopefully I edited the right file this time.
8284
8285         * bus/config-parser.c (append_rule_from_element): support
8286         send_type, send_path, receive_type, receive_path
8287
8288         * bus/policy.c: add message type and path to the list of things
8289         that can be "firewalled"
8290
8291 2003-09-06  Havoc Pennington  <hp@pobox.com>
8292
8293         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8294         (dbus_connection_register_object_path): make this not handle
8295         messages to paths below the given path
8296
8297 2003-09-03  Havoc Pennington  <hp@pobox.com>
8298
8299         * test/glib/Makefile.am: add this with random glib-linked test
8300         programs
8301
8302         * glib/Makefile.am: remove the random test programs from here,
8303         leave only the unit tests
8304
8305         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8306         uscore/javacaps conversion, and fix     
8307         (get_object_property, set_object_property): change to .NET
8308         convention for mapping props to methods, set_FooBar/get_FooBar, 
8309         since one language has such a convention we may as well copy it. 
8310         Plus real methods in either getFooBar or get_foo_bar style won't 
8311         collide with this convention.
8312
8313 2003-09-01  Havoc Pennington  <hp@pobox.com>
8314
8315         * glib/dbus-gparser.c: implement
8316
8317         * glib/dbus-gobject.c: start implementing skeletons support
8318
8319         * configure.in: when disabling checks/assert, also define
8320         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8321
8322 2003-09-01  Havoc Pennington  <hp@pobox.com>
8323
8324         * glib/Makefile.am: rearrange a bunch of files and get "make
8325         check" framework set up
8326
8327 2003-08-31  Havoc Pennington  <hp@pobox.com>
8328
8329         * fix build with --disable-tests
8330
8331 2003-08-30  Havoc Pennington  <hp@pobox.com>
8332
8333         * dbus/dbus-connection.c: purge DBusMessageHandler
8334
8335         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8336         use callbacks everywhere
8337
8338 2003-08-30  Havoc Pennington  <hp@pobox.com>
8339
8340         * test/data/valid-config-files/system.d/test.conf: change to 
8341         root for the user so warnings don't get printed
8342
8343         * dbus/dbus-message.c: add dbus_message_get_path,
8344         dbus_message_set_path
8345         
8346         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8347         dispatching to a path
8348
8349         * dbus/dbus-string.c (_dbus_string_validate_path): add
8350
8351         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8352         (_dbus_marshal_object_path): implement
8353
8354         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8355         to contain the path to the target object
8356         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8357         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8358
8359 2003-08-30  Havoc Pennington  <hp@pobox.com>
8360
8361         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8362
8363 2003-08-29  Havoc Pennington  <hp@pobox.com>
8364
8365         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8366         registered
8367         (struct DBusObjectSubtree): shrink this
8368         a lot, since we may have a lot of them
8369         (_dbus_object_tree_free_all_unlocked): implement
8370         (_dbus_object_tree_dispatch_and_unlock): implement
8371
8372 2003-08-29  Havoc Pennington  <hp@pobox.com>
8373
8374         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8375
8376 2003-08-28  Havoc Pennington  <hp@pobox.com>
8377
8378         purge DBusObjectID
8379         
8380         * dbus/dbus-connection.c: port to no ObjectID, create a
8381         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8382
8383         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8384         everything except UnregisterFunction and MessageFunction
8385         
8386         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8387         add DBUS_TYPE_OBJECT_PATH
8388         
8389         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8390         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8391         path-based object IDs
8392
8393 2003-08-25  Havoc Pennington  <hp@pobox.com>
8394
8395         Just noticed that dbus_message_test is hosed, I wonder when I
8396         broke that. I thought make check was passing earlier...
8397         
8398         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8399         container tree, will replace most of dbus-object-registry
8400
8401         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8402         screwup
8403
8404 2003-08-19  Havoc Pennington  <hp@pobox.com>
8405
8406         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8407         (dbus_message_is_error): fix this function
8408
8409         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8410         match
8411
8412         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8413         reflect clarified man page
8414         (bus_client_policy_check_can_send): ditto
8415         
8416         * bus/session.conf.in: fixup
8417
8418         * bus/system.conf.in: fixup
8419
8420 2003-08-18  Havoc Pennington  <hp@redhat.com>
8421
8422         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8423
8424         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8425         dumb bug created earlier (wrong order of args to
8426         decode_header_data())
8427         
8428         * tools/dbus-send.c: port
8429
8430         * tools/dbus-print-message.c (print_message): port
8431
8432         * test/data/*messages: port all messages over
8433         
8434         * dbus/dbus-message-builder.c: support including 
8435         message type
8436         
8437         * bus/driver.c: port over
8438         
8439         * bus/dispatch.c: port over to new stuff
8440
8441         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8442         rename disconnect signal to "Disconnected"
8443
8444 2003-08-17  Havoc Pennington  <hp@pobox.com>
8445
8446         This doesn't compile yet, but syncing up so I can hack on it from
8447         work. What are branches for if not broken code? ;-)
8448         
8449         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8450         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8451         DBUS_HEADER_FIELD_ERROR_NAME
8452         
8453         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8454         for the interface+member pairs
8455         (string_hash): change to use g_str_hash algorithm
8456         (find_direct_function, find_string_function): refactor these to
8457         share most code.
8458         
8459         * dbus/dbus-message.c: port all of this over to support 
8460         interface/member fields instead of name field
8461
8462         * dbus/dbus-object-registry.c: port over
8463         
8464         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8465         from _dbus_string_validate_name
8466
8467         * bus/dbus-daemon-1.1: change file format for the 
8468         <deny>/<allow> stuff to match new message naming scheme
8469
8470         * bus/policy.c: port over
8471
8472         * bus/config-parser.c: parse new format
8473         
8474 2003-08-16  Havoc Pennington  <hp@pobox.com>
8475
8476         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8477         broken assertion
8478
8479         * glib/dbus-gproxy.c: some hacking
8480
8481 2003-08-15  Havoc Pennington  <hp@redhat.com>
8482
8483         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8484
8485         * dbus/dbus-connection.c
8486         (dbus_connection_send_with_reply_and_block): factor out internals;
8487         change to convert any error replies to DBusError instead of 
8488         returning them as a message
8489
8490 2003-08-15  Havoc Pennington  <hp@pobox.com>
8491
8492         * dbus/dbus-connection.c, 
8493         dbus/dbus-pending-call.c: Finish the pending call stuff
8494
8495 2003-08-14  Havoc Pennington  <hp@redhat.com>
8496
8497         * dbus/dbus-pending-call.c: start on new object that will replace
8498         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8499         replies
8500
8501         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8502         with remote interfaces
8503
8504         * dbus/dbus-gidl.c: do the boring boilerplate in here
8505         
8506 2003-08-12  Havoc Pennington  <hp@pobox.com>
8507
8508         * bus/dispatch.c (bus_dispatch): make this return proper 
8509         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8510
8511         * dbus/dbus-errors.c (dbus_set_error): use
8512         _dbus_string_append_printf_valist
8513
8514         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8515         (_dbus_string_append_printf): new
8516
8517         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8518         UNKNOWN_METHOD
8519
8520         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8521         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8522         message is unhandled.
8523
8524 2003-08-11  Havoc Pennington  <hp@pobox.com>
8525
8526         * bus/test.c (client_disconnect_handler): change to return
8527         HANDLED (would have been REMOVE_MESSAGE)
8528
8529         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8530         HANDLED/NOT_YET_HANDLED instead of
8531         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8532         should be used.
8533
8534 2003-08-10  Havoc Pennington  <hp@pobox.com>
8535
8536         * tools/dbus-send.c (main): add --type argument, for now
8537         supporting only method_call and signal types.
8538
8539         * tools/dbus-print-message.c: print message type
8540
8541         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8542         init connection->objects
8543
8544         * doc/dbus-specification.sgml: fix sgml
8545
8546         * bus/*.c: port over to object-instance API changes
8547
8548         * test/test-service.c: ditto
8549         
8550         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8551         name, we will have to fix up the rest of the code to also handle
8552         this
8553         (dbus_message_new): generic message-creation call
8554         (set_string_field): allow appending name field
8555
8556 2003-08-06  Havoc Pennington  <hp@pobox.com>
8557
8558         * dbus/dbus-object-registry.c: implement signal connection 
8559         and dispatch
8560
8561         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8562
8563         * dbus/dbus-internals.c (_dbus_memdup): new function
8564
8565 2003-08-02  Havoc Pennington  <hp@pobox.com>
8566
8567         * dbus/dbus-message.c (dbus_message_get_no_reply)
8568         (dbus_message_set_no_reply): add these and remove
8569         set_is_error/get_is_error
8570
8571         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8572         remove the ERROR flag, since there's now an ERROR type
8573
8574 2003-08-01  Havoc Pennington  <hp@pobox.com>
8575
8576         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8577         implement
8578
8579         * dbus/dbus-message.c (dbus_message_get_type): new function
8580
8581         * doc/dbus-specification.sgml: add "type" byte to messages
8582
8583 2003-08-01  Havoc Pennington  <hp@pobox.com>
8584
8585         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8586         a message type enum to distinguish kinds of message
8587         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8588         that need not be replied to
8589
8590 2003-08-01  Havoc Pennington  <hp@pobox.com>
8591
8592         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8593         (unpack_8_octets): fix no-64-bit-int bug
8594
8595         * dbus/dbus-object-registry.c (validate_id): validate the 
8596         connection ID bits, not just the instance ID.
8597
8598         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8599         the connection-global 33 bits of the object ID
8600
8601         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8602         object ID in the new way
8603
8604         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8605         define server/client/instance bits.
8606
8607 2003-07-30  Havoc Pennington  <hp@pobox.com>
8608
8609         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8610         build
8611
8612 2003-07-13  Havoc Pennington  <hp@pobox.com>
8613
8614         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8615         fields to DBusObjectVTable and DBusObjectInfo
8616
8617 2003-07-12  Havoc Pennington  <hp@pobox.com>
8618
8619         * dbus/dbus-object-registry.c: implement unit test,
8620         fix bugs discovered in process
8621
8622         * dbus/dbus-connection.c: remove handler_table and
8623         register_handler(), add DBusObjectRegistry usage
8624
8625         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8626         (dbus_object_id_set_null): new functions
8627
8628 2003-07-08  Havoc Pennington  <hp@pobox.com>
8629
8630         * dbus/dbus-object.c: implement some of this
8631
8632         * dbus/dbus-object-registry.c
8633         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8634         param
8635         (_dbus_object_registry_new): handle OOM
8636
8637 2003-07-08  Havoc Pennington  <hp@pobox.com>
8638
8639         * dbus/dbus-object.h: sketch out an API for registering objects
8640         with a connection, that allows us to use as little as 24 bytes
8641         per object and lets application code represent an object in 
8642         any conceivable way.
8643
8644         * dbus/dbus-object-registry.c: implement the hard bits of the
8645         DBusConnection aspect of object API. Not yet wired up.
8646         
8647 2003-07-06  Havoc Pennington  <hp@pobox.com>
8648
8649         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8650         (_dbus_marshal_object_id): new
8651         (_dbus_demarshal_object_id): new
8652         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8653         consolidate identical switch cases. Don't conditionalize handling
8654         of DBUS_TYPE_UINT64, need to handle the type always.
8655         (_dbus_marshal_validate_arg): consolidate identical cases, and
8656         handle DBUS_TYPE_OBJECT_ID
8657
8658         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8659
8660         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8661
8662 2003-09-28  Havoc Pennington  <hp@pobox.com>
8663
8664         * real 0.13 release
8665
8666 2003-09-28  Havoc Pennington  <hp@pobox.com>
8667
8668         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8669         to work with Debian db2html
8670
8671 2003-09-28  Havoc Pennington  <hp@pobox.com>
8672
8673         * configure.in: 0.13
8674
8675         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8676         stylesheet-images for benefit of Debian
8677         
8678         Change back to using filesystem-linked sockets for the system
8679         bus, so only root can create the default system bus address.
8680         
8681         * bus/system.conf.in: change to use
8682         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8683
8684         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8685         from here.
8686
8687         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8688         here, and AC_DEFINE DBUS_SYSTEM_PATH
8689
8690 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8691
8692         * doc/TODO:
8693         * doc/busconfig.dtd:
8694         Add busconfig DTD.
8695         
8696 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8697
8698         * doc/dbus-specification.sgml:
8699         Add activation reply values.
8700         
8701 2003-08-05  Havoc Pennington  <hp@redhat.com>
8702
8703         * configure.in: 0.12
8704
8705 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8706
8707         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8708         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8709         (add_watch), (remove_watch), (create_source):
8710         Refcount fds, fixes some reentrancy issues.
8711         
8712 2003-07-30  Havoc Pennington  <hp@redhat.com>
8713
8714         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8715         bus address to be abstract if we have abstract sockets
8716
8717         * NEWS: update
8718
8719 2003-07-28  Havoc Pennington  <hp@redhat.com>
8720
8721         * bus/messagebus.in: fix to avoid processname/servicename 
8722         confusion, from Michael Kearey
8723         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8724         
8725 2003-07-23  Havoc Pennington  <hp@pobox.com>
8726
8727         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8728         fix from Andy Hanton to remove broken "+1"
8729
8730 2003-07-16  Havoc Pennington  <hp@pobox.com>
8731
8732         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8733         babysitter process, as suggested by Thomas Leonard, so 
8734         an "eval `dbus-launch --exit-with-session`" will actually 
8735         return
8736
8737 2003-07-16  Havoc Pennington  <hp@pobox.com>
8738
8739         * configure.in: print out EXPANDED_* variables in the summary at
8740         the end; clean up the code that computes EXPANDED_ variables and
8741         get the ones using exec_prefix right. Should make things work
8742         when you build without --prefix
8743
8744 2003-06-29  Havoc Pennington  <hp@pobox.com>
8745
8746         * mono/Test.cs (class Test): fire up a main loop and run it
8747
8748         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8749         done once, the app has to do it
8750
8751 2003-06-26  Havoc Pennington  <hp@pobox.com>
8752
8753         * mono/Connection.cs: set up connection with the glib main loop
8754
8755 2003-07-01  Havoc Pennington  <hp@redhat.com>
8756
8757         * doc/dbus-specification.sgml: clarify the format of a type code,
8758         change suggested by Jim Blandy
8759
8760 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8761
8762         * doc/Makefile.am:
8763         * tools/Makefile.am: Don't assume srcdir == builddir.
8764
8765         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8766         the allocated block.
8767         (_dbus_memory_test): New function.
8768         * dbus/dbus-test.h: Add _dbus_memory_test ().
8769         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8770
8771         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8772         of %c%c%c%c.
8773         (dbus_message_new): Remove obsolete @todo.
8774
8775         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8776         (_dbus_marshal_set_uint64): Fix comment.
8777
8778         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8779         hardcode FIELD_REPLY_SERIAL.
8780
8781         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8782         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8783
8784         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8785         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8786
8787 2003-06-24  Havoc Pennington  <hp@pobox.com>
8788
8789         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8790
8791 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8792
8793         * configure.in:
8794         * gcj/.cvsignore:
8795         * gcj/Hello.java:
8796         * gcj/Makefile.am:
8797         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8798         * gcj/org/.cvsignore:
8799         * gcj/org/Makefile.am:
8800         * gcj/org/freedesktop/.cvsignore:
8801         * gcj/org/freedesktop/Makefile.am:
8802         * gcj/org/freedesktop/dbus/.cvsignore:
8803         * gcj/org/freedesktop/dbus/Makefile.am:
8804         * gcj/org/freedesktop/dbus/Message.java: (Message),
8805         (Message.Message):
8806         * gcj/org/freedesktop/dbus/natMessage.cc:
8807         Fix the build system.
8808
8809 2003-06-22  Havoc Pennington  <hp@pobox.com>
8810
8811         * mono/Connection.cs: add more bindings
8812
8813         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8814         more than once.
8815
8816 2003-06-22  Havoc Pennington  <hp@pobox.com>
8817
8818         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8819         Start wrapping more stuff.
8820
8821 2003-06-22  Havoc Pennington  <hp@pobox.com>
8822
8823         * mono/Message.cs: implement Message.Wrap() that ensures we only
8824         have a single C# wrapper per DBusMessage, assuming it works which
8825         it probably doesn't.
8826
8827         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8828         (dbus_message_free_data_slot): new
8829         (dbus_message_set_data): new
8830         (dbus_message_get_data): new
8831
8832 2003-06-22  Havoc Pennington  <hp@pobox.com>
8833
8834         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8835         (_dbus_data_slot_allocator_alloc): rework these to keep a
8836         reference count on each slot and automatically manage a global
8837         slot ID variable passed in by address
8838
8839         * bus/bus.c: convert to new dataslot API
8840
8841         * dbus/dbus-bus.c: convert to new dataslot API
8842
8843         * dbus/dbus-connection.c: convert to new dataslot API
8844
8845         * dbus/dbus-server.c: convert to new dataslot API
8846
8847         * glib/dbus-gmain.c: ditto
8848
8849         * bus/test.c: ditto
8850
8851         * bus/connection.c: ditto
8852
8853 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8854
8855         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8856         after the gcj checks so that the correct configuration tags
8857         will be added to libtool.
8858
8859         * dbus-glib-1.pc.in: No need to specify any includes since
8860         dbus-1.pc.in has those.
8861
8862 2003-06-22  Havoc Pennington  <hp@pobox.com>
8863
8864         * mono/*, gcj/*, configure.in, Makefile.am:
8865         Check in makefiles and subdirs for mono and gcj bindings.
8866         Neither binding actually exists, just trying to get through
8867         all the build and other boring bits.
8868
8869 2003-06-21  Philip Blundell  <philb@gnu.org>
8870
8871         * tools/dbus-monitor.1: Updated.
8872
8873         * tools/dbus-send.1: Likewise.
8874
8875 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8876
8877         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8878         for hangup and error after checking read so we won't discard
8879         pending data if both hangup and read are set.
8880
8881 2003-06-19  Philip Blundell  <philb@gnu.org>
8882
8883         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8884
8885         * tools/dbus-send.c: Accept both --system and --session.
8886
8887         * tools/dbus-monitor.c: Same here.
8888
8889 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8890
8891         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8892         from C++ (Patch by Miloslav Trmac).
8893
8894 2003-06-15  Joe Shaw  <joe@assbarn.com>
8895
8896         * configure.in: Check for socklen_t.
8897
8898         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8899
8900         * test/test-segfault.c: Add #include <sys/time.h>
8901
8902         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8903         dbus-launch needs it.
8904
8905 2003-06-09  Havoc Pennington  <hp@redhat.com>
8906
8907         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8908         SUN_LEN, it breaks abstract socket usage
8909
8910         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8911         starts of lines.
8912
8913 2003-06-04  Havoc Pennington  <hp@pobox.com>
8914
8915         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8916         using unix:abstract=/foo, and when listening in a tmpdir
8917         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8918
8919         * dbus/dbus-transport.c (_dbus_transport_open): support
8920         unix:abstract=/foo
8921
8922         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8923         support abstract sockets
8924
8925         * dbus/dbus-transport-unix.c
8926         (_dbus_transport_new_for_domain_socket): support abstract sockets
8927
8928         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8929         toggle as an argument, implement abstract namespace support
8930         (_dbus_listen_unix_socket): ditto
8931
8932         * configure.in: add --enable-abstract-sockets and implement
8933         a configure check for autodetection of the right value.
8934
8935 2003-06-01  Havoc Pennington  <hp@pobox.com>
8936
8937         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8938         in /tmp (though on Linux this will end up being useless,
8939         when we add abstract namespace support)
8940
8941         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8942         subst'ing it
8943
8944 2003-05-28  Colin Walters  <walters@verbum.org>
8945
8946         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8947
8948 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8949
8950         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8951
8952 2003-05-17  Colin Walters  <walters@gnu.org>
8953
8954         * tools/dbus-send.c: Don't exit with an error code if --help was
8955         passed.  Default to using the session bus instead of the system
8956         one.
8957
8958         * tools/dbus-launch.c: Ditto.
8959
8960         * tools/dbus-monitor.c: Ditto.
8961
8962         * tools/dbus-send.1: Update with new arguments.
8963
8964         * tools/dbus-launch.c: Emit code to export variables.  New
8965         arguments -s and -c to specify shell syntax, and a bit of code to
8966         autodetect syntax.  Also, allow specifying a program to run.
8967
8968         * tools/dbus-launch.1: Update with new arguments.
8969
8970         * tools/dbus-send.1: Ditto.
8971
8972         * tools/dbus-monitor.1: Ditto.
8973
8974 2003-05-17  Havoc Pennington  <hp@pobox.com>
8975
8976         * bus/config-parser.c (merge_included): merge in policies from
8977         child configuration file.
8978
8979         * bus/policy.c (bus_policy_merge): function to merge two policies
8980         together
8981
8982 2003-05-16  Havoc Pennington  <hp@redhat.com>
8983
8984         * dbus/dbus-connection.c: disable verbose lock spew
8985
8986         * tools/dbus-send.c: add --print-reply command line option
8987
8988         * tools/dbus-print-message.h (print_message): new util function
8989         shared by dbus-send and dbus-monitor
8990
8991         * tools/dbus-monitor.c (handler_func): exit on disconnect
8992
8993         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8994         disconnected, don't try to use the read_watch
8995
8996         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8997         so we can find this bug more easily
8998
8999 2003-05-16  Havoc Pennington  <hp@redhat.com>
9000
9001         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9002         NULL as DBusHashTable is annoyingly likely to do.
9003
9004 2003-05-16  Colin Walters  <walters@verbum.org>
9005
9006         * tools/dbus-monitor.c: Add --session argument and usage()
9007         function.
9008
9009         * tools/dbus-monitor.1: Update with new --session arg.
9010
9011         * bus/Makefile.am (install-data-hook): Create
9012         $(libdir)/dbus-1.0/services so that the session bus is happy.
9013
9014 2003-05-15  Havoc Pennington  <hp@redhat.com>
9015
9016         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9017         on non-x86. ifdef's are evil.
9018
9019 2003-05-15  Havoc Pennington  <hp@redhat.com>
9020
9021         * configure.in: 0.11
9022
9023         * NEWS: update
9024
9025         * bus/Makefile.am (initddir): apparently we are supposed to put
9026         init scripts in /etc/rc.d/init.d not /etc/init.d
9027
9028         * bus/Makefile.am: remove the "you must --enable-tests to make
9029         check" as it broke distcheck
9030
9031         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9032
9033 2003-05-13  James Willcox  <jwillcox@gnome.org>
9034
9035         * configure.in:
9036         * bus/activation.c: (bus_activation_service_created),
9037         (bus_activation_activate_service):
9038         * bus/driver.c: (bus_driver_send_service_deleted),
9039         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9040         (bus_driver_send_service_acquired),
9041         (bus_driver_send_welcome_message),
9042         (bus_driver_handle_list_services):
9043         * bus/session.conf.in:
9044         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9045         (dbus_bus_service_exists), (dbus_bus_activate_service):
9046         * dbus/dbus-bus.h:
9047
9048         Add some convenience API which lets you activate a service, and did a
9049         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9050         and dbus_message_get_args()
9051
9052 2003-05-11  Havoc Pennington  <hp@pobox.com>
9053
9054         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9055         calling _dbus_marshal_validate_arg() for every byte in a byte
9056         array, etc.
9057
9058         * dbus/dbus-message-handler.c: use atomic reference counting to
9059         reduce number of locks slightly; the global lock in here sucks
9060
9061         * dbus/dbus-connection.c
9062         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9063         update_dispatch_status that can be called with lock held; then use
9064         in a couple places to reduce locking/unlocking
9065         (dbus_connection_send): hold the lock over the whole function
9066         instead of acquiring it twice.
9067
9068         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9069
9070         * bus/connection.c (bus_connections_setup_connection): fix access
9071         to already-freed memory.
9072
9073         * dbus/dbus-connection.c: keep a little cache of linked list
9074         nodes, to avoid using the global linked list alloc lock in the
9075         normal send-message case. Instead we just use the connection lock
9076         that we already have to take.
9077
9078         * dbus/dbus-list.c (_dbus_list_find_last): new function
9079
9080         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9081         change to use a struct for the atomic type; fix docs,
9082         they return value before increment, not after increment.
9083
9084         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9085         (_dbus_string_append_8_aligned): new functions to try to
9086         microoptimize this operation.
9087         (reallocate_for_length): break this out of set_length(), to
9088         improve profile info, and also so we can consider inlining the
9089         set_length() part.
9090
9091         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9092         strings with some preallocation, cuts down on our calls to realloc
9093         a fair bit. Though if we can get the "move entire string to empty
9094         string" optimization below to kick in here, it would be better.
9095
9096         * dbus/dbus-string.c (_dbus_string_move): just call
9097         _dbus_string_move_len
9098         (_dbus_string_move_len): add a special case for moving
9099         an entire string into an empty string; we can just
9100         swap the string data instead of doing any reallocs.
9101         (_dbus_string_init_preallocated): new function
9102
9103 2003-05-11  Havoc Pennington  <hp@pobox.com>
9104
9105         Write a "test-profile" that does echo client-server with threads;
9106         profile reveals lock contention, memcpy/realloc of buffers, and
9107         UTF-8 validation as hot spots. 20% of lock contention eliminated
9108         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9109         contention is global mempool locks for GList and DBusList.
9110
9111         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9112         x86 implementation
9113
9114         * dbus/dbus-connection.c (struct DBusConnection): use
9115         dbus_atomic_t for the reference count
9116
9117         * dbus/dbus-message.c (struct DBusMessage): declare
9118         dbus_atomic_t values as volatile
9119
9120         * configure.in: code to detect ability to use atomic integer
9121         operations in assembly, from GLib patch
9122
9123         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9124         time, tired of it being wrong in threads and forked processes
9125
9126         * glib/test-profile.c: a little program to bounce messages back
9127         and forth between threads and eat CPU
9128
9129         * dbus/dbus-connection.c: add debug spew macros for debugging
9130         thread locks; include config.h at top; fix deadlock in
9131         dbus_connection_flush()
9132
9133 2003-05-08  Havoc Pennington  <hp@pobox.com>
9134
9135         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9136         data from getting written, and there wasn't a good reason to
9137         use _exit really.
9138
9139         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9140         dbus_verbose lines in test coverage
9141         (main): add list of functions sorted by # of untested blocks
9142         to the coverage report
9143
9144         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9145
9146         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9147
9148         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9149         extend test coverage
9150
9151         * test/data/auth/cancel.auth-script: test canceling an
9152         authentication
9153
9154         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9155         aren't used. in CVS history if we end up needing them.
9156
9157 2003-05-04  Havoc Pennington  <hp@pobox.com>
9158
9159         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9160         unit test
9161
9162         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9163         function, which assumed length was in # of strings, not bytes
9164
9165         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9166         missing coverage
9167
9168         * dbus/dbus-connection.c
9169         (_dbus_connection_queue_received_message): disable function for
9170         now, we are only using it in test mode
9171
9172         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9173         remove a mistaken FIXME
9174
9175 2003-05-04  Havoc Pennington  <hp@pobox.com>
9176
9177         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9178         unlock mutex on successful return, patch from Anders Gustafsson
9179
9180 2003-05-04  Havoc Pennington  <hp@pobox.com>
9181
9182         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9183         Anders Gustafsson
9184
9185 2003-05-04  Havoc Pennington  <hp@pobox.com>
9186
9187         * tools/dbus-launch.c: implement
9188
9189         * bus/main.c (main), bus/bus.c (bus_context_new):
9190         implement --print-pid and --fork
9191
9192 2003-05-03  Havoc Pennington  <hp@redhat.com>
9193
9194         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9195         the address had no value, and add to test suite. Fix and
9196         regression test from Miloslav Trmac
9197
9198 2003-05-03  Havoc Pennington  <hp@pobox.com>
9199
9200         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9201         watch is invalid when handled
9202
9203         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9204         dbus-launch utility to launch the bus from a shell script.  Didn't
9205         actually implement dbus-launch yet, it's just a placeholder still.
9206
9207 2003-05-03  Havoc Pennington  <hp@pobox.com>
9208
9209         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9210         daemon; also documents daemon config file, so replaces
9211         doc/config-file.txt. Corrected some stuff from config-file.txt in
9212         the process of moving it.
9213
9214 2003-05-03  Havoc Pennington  <hp@pobox.com>
9215
9216         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9217         add some man pages
9218
9219 2003-05-03  Colin Walters  <walters@verbum.org>
9220
9221         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9222         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9223
9224         * Makefile.am: Update to use new .pc versioning scheme.
9225
9226 2003-05-02  Havoc Pennington  <hp@redhat.com>
9227
9228         * bus/system.conf.in: allow send/receive to/from message bus
9229         service
9230
9231 2003-04-30  Havoc Pennington  <hp@redhat.com>
9232
9233         * configure.in: print a note when building with unit tests and
9234         without assertions
9235
9236 2003-04-30  Havoc Pennington  <hp@redhat.com>
9237
9238         * Makefile.am: add a check-local that complains if you didn't
9239         configure with --enable-tests
9240
9241 2003-04-29  Havoc Pennington  <hp@redhat.com>
9242
9243         * glib/dbus-gmain.c: docs cleanups
9244
9245         * dbus/dbus-types.h: add docs on int64 types
9246
9247         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9248         public API docs section
9249
9250 2003-04-29  Havoc Pennington  <hp@redhat.com>
9251
9252         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9253         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9254         parallel install API version, not with the D-BUS package version.
9255
9256         * HACKING: move some of README over here
9257
9258         * README: updates, and document API/ABI policy
9259
9260         * configure.in: reindentation
9261
9262 2003-04-29  Havoc Pennington  <hp@redhat.com>
9263
9264         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9265         to use this library" to be sure people have the right
9266         expectations.
9267
9268 2003-04-28  Havoc Pennington  <hp@redhat.com>
9269
9270         * configure.in: add --enable-docs which by default is auto yes if
9271         doxygen and db2html found, no otherwise; but can be forced on/off
9272
9273         * doc/Makefile.am: conditionalize whether to build docs on
9274         --enable-docs
9275
9276 2003-04-28  Havoc Pennington  <hp@redhat.com>
9277
9278         * configure.in: 0.10
9279
9280         * NEWS: update
9281
9282         * bus/system.conf.in: add <includedir>system.d</includedir>
9283
9284         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9285         username was provided but not uid
9286
9287         * bus/config-parser.c (struct BusConfigParser): keep track of
9288         whether the parser is toplevel or was included; change some
9289         of the error handling if it's included.
9290
9291 2003-04-27  Havoc Pennington  <hp@pobox.com>
9292
9293         Unbreak my code...
9294
9295         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9296         report correct status if we finish processing authentication
9297         inside this function.
9298
9299         * bus/activation.c (try_send_activation_failure): use
9300         bus_transaction_send_error_reply
9301
9302         * bus/connection.c (bus_connection_get_groups): return an error
9303         explaining the problem
9304
9305         * bus/bus.c (bus_context_check_security_policy): implement
9306         restriction here that inactive connections can only send the
9307         hello message. Also, allow bus driver to send anything to
9308         any recipient.
9309
9310         * bus/connection.c (bus_connection_complete): create the
9311         BusClientPolicy here instead of on-demand.
9312         (bus_connection_get_policy): don't return an error
9313
9314         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9315         sender field in message being replied to
9316
9317         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9318         causing it to return FALSE always
9319
9320         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9321         we checked sender rather than destination
9322
9323 2003-04-25  Havoc Pennington  <hp@redhat.com>
9324
9325         test suite is slightly hosed at the moment, will fix soon
9326
9327         * bus/connection.c (bus_connections_expire_incomplete): fix to
9328         properly disable the timeout when required
9329         (bus_connection_set_name): check whether we can remove incomplete
9330         connections timeout after we complete each connection.
9331
9332         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9333         probably still broken.
9334
9335         * bus/services.c (bus_registry_acquire_service): implement max
9336         number of services owned, and honor allow/deny rules on which
9337         services a connection can own.
9338
9339         * bus/connection.c (bus_connection_get_policy): report errors here
9340
9341         * bus/activation.c: implement limit on number of pending
9342         activations
9343
9344 2003-04-25  Havoc Pennington  <hp@redhat.com>
9345
9346         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9347         where we used >= 0 instead of != DBUS_UID_UNSET.
9348
9349 2003-04-25  Havoc Pennington  <hp@redhat.com>
9350
9351         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9352         were toggled without add/remove, fix from Anders Gustafsson
9353
9354 2003-04-24  Havoc Pennington  <hp@redhat.com>
9355
9356         * test/data/valid-config-files/basic.conf: add <limit> tags to
9357         this test
9358
9359         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9360         <limit> tag in configuration file.
9361
9362 2003-04-24  Havoc Pennington  <hp@redhat.com>
9363
9364         * bus/dispatch.c: somehow missed some name_is
9365
9366         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9367         (_dbus_timeout_set_interval): new
9368
9369         * bus/connection.c (bus_connections_setup_connection): record time
9370         when each connection is first set up, and expire them after the
9371         auth timeout passes.
9372
9373 2003-04-24  Havoc Pennington  <hp@redhat.com>
9374
9375         * dbus/dbus-message.c (dbus_message_name_is): rename
9376         (dbus_message_service_is): rename
9377         (dbus_message_sender_is): rename
9378         (dbus_message_get_service): rename
9379
9380 2003-04-24  Havoc Pennington  <hp@redhat.com>
9381
9382         * configure.in: add --enable-checks
9383
9384         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9385
9386         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9387         to use thread locks.
9388         (_dbus_connection_handler_destroyed_locked): move some private
9389         functions into proper docs group
9390
9391         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9392         _dbus_return_val_if_fail
9393
9394         Throughout: use dbus_return_if_fail
9395
9396 2003-04-23  James Willcox  <jwillcox@gnome.org>
9397
9398         * glib/dbus-glib.h:
9399         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9400         (dbus_connection_setup_with_g_main),
9401         (dbus_server_setup_with_g_main):
9402         * glib/test-dbus-glib.c: (main):
9403         * glib/test-thread-client.c: (main):
9404         * glib/test-thread-server.c: (new_connection_callback), (main):
9405         * tools/dbus-monitor.c: (main):
9406
9407         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9408         and dbus_server_setup_with_g_main().
9409
9410 2003-04-20  Havoc Pennington  <hp@pobox.com>
9411
9412         * doc/dbus-specification.sgml: document the restrictions on
9413         message and service names
9414
9415 2003-04-22  Havoc Pennington  <hp@redhat.com>
9416
9417         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9418         support, and do some code cleanups to share more code and
9419         speed up array marshal/demarshal.
9420
9421         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9422
9423         * configure.in: generate dbus-arch-deps.h
9424
9425         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9426         64-bit typecodes
9427
9428 2003-04-22  Havoc Pennington  <hp@redhat.com>
9429
9430         * test/data/valid-messages/opposite-endian.message: fix test
9431         to use proper type for rply field
9432
9433         * test/data/invalid-messages: add tests for below validation
9434
9435         * dbus/dbus-message.c (decode_header_data): validate field types,
9436         and validate that named fields are valid names
9437         (decode_name_field): consider messages in the
9438         org.freedesktop.Local. namespace to be invalid.
9439
9440         * dbus/dbus-string.c (_dbus_string_validate_name): new
9441
9442 2003-04-19  Havoc Pennington  <hp@pobox.com>
9443
9444         * bus/driver.c (bus_driver_handle_hello): check limits and
9445         return an error if they are exceeded.
9446
9447         * bus/connection.c: maintain separate lists of active and inactive
9448         connections, and a count of each. Maintain count of completed
9449         connections per user. Implement code to check connection limits.
9450
9451         * dbus/dbus-list.c (_dbus_list_unlink): export
9452
9453         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9454         number of bytes in the message queue for a connection
9455
9456 2003-04-18  Havoc Pennington  <hp@pobox.com>
9457
9458         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9459
9460         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9461         memleaks
9462
9463         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9464         on realloc be sure to update the pointer in the keyring
9465
9466         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9467         offset to avoid writing to unallocated memory
9468
9469         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9470         try the next mechanism, so we properly handle OOM
9471
9472         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9473         on OOM.
9474         (_dbus_keyring_new): fix OOM bug
9475         (_dbus_keyring_new_homedir): always set error; impose a maximum
9476         number of keys we'll load from the file, mostly to speed up the
9477         test suite and make its OOM checks more useful, but also for
9478         general sanity.
9479
9480         * dbus/dbus-auth.c (process_error_server): reject authentication
9481         if we get an error from the client
9482         (process_cancel): on cancel, send REJECTED, per the spec
9483         (process_error_client): send CANCEL if we get an error from the
9484         server.
9485
9486 2003-04-18  Havoc Pennington  <hp@pobox.com>
9487
9488         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9489         debug spew
9490
9491         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9492         handling problem
9493
9494         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9495         about DBUS_TEST_HOMEDIR once
9496
9497         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9498         the environment
9499
9500         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9501         config file so we test the right thing
9502
9503         Throughout: assorted docs improvements
9504
9505 2003-04-18  Havoc Pennington  <hp@pobox.com>
9506
9507         * glib/dbus-gmain.c: adapt to watch changes
9508
9509         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9510
9511         * dbus/dbus-server.h: remove dbus_server_handle_watch
9512
9513         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9514
9515         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9516         like DBusTimeout, so we don't need dbus_connection_handle_watch
9517         etc.
9518
9519 2003-04-17  Havoc Pennington  <hp@redhat.com>
9520
9521         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9522         database usage so it all goes via the DBusUserDatabase cache.
9523
9524 2003-04-17  Havoc Pennington  <hp@redhat.com>
9525
9526         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9527         there was an OOM watch we skipped, we always return TRUE so we
9528         iterate again to have a look at it again. Fixes test suite hang.
9529         Code rearrangement also lets us lose some memset and only iterate
9530         over callbacks once.
9531
9532         * bus/driver.c (bus_driver_handle_message): sense of test for
9533         reply was backward
9534
9535 2003-04-16  Havoc Pennington  <hp@pobox.com>
9536
9537         * doc/dbus-specification.sgml: make spec say serials are unsigned
9538
9539         * dbus/dbus-message.h: change message serials to unsigned
9540
9541         * dbus/dbus-connection.c: adapt to message serials being unsigned
9542
9543 2003-04-15  Havoc Pennington  <hp@pobox.com>
9544
9545         * bus/bus.c: create and keep around a shared DBusUserDatabase
9546         object.
9547
9548         * bus/connection.c (bus_connection_get_groups): don't cache
9549         groups for user in the connection object, since user database
9550         object now does that.
9551
9552 2003-04-16  Havoc Pennington  <hp@redhat.com>
9553
9554         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9555         list of size counters
9556         (_dbus_message_loader_putback_message_link): put back a popped link
9557
9558         * dbus/dbus-connection.c
9559         (dbus_connection_set_max_live_messages_size): rename
9560         max_received_size
9561         (dbus_connection_get_outgoing_size): get size of outgoing
9562         queue
9563         (_dbus_connection_set_connection_counter): remove this cruft
9564
9565 2003-04-14  Havoc Pennington  <hp@redhat.com>
9566
9567         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9568         caching, but at some point we might want to be able to use a
9569         different database.
9570
9571         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9572         SHA1 conf file to test the sha1 auth mechanism, since the regular
9573         test always uses EXTERNAL when available.
9574
9575         * configure.in,
9576         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9577         add conf file that requires use of sha1 auth
9578
9579 2003-04-13  Havoc Pennington  <hp@pobox.com>
9580
9581         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9582         from Philip Blundell to send messages and monitor them.
9583
9584 2003-04-13  Havoc Pennington  <hp@pobox.com>
9585
9586         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9587         callbacks
9588
9589         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9590         users
9591
9592         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9593         fix to only recover unused bytes if we're already authenticated
9594         (_dbus_transport_get_is_authenticated): fix to still mark us
9595         authenticated if there are unused bytes.
9596
9597         * bus/dispatch.c: implement security policy checking
9598
9599         * bus/connection.c (bus_transaction_send_from_driver): new
9600
9601         * bus/bus.c (bus_context_check_security_policy): new
9602
9603         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9604         now we just set the DBusError and it gets converted to an error
9605         reply.
9606
9607         * bus/connection.c (allow_user_function): enable code using actual
9608         data from the config file
9609
9610         * bus/policy.c (list_allows_user): handle wildcard rules for
9611         user/group connection perms
9612
9613 2003-04-13  Havoc Pennington  <hp@pobox.com>
9614
9615         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9616
9617         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9618
9619         * bus/policy.c (bus_policy_append_mandatory_rule)
9620         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9621         (bus_policy_append_group_rule): new functions
9622
9623 2003-04-12  Havoc Pennington  <hp@pobox.com>
9624
9625         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9626
9627         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9628         the pid/gid/uid, just for paranoia.
9629
9630         * test/break-loader.c (randomly_do_n_things): find a byte
9631         containing a type code, and randomly change it to a different
9632         type code.
9633
9634 2003-04-12  Havoc Pennington  <hp@pobox.com>
9635
9636         * bus/policy.h: change BusPolicy to be the thing from the config
9637         file, and rename old BusPolicy to BusClientPolicy
9638
9639         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9640         match change in how policy works
9641
9642         * dbus/dbus-internals.h: mark assert_not_reached as
9643         __attribute((noreturn))__
9644
9645 2003-04-11  Havoc Pennington  <hp@redhat.com>
9646
9647         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9648         the broadcast service. Use boolean return for ServiceExists.
9649
9650 2003-04-11  Havoc Pennington  <hp@redhat.com>
9651
9652         * configure.in: add another directory to look for qt in.
9653
9654 2003-04-11  Havoc Pennington  <hp@redhat.com>
9655
9656         * AUTHORS: add Colin Walters
9657
9658 2003-04-11  Havoc Pennington  <hp@redhat.com>
9659
9660         * NEWS: update
9661
9662         * configure.in: 0.9
9663
9664 2003-04-11  Havoc Pennington  <hp@redhat.com>
9665
9666         * bus/messagebus.in: remove pid file when stopping the
9667         message bus, since the bus won't have privileges to remove it
9668         itself.
9669
9670 2003-04-11  Havoc Pennington  <hp@redhat.com>
9671
9672         * bus/bus.c (bus_context_new): move credentials change after
9673         creating pidfile
9674
9675 2003-04-11  Havoc Pennington  <hp@pobox.com>
9676
9677         * test/decode-gcov.c: add "below average functions" to the
9678         coverage report, and change how some of the code works.
9679
9680         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9681         not in the coverage stats.
9682
9683         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9684         couple places so running the test suite doesn't result in megaspam.
9685
9686 2003-04-11  Havoc Pennington  <hp@pobox.com>
9687
9688         * bus/dispatch.c (check_existent_service_activation): accept a no
9689         memory error in a place we didn't before
9690
9691         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9692         in case the first one failed," since the test suite is less
9693         broken now.
9694
9695 2003-04-10  Havoc Pennington  <hp@pobox.com>
9696
9697         * bus/dispatch.c (check_segfault_service_activation): add test
9698         for launching an executable that just crashes.
9699
9700         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9701         don't leave a million cores. We'll see how portable this is.
9702
9703 2003-04-10  Havoc Pennington  <hp@pobox.com>
9704
9705         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9706         the possible parent failures before we fork, so that we don't
9707         fail to create a babysitter after creating the child.
9708
9709         * bus/activation.c (bus_activation_activate_service): kill child
9710         if we don't successfully complete the activation.
9711
9712 2003-04-10  Havoc Pennington  <hp@redhat.com>
9713
9714         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9715         the connection if it's disconnected
9716
9717         * bus/activation.c (bus_activation_service_created): use new
9718         transaction features to roll back removal of pending activation if
9719         we don't successfully create the service after all. Don't remove
9720         pending activation if the function fails.
9721
9722         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9723         (_dbus_list_insert_after_link): new code to facilitate
9724         services.c fixes
9725
9726         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9727         new functionality, so we can preallocate the ability to insert
9728         into a hash table.
9729
9730         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9731         allowing us to put custom hooks in a transaction to be used for
9732         cancelling said transaction
9733
9734         * doc/dbus-specification.sgml: add some discussion of secondary
9735         service owners, and disallow zero-length service names
9736
9737         * bus/services.c (bus_registry_acquire_service): new function,
9738         splits out part of bus_driver_handle_acquire_service() and fixes
9739         a bug where we didn't remove the service doing the acquiring
9740         from the secondary queue if we failed to remove the current owner
9741         from the front of the queue.
9742
9743 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9744
9745         * doc/dbus-specification.sgml:
9746         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9747
9748 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9749
9750         * bus/.cvsignore:
9751         * glib/.cvsignore:
9752         * test/.cvsignore:
9753         Added files to cvsignore
9754
9755         * dbus/dbus-message.h:
9756         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9757         Make get_named() take two out argument and return a boolean.
9758         (dbus_message_iter_get_args_valist):
9759         Update usage of get_named().
9760         (dbus_message_iter_append_byte):
9761         Fix typo
9762         (dbus_message_iter_append_named)
9763         Fix typo
9764         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9765         More tests.
9766
9767 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9768
9769         * dbus/dbus-marshal.[ch]:
9770         Add array_type_pos argument to _dbus_marshal_validate_arg.
9771         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9772
9773         * dbus/dbus-message.[ch]:
9774         Multi-dimensional arrays have full type specification in the
9775         outermost array. Iter code re-arranged to handle this.
9776         Added some more iter tests.
9777
9778         * doc/dbus-specification.sgml:
9779         Add me to authors.
9780         Remove old FIXME.
9781         Update new array encoding description.
9782         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9783
9784         * test/data/invalid-messages/array-with-mixed-types.message:
9785         * test/data/valid-messages/array-of-array-of-uint32.message:
9786         Change to the new array format.
9787
9788         * test/data/invalid-messages/too-short-dict.message:
9789         Fix bug in test.
9790
9791         * test/data/valid-messages/recursive-types.message:
9792         Fix up and extend test.
9793
9794 2003-04-10  Havoc Pennington  <hp@pobox.com>
9795
9796         * bus/dispatch.c: lots of fixes
9797
9798         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9799         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9800         that was crack, broke the test service.
9801
9802         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9803         handling to avoid piling up errors if we get a failure on the
9804         first address.
9805
9806         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9807         pid in assertion failures.
9808
9809         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9810         to some fixed size of file descriptor array. Don't return TRUE
9811         anytime a timeout exists, that led to lots of busy loop silliness
9812         in the tests.
9813
9814 2003-04-09  Havoc Pennington  <hp@redhat.com>
9815
9816         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9817         I'd checked this in earlier but hadn't.
9818
9819 2003-04-09  Havoc Pennington  <hp@redhat.com>
9820
9821         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9822         the activation test (man this is getting old!)
9823
9824 2003-04-09  Havoc Pennington  <hp@redhat.com>
9825
9826         * test/test-utils.c: use dispatch status function to fix this up
9827
9828         * bus/connection.c (connection_watch_callback): don't dispatch
9829         from here
9830         (connection_timeout_callback): don't dispatch from here
9831         (bus_connections_setup_connection): set the dispatch status function
9832         (bus_connection_disconnected): unset it
9833
9834         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9835         used to add a connection to be dispatched
9836         (_dbus_loop_iterate): do the dispatching at the end of each
9837         iteration
9838
9839         * dbus/dbus-connection.c
9840         (dbus_connection_set_dispatch_status_function): new function
9841         allowing us to fix up main loop usage
9842         (_dbus_connection_last_unref): free all the various function
9843         user data
9844         (dbus_connection_dispatch): call the DispatchStatusFunction
9845         whenever this function returns
9846         (dbus_connection_handle_watch): call DispatchStatusFunction
9847         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9848         (reply_handler_timeout): call DispatchStatusFunction
9849         (dbus_connection_flush): call DispatchStatusFunction
9850
9851 2003-04-09  Havoc Pennington  <hp@redhat.com>
9852
9853         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9854         a memory leak
9855
9856         * bus/dispatch.c (check_service_activated): fix bug in test
9857
9858         * dbus/dbus-mainloop.c (check_timeout): fix this up
9859
9860         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9861         verbose output so we can sort out output from different processes,
9862         e.g. in the activation case.
9863
9864 2003-04-08  Colin Walters  <walters@gnu.org>
9865
9866         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9867         the pid file.
9868         (bus_context_new): Set it.
9869         (bus_context_unref): Use it to delete the pid file.
9870
9871 2003-04-08  Havoc Pennington  <hp@redhat.com>
9872
9873         * test/data/invalid-messages/array-with-mixed-types.message:
9874         regression test that fails for the moment
9875
9876         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9877         tests for convenience
9878
9879         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9880         array of nil, it broke things.
9881
9882         * test/data/invalid-messages/array-of-nil.message: regression test
9883
9884         * test/data/valid-messages/array-of-array-of-uint32.message:
9885         happened to write this so added it to suite
9886
9887 2003-04-08  Havoc Pennington  <hp@redhat.com>
9888
9889         * bus/driver.c (bus_driver_handle_acquire_service): init
9890         retval/reply before checking name
9891
9892         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9893         recursion depth argument
9894
9895         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9896         in the public struct for future extension
9897
9898         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9899         typo
9900
9901         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9902         message
9903
9904         * doc/dbus-specification.sgml: fix typo
9905
9906 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9907
9908         Implemented recursive types, named types and new-style iters
9909
9910         * bus/driver.c:
9911         * glib/test-thread-client.c: (thread_func):
9912         * glib/test-thread-server.c: (handle_test_message):
9913         * test/test-service.c: (handle_echo):
9914         Update to new api
9915
9916         * dbus/Makefile.am:
9917         * dbus/dbus-dict.c:
9918         * dbus/dbus-dict.h:
9919         * dbus/dbus.h
9920         Remove DBusDict
9921
9922         * dbus/dbus-internals.c: (_dbus_type_to_string):
9923         Update for new types.
9924
9925         * dbus/dbus-marshal.[ch]:
9926         Implement recursive types and the new marshalling format.
9927         Remove hardcoded dict marshalling.
9928         Marshal named types.
9929
9930         * dbus/dbus-message-builder.c:
9931         Add BYTE_ARRAY.
9932         Remove references to old types
9933
9934         * dbus/dbus-message.[ch]:
9935         New non-refcounted iter API that supports recursive iters.
9936         Use iters for appending, including support for recursive
9937         iters.
9938         Add byte and named type support.
9939         Update everything to new marshalling formats.
9940         Add tests for new API.
9941
9942         * dbus/dbus-protocol.h:
9943         Remove old array types.
9944         Add types: BYTE, ARRAY, DICT, NAMED
9945
9946         * dbus/dbus-string.c:
9947         * dbus/dbus-sysdeps.c:
9948         Make parse_double locale safe.
9949
9950         * dbus/dbus-test-main.c:
9951         Call setlocale.
9952
9953         * dbus/dbus-test.c:
9954         Kill dict test
9955
9956         * doc/dbus-specification.sgml:
9957         Update spec
9958
9959         * test/data/incomplete-messages/missing-body.message:
9960         * test/data/invalid-messages/bad-boolean.message:
9961         * test/data/invalid-messages/bad-boolean-array.message:
9962         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9963         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9964         * test/data/invalid-messages/too-short-dict.message:
9965         * test/data/valid-messages/dict-simple.message:
9966         * test/data/valid-messages/dict.message:
9967         * test/data/valid-messages/emptiness.message:
9968         * test/data/valid-messages/lots-of-arguments.message:
9969         * test/data/valid-messages/no-padding.message:
9970         * test/data/valid-messages/recursive-types.message:
9971         Add missing NAME fields
9972         Fix up dicts & arrays
9973
9974         * test/data/invalid-messages/dict-with-nil-value.message:
9975         Removed, this is not invalid anymore.
9976
9977         * test/data/valid-messages/recursive-types.message:
9978         Add new test for deeply recursive types.
9979
9980 2003-04-07  Havoc Pennington  <hp@pobox.com>
9981
9982         * bus/driver.c (bus_driver_handle_acquire_service): return an
9983         error if you try to acquire a service that starts with ':'
9984
9985 2003-04-07  Havoc Pennington  <hp@redhat.com>
9986
9987         * doc/dbus-specification.sgml: require that base service names
9988         start with ':' and that the base service is created/deleted
9989         as first and last things a connection does on the bus
9990
9991         * bus/dispatch.c (check_existent_service_activation): lots more
9992         work on the activation test; it doesn't fully pass yet...
9993
9994         * test/test-service.c (main): fix so we don't memleak the
9995         connection to the message bus
9996         (filter_func): accept a message asking us to exit
9997
9998 2003-04-06  Havoc Pennington  <hp@pobox.com>
9999
10000         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10001         from Colin Walters
10002
10003         * configure.in: fixes to Qt detection from Colin Walters
10004
10005         * doc/Makefile.am: Only remove generated docbook dirs if they
10006         exist, from Colin Walters
10007
10008         * dbus/dbus-bus.c: change how we set well-known connections to
10009         NULL, so that it works if a single connection is stored in
10010         two well-known array slots.
10011
10012         * test/Makefile.am: remove a lot of stuff that isn't immediately
10013         useful, it's in CVS history if we want it.
10014
10015         * test/test-service.c: use dbus-mainloop instead of that
10016         watch.[hc] crack
10017
10018 2003-04-06  Havoc Pennington  <hp@pobox.com>
10019
10020         * dbus/Makefile.am: split lists of sources into stuff that goes in
10021         the library, util functions that go in the lib and are also used
10022         elsewhere, and util functions that are used in tests/daemon but
10023         don't go in the lib.
10024
10025         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10026         here so it can be used in test binaries also
10027
10028 2003-04-06  Havoc Pennington  <hp@pobox.com>
10029
10030         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10031         here in the parent process, so we can return an error if it
10032         fails. Also, move some of the code into the child so the parent
10033         is less hosed if we fail midway through.
10034
10035         * bus/bus.c (bus_context_new): move pidfile detection further up
10036         in the function, before we start overwriting sockets and such.
10037
10038         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10039
10040         * configure.in: add --with-system-pid-file and --with-system-socket
10041
10042 2003-04-06  Colin Walters  <walters@verbum.org>
10043
10044         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10045
10046         * bus/system.conf.in: Declare a pidfile.
10047
10048         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10049         create one (if appropriate).
10050
10051         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10052         (struct BusConfigParser) [pidfile]: New.
10053         (element_type_to_name, merge_included, start_busconfig_child)
10054         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10055         (bus_config_parser_unref): Free it.
10056         (bus_config_parser_get_pidfile): New function.
10057
10058         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10059
10060         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10061
10062         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10063
10064         * dbus/dbus-sysdeps.h: Prototype it.
10065
10066 2003-04-06  Havoc Pennington  <hp@pobox.com>
10067
10068         * bus/bus.c (bus_context_new): print the address in here, rather
10069         than in main(), because we need to do it before forking the daemon
10070
10071         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10072         on the service nonexistent error
10073
10074         * bus/driver.c (bus_driver_handle_acquire_service): set the
10075         sender on the AcquireService reply
10076
10077         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10078         server also listen on a UNIX socket so services can connect to it.
10079
10080 2003-04-06  Havoc Pennington  <hp@pobox.com>
10081
10082         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10083         so it detects deadlocks and also we actually init threads when
10084         debugging.
10085
10086 2003-04-06  Havoc Pennington  <hp@pobox.com>
10087
10088         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10089         save the domain socket name, and unlink it when we disconnect the
10090         server. Means that at least when we exit normally, we won't leave
10091         a bunch of junk in /tmp
10092
10093         * dbus/dbus-transport-unix.c
10094         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10095         memory management). (I was making a real change here but then
10096         didn't)
10097
10098 2003-04-06  Havoc Pennington  <hp@pobox.com>
10099
10100         * bus/bus.c (bus_context_new): fix wrong handling of
10101         server_data_slot_unref() in the error case.
10102
10103         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10104         "(condition) != 0" to _dbus_real_assert so that
10105         "_dbus_assert (pointer)" doesn't cause a warning
10106
10107         * bus/main.c (main): accept --print-address option to print out
10108         the message bus address
10109
10110         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10111
10112         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10113         "tmpdir" option to unix: address on client side
10114
10115         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10116         to unix: address
10117
10118         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10119         we can use to create sockets in the test suite.
10120
10121         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10122         cleanly. To be used for testing.
10123
10124         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10125
10126         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10127
10128         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10129         handle trying to call this when there's no servers active
10130
10131 2003-04-05  Havoc Pennington  <hp@pobox.com>
10132
10133         * NEWS: update
10134
10135         * configure.in: 0.8
10136
10137 2003-04-05  Havoc Pennington  <hp@pobox.com>
10138
10139         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10140         crash on startup. Need to get "try starting the daemon"
10141         in the test suite I guess. ;-)
10142
10143         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10144         tracked the number of open connections; it's better done in
10145         application-specific code as you want it to span all servers etc.
10146
10147 2003-04-05  Havoc Pennington  <hp@pobox.com>
10148
10149         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10150         patch from Colin Walters
10151
10152 2003-04-05  Havoc Pennington  <hp@pobox.com>
10153
10154         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10155         reality; in fact multiple mechanisms are allowed.
10156
10157         * dbus/dbus-internals.c (_dbus_real_assert)
10158         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10159         _dbus_assert_not_reached() into functions, so that they don't show
10160         up in basic block counts for test coverage, and don't use up as
10161         much disk space. Does mean slower execution speed though, so
10162         assumes --disable-asserts is the normal production case.
10163
10164 2003-04-05  Havoc Pennington  <hp@pobox.com>
10165
10166         * test/Makefile.am (dist-hook): also dist *.in files
10167
10168         * NEWS: update
10169
10170         * configure.in: 0.7
10171
10172 2003-04-05  Havoc Pennington  <hp@pobox.com>
10173
10174         * dbus/dbus-string.c: docs warning
10175
10176         * dbus/dbus-spawn.c: missing docs
10177
10178         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10179
10180 2003-04-05  Havoc Pennington  <hp@pobox.com>
10181
10182         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10183         magic from GLib
10184
10185         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10186         to -1 once we've reaped the babysitter
10187         (_dbus_babysitter_handle_watch): do as much work as we can, not
10188         just one go of it
10189
10190         * bus/activation.c: add code using DBusBabysitter so that we
10191         handle it when a service fails to start up properly.
10192         (bus_activation_service_created): don't remove the activation
10193         entries as we go, just let them get removed when we free the pending
10194         activation. Unref reply messages after sending them.
10195
10196 2003-04-05  Havoc Pennington  <hp@pobox.com>
10197
10198         * test/decode-gcov.c (main): print per-directory stats in the report
10199
10200         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10201
10202 2003-04-05  Havoc Pennington  <hp@pobox.com>
10203
10204         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10205
10206         * test/decode-gcov.c: hack up a little program to suck data
10207         out of gcov files. Yes this is sort of silly.
10208
10209         * configure.in: define something in config.h and do an
10210         AM_CONDITIONAL when gcov is enabled
10211
10212 2003-04-04  Havoc Pennington  <hp@redhat.com>
10213
10214         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10215         return a "babysitter" object that is used to monitor the status of
10216         the spawned process and reap it when required.
10217
10218         * test/test-segfault.c, test/test-exit.c,
10219         test/test-sleep-forever.c: binaries that do various lame things,
10220         used in the test suite.
10221
10222         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10223
10224 2003-04-03  Havoc Pennington  <hp@pobox.com>
10225
10226         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10227         in preparation for modifying it, dbus-sysdeps is getting
10228         a bit unmanageable.
10229
10230 2003-04-03  Havoc Pennington  <hp@redhat.com>
10231
10232         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10233         have multiple ones
10234
10235         * bus/*.[hc]: adapt to mainloop change
10236
10237 2003-04-03  Havoc Pennington  <hp@redhat.com>
10238
10239         * bus/activation.c (load_directory): fix up memleaks
10240         (bus_activation_entry_free): free the entry
10241
10242         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10243         we get one from the message bus; fix memleaks.
10244
10245         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10246
10247 2003-04-03  Havoc Pennington  <hp@pobox.com>
10248
10249         * bus/config-parser.c (bus_config_parser_unref): free
10250         list of mechanisms, bug discovered by test suite enhancements
10251         (putting system.conf and session.conf into suite)
10252
10253         * test/Makefile.am, test/test-service.c: add placeholder for a
10254         test service that we'll activate as part of test suite. Doesn't
10255         do anything yet.
10256
10257         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10258         setting NULL value, and use system malloc not dbus_malloc()
10259         when we have unavoidable memleakage.
10260
10261         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10262         didn't work, and support DBUS_BUS_ACTIVATION.
10263
10264         * bus/activation.c (child_setup): pass our well-known bus type to
10265         the child
10266
10267         * bus/config-parser.c: support <type> to specify well-known type
10268
10269         * doc/dbus-specification.sgml: document the env variables to
10270         locate well-known buses and find service activator
10271
10272 2003-04-02  Havoc Pennington  <hp@redhat.com>
10273
10274         * test/Makefile.am (all-local): add a rule to copy tests to
10275         builddir, so we can have generated tests. Use this to remove the
10276         silly hack for testing system.conf and session.conf. Will use this
10277         shortly to generate .service files pointing to test binaries.
10278
10279 2003-04-02  Havoc Pennington  <hp@redhat.com>
10280
10281         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10282         current alloc and needed new length, not max of the doubled
10283         allocation and needed new length. Also, when building tests,
10284         don't do the double-allocation stuff, just realloc every time.
10285
10286 2003-04-02  Havoc Pennington  <hp@redhat.com>
10287
10288         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10289         in error messages
10290         (_dbus_string_get_dirname): new
10291         (_dbus_sysdeps_test): new
10292         (_dbus_directory_open): include dirnames in error messages
10293
10294         * bus/config-parser.c: interpret <include> and <includedir> and
10295         <servicedir> relative to config file location if the given
10296         filename is not absolute.
10297
10298         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10299
10300 2003-04-02  Havoc Pennington  <hp@redhat.com>
10301
10302         * bus/connection.c (bus_transaction_send_error_reply): set sender
10303         service for the error, and unref the reply on success
10304
10305         * bus/activation.c: convert to use BusTransaction so OOM can be
10306         handled correctly
10307         (bus_activation_service_created): set sender of the message
10308
10309 2003-04-01  Havoc Pennington  <hp@redhat.com>
10310
10311         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10312         <includedir> (at least mostly)
10313
10314         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10315         first, then the user ID
10316
10317 2003-04-01  Havoc Pennington  <hp@pobox.com>
10318
10319         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10320         function
10321
10322         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10323
10324         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10325
10326         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10327         socket 0777, and unlink any existing socket.
10328
10329         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10330         the configuration file so specifies; set up auth mechanism
10331         restrictions
10332
10333         * bus/config-parser.c (bus_config_parser_content): add support
10334         for <fork> option and fill in code for <auth>
10335
10336         * bus/system.conf.in: add <fork/> to default configuration,
10337         and limit auth mechanisms to EXTERNAL
10338
10339         * doc/config-file.txt (Elements): add <fork>
10340
10341         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10342         (_dbus_change_identity): new function
10343
10344 2003-03-31  Havoc Pennington  <hp@redhat.com>
10345
10346         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10347         (_dbus_listen_unix_socket): fix off-by-one error in null
10348         termination spotted by Nalin
10349
10350 2003-03-31  Havoc Pennington  <hp@redhat.com>
10351
10352         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10353         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10354         having a real home directory available.
10355
10356 2003-03-31  Havoc Pennington  <hp@redhat.com>
10357
10358         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10359
10360         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10361
10362         * configure.in: add support for specifying a style of init script
10363         to install
10364
10365 2003-03-31  Havoc Pennington  <hp@redhat.com>
10366
10367         Fix some annoying DBusString API and fix all affected code.
10368
10369         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10370         max_length argument
10371         (_dbus_string_get_data): change to return string instead of using
10372         an out param
10373         (_dbus_string_get_const_data): ditto
10374         (_dbus_string_get_data_len): ditto
10375         (_dbus_string_get_const_data_len): ditto
10376
10377 2003-03-31  Havoc Pennington  <hp@redhat.com>
10378
10379         * bus/main.c (main): fix up the command line arguments to be nicer
10380
10381 2003-03-31  Havoc Pennington  <hp@redhat.com>
10382
10383         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10384         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10385         final location that lands in the config file
10386
10387         * bus/config-loader-expat.c (bus_config_load): fix type of
10388         XML_Parser variable
10389
10390         * doc/TODO: remove TODO item for dbus_bus_get()
10391
10392         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10393
10394 2003-03-31  Havoc Pennington  <hp@pobox.com>
10395
10396         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10397         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10398         argument since they are always client side
10399
10400         * dbus/dbus-server.c (dbus_server_get_address): new function
10401
10402         * bus/main.c (main): take the configuration file as an argument.
10403
10404         * test/data/valid-config-files/debug-allow-all.conf: new file to
10405         use with dispatch.c tests for example
10406
10407         * bus/test-main.c (main): require test data dir
10408
10409         * bus/bus.c (bus_context_new): change this to take a
10410         configuration file name as argument
10411
10412         * doc/config-file.txt (Elements): add <servicedir>
10413
10414         * bus/system.conf, bus/session.conf: new files
10415
10416         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10417         well-known socket if none set
10418
10419         * configure.in: create system.conf and session.conf
10420
10421 2003-03-30  Havoc Pennington  <hp@pobox.com>
10422
10423         * bus/config-parser.c: hacking
10424
10425         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10426         to shut down, since it could cause weirdness with the DBusList
10427         lock
10428
10429         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10430         link-oriented stack routines
10431         (alloc_link): free the mempool if the first alloc from it fails
10432
10433         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10434
10435         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10436         from GLib
10437         (_dbus_string_skip_white): new
10438
10439         * doc/config-file.txt (Elements): add <includedir>
10440
10441 2003-03-28  Havoc Pennington  <hp@pobox.com>
10442
10443         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10444         (_dbus_string_copy_data): new functions
10445
10446 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10447
10448         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10449         * dbus/dbus-bus.h:
10450         Add dbus_bus_get.
10451
10452         * dbus/dbus-memory.c:
10453         Fix a doc comment.
10454
10455 2003-03-28  Havoc Pennington  <hp@pobox.com>
10456
10457         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10458         I think it may have just been superstition. Not sure.
10459
10460         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10461         failures that were not being handled.
10462
10463         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10464
10465         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10466         row that will fail on out-of-memory.
10467
10468         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10469         function for testing out-of-memory handling.
10470
10471         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10472         allocation functions, they do map exactly to the expat ones.
10473
10474 2003-03-27  Havoc Pennington  <hp@redhat.com>
10475
10476         * bus/config-loader-libxml.c (bus_config_load): add another error
10477         check
10478
10479 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10480
10481         * doc/TODO:
10482         Add note about automatic service activation.
10483
10484         * doc/dbus-specification.sgml:
10485         Rename the specification and clarify a few things.
10486
10487 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10488
10489         * Doxyfile.in:
10490         * dbus/dbus-address.c:
10491         * dbus/dbus-dict.c:
10492         * dbus/dbus-marshal.c:
10493         * dbus/dbus-server-debug-pipe.c:
10494         * dbus/dbus-transport-unix.c:
10495         Fix documentation warnings.
10496
10497 2003-03-26  Havoc Pennington  <hp@pobox.com>
10498
10499         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10500         after every test so it's quick and easy to see which leaked, and
10501         so we test multiple dbus_shutdown() calls
10502
10503         * configure.in: change configure.in XML stuff to also support
10504         expat
10505
10506         * config-loader-libxml.c: some hacking
10507
10508         * config-loader-expat.c: some hacking
10509
10510         * config-parser.c: some hacking, plus tests
10511
10512 2003-03-25  Havoc Pennington  <hp@redhat.com>
10513
10514         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10515
10516         * configure.in: add --with-xml option to specify XML library,
10517         right now only libxml is supported.
10518
10519         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10520         nonworking code between home and work, still just stubs
10521
10522 2003-03-24  Havoc Pennington  <hp@redhat.com>
10523
10524         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10525         file
10526
10527         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10528         NULL argument for "message" if the error is a well-known one,
10529         fill in a generic message in this case.
10530
10531         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10532         favor of DBusError
10533
10534         * bus/test.c (bus_test_flush_bus): add
10535
10536         * bus/policy.c (bus_policy_test): test code stub
10537
10538 2003-03-24  Havoc Pennington  <hp@pobox.com>
10539
10540         * bus/connection.c (bus_connections_setup_connection): set up
10541         the "can this user connect" function, but it always returns
10542         TRUE until we have a config file parser so we can have a config
10543         file that allows connections.
10544
10545 2003-03-23  Havoc Pennington  <hp@pobox.com>
10546
10547         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10548         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10549         the mutex, so we can check for proper memory management
10550         and OOM handling.
10551
10552         * dbus/dbus-dataslot.c: remove the mutex from
10553         DBusDataSlotAllocator and lock it manually when using it,
10554         to simplify fitting it into the global slots framework.
10555
10556         * dbus/dbus-threads.c (init_static_locks): rework how we're
10557         handling global locks so they are easily shut down.
10558
10559         * bus/policy.c (bus_policy_append_rule): fix
10560
10561         * bus/test-main.c (main): check for memleaks
10562
10563         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10564         test suite check for memleaks
10565
10566         * dbus/dbus-memory.c: add support in test mode for tracking
10567         number of outstanding blocks
10568
10569 2003-03-23  Havoc Pennington  <hp@pobox.com>
10570
10571         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10572         policies code
10573
10574         * dbus/dbus-hash.h: add ULONG hash keys
10575
10576         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10577         (_dbus_get_group_id): new function
10578
10579 2003-03-20  Havoc Pennington  <hp@redhat.com>
10580
10581         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10582         new function
10583         (dbus_connection_get_unix_user): new function
10584
10585 2003-03-20  Havoc Pennington  <hp@pobox.com>
10586
10587         * bus/connection.c (bus_connection_send_oom_error): assert that
10588         message has a sender
10589         (connection_execute_transaction): ditto
10590         (bus_connection_preallocate_oom_error): fix to set the sender, and
10591         set recipient to the destination service, not the bus driver
10592
10593         * bus/policy.c: hacking
10594
10595         * dbus/dbus-message.c (dbus_message_service_is): new function
10596         (dbus_message_sender_is): new
10597
10598 2003-03-19  Havoc Pennington  <hp@redhat.com>
10599
10600         * bus/policy.c: start sketching code for policy restrictions on
10601         what connections can do.
10602
10603 2003-03-18  Havoc Pennington  <hp@redhat.com>
10604
10605         * doc/TODO: some notes on high-level todo items. Little nitpick
10606         stuff is all in @todo, so no need to add it here.
10607
10608         * doc/config-file.txt: some notes on how config file might look
10609
10610 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10611
10612         * configure.in: 0.6
10613
10614         * NEWS: Update.
10615
10616 2003-03-17  Havoc Pennington  <hp@redhat.com>
10617
10618         * dbus/dbus-internals.h: add gcc attributes so that
10619         our printf-style functions warn on bad arguments to
10620         format
10621
10622         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10623         format bug
10624
10625         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10626         printf format bug
10627
10628 2003-03-17  Havoc Pennington  <hp@redhat.com>
10629
10630         * bus/test-main.c (main): make it print something as it runs
10631         so make check doesn't look stuck
10632
10633         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10634         from CVS, now obsolete
10635
10636 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10637
10638         * bus/dispatch.c: (bus_dispatch):
10639         Refetch the service name since it may have been reallocated
10640         when dbus_message_set_sender was called.
10641
10642         * dbus/dbus-sysdeps.c: (_dbus_accept):
10643         Add address and address length variables and use them to stop
10644         valgrind from complaining.
10645
10646 2003-03-17  Havoc Pennington  <hp@pobox.com>
10647
10648         All tests pass, no memleaks, no valgrind complaints.
10649
10650         * bus/test.c: refcount handler_slot
10651
10652         * bus/connection.c (bus_connections_new): refcount
10653         connection_data_slot
10654
10655         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10656         bytes so that auth scripts pass.
10657
10658         * bus/dispatch.c: init message_handler_slot so it gets allocated
10659         properly
10660
10661         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10662
10663         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10664         dealloc server_pipe_hash when no longer used for benefit of
10665         leak checking
10666
10667         * dbus/dbus-auth.c (process_command): memleak fix
10668
10669         * bus/dispatch.c (check_hello_message): memleak fix
10670
10671 2003-03-16  Havoc Pennington  <hp@pobox.com>
10672
10673         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10674
10675 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10676
10677         * bus/activation.c (bus_activation_activate_service): Append
10678         the pending activation entry to the list of pending activations.
10679
10680 2003-03-16  Havoc Pennington  <hp@pobox.com>
10681
10682         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10683         connections
10684
10685         * dbus/dbus-address.c (create_entry): fix OOM handling when
10686         failing to alloc entry->method
10687
10688 2003-03-16  Havoc Pennington  <hp@pobox.com>
10689
10690         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10691         the watch
10692
10693         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10694         add some missing dbus_set_result
10695
10696         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10697         alloc the DBusMessageHandler
10698
10699         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10700         the transport here, since we call this from the finalizer; it
10701         resulted in a double-finalize.
10702
10703         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10704         where we tried to use transport->connection that was NULL,
10705         happened when transport was disconnected early on due to OOM
10706
10707         * bus/*.c: adapt to handle OOM for watches/timeouts
10708
10709         * dbus/dbus-transport-unix.c: port to handle OOM during
10710         watch handling
10711
10712         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10713         reference to unused bytes instead of a copy
10714
10715         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10716         out of memory
10717
10718         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10719         FALSE on OOM
10720
10721         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10722         of memory
10723
10724 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10725
10726         * doc/dbus-specification.sgml:
10727         Document reply message for ActivateService.
10728
10729 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10730
10731         * bus/activation.c: (bus_pending_activation_entry_free),
10732         (bus_pending_activation_free), (bus_activation_new),
10733         (bus_activation_unref), (bus_activation_service_created),
10734         (bus_activation_activate_service):
10735         * bus/activation.h:
10736         * bus/bus.c: (bus_context_new):
10737         * bus/desktop-file.c: (new_section):
10738         * bus/driver.c: (bus_driver_send_service_deleted),
10739         (bus_driver_handle_activate_service):
10740         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10741         * bus/services.h:
10742         * dbus/dbus-connection.c:
10743         (dbus_connection_send_with_reply_and_block):
10744         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10745         * dbus/dbus-protocol.h:
10746         Make activation work better. Now pending activations will be queued
10747         and the daemon won't try to activate services that are already registered.
10748
10749 2003-03-16  Havoc Pennington  <hp@pobox.com>
10750
10751         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10752         connection data
10753
10754         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10755         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10756
10757 2003-03-16  Havoc Pennington  <hp@pobox.com>
10758
10759         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10760         this. always run the test suite before commit...
10761
10762         * bus/*: adapt to DBusConnection API changes
10763
10764         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10765         requires renaming stuff to avoid dbus_connection_dispatch name
10766         conflict.
10767
10768         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10769         function
10770
10771         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10772         separate from _dbus_message_loader_return_buffer()
10773
10774         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10775         this, because it's now always broken to use; the number of
10776         messages in queue vs. the number still buffered by the message
10777         loader is undefined/meaningless. Should use
10778         dbus_connection_get_dispatch_state().
10779         (dbus_connection_dispatch): rename from
10780         dbus_connection_dispatch_message
10781
10782 2003-03-16  Havoc Pennington  <hp@pobox.com>
10783
10784         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10785         implementation
10786
10787 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10788
10789         * dbus/dbus-connection.c:
10790         (dbus_connection_send_with_reply_and_block):
10791         Decrease connection->n_incoming when removing an entry
10792         from the list.
10793         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10794         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10795         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10796         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10797         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10798         (dbus_dict_get_byte_array):
10799         Handle NULL arrays and strings. Also add support for byte arrays.
10800
10801         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10802         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10803         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10804         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10805         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10806         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10807         * dbus/dbus-marshal.h:
10808         Add support for marshalling and demarshalling empty arrays and strings.
10809
10810         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10811         (dbus_message_append_string_array),
10812         (dbus_message_iter_get_boolean),
10813         (dbus_message_iter_get_boolean_array),
10814         (dbus_message_iter_get_int32_array),
10815         (dbus_message_iter_get_uint32_array),
10816         (dbus_message_iter_get_double_array),
10817         (dbus_message_iter_get_byte_array),
10818         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10819         (check_message_handling):
10820         Add support for getting empty arrays and dicts.
10821
10822         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10823         Don't do any validation at all for now, that's better than just checking
10824         for ASCII.
10825
10826         * test/data/valid-messages/emptiness.message:
10827         New test message with lots of empty arrays.
10828
10829 2003-03-16  Havoc Pennington  <hp@pobox.com>
10830
10831         * dbus/dbus-connection.c
10832         (_dbus_connection_queue_received_message_link): new function that
10833         can't fail due to OOM
10834
10835         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10836         new function pops a message together with a list link
10837         containing it.
10838
10839         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10840         message queuing functions to avoid needing to alloc memory
10841
10842 2003-03-16  Havoc Pennington  <hp@pobox.com>
10843
10844         Oops - test code was only testing failure of around 30 of the
10845         mallocs in the test path, but it turns out there are 500+
10846         mallocs. I believe this was due to misguided linking setup such
10847         that there was one copy of dbus_malloc etc. in the daemon and one
10848         in the shared lib, and only daemon mallocs were tested. In any
10849         case, the test case now tests all 500+ mallocs, and doesn't pass
10850         yet, though there are lots of fixes in this patch.
10851
10852         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10853         this so that it doesn't need to allocate memory, since it
10854         has no way of indicating failure due to OOM (and would be
10855         annoying if it did).
10856
10857         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10858
10859         * bus/Makefile.am: rearrange to create two self-contained
10860         libraries, to avoid having libraries with overlapping symbols.
10861         that was resulting in weirdness, e.g. I'm pretty sure there
10862         were two copies of global static variables.
10863
10864         * dbus/dbus-internals.c: move the malloc debug stuff to
10865         dbus-memory.c
10866
10867         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10868         empty.
10869
10870         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10871
10872         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10873         on failure.
10874
10875         * bus/dispatch.c (bus_dispatch_add_connection): free
10876         message_handler_slot when no longer using it, so
10877         memory leak checkers are happy for the test suite.
10878
10879         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10880
10881         * bus/bus.c (new_connection_callback): disconnect in here if
10882         bus_connections_setup_connection fails.
10883
10884         * bus/connection.c (bus_connections_unref): fix to free the
10885         connections
10886         (bus_connections_setup_connection): if this fails, don't
10887         disconnect the connection, just be sure there are no side
10888         effects.
10889
10890         * dbus/dbus-string.c (undo_alignment): unbreak this
10891
10892         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10893         leaking
10894         (_dbus_auth_new): fix the order in which we free strings
10895         on OOM failure
10896
10897         * bus/connection.c (bus_connection_disconnected): fix to
10898         not send ServiceDeleted multiple times in case of memory
10899         allocation failure
10900
10901         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10902         get the base service name
10903         (dbus_bus_register_client): don't return base service name,
10904         instead store it on the DBusConnection and have an accessor
10905         function for it.
10906         (dbus_bus_register_client): rename dbus_bus_register()
10907
10908         * bus/dispatch.c (check_hello_message): verify that other
10909         connections on the bus also got the correct results, not
10910         just the one sending hello
10911
10912 2003-03-15  Havoc Pennington  <hp@pobox.com>
10913
10914         Make it pass the Hello handling test including all OOM codepaths.
10915         Now to do other messages...
10916
10917         * bus/services.c (bus_service_remove_owner): fix crash when
10918         removing owner from an empty list of owners
10919         (bus_registry_ensure): don't leave service in the list of
10920         a connection's owned services if we fail to put the service
10921         in the hash table.
10922
10923         * bus/connection.c (bus_connection_preallocate_oom_error): set
10924         error flag on the OOM error.
10925
10926         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10927         handle _dbus_transport_set_connection failure
10928
10929         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10930         to create watches up front and simply enable/disable them as
10931         needed.
10932         (unix_connection_set): this can now fail on OOM
10933
10934         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10935         of enabling/disabling a watch or timeout.
10936
10937         * bus/loop.c (bus_loop_iterate): don't touch disabled
10938         watches/timeouts
10939
10940         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10941
10942 2003-03-15  Havoc Pennington  <hp@pobox.com>
10943
10944         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10945         write useful test code, after all that futzing around ;-)
10946
10947         Test does not yet pass because we can't handle OOM in
10948         _dbus_transport_messages_pending (basically,
10949         dbus_connection_preallocate_send() does not prealloc the write
10950         watch). To fix this, I think we need to add new stuff to
10951         set_watch_functions, namely a SetEnabled function so we can alloc
10952         the watch earlier, then enable it later.
10953
10954         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10955         dbus-memory.c to the convenience lib
10956
10957         * bus/test.c: rename some static functions to keep them clearly
10958         distinct from stuff in connection.c. Handle client disconnection.
10959
10960 2003-03-14  Havoc Pennington  <hp@pobox.com>
10961
10962         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10963         transport, tests more of the real codepath. Set up clients
10964         with bus_setup_debug_client.
10965
10966         * bus/test.c (bus_setup_debug_client): function to set up debug
10967         "clients" on the main loop
10968
10969         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10970         support
10971
10972         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10973         server type
10974
10975         * dbus/dbus-server-debug.c: support a debug server based on pipes
10976
10977         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10978         (_dbus_close): new function
10979
10980         * configure.in: check for socketpair
10981
10982 2003-03-14  Havoc Pennington  <hp@redhat.com>
10983
10984         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10985         cheesy hack
10986
10987         * dbus/dbus-transport-debug.c: rework this a good bit to be
10988         less complicated. hopefully still works.
10989
10990         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10991         manually
10992
10993         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10994         after running it
10995
10996         * dbus/dbus-message.c (dbus_message_copy): rename from
10997         dbus_message_new_from_message, fix it up to copy
10998         all the message fields, add test case
10999
11000         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11001         not quite passing yet
11002
11003 2003-03-14  Havoc Pennington  <hp@pobox.com>
11004
11005         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11006         until no work remains" in test code. (the large diff here
11007         is just code movement, no actual changes)
11008
11009         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11010         1, no point waiting around for test code.
11011         (_dbus_server_debug_accept_transport): unref the timeout
11012         after adding it (right?)
11013
11014         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11015
11016 2003-03-13  Havoc Pennington  <hp@redhat.com>
11017
11018         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11019         out of memory
11020
11021         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11022         of memory
11023
11024         * dbus/dbus-connection.h: Make AddWatchFunction and
11025         AddTimeoutFunction return a bool so they can fail on out-of-memory
11026
11027         * bus/bus.c (bus_context_new): set up timeout handlers
11028
11029         * bus/connection.c (bus_connections_setup_connection): set up
11030         timeout handlers
11031
11032         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11033         can fail
11034
11035         * bus/bus.c (bus_context_new): adapt to changes
11036
11037         * bus/connection.c: adapt to changes
11038
11039         * test/watch.c: adapt to DBusWatch changes
11040
11041         * bus/dispatch.c (bus_dispatch_test): started adding this but
11042         didn't finish
11043
11044 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11045
11046         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11047
11048 2003-03-13  Havoc Pennington  <hp@pobox.com>
11049
11050         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11051         set up a test framework as for the library
11052
11053 2003-03-12  Havoc Pennington  <hp@pobox.com>
11054
11055         Throughout: purge global variables, introduce BusActivation,
11056         BusConnections, BusRegistry, etc. objects instead.
11057
11058         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11059         message bus object
11060
11061         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11062         going to redo this a bit differently I think
11063
11064 2003-03-12  Havoc Pennington  <hp@redhat.com>
11065
11066         Mega-patch that gets the message bus daemon initially handling
11067         out-of-memory. Work still needed. Also lots of random
11068         moving stuff to DBusError instead of ResultCode.
11069
11070         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11071
11072         * dbus/dbus-connection.c
11073         (dbus_connection_send_with_reply_and_block): use DBusError
11074
11075         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11076         DBusResultCode
11077
11078         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11079         code here, as the only failure possible is OOM.
11080
11081         * bus/connection.c (bus_connection_disconnect):
11082         rename bus_connection_disconnected as it's a notification only
11083
11084         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11085         "name" on get_args failure, should be done by get_args;
11086         don't disconnect client for bad args, just return an error.
11087         (bus_driver_handle_service_exists): ditto
11088
11089         * bus/services.c (bus_services_list): NULL-terminate returned array
11090
11091         * bus/driver.c (bus_driver_send_service_lost)
11092         (bus_driver_send_service_acquired): send messages from driver to a
11093         specific client to the client's unique name, not to the broadcast
11094         service.
11095
11096         * dbus/dbus-message.c (decode_header_data): reject messages that
11097         contain no name field
11098         (_dbus_message_get_client_serial): rename to
11099         dbus_message_get_serial and make public
11100         (_dbus_message_set_serial): rename from set_client_serial
11101         (_dbus_message_set_reply_serial): make public
11102         (_dbus_message_get_reply_serial): make public
11103
11104         * bus/connection.c (bus_connection_foreach): allow stopping
11105         iteration by returning FALSE from foreach function.
11106
11107         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11108         (dbus_connection_free_preallocated_send)
11109         (dbus_connection_preallocate_send): new API for sending a message
11110         without possibility of malloc failure.
11111         (dbus_connection_send_message): rename to just
11112         dbus_connection_send (and same for whole function family)
11113
11114         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11115
11116         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11117
11118         * bus/activation.c: handle/return errors
11119
11120         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11121
11122         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11123         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11124         (_dbus_result_from_errno): move to this file
11125
11126 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11127
11128         * dbus/dbus-marshal.c:
11129         (_dbus_marshal_set_string):
11130         Take a length argument so we can marshal the correct string
11131         length.
11132
11133         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11134         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11135         (_dbus_marshal_test):
11136         * dbus/dbus-marshal.h:
11137         Add support for marshalling and demarshalling dicts.
11138
11139         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11140         Add support for TYPE DICT.
11141
11142         * dbus/dbus-message.c: (set_string_field):
11143         Adjust header padding.
11144
11145         (dbus_message_append_args_valist), (dbus_message_append_dict),
11146         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11147         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11148         (check_message_handling), (check_have_valid_message):
11149         * dbus/dbus-message.h:
11150         Add functions for setting and getting dicts.
11151
11152         * dbus/dbus-protocol.h:
11153         Add DBUS_TYPE_DICT.
11154
11155         * dbus/dbus.h:
11156         Add dbus-dict.h
11157
11158         * doc/dbus-specification.sgml:
11159         Add information about how dicts are marshalled.
11160
11161         * test/data/invalid-messages/dict-with-nil-value.message:
11162         * test/data/invalid-messages/too-short-dict.message:
11163         * test/data/valid-messages/dict-simple.message:
11164         * test/data/valid-messages/dict.message:
11165         Add sample messages containing dicts.
11166
11167 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11168
11169         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11170
11171 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11172
11173         * dbus/Makefile.am:
11174         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11175         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11176         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11177         (dbus_dict_set_double), (dbus_dict_set_string),
11178         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11179         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11180         (dbus_dict_set_string_array), (_dbus_dict_test):
11181         * dbus/dbus-dict.h:
11182         Fix according to comments from Havoc.
11183
11184 2003-03-06  Michael Meeks  <michael@server.home>
11185
11186         * configure.in: if we don't have kde-config, disable have_qt.
11187
11188 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11189
11190         * dbus/Makefile.am:
11191         Add dbus-dict.[ch]
11192
11193         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11194         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11195         (dbus_dict_remove), (dbus_dict_get_value_type),
11196         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11197         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11198         (dbus_dict_put_double), (dbus_dict_put_string),
11199         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11200         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11201         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11202         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11203         (dbus_dict_get_double), (dbus_dict_get_string),
11204         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11205         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11206         (dbus_dict_get_string_array), (_dbus_dict_test):
11207         * dbus/dbus-dict.h:
11208         Add DBusDict implementation
11209
11210         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11211         * dbus/dbus-test.h:
11212         Add _dbus_dict_test
11213
11214 2003-03-04  Havoc Pennington  <hp@pobox.com>
11215
11216         * test/data/auth/*: adapt to changes
11217
11218         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11219         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11220         userid
11221
11222         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11223         more stuff from being in a context name, to make the protocol
11224         simpler to deal with
11225
11226         * dbus/dbus-errors.c (dbus_error_has_name): new function
11227         (dbus_error_is_set): new function
11228
11229         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11230         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11231
11232         * dbus/dbus-connection.c (dbus_connection_flush): also read
11233         messages during a flush operation
11234
11235         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11236
11237 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11238
11239         * configure.in: Check for gethostbyname on Solaris.
11240
11241         * dbus/dbus-transport.c: (_dbus_transport_open):
11242         Remove duplicate "tcp" entry.
11243
11244         * doc/dbus-specification.sgml:
11245         Clarify some things.
11246
11247 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11248
11249         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11250         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11251         (_dbus_keyring_test):
11252         * dbus/dbus-md5.c: (_dbus_md5_compute):
11253         * dbus/dbus-sha.c: (_dbus_sha_compute):
11254         Plug memory leaks.
11255
11256 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11257
11258         * README: Add some things.
11259
11260 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11261
11262         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11263         after case DBUS_TYPE_BOOELAN.
11264
11265 2003-03-02  Havoc Pennington  <hp@pobox.com>
11266
11267         * test/break-loader.c (randomly_set_extreme_ints): add test that
11268         sets really huge and small integers
11269
11270         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11271         that length of boolean array fits in the string, and that
11272         string has room for boolean value in single-bool case.
11273
11274         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11275         optional value to "ALIGN" command which is what to fill the
11276         alignment with.
11277
11278         * test/data/valid-messages/no-padding.message: add regression
11279         test for the message padding problem
11280
11281 2003-03-02  Havoc Pennington  <hp@pobox.com>
11282
11283         * dbus/dbus-message.c (decode_header_data): fix to always init
11284         message_padding, from Benjamin Dauvergne
11285
11286 2003-03-02  Havoc Pennington  <hp@pobox.com>
11287
11288         * configure.in: 0.5
11289
11290         * NEWS: Update.
11291
11292 2003-03-01  Joe Shaw  <joe@assbarn.com>
11293
11294         * configure.in: Check for "struct cmsgcred" and try to access its
11295         members for BSD-like unices.
11296
11297         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11298         _dbus_read_credentials_unix_socket().
11299         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11300         read() for reading the credential byte off the unix socket.  Use
11301         struct cmsgcred on systems that support it.
11302
11303 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11304
11305         * glib/Makefile.am:
11306         * configure.in:
11307         Make gthreads-2.0 dependency optional. Don't build thread test if
11308         its not found.
11309
11310 2003-02-27  Havoc Pennington  <hp@pobox.com>
11311
11312         * dbus/dbus-connection.c
11313         (dbus_connection_send_message_with_reply_and_block): fix doh!
11314         doh! doh! bug that resulted in never removing a reply from the
11315         queue, no wonder we called get_reply_serial so much ;-)
11316
11317         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11318         and client serial instead of demarshaling them every time
11319
11320 2003-02-27  Havoc Pennington  <hp@pobox.com>
11321
11322         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11323         more inlined, using dbus-string-private.h, speeds things up
11324         substantially
11325
11326         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11327         when freeing the string
11328         (_dbus_string_steal_data): fix for align offset
11329         (undo_alignment): new function
11330
11331 2003-02-26  Havoc Pennington  <hp@redhat.com>
11332
11333         All kinds of audit fixes from Owen, plus initial attempt to
11334         handle unaligned memory returned from malloc.
11335
11336         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11337         leave room for align_offset and nul byte
11338         (fixup_alignment): function to track an align_offset and
11339         ensure real->str is aligned
11340         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11341         to allow a nul byte plus align offset
11342         (_dbus_string_lock): fix overflow issue
11343         (_dbus_string_init_const_len): add assertions on sanity of len,
11344         assign allocated to be ALLOCATION_PADDING larger than len
11345         (set_length): fixup the overflow handling
11346         (_dbus_string_get_data_len): fix overflow in assertion
11347         (open_gap): detect overflow in size of gap to be opened
11348         (_dbus_string_lengthen): add overflow check
11349         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11350         (_dbus_string_append): add overflow check
11351         (_dbus_string_append_unichar): overflow
11352         (_dbus_string_delete): fix overflow in assertion
11353         (_dbus_string_copy_len): overflow in assertion
11354         (_dbus_string_replace_len): overflows in assertions
11355         (_dbus_string_find): change to implement in terms of
11356         _dbus_string_find_to
11357         (_dbus_string_find_to): assorted fixage
11358         (_dbus_string_equal_c_str): assert c_str != NULL,
11359         fix logic so the function works
11360         (_dbus_string_ends_with_c_str): fix overflow thingy
11361         (_dbus_string_base64_encode): overflow fix
11362         (_dbus_string_validate_ascii): overflow
11363         (_dbus_string_validate_nul): overflow
11364
11365 2003-02-26  Havoc Pennington  <hp@redhat.com>
11366
11367         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11368
11369 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11370
11371         * configure.in:
11372         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11373
11374         * dbus/dbus-connection.c:
11375         * dbus/dbus-connection.h:
11376         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11377         Add dbus_connection_set_wakeup_main_function and use it when queueing
11378         incoming and outgoing messages.
11379
11380
11381         * dbus/dbus-dataslot.c:
11382         Threadsafe usage of DBusDataSlotAllocator
11383
11384         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11385         dbus_new can fail.
11386
11387         * dbus/dbus-server-unix.c:
11388         Add todo comment
11389
11390         * glib/dbus-gmain.c:
11391         Implement the new wakeup functions for glib.
11392
11393         * glib/Makefile.am:
11394         * glib/test-thread-client.c:
11395         * glib/test-thread-server.c:
11396         * glib/test-thread.h:
11397         Initial cut at some thread test code. Not really done yet.
11398
11399 2003-02-26  Havoc Pennington  <hp@pobox.com>
11400
11401         * dbus/dbus-connection.c
11402         (dbus_connection_send_message_with_reply_and_block): fix crash
11403         where we ref'd the outgoing message instead of the returned reply
11404
11405         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11406         at the end of this function, so if we didn't need to read for
11407         authentication, we reinstall it for receiving messages
11408
11409         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11410         a NULL sender for peer-to-peer case
11411
11412         * dbus/dbus-transport-unix.c (check_read_watch): handle
11413         !authenticated case correctly
11414
11415         * glib/dbus-gmain.c: add support for DBusServer
11416
11417         * dbus/dbus-server.c: add data slot support
11418
11419         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11420         return values and handle errors
11421
11422         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11423         DBusConnection
11424
11425         * Doxyfile.in (INPUT): add glib subdir
11426
11427         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11428         setup_with_g_main instead of hookup_with_g_main; write docs
11429
11430 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11431
11432         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11433         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11434         * dbus/dbus-message.c: (dbus_message_append_boolean),
11435         (dbus_message_append_boolean_array),
11436         (dbus_message_get_args_valist), (_dbus_message_test):
11437         * dbus/dbus-message.h:
11438         * doc/dbus-specification.sgml:
11439         Various fixes as pointed out by Havoc.
11440
11441         * test/data/invalid-messages/bad-boolean-array.message:
11442         * test/data/invalid-messages/bad-boolean.message:
11443         Add invalid boolean value test cases.
11444
11445 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11446
11447         * dbus/dbus-internals.c: (_dbus_type_to_string):
11448         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11449         (_dbus_marshal_validate_arg):
11450         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11451         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11452         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11453         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11454         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11455         (dbus_message_iter_get_double),
11456         (dbus_message_iter_get_boolean_array), (message_iter_test):
11457         * dbus/dbus-message.h:
11458         * dbus/dbus-protocol.h:
11459         * doc/dbus-specification.sgml:
11460         * test/data/valid-messages/lots-of-arguments.message:
11461         Add support for boolean and boolean array types.
11462
11463 2003-02-23  Havoc Pennington  <hp@pobox.com>
11464
11465         * dbus/dbus-keyring.c: finish most of this implementation and
11466         simple unit test
11467
11468         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11469         these barf if the error isn't cleared to NULL
11470
11471         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11472         (_dbus_create_directory): new function
11473
11474         * dbus/dbus-errors.c (dbus_set_error): fix warning
11475
11476         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11477         (_dbus_string_hex_decode): new function
11478         (test_hex_roundtrip): test code
11479
11480         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11481
11482         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11483
11484         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11485         the save-to-temp/rename trick to atomically write the new file
11486         (_dbus_string_parse_uint): new function
11487
11488 2003-02-22  Havoc Pennington  <hp@pobox.com>
11489
11490         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11491
11492 2003-02-22  Havoc Pennington  <hp@pobox.com>
11493
11494         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11495         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11496
11497         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11498
11499         * dbus/test/data/sha-1: add US government test suite for SHA-1
11500
11501 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11502
11503         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11504         Make string arrays NULL-terminated.
11505
11506         * dbus/dbus-memory.c: (dbus_free_string_array):
11507         * dbus/dbus-memory.h:
11508         New function for freeing NULL-terminated string arrays.
11509
11510         * dbus/dbus-message-builder.c: (append_quoted_string),
11511         (_dbus_message_data_load):
11512         Add support for array types.
11513
11514         * dbus/dbus-message.c: (check_message_handling):
11515         Add more types as test cases.
11516
11517         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11518         (_dbus_string_parse_double):
11519         Add the start offset to the end offset.
11520
11521         * test/data/valid-messages/lots-of-arguments.message:
11522         New test message with lots of arguments.
11523
11524 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11525
11526         * dbus/dbus-message.c: (dbus_message_append_nil),
11527         (dbus_message_append_int32), (dbus_message_append_uint32),
11528         (dbus_message_append_double), (dbus_message_append_string),
11529         (dbus_message_append_int32_array),
11530         (dbus_message_append_uint32_array),
11531         (dbus_message_append_double_array),
11532         (dbus_message_append_byte_array),
11533         (dbus_message_append_string_array):
11534         Fix all out-of-memory handling in these functions.
11535
11536 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11537
11538         * dbus/dbus-message.c: (dbus_message_append_nil):
11539         Fix a silly.
11540
11541 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11542
11543         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11544         (dbus_message_append_nil), (dbus_message_append_int32_array),
11545         (dbus_message_append_uint32_array),
11546         (dbus_message_append_double_array),
11547         (dbus_message_append_byte_array),
11548         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11549         (dbus_message_iter_get_int32_array),
11550         (dbus_message_iter_get_uint32_array),
11551         (dbus_message_iter_get_double_array),
11552         (dbus_message_iter_get_byte_array),
11553         (dbus_message_iter_get_string_array):
11554
11555         * dbus/dbus-message.h:
11556         Add functions for appending and getting arrays.
11557
11558 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11559
11560         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11561         element size at least 8 bytes, fixes mempool tests on
11562         64-bit machines.
11563
11564 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11565
11566         * dbus/dbus-transport-unix.c (unix_do_iteration):
11567         Unlock the connection mutex during a blocking select call.
11568         Add todo about how we need a way to wake up the select.
11569
11570         * dbus/dbus-connection-internal.h:
11571         * dbus/dbus-connection.c:
11572         Add _dbus_connection_lock and _dbus_connection_unlock.
11573
11574 2003-02-19  Havoc Pennington  <hp@pobox.com>
11575
11576         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11577         Doxyfile.in, not Doxyfile
11578
11579         * dbus/dbus-keyring.c: do some hacking on this
11580
11581         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11582
11583         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11584         dbus_error_init
11585         (dbus_set_error): remove dbus_error_init, check for message ==
11586         NULL *before* we sprintf into it, and add @todo about including
11587         system headers in this file
11588
11589         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11590
11591         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11592
11593         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11594         get various bits of user information based on either username
11595         or user ID
11596         (_dbus_homedir_from_username): new function
11597
11598 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11599
11600         * configure.in:
11601         Add check for nonposix getpwnam_r
11602
11603         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11604         Align the pool element size to a sizeof (void *) boundary.
11605
11606         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11607         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11608         General Solaris fixes.
11609
11610         * test/data/valid-messages/simplest-manual.message:
11611         Explicitly state that we want little-endian packing.
11612
11613 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11614
11615         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11616
11617         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11618         Added to create a transport connecting using a tcp/ip socket.
11619
11620         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11621         to a tcp socket at given host and port.
11622         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11623         hostname and port.
11624
11625         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11626
11627         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11628         Added to create a server listening on a TCP/IP socket.
11629
11630 2003-02-19  Havoc Pennington  <hp@pobox.com>
11631
11632         Throughout: mop up all the Doxygen warnings and undocumented
11633         stuff.
11634
11635         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11636         to search any paths.
11637
11638         * dbus/dbus-threads.c: move global mutex initializers to
11639         dbus-internals.h, multiple prototypes was confusing doxygen
11640         besides being kind of ugly
11641
11642         * Doxyfile (PREDEFINED): have Doxygen define
11643         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11644         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11645         (do not abuse the feature! it's for stuff like the autogenerated
11646         macros in dbus-md5.c, not just for things you don't feel like
11647         documenting...)
11648
11649 2003-02-18  Havoc Pennington  <hp@pobox.com>
11650
11651         * dbus/dbus-string.c (_dbus_string_zero): new function
11652
11653         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11654         wrap it in some dbus-friendly API
11655
11656         * dbus/dbus-types.h: add 16-bit types
11657
11658 2003-02-18  Joe Shaw  <joe@assbarn.com>
11659
11660         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11661         credentials from our currently running process.
11662         (get_word): Fix a buglet where we were copying the entire length
11663         instead of relative to our position.
11664
11665         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11666         keys on the stack... it's 640k of data.
11667
11668         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11669         read the credentials byte off the socket, even if we don't have
11670         SO_PEERCRED.
11671         (_dbus_poll): Implement poll() using select() for systems which
11672         don't have it.
11673
11674         * glib/test-dbus-glib.c (main): Print out an error if no
11675         parameters are given.
11676
11677         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11678         can fallback to a secondary auth mechanism if the first fails.
11679
11680 2003-02-18  Havoc Pennington  <hp@pobox.com>
11681
11682         * AUTHORS: add Alex
11683
11684 2003-02-17  Havoc Pennington  <hp@pobox.com>
11685
11686         * doc/dbus-specification.sgml: lots of cosmetic
11687         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11688         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11689         s/server/bus/ (except in authentication section). Add a section
11690         "Message Bus Message Routing"
11691
11692 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11693
11694         Release 0.4
11695
11696         * NEWS: Update
11697
11698 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11699
11700         * doc/dbus-specification.sgml:
11701         Specification updates.
11702
11703 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11704
11705         * bus/activation.c: (bus_activation_init), (child_setup),
11706         (bus_activation_activate_service):
11707         * bus/activation.h:
11708         * bus/main.c: (main):
11709         Set DBUS_ADDRESS environment variable.
11710
11711         * dbus/dbus-errors.c: (dbus_set_error):
11712         Don't use va_copy since that's a C99 feature.
11713
11714         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11715         (_dbus_spawn_async):
11716         * dbus/dbus-sysdeps.h:
11717         Add child_setup_func to _dbus_spawn_async.
11718
11719         * doc/dbus-specification.sgml:
11720         Update specification.
11721
11722         * test/spawn-test.c: (setup_func), (main):
11723         Fix test.
11724
11725 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11726
11727         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11728         Added todo.
11729
11730 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11731
11732         * doc/.cvsignore:
11733         * doc/Makefile.am:
11734         * doc/dbus-test-plan.sgml:
11735         Add test plan document.
11736
11737         * test/Makefile.am:
11738         Fix distcheck.
11739
11740 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11741
11742         * dbus/dbus-message.c: (decode_header_data),
11743         (_dbus_message_loader_return_buffer):
11744         Set the header padding amount when loading a message.
11745
11746 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11747
11748         * bus/dispatch.c: (send_one_message):
11749         Only send broadcast messages to registered connections.
11750
11751         * dbus/dbus-message.c: (dbus_message_name_is):
11752         * dbus/dbus-message.h:
11753         New convenience function.
11754
11755         * dbus/dbus-transport-debug.c: (do_reading):
11756         Only dispatch one message per run.
11757
11758         * test/Makefile.am:
11759         * test/bus-test.c: (new_connection_callback), (die),
11760         (test_hello_client1_handler), (test_hello_client2_handler),
11761         (test_hello_replies), (main):
11762
11763         * test/bus-test-loop.[ch]:
11764         Add these.
11765
11766 2003-02-16  Havoc Pennington  <hp@pobox.com>
11767
11768         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11769         backward conditional
11770
11771 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11772
11773         * dbus/dbus-connection.c:
11774         Implement sent_message_with_reply. (with_reply_and block is still
11775         busted).
11776         Made dispatch_message not lose message if OOM.
11777
11778         * dbus/dbus-errors.h:
11779         Add NoReply error (for reply timeouts).
11780
11781 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11782
11783         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11784         Actually free keys and values when destroying hashtable.
11785
11786 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11787
11788         * dbus/dbus-auth.c: (client_try_next_mechanism):
11789         Plug a leak.
11790
11791         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11792         Return TRUE if there's no thread implementation around.
11793
11794         * glib/dbus-gmain.c: (free_source),
11795         (dbus_connection_hookup_with_g_main):
11796         Make sure to remove the GSource when the connection is finalized.
11797
11798 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11799
11800         * bus/dispatch.c: (bus_dispatch_message_handler):
11801         * dbus/dbus-errors.h:
11802         Return an error if someone tries to send a message to a service
11803         that doesn't exist.
11804
11805 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11806
11807         * bus/activation.c: (load_directory), (bus_activation_init),
11808         (bus_activation_activate_service):
11809         * bus/activation.h:
11810         * bus/driver.c:
11811         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11812         More work on the activation handling.
11813
11814         * dbus/dbus-errors.h:
11815         Add some error messages
11816
11817         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11818         * dbus/dbus-message.h:
11819         New function that creates an error message.
11820
11821         * dbus/dbus-protocol.h:
11822         Add ACTIVATE_SERVER message.
11823
11824         * dbus/dbus-server-unix.c: (unix_handle_watch),
11825         (_dbus_server_new_for_domain_socket):
11826         Call _dbus_fd_set_close_on_exec.
11827
11828         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11829         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11830         (_dbus_fd_set_close_on_exec):
11831         * dbus/dbus-sysdeps.h:
11832         Add _dbus_fd_set_close_on exec function. Also add function that checks
11833         that all open fds are set to close-on-exec and warns otherwise.
11834
11835         * dbus/dbus-transport-unix.c:
11836         (_dbus_transport_new_for_domain_socket):
11837         Call _dbus_fd_set_close_on_exec.
11838
11839 2003-02-16  Havoc Pennington  <hp@pobox.com>
11840
11841         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11842         allow people to avoid setting SIGPIPE to SIG_IGN
11843         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11844         we've been asked not to
11845
11846 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11847
11848         * dbus/dbus-list.c: (_dbus_list_append_link),
11849         (_dbus_list_prepend_link):
11850         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11851         (dbus_realloc):
11852         Warning fixes.
11853
11854 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11855
11856         * bus/Makefile.am:
11857         * bus/activation.c: (bus_activation_entry_free),
11858         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11859         * bus/activation.h:
11860         * bus/main.c: (main):
11861         Add simple activation support, doesn't work yet though.
11862
11863 2003-02-15   Zack Rusin  <zack@kde.org>
11864
11865         * qt/dbus-qthread.cpp:  small casting fix
11866
11867 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11868
11869         * dbus/dbus-errors.c: (dbus_set_error):
11870         * dbus/dbus-errors.h:
11871         Add a few errors and make dbus_set_error void.
11872
11873         * dbus/dbus-sysdeps.c:
11874         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11875         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11876         * dbus/dbus-sysdeps.h:
11877         Add _dbus_spawn_async.
11878
11879         * test/spawn-test.c: (main):
11880         Test for _dbus_spawn_async.
11881
11882 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11883
11884         * dbus/dbus-internals.h:
11885         Fix build without tests.
11886
11887         * dbus/dbus-list.c: (alloc_link):
11888         Fix a segfault when a malloc fails.
11889
11890         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11891         (dbus_malloc0), (dbus_realloc):
11892         Add support for malloc debugging.
11893
11894 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11895
11896         * dbus/dbus-threads.c:
11897         * dbus/dbus-threads.h:
11898         Add condvars. Remove static mutext from API.
11899         Implement static mutexes by initializing them from threads_init.
11900
11901         * glib/dbus-gthread.c:
11902         * qt/dbus-qthread.cpp:
11903         Update with the thread api changes.
11904
11905
11906         * dbus/dbus-list.c:
11907         * dbus/dbus-list.h:
11908         Turn StaticMutex into normal mutex + init function.
11909         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11910         _dbus_list_append_link, _dbus_list_prepend_link
11911
11912
11913         * dbus/dbus-sysdeps.c:
11914         * dbus/dbus-sysdeps.h:
11915         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11916         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11917
11918         * dbus/dbus-protocol.h:
11919         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11920
11921         * dbus/dbus-message.c:
11922         Make ref/unref atomic.
11923         Fix some docs.
11924
11925         * dbus/dbus-connection-internal.h:
11926         * dbus/dbus-connection.c:
11927         * dbus/dbus-connection.h:
11928         Make threadsafe.
11929         Change _peek to _borrow,_return & _steal_borrowed.
11930         Change disconnect callback to event.
11931         Make dbus_connection_dispatch_messages reentrant.
11932
11933         * dbus/dbus-transport.c:
11934         Don't ref the connection on calls to the transport
11935         implementation.
11936
11937         * dbus/dbus-message-handler.c:
11938         Make threadsafe.
11939
11940         * glib/dbus-gmain.c:
11941         Don't use peek_message anymore
11942
11943         * test/Makefile.am:
11944         * test/debug-thread.c:
11945         * test/debug-thread.h:
11946         Simple thread implementation that asserts() on deadlocks in
11947         single-threaded code.
11948
11949         * test/bus-test.c:
11950         (main) Call debug_threads_init.
11951
11952         * test/watch.c:
11953         Use disconnect message instead of disconnect callback.
11954
11955         * bus/connection.c:
11956         * bus/connection.h:
11957         Don't call dbus_connection_set_disconnect_function. Instead export
11958         bus_connection_disconnect.
11959
11960         * bus/dispatch.c:
11961         Call bus_connection_disconnect when we get a disconnected message.
11962
11963 2003-02-15  Havoc Pennington  <hp@pobox.com>
11964
11965         * dbus/dbus-message.c (dbus_message_new): fool around with the
11966         docs
11967
11968 2003-02-14  Havoc Pennington  <hp@pobox.com>
11969
11970         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11971
11972         * dbus/dbus-memory.c: fail if the debug functions indicate we
11973         should
11974
11975         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11976         (_dbus_decrement_fail_alloc_counter): debug functions to
11977         simulate memory allocation failures
11978
11979 2003-02-14  Havoc Pennington  <hp@pobox.com>
11980
11981         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11982         to DBusError
11983
11984 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11985
11986         * bus/driver.c: (bus_driver_handle_hello):
11987         * bus/driver.h:
11988         * bus/services.c: (bus_service_lookup):
11989         Reorder message sending so we get a more sane order.
11990
11991         * test/bus-test.c: (message_handler):
11992         Fix tyop.
11993
11994 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11995
11996         * bus/driver.c: (bus_driver_send_service_deleted),
11997         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11998         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11999         (bus_driver_send_welcome_message),
12000         (bus_driver_handle_list_services),
12001         (bus_driver_handle_acquire_service),
12002         (bus_driver_handle_service_exists):
12003         * dbus/dbus-bus.c: (dbus_bus_register_client),
12004         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12005         * dbus/dbus-errors.c: (dbus_result_to_string):
12006         * dbus/dbus-errors.h:
12007         * dbus/dbus-message.c: (dbus_message_append_args),
12008         (dbus_message_append_args_valist), (dbus_message_get_args),
12009         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12010         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12011         (dbus_message_iter_get_byte_array),
12012         (dbus_message_iter_get_string_array), (message_iter_test),
12013         (check_message_handling), (_dbus_message_test):
12014         * dbus/dbus-message.h:
12015         * test/bus-test.c: (main):
12016         Change fields to arguments in messages, so that they won't be
12017         confused with header fields.
12018
12019         * glib/test-dbus-glib.c: (main):
12020         Remove append_fields from hello message.
12021
12022 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12023
12024         * dbus/dbus-errors.c:
12025         * dbus/dbus-message.c:
12026         * dbus/dbus-string.c:
12027         Documentation fixes.
12028
12029 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12030
12031         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12032         (remove_timeout):
12033         Implement support for timeouts in dbus-glib.
12034
12035 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12036
12037         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12038         * dbus/dbus-message.c: (process_test_subdir):
12039         * test/break-loader.c: (find_breaks_based_on):
12040         Plug some memory leaks.
12041
12042 2003-02-13  Richard Hult  <rhult@codefactory.se>
12043
12044         * bus/main.c: Fix build.
12045
12046         * dbus/dbus-errors.h:
12047         * dbus/dbus-errors.c: Fix copyright for Anders.
12048
12049 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12050
12051         * bus/Makefile.am:
12052         Add utils.[ch]
12053
12054         * bus/connection.c: (bus_connection_foreach):
12055         Fix a warning.
12056
12057         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12058         (unescape_string), (new_section), (parse_section_start),
12059         (parse_key_value), (report_error), (bus_desktop_file_load),
12060         (bus_desktop_file_get_string):
12061         * bus/desktop-file.h:
12062         Use DBusError for error reporting.
12063
12064         * bus/dispatch.c: (send_one_message),
12065         (bus_dispatch_message_handler):
12066         * bus/driver.c: (bus_driver_send_service_deleted),
12067         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12068         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12069         (bus_driver_send_welcome_message),
12070         (bus_driver_handle_list_services),
12071         (bus_driver_handle_acquire_service),
12072         (bus_driver_handle_service_exists):
12073         * bus/loop.c: (bus_loop_run):
12074         * bus/main.c:
12075         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12076
12077         * bus/utils.c: (bus_wait_for_memory):
12078         * bus/utils.h:
12079         New files with general utility functions.
12080
12081         * dbus/dbus-internals.h:
12082         Remove _DBUS_HANDLE_OOM.
12083
12084 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12085
12086         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12087         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12088         * dbus/dbus-errors.h:
12089         Add DBusError structure.
12090
12091 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12092
12093         * test/data/valid-messages/standard-acquire-service.message:
12094         * test/data/valid-messages/standard-hello.message:
12095         * test/data/valid-messages/standard-list-services.message:
12096         * test/data/valid-messages/standard-service-exists.message:
12097         Add some standard messages.
12098
12099 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12100
12101         * bus/driver.c: (bus_driver_send_welcome_message),
12102         (bus_driver_handle_list_services),
12103         (bus_driver_handle_acquire_service),
12104         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12105         Update for API changes in libdbus.
12106
12107         * dbus/dbus-message.c: (dbus_message_new_reply):
12108         * dbus/dbus-message.h:
12109         Remove the name argument. The spec states that replies shouldn't
12110         have a name.
12111
12112 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12113
12114         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12115         (report_error), (bus_desktop_file_load), (lookup_section),
12116         (lookup_line), (bus_desktop_file_get_raw),
12117         (bus_desktop_file_get_string):
12118         * bus/desktop-file.h:
12119         Some fixes, and new functions for getting a key value from a section.
12120
12121 2003-02-13  Havoc Pennington  <hp@pobox.com>
12122
12123         * test/data/auth/fail-after-n-attempts.auth-script: new test
12124
12125         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12126         reject the client.
12127
12128 2003-02-13  Havoc Pennington  <hp@pobox.com>
12129
12130         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12131         dbus_credentials_match were backward
12132
12133         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12134         NO_CREDENTIALS and ROOT_CREDENTIALS
12135
12136         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12137         into here. Never process more commands after we've reached an
12138         end state; store further data as unused bytes.
12139
12140         * test/data/auth/*: add more auth tests
12141
12142         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12143         command to match exact string and EXPECT_UNUSED to match unused
12144         bytes
12145
12146         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12147
12148 2003-02-12  Havoc Pennington  <hp@pobox.com>
12149
12150         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12151         \r off of popped lines
12152
12153         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12154         scripts
12155
12156         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12157         SEND, append \r\n
12158
12159 2003-02-12  Havoc Pennington  <hp@pobox.com>
12160
12161         * dbus/Makefile.am: remove break-loader from the build, since it
12162         moved.
12163
12164         * configure.in: add --enable-gcov to turn on coverage profiling
12165         flags and disable optimization
12166
12167 2003-02-10  Havoc Pennington  <hp@pobox.com>
12168
12169         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12170         initial cut at test framework for DBusAuth from laptop.
12171         Doesn't quite work yet but it compiles and I need to get
12172         it off the 266mhz laptop. ;-)
12173
12174         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12175         fix a memleak in error case
12176
12177 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12178
12179         * bus/Makefile.am:
12180         * bus/desktop-file.c:
12181         * bus/desktop-file.h:
12182         Add a desktop file parser.
12183
12184 2003-02-11  Zack Rusin  <zack@kde.org>
12185
12186         * qt/message.[h|cpp]: sample implementation
12187         of the KDE wrapper for DBusMessage
12188
12189 2003-02-09  Zack Rusin  <zack@kde.org>
12190
12191         * test/bus-test.c: make_it_compile
12192         * doc/dbus-specification.sgml: minimal semantic fix
12193
12194 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12195
12196         Release 0.3
12197
12198         * NEWS: Update
12199
12200 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12201
12202         * dbus/Makefile.am:
12203         * dbus/dbus-break-loader.c:
12204         * test/Makefile.am:
12205         * test/break-loader.c:
12206         Move dbus-break-loader to test/ and rename it to break-loader.
12207
12208 2003-02-02  Havoc Pennington  <hp@pobox.com>
12209
12210         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12211         for code to manage cookies in your home directory
12212
12213         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12214
12215         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12216         to authenticate, then disconnect the client.
12217
12218 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12219
12220         * dbus/dbus-message.c (dbus_message_append_fields):
12221         Correct docs.
12222
12223 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12224
12225         * doc/dbus-specification.sgml:
12226         Update address format section.
12227
12228 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12229
12230         * test/Makefile.am:
12231         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12232         (message_handler), (new_connection_callback), (loop_quit),
12233         (loop_run), (main):
12234         Add bus test.
12235
12236 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12237
12238         * bus/driver.c: (bus_driver_handle_service_exists):
12239         Simplify the code a bit.
12240
12241         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12242         Fix a silly.
12243
12244 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12245
12246         * bus/Makefile.am:
12247         Add libdbus-daemon.la and link to it.
12248
12249 2003-02-01  James Willcox  <jwillcox@gnome.org>
12250
12251         * bus/driver.c: (bus_driver_handle_own_service):
12252         Actually include the service reply code in the message.
12253
12254 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12255
12256         * bus/driver.c: (bus_driver_handle_service_exists):
12257         Don't unref the incoming message.
12258
12259 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12260
12261         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12262
12263 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12264
12265         * dbus/dbus-server.c: (dbus_server_listen):
12266         * dbus/dbus-transport.c: (_dbus_transport_open):
12267         ifdef out the calls to the debug transport and server.
12268
12269 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12270
12271         * dbus/dbus-watch.c (dbus_watch_get_flags):
12272         Add note in the docs that ERROR or HANGUP won't be returned
12273         and are assumed always on.
12274
12275         * glib/dbus-gmain.c (add_watch):
12276         Always add IO_ERR | IO_HUP
12277
12278         * dbus/dbus-message.h:
12279         Add semicolon after dbus_message_iter_get_string_array().
12280         Makes qt code build again
12281
12282 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12283
12284         * bus/driver.c: (create_unique_client_name),
12285         (bus_driver_handle_hello):
12286         Don't take a name, just use a numeric id to identify
12287         each client.
12288
12289         * dbus/Makefile.am:
12290         * dbus/dbus-bus.c: (dbus_bus_register_client),
12291         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12292         * dbus/dbus-bus.h:
12293         Add new convenience functions for communicating with the bus.
12294
12295         * dbus/dbus-message.h:
12296
12297         * dbus/dbus-protocol.h:
12298         Fix a typo.
12299
12300 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12301
12302         * dbus/dbus-message.c (dbus_message_append_fields):
12303         Add some more doc comments.
12304
12305 2003-02-01  Havoc Pennington  <hp@pobox.com>
12306
12307         * dbus/dbus-break-loader.c (randomly_modify_length): change
12308         a 4-byte value in the message as if it were a length
12309
12310         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12311         execute bit on saved files
12312
12313 2003-02-01  Havoc Pennington  <hp@pobox.com>
12314
12315         * dbus/dbus-break-loader.c (main): new program to find messages
12316         that break the loader.
12317
12318         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12319         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12320
12321         * dbus/dbus-string.c (_dbus_string_set_byte): new
12322
12323 2003-01-31  Havoc Pennington  <hp@pobox.com>
12324
12325         * dbus/dbus-message.c: refactor the test code to be more general,
12326         in preparation for writing a "randomly permute test cases to
12327         try to break the loader" program.
12328
12329 2003-01-31  Havoc Pennington  <hp@pobox.com>
12330
12331         * doc/dbus-specification.sgml: work on the specification
12332
12333         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12334         the protocol version of the message.
12335
12336         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12337         no longer specifies that.
12338         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12339         1/2/3/4)
12340
12341         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12342         "break" for DBUS_TYPE_NIL, remove @todo
12343
12344 2003-01-31  Havoc Pennington  <hp@pobox.com>
12345
12346         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12347         just set_is_error/get_is_error as this is a commonly-used
12348         function, and write docs.
12349
12350 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12351
12352         * dbus/dbus-address.c: (dbus_address_entry_free):
12353         Free key and value lists.
12354
12355         * dbus/dbus-internals.c: (_dbus_type_to_string):
12356         Add the types we didn't have.
12357
12358         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12359         (_dbus_marshal_validate_arg):
12360         Add NIL types.
12361
12362         * dbus/dbus-message.c: (dbus_message_set_sender):
12363         Remove todo about being able to set sender to NULL.
12364
12365         (dbus_message_set_is_error_reply),
12366         (dbus_message_get_is_error_reply):
12367         * dbus/dbus-message.h:
12368         New functions.
12369
12370         * dbus/dbus-protocol.h:
12371         Add error reply flag.
12372
12373         * test/data/valid-messages/opposite-endian.message:
12374         Add NIL type to test.
12375
12376 2003-01-31  Havoc Pennington  <hp@pobox.com>
12377
12378         * doc/dbus-specification.sgml: fully specify the header.  Add
12379         flags and major protocol version, and change header/body len to
12380         unsigned.
12381
12382         * dbus/dbus-message-builder.c (append_saved_length): append length
12383         as uint32
12384
12385         * dbus/dbus-message.c (dbus_message_create_header): change header
12386         length and body length to unsigned. Add the new fields from the
12387         spec
12388         (_dbus_message_loader_return_buffer): unsigned header/body len
12389
12390 2003-01-30  Havoc Pennington  <hp@pobox.com>
12391
12392         * dbus/dbus-auth.c: rework to use only REJECTED, no
12393         MECHANISMS
12394
12395         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12396         use REJECTED, suggested by Mark McLoughlin
12397
12398 2003-01-30  Havoc Pennington  <hp@pobox.com>
12399
12400         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12401         a better way to report errors here. e.g.  "unix address lacks
12402         path" or something. also "no such file" when the path doesn't
12403         exist, etc.
12404
12405         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12406         leaking list nodes
12407         (dbus_parse_address): add @todo about documenting address format,
12408         and allowing , and ; to be escaped
12409
12410 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12411
12412         * dbus/Makefile.am:
12413         Add dbus-address.[ch]
12414
12415         * dbus/dbus-address.c: (dbus_address_entry_free),
12416         (dbus_address_entries_free), (create_entry),
12417         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12418         (dbus_parse_address), (_dbus_address_test):
12419         * dbus/dbus-address.h:
12420         New files for dealing with address parsing.
12421
12422         * dbus/dbus-connection.c:
12423         Document timeout functions.
12424
12425         * dbus/dbus-message.c:
12426         Document dbus_message_new_from_message.
12427
12428         * dbus/dbus-server-debug.c:
12429         Document.
12430
12431         * dbus/dbus-server.c: (dbus_server_listen):
12432         Parse address and use correct server implementation.
12433
12434         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12435         * dbus/dbus-string.h:
12436         New function with test.
12437
12438         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12439         * dbus/dbus-test.h:
12440         Add address tests.
12441
12442         * dbus/dbus-transport-debug.c:
12443         Document.
12444
12445         * dbus/dbus-transport.c: (_dbus_transport_open):
12446         Parse address and use correct transport implementation.
12447
12448 2003-01-30  Havoc Pennington  <hp@pobox.com>
12449
12450         * dbus/dbus-message.c: use message->byte_order instead of
12451         DBUS_COMPILER_BYTE_ORDER throughout.
12452         (dbus_message_create_header): pad header to align the
12453         start of the body of the message to 8-byte boundary
12454
12455         * dbus/dbus-marshal.h: make all the demarshalers take const
12456         DBusString arguments.
12457
12458         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12459         validate message args here, so we don't have to do slow validation
12460         later, and so we catch bad messages as they are incoming. Also add
12461         better checks on header_len and body_len. Also fill in
12462         message->byte_order
12463
12464         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12465         implemented properly)
12466         (_dbus_string_validate_nul): new function to check all-nul
12467
12468         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12469         get_arg_end_pos and remove all validation
12470         (_dbus_marshal_validate_arg): actually do validation here.
12471
12472 2003-01-29  Havoc Pennington  <hp@pobox.com>
12473
12474         * dbus/dbus-message.c (check_message_handling): fix assertion
12475         failure on set_client_serial
12476
12477 2003-01-28  Havoc Pennington  <hp@pobox.com>
12478
12479         * dbus/dbus-server-debug.c: Add doc section comments
12480
12481         * dbus/dbus-transport-debug.c: add doc section comments
12482
12483 2003-01-28  Havoc Pennington  <hp@redhat.com>
12484
12485         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12486         the reverse order from how I had it
12487         (_dbus_string_base64_encode): reverse encoding order. I was
12488         basically byteswapping everything during encoding.
12489
12490 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12491
12492         * dbus/dbus-connection-internal.h:
12493         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12494         (_dbus_connection_remove_timeout):
12495         Add functions for adding and removing timeouts.
12496
12497         * dbus/dbus-message.c: (dbus_message_new_from_message):
12498         Add new function that takes a message and creates an exact
12499         copy of it, but with the refcount set to 1.
12500         (check_message_handling):
12501         Fix build error.
12502
12503         * dbus/dbus-server-protected.h:
12504         * dbus/dbus-server.c: (_dbus_server_init_base),
12505         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12506         (dbus_server_set_timeout_functions):
12507         (_dbus_server_remove_timeout):
12508         New functions so that a server can add and remove timeouts.
12509
12510         (dbus_server_listen):
12511         Add commented out call to dbus_server_debug_new.
12512
12513         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12514         Actually set the handler, doh.
12515
12516         * dbus/dbus-transport.c: (_dbus_transport_open):
12517         Add commented out call to dbus_transport_debug_client_new.
12518
12519         * dbus/Makefile.am:
12520         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12521
12522 2003-01-28  Havoc Pennington  <hp@pobox.com>
12523
12524         * dbus/dbus-message.c (check_message_handling): function to check
12525         on the loaded message, iterates over it etc.
12526
12527 2003-01-28  Havoc Pennington  <hp@pobox.com>
12528
12529         * test/Makefile.am (dist-hook): fix make distdir
12530
12531         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12532
12533 2003-01-27  Havoc Pennington  <hp@pobox.com>
12534
12535         * dbus/dbus-mempool.c (time_for_size): replace printf with
12536         _dbus_verbose
12537
12538         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12539         empty lines; fix the SAVE_LENGTH stuff to be
12540         START_LENGTH/END_LENGTH so it actually works; couple other
12541         bugfixes
12542
12543         * test/Makefile.am (dist-hook): add dist-hook for .message files
12544
12545         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12546         can be constant or locked.
12547         (_dbus_string_free): allow freeing a const string as
12548         documented/intended
12549
12550         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12551
12552         * dbus/dbus-test-main.c (main): take an argument which is the
12553         directory containing test data
12554
12555         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12556         argument to this and load all the messages in test/data/
12557         checking that they can be loaded or not loaded as appropriate.
12558
12559 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12560
12561         * bus/dispatch.c: (bus_dispatch_message_handler):
12562         Dispatch messages sent to services.
12563
12564         * bus/driver.c: (bus_driver_send_service_deleted),
12565         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12566         (bus_driver_send_service_acquired):
12567         Add helper functions for sending service related messages.
12568
12569         (bus_driver_send_welcome_message):
12570         Send HELLO_REPLY instead of WELCOME.
12571
12572         (bus_driver_handle_list_services):
12573         Send LIST_SERVICES_REPLY instead of SERVICES.
12574
12575         (bus_driver_handle_own_service),
12576         (bus_driver_handle_service_exists):
12577         New message handlers.
12578
12579         (bus_driver_handle_message):
12580         Invoke new message handlers.
12581
12582         (bus_driver_remove_connection):
12583         Don't remove any services here since that's done automatically
12584         by bus_service_remove_owner now.
12585
12586         * bus/driver.h:
12587         New function signatures.
12588
12589         * bus/services.c: (bus_service_add_owner):
12590         Send ServiceAcquired message if we're the only primary owner.
12591
12592         (bus_service_remove_owner):
12593         Send ServiceAcquired/ServiceLost messages.
12594
12595         (bus_service_set_prohibit_replacement),
12596         (bus_service_get_prohibit_replacement):
12597         Functions for setting prohibit replacement.
12598
12599         (bus_service_has_owner):
12600         New function that checks if a connection is in the owner queue of
12601         a certain service.
12602
12603         * bus/services.h:
12604         Add new function signatures.
12605
12606         * dbus/dbus-list.c: (_dbus_list_test):
12607         Add tests for _dbus_list_remove_last and traversing the list backwards.
12608
12609         * dbus/dbus-list.h:
12610         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12611         go any further, so return NULL then.
12612
12613         * dbus/dbus-protocol.h:
12614         Add new messages, service flags and service replies.
12615
12616 2003-01-26  Havoc Pennington  <hp@pobox.com>
12617
12618         * dbus/dbus-message-builder.c: implement, completely untested.
12619
12620         * test/data/*: add data to be used in testing.
12621         ".message" files are our simple loadable text format.
12622         ".message-raw" will be binary dumps of messages.
12623
12624         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12625
12626 2003-01-26  Havoc Pennington  <hp@pobox.com>
12627
12628         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12629
12630         * dbus/dbus-errors.c (dbus_result_to_string): add
12631         file errors
12632
12633         * dbus/dbus-message-builder.c: new file, will contain code to load
12634         up messages from files. Not implemented yet.
12635
12636 2003-01-26  Havoc Pennington  <hp@pobox.com>
12637
12638         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12639         the sender by setting to NULL
12640
12641 2003-01-26  Havoc Pennington  <hp@pobox.com>
12642
12643         The unit tests pass, but otherwise untested.  If it breaks, the
12644         tests should have been better. ;-)
12645
12646         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12647         the connection.
12648
12649         * dbus/dbus-message.c: redo everything so we maintain
12650         message->header as the only copy of the various fields.
12651         This avoids the possibility of out-of-memory in some cases,
12652         for example dbus_message_lock() can't run out of memory anymore,
12653         and avoids extra copying. Figured I may as well go ahead and do
12654         this since it was busted for dbus_message_lock to not return
12655         failure on OOM, and dbus_message_write_header was totally
12656         unchecked for OOM. Also fixed some random other bugs.
12657
12658         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12659         that strings are nul-terminated. Also, end_pos can be equal
12660         to string length just not greater than, I think.
12661         (_dbus_marshal_set_int32): new function
12662         (_dbus_marshal_set_uint32): new function
12663         (_dbus_marshal_set_string): new function
12664
12665         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12666         a warning, init timeout_list to NULL
12667         (dbus_connection_send_message): don't use uninitialized variable
12668         "serial"
12669
12670         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12671
12672 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12673
12674         * bus/driver.c: (bus_driver_handle_hello),
12675         (bus_driver_send_welcome_message):
12676         Plug leaks
12677
12678 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12679
12680         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12681         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12682         (dbus_connection_unref):
12683         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12684         * dbus/dbus-message.c: (dbus_message_unref),
12685         Plug memory leaks.
12686
12687         (dbus_message_get_fields):
12688         Remove debugging printout.
12689
12690         (_dbus_message_loader_return_buffer):
12691         Don't store the header string.
12692
12693         (_dbus_message_test):
12694         Plug leaks.
12695
12696 2003-01-26  Richard Hult  <rhult@codefactory.se>
12697
12698         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12699         the file descriptor list, since it can change under us.
12700
12701 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12702
12703         * glib/dbus-gmain.c: (dbus_connection_prepare),
12704         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12705         (remove_watch), (dbus_connection_hookup_with_g_main):
12706         Rewrite the glib handling to use its own GSource instead of a
12707         GIOChannel so we can catch messages put in the queue while waiting
12708         for a reply.
12709
12710 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12711
12712         * bus/Makefile.am:
12713         * bus/connection.c: (connection_disconnect_handler),
12714         (connection_watch_callback), (bus_connection_setup):
12715         * bus/dispatch.c: (send_one_message),
12716         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12717         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12718         * bus/dispatch.h:
12719         * bus/driver.c: (bus_driver_send_service_deleted),
12720         (bus_driver_send_service_created), (bus_driver_handle_hello),
12721         (bus_driver_send_welcome_message),
12722         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12723         (bus_driver_handle_message):
12724         * bus/driver.h:
12725         Refactor code, put the message dispatching in its own file. Use
12726         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12727         is disconnected.
12728
12729 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12730
12731         * dbus/dbus-internals.h:
12732         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12733
12734         * dbus/dbus-message.c: (dbus_message_get_sender):
12735         * dbus/dbus-message.h:
12736         Implement dbus_message_get_sender.
12737
12738         * dbus/dbus-protocol.h:
12739         Add message and service defines.
12740
12741 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12742
12743         * dbus/dbus-connection.c: (dbus_connection_send_message):
12744         * dbus/dbus-message-internal.h:
12745         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12746         (dbus_message_write_header):
12747         Remove _dbus_messag_unlock and don't set the client serial on a
12748         message if one already exists.
12749
12750 2003-01-24  Havoc Pennington  <hp@pobox.com>
12751
12752         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12753         list_pool
12754
12755         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12756         on OOM
12757
12758 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12759
12760         * dbus/dbus-list.c: (alloc_link), (free_link):
12761         Use a memory pool for the links.
12762
12763 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12764
12765         * bus/connection.c: (bus_connection_foreach):
12766         * bus/connection.h:
12767         Add new bus_connection_foreach function.
12768
12769         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12770         Add function that broadcasts a message to all clients.
12771
12772         (bus_driver_send_service_created), (bus_driver_handle_hello),
12773         (bus_driver_send_welcome_message),
12774         (bus_driver_handle_list_services), (bus_driver_message_handler):
12775         Implement functions that take care of listing services, and notifying
12776         clients when new services are created.
12777
12778         * bus/services.c: (bus_services_list):
12779         * bus/services.h:
12780         Add new function that returns an array of strings with the currently
12781         registered services.
12782
12783         * glib/dbus-glib.h:
12784         * glib/dbus-gmain.c:
12785         Update copyright year.
12786
12787 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12788
12789         * dbus/dbus-connection.c: (dbus_connection_send_message):
12790         Unlock the message in case it was sent earlier.
12791
12792         (dbus_connection_send_message_with_reply_and_block):
12793         Remove the reply message from the list.
12794
12795         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12796         Set array_len and new_pos correctly.
12797
12798         (_dbus_marshal_test):
12799         Remove debug output.
12800
12801         * dbus/dbus-message-internal.h:
12802         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12803         New function that returns the reply serial.
12804
12805         (_dbus_message_unlock):
12806         New function that unlocks a message and resets its header.
12807
12808         (dbus_message_append_string_array),
12809         (dbus_message_get_fields_valist),
12810         (dbus_message_iter_get_field_type),
12811         (dbus_message_iter_get_string_array),
12812         (dbus_message_get_fields),
12813         (dbus_message_append_fields_valist):
12814         Handle string arrays.
12815
12816         (dbus_message_set_sender):
12817         Make this function public since the bus daemon needs it.
12818
12819         (decode_header_data):
12820         Set the reply serial to -1 initially.
12821
12822         * dbus/dbus-message.h:
12823         Add dbus_message_set_sender.
12824
12825 2003-01-24  Havoc Pennington  <hp@pobox.com>
12826
12827         * doc/dbus-specification.sgml: add some stuff
12828
12829 2003-01-22  Havoc Pennington  <hp@pobox.com>
12830
12831         * doc/dbus-specification.sgml: Start to document the protocol.
12832
12833 2003-01-22  Havoc Pennington  <hp@pobox.com>
12834
12835         * dbus/dbus-connection.c
12836         (dbus_connection_send_message_with_reply_and_block): add some @todo
12837
12838         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12839
12840 2003-01-21  Havoc Pennington  <hp@pobox.com>
12841
12842         (patch untested because can't compile)
12843
12844         * bus/driver.c (create_unique_client_name): make this function
12845         never recycle client names. Also, caller should initialize
12846         the DBusString.
12847
12848         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12849
12850 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12851
12852         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12853         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12854         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12855         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12856         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12857         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12858         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12859         * dbus/dbus-marshal.h:
12860         * dbus/dbus-protocol.h:
12861         Add support for marshalling and demarshalling integer, double
12862         and string arrays.
12863
12864 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12865
12866         * bus/Makefile.am:
12867         Add driver.[ch]
12868
12869         * bus/connection.c: (connection_disconnect_handler):
12870         Remove the connection from the bus driver's list.
12871
12872         (connection_watch_callback): Dispatch messages.
12873
12874         (free_connection_data): Free connection name.
12875
12876         (bus_connection_setup): Add connection to the bus driver's list.
12877         (bus_connection_remove_owned_service):
12878         (bus_connection_set_name), (bus_connection_get_name):
12879         Add functions for setting and getting the connection's name.
12880
12881         * bus/connection.h:
12882         Add function headers.
12883
12884         * bus/driver.c: (create_unique_client_name),
12885         (bus_driver_handle_hello_message),
12886         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12887         (bus_driver_add_connection), (bus_driver_remove_connection):
12888         * bus/driver.h:
12889         * bus/main.c:
12890         * bus/services.c: (bus_service_free):
12891         * bus/services.h:
12892         New file that handles communication and registreation with the bus
12893         itself.
12894
12895 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12896
12897         * dbus/dbus-connection.c: (dbus_connection_send_message):
12898         Add a new client_serial parameter.
12899
12900         (dbus_connection_send_message_with_reply):
12901         Remove a @todo since we've implemented the blocking function.
12902
12903         (dbus_connection_send_message_with_reply_and_block):
12904         New function that sends a message and waits for a reply and
12905         then returns the reply.
12906
12907         * dbus/dbus-connection.h:
12908         Add new functions.
12909
12910         * dbus/dbus-errors.c: (dbus_result_to_string):
12911         * dbus/dbus-errors.h:
12912         Add new DBUS_RESULT.
12913
12914         * dbus/dbus-message-internal.h:
12915         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12916         (_dbus_message_set_sender), (dbus_message_write_header),
12917         (dbus_message_new_reply), (decode_header_data),
12918         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12919         * dbus/dbus-message.h:
12920         Add new functions that set the reply serial and sender.
12921         Also marshal and demarshal them correctly and add test.
12922
12923         * dbus/dbus-protocol.h:
12924         Add new DBUS_MESSAGE_TYPE_SENDER.
12925
12926         * glib/dbus-glib.h:
12927         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12928         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12929         (dbus_connection_hookup_with_g_main):
12930         * glib/test-dbus-glib.c: (main):
12931         Rewrite to use GIOChannel and remove the GSource crack.
12932
12933         * test/echo-client.c: (main):
12934         * test/watch.c: (check_messages):
12935         Update for changed APIs
12936
12937 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12938
12939         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12940
12941         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12942         Create a DBusTimeoutList.
12943         (dbus_connection_set_timeout_functions): Add new function to
12944         set timeout callbacks
12945
12946         * dbus/dbus-connection.h: Add public DBusTimeout API.
12947
12948         * dbus/dbus-message.c: (dbus_message_get_service):
12949         * dbus/dbus-message.h:  New function.
12950
12951         * dbus/dbus-server.c: Fix small doc typo.
12952
12953         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12954
12955 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12956
12957         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12958         of the string, just as long as specified.
12959
12960 2003-01-19  Havoc Pennington  <hp@pobox.com>
12961
12962         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12963         new function
12964
12965         * dbus/dbus-server.c (dbus_server_set_max_connections)
12966         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12967         keep track of current number of connections, and add API for
12968         setting a max (but haven't implemented enforcing the max yet)
12969
12970 2003-01-18  Havoc Pennington  <hp@pobox.com>
12971
12972         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12973         reading/writing if read_watch != NULL or write_watch != NULL.
12974
12975         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12976         the message loader code to actually load message->header and
12977         message->body into the newly-created message.
12978
12979         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12980         in OOM case
12981
12982         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12983         (dbus_connection_get_max_message_size)
12984         (dbus_connection_set_max_live_messages_size)
12985         (dbus_connection_get_max_live_messages_size): implement some
12986         resource limitation functions
12987
12988         * dbus/dbus-resources.c: new file implementing some of the
12989         resource limits stuff
12990
12991         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12992         missing docs, add @todo to handle OOM etc.
12993
12994         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12995         docs
12996
12997 2003-01-18  Havoc Pennington  <hp@pobox.com>
12998
12999         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13000         connection if it hasn't been already.
13001
13002         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13003         replace with DisconnectFunction.
13004
13005 2003-01-18  Havoc Pennington  <hp@pobox.com>
13006
13007         Building --disable-verbose-mode --disable-asserts --disable-tests
13008         cuts the library from 112K to 45K or so
13009
13010         * configure.in: check for varargs macro support,
13011         add --enable-verbose-mode, --enable-asserts.
13012
13013         * dbus/dbus-internals.h (_dbus_assert): support
13014         DBUS_DISABLE_ASSERT
13015         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13016
13017 2003-01-18  Havoc Pennington  <hp@pobox.com>
13018
13019         * dbus/dbus-test.c: include config.h so that tests actually run
13020
13021         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13022         so the failure mode when that assumption fails will be plenty
13023         obvious.
13024
13025 2003-01-18  Havoc Pennington  <hp@pobox.com>
13026
13027         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13028
13029         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13030         the distribution
13031
13032         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13033         since we don't want to use those in make check
13034
13035 2003-01-15  Havoc Pennington  <hp@redhat.com>
13036
13037         Release 0.2
13038
13039         * NEWS: update
13040
13041 2003-01-15  Havoc Pennington  <hp@redhat.com>
13042
13043         * test/Makefile.am: fix so that test source code ends up in the
13044         distribution on make distcheck
13045
13046 2003-01-15  Havoc Pennington  <hp@redhat.com>
13047
13048         Release 0.1.
13049
13050         * NEWS: update
13051
13052 2003-01-15  Havoc Pennington  <hp@redhat.com>
13053
13054         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13055         fix build when --disable-tests
13056
13057         * Makefile.am (EXTRA_DIST): put HACKING in here
13058
13059         * HACKING: document procedure for making a tarball release.
13060
13061 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13062
13063         * bus/connection.c: (connection_error_handler),
13064         (bus_connection_setup):
13065         * bus/main.c: (main):
13066         Make sure that the DBusConnectionData struct is NULLed
13067         out to prevent a segfault.
13068
13069         * dbus/dbus-errors.c: (dbus_result_to_string):
13070         * dbus/dbus-errors.h:
13071         * dbus/dbus-message.c: (dbus_message_get_fields),
13072         (dbus_message_get_fields_valist), (_dbus_message_test):
13073         * dbus/dbus-message.h:
13074         Make dbus_message_get_fields return a result code so we can
13075         track invalid fields as well as oom.
13076
13077 2003-01-11  Havoc Pennington  <hp@pobox.com>
13078
13079         * configure.in: change --enable-test/--enable-ansi action-if-given
13080         to enable_foo=$enableval instead of enable_foo=yes
13081
13082 2003-01-08  Havoc Pennington  <hp@pobox.com>
13083
13084         * dbus/dbus-string.c (_dbus_string_align_length): new function
13085
13086         * dbus/dbus-test-main.c: move main() for test app here
13087         * dbus/dbus-test.c
13088         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13089         symbol to run tests, because dbus-test isn't in the main
13090         library
13091
13092         Code review nitpicks.
13093
13094         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13095         for people with narrow emacs ;-). Assert client_serial was filled
13096         in. Assert message->name != NULL.
13097         (dbus_message_append_fields): have "first_field_type" arg separate
13098         from va list, needed for C++ binding that also uses varargs IIRC
13099         and helps with type safety
13100         (dbus_message_new): add @todo about using DBusString to store
13101         service/name internally
13102         (dbus_message_new): don't leak ->service and ->name on OOM later
13103         in the function
13104         (dbus_message_unref): free the service name
13105         (dbus_message_get_fields): same change to varargs
13106         i.e. first_field_type
13107         (_dbus_message_loader_return_buffer): assert that the message data
13108         is aligned (if not it's a bug in our code). Put in verbose griping
13109         about why we set corrupted = TRUE.
13110         (decode_header_data): add FIXME that char* is evil.  Was going to
13111         add FIXME about evil locale-specific string.h strncmp, but just
13112         switched to wacky string-as-uint32 optimization. Move check for
13113         "no room for field name" above get_const_data_len() to avoid
13114         assertion failure in get_const_data_len if we have trailing 2
13115         bytes or the like. Check for service and name fields being
13116         provided twice. Don't leak service/name on error. Require field
13117         names to be aligned to 4 bytes.
13118
13119         * dbus/dbus-marshal.c: move byte swap stuff to header
13120         (_dbus_pack_int32): uscore-prefix
13121         (_dbus_unpack_int32): uscore-prefix
13122         (_dbus_unpack_uint32): export
13123         (_dbus_demarshal_string): add @todo complaining about use of
13124         memcpy()
13125         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13126         handling allowing corrupt data to go unchecked
13127
13128 2003-01-08  Havoc Pennington  <hp@redhat.com>
13129
13130         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13131         to the select() as needed for authentication. (should be using
13132         _dbus_poll() not select, but for another day)
13133
13134         * dbus/dbus.h: include dbus/dbus-protocol.h
13135
13136 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13137
13138         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13139         dbus-connection.h
13140
13141 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13142
13143         * dbus/dbus-internals.c: (_dbus_type_to_string):
13144         New function that returns a string describing a type.
13145
13146         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13147         * dbus/dbus-marshal.h:
13148         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13149         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13150         (dbus_message_iter_get_byte_array):
13151         * dbus/dbus-message.h:
13152         Add new convenience functions for appending and getting message fields.
13153         Also add demarshalling routines for byte arrays.
13154
13155 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13156
13157         * dbus/dbus-connection-internal.h:
13158         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13159         (_dbus_connection_get_next_client_serial),
13160         (dbus_connection_send_message):
13161         * dbus/dbus-internals.h:
13162         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13163         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13164         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13165         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13166         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13167         (_dbus_verbose_bytes), (_dbus_marshal_test):
13168         * dbus/dbus-marshal.h:
13169         * dbus/dbus-message-internal.h:
13170         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13171         (dbus_message_write_header), (_dbus_message_lock),
13172         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13173         (dbus_message_get_name), (dbus_message_append_int32),
13174         (dbus_message_append_uint32), (dbus_message_append_double),
13175         (dbus_message_append_string), (dbus_message_append_byte_array),
13176         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13177         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13178         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13179         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13180         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13181         (decode_header_data), (_dbus_message_loader_return_buffer),
13182         (message_iter_test), (_dbus_message_test):
13183         * dbus/dbus-message.h:
13184         * dbus/dbus-protocol.h:
13185         * dbus/dbus-test.c: (main):
13186         * dbus/dbus-test.h:
13187         * glib/test-dbus-glib.c: (message_handler), (main):
13188         * test/echo-client.c: (main):
13189         * test/watch.c: (check_messages):
13190         Make messages sendable and receivable for real.
13191
13192 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13193
13194         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13195         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13196         * dbus/dbus-message.c: (dbus_message_append_int32),
13197         (dbus_message_append_uint32), (dbus_message_append_double),
13198         (dbus_message_append_string), (dbus_message_append_byte_array):
13199         Handle OOM restoration.
13200
13201 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13202
13203         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13204         (_dbus_demarshal_string), (_dbus_marshal_test):
13205         * dbus/dbus-marshal.h:
13206         * dbus/dbus-message.c: (dbus_message_get_name),
13207         Document these functions.
13208
13209         (dbus_message_append_int32), (dbus_message_append_uint32),
13210         (dbus_message_append_double), (dbus_message_append_string),
13211         (dbus_message_append_byte_array):
13212         * dbus/dbus-message.h:
13213         Add functions for adding message fields of different types.
13214
13215         * dbus/dbus-protocol.h:
13216         Add the different types.
13217
13218 2003-01-05  Havoc Pennington  <hp@pobox.com>
13219
13220         * bus/connection.c: implement routines for handling connections,
13221         first thing is keeping a list of owned services on each connection
13222         and setting up watches etc.
13223
13224         * bus/services.c: implement a mapping from service names to lists
13225         of connections
13226
13227         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13228
13229         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13230         to use static mutexes for global data
13231
13232         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13233         collection of functions to set/get application-specific data
13234         on the DBusConnection.
13235
13236 2003-01-04  Havoc Pennington  <hp@pobox.com>
13237
13238         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13239         (_dbus_poll): new function
13240
13241         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13242         copied from GLib
13243
13244         * bus/loop.c: initial code for the daemon main loop
13245
13246 2003-01-04  Havoc Pennington  <hp@pobox.com>
13247
13248         * test/watch.c (error_handler): make it safe if the error handler
13249         is called multiple times (if we s/error handler/disconnect
13250         handler/ we should just guarantee it's called only once)
13251
13252         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13253         error handler on disconnect (it's quite possible we should
13254         just change the error handler to a "disconnect handler," I'm
13255         not sure we have any other meaningful errors)
13256
13257         * configure.in: check for getpwnam_r
13258
13259         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13260         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13261         mechanism as in SASL spec, using socket credentials
13262
13263         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13264         (_dbus_send_credentials_unix_socket): new function
13265
13266         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13267         dbus_accept()
13268         (_dbus_write): only check errno if <0 returned
13269         (_dbus_write_two): ditto
13270
13271 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13272
13273         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13274         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13275         (_dbus_marshal_test):
13276         * dbus/dbus-marshal.h:
13277         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13278         to _dbus_marshal_utf8_string. Also fix some tests.
13279
13280 2002-12-28  Harri Porten  <porten@kde.org>
13281
13282         * configure.in: added check for C++ compiler and a very cheesy
13283         check for the Qt integration
13284
13285         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13286
13287         * qt/Makefile.am: added
13288
13289         * qt/.cvsignore: added
13290
13291         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13292         latter, added #ifdef QT_THREAD_SUPPORT guard.
13293
13294         * dbus/Makefile.am: added missing headers for make dist
13295
13296 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13297
13298         * dbus/Makefile.am: fixup export-symbols-regex.
13299
13300 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13301
13302         * acinclude.m4: Add this file and put the
13303         PKG_CHECK_MODULE macro in it.
13304
13305 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13306
13307         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13308         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13309         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13310         (_dbus_marshal_test):
13311         Make the demarshalling routines align the pos argument.
13312         Add string marshalling tests and fix the obvious bugs
13313         discovered.
13314
13315 2002-12-26  Havoc Pennington  <hp@pobox.com>
13316
13317         * dbus/dbus-auth.c: fixes fixes fixes
13318
13319         * dbus/dbus-transport-unix.c: wire up support for
13320         encoding/decoding data on the wire
13321
13322         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13323         (_dbus_auth_decode_data): append to target string
13324         instead of nuking it.
13325
13326 2002-12-26  Havoc Pennington  <hp@pobox.com>
13327
13328         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13329         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13330         doh
13331
13332         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13333         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13334         now). Main point is because I wanted unpack_uint32 to implement
13335         _dbus_verbose_bytes
13336         (_dbus_verbose_bytes): new function
13337
13338         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13339
13340         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13341         mechanism to handle a corrupt message stream
13342         (_dbus_message_loader_new): fix preallocation to only prealloc,
13343         not prelengthen
13344
13345         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13346         (_dbus_string_test): enhance tests for copy/move and fix the
13347         functions
13348
13349         * dbus/dbus-transport-unix.c: Hold references in more places to
13350         avoid reentrancy problems
13351
13352         * dbus/dbus-transport.c: ditto
13353
13354         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13355         leak reference count in no-message case
13356
13357         * test/watch.c (do_mainloop): handle adding/removing watches
13358         during iteration over the watches. Also, ref the connection/server
13359         stored on a watch, so we don't try to mangle a destroyed one.
13360
13361         * dbus/dbus-transport-unix.c (do_authentication): perform
13362         authentication
13363
13364         * dbus/dbus-auth.c (get_state): add a state
13365         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13366         (_dbus_auth_get_unused_bytes): append the unused bytes
13367         to the passed in string, rather than prepend
13368
13369         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13370         the auth conversation DBusAuth
13371
13372         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13373         (_dbus_transport_new_for_domain_socket): when creating a
13374         transport, pass in whether it's a client-side or server-side
13375         transport so we know which DBusAuth to create
13376
13377 2002-12-03  Havoc Pennington  <hp@pobox.com>
13378
13379         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13380         _after_ finalizing the derived members
13381         (unix_connection_set): unref watch if we fail to add it
13382
13383         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13384         transport first, so that the connection owned by the
13385         transport will be valid as the transport finalizes.
13386
13387         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13388         if necessary, and remove watches from the connection.
13389
13390         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13391
13392 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13393
13394         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13395         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13396         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13397         (_dbus_marshal_test):
13398         * dbus/dbus-marshal.h:
13399         Add string marshal functions and have the demarshal functions
13400         return the new position.
13401
13402 2002-12-25  Havoc Pennington  <hp@pobox.com>
13403
13404         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13405         it is a simple protocol that just maps directly to SASL.
13406
13407         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13408         initial implementation, not actually used yet.
13409
13410         * dbus/dbus-string.c (_dbus_string_find): new function
13411         (_dbus_string_equal): new function
13412         (_dbus_string_base64_encode): new function
13413         (_dbus_string_base64_decode): new function
13414
13415 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13416
13417         * dbus/Makefile.am:
13418         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13419         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13420         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13421         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13422         * dbus/dbus-marshal.h:
13423         * dbus/dbus-protocol.h:
13424         * dbus/dbus-test.c: (main):
13425         * dbus/dbus-test.h:
13426         Add un-optimized marshalling/demarshalling routines.
13427
13428 2002-12-25  Harri Porten  <porten@kde.org>
13429
13430         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13431
13432 2002-12-24  Zack Rusin  <zack@kde.org>
13433
13434         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13435         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13436         main loop stuff
13437
13438 2002-12-24  Havoc Pennington  <hp@pobox.com>
13439
13440         * glib/dbus-gthread.c: fix include
13441
13442         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13443         I think glib API needs to change, though, as you don't
13444         want to use DBusMessageFunction, you want to use the
13445         DBusMessageHandler object. Probably
13446         dbus_connection_open_with_g_main_loop()
13447         and dbus_connection_setup_g_main_loop() or something like that
13448         (but think of better names...) that just create a connection
13449         that has watch/timeout functions etc. already set up.
13450
13451         * dbus/dbus-connection.c
13452         (dbus_connection_send_message_with_reply): new function just to
13453         show how the message handler helps us deal with replies.
13454
13455         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13456
13457         * dbus/dbus-string.c (_dbus_string_test): free a string that
13458         wasn't
13459
13460         * dbus/dbus-hash.c: use memory pools for the hash entries
13461         (rebuild_table): be more paranoid about overflow, and
13462         shrink table when we can
13463         (_dbus_hash_test): reduce number of sprintfs and write
13464         valid C89. Add tests for case where we grow and then
13465         shrink the hash table.
13466
13467         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13468
13469         * dbus/dbus-connection.c (dbus_connection_register_handler)
13470         (dbus_connection_unregister_handler): new functions
13471
13472         * dbus/dbus-message.c (dbus_message_get_name): new
13473
13474         * dbus/dbus-list.c: fix docs typo
13475
13476         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13477         an object representing a handler for messages.
13478
13479 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13480
13481         * glib/dbus-glib.h:
13482         * glib/dbus-gthread.c: (dbus_gthread_init):
13483         Don't use the gdbus prefix for public functions.
13484
13485 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13486
13487         * Makefile.am:
13488         * configure.in:
13489         Add GLib checks and fixup .pc files
13490
13491         * glib/Makefile.am:
13492         * glib/dbus-glib.h:
13493         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13494         (gdbus_connection_check), (gdbus_connection_dispatch),
13495         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13496         (dbus_connection_gsource_new):
13497         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13498         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13499         * glib/test-dbus-glib.c: (message_handler), (main):
13500         Add GLib support.
13501
13502 2002-12-15  Harri Porten  <porten@kde.org>
13503
13504         * autogen.sh: check for libtoolize before attempting to use it
13505
13506         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13507         struct.
13508
13509         * .cvsignore: ignore more stamp files
13510
13511         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13512
13513         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13514         without make install.
13515
13516 2002-12-15  Havoc Pennington  <hp@pobox.com>
13517
13518         * dbus/dbus-threads.c: add thread stubs that a higher library
13519         layer can fill in. e.g. the GLib wrapper might fill them in with
13520         GThread stuff. We still need to use this thread API to
13521         thread-safe-ize the library.
13522
13523 2002-12-12  Havoc Pennington  <hp@pobox.com>
13524
13525         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13526         below new interfaces and include fewer system headers.
13527
13528         * dbus/dbus-sysdeps.c (_dbus_read): new function
13529         (_dbus_write): new function
13530         (_dbus_write_two): new function
13531         (_dbus_connect_unix_socket): new function
13532         (_dbus_listen_unix_socket): new function
13533
13534         * dbus/dbus-message-internal.h: change interfaces to use
13535         DBusString
13536
13537 2002-12-11  Havoc Pennington  <hp@pobox.com>
13538
13539         * dbus/dbus-types.h: add dbus_unichar
13540
13541         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13542
13543         * dbus/dbus-connection.c (dbus_connection_send_message): return
13544         TRUE on success
13545
13546         * dbus/dbus-transport.c: include dbus-watch.h
13547
13548         * dbus/dbus-connection.c: include dbus-message-internal.h
13549
13550         * HACKING: add file with coding guidelines stuff.
13551
13552         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13553         handling here, for security purposes (as in vsftpd). Not actually
13554         using this class yet.
13555
13556         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13557         system/libc usage here, as in vsftpd, for ease of auditing (and
13558         should also simplify portability). Haven't actually moved all the
13559         system/libc usage into here yet.
13560
13561 2002-11-25  Havoc Pennington  <hp@pobox.com>
13562
13563         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13564         always print the first verbose message.
13565
13566 2002-11-24  Havoc Pennington  <hp@pobox.com>
13567
13568         * test/echo-client.c, test/echo-server.c: cheesy test
13569         clients.
13570
13571         * configure.in (AC_CHECK_FUNCS): check for writev
13572
13573         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13574         function
13575
13576         * dbus/dbus-list.c (_dbus_list_foreach): new function
13577
13578         * dbus/dbus-internals.c (_dbus_verbose): new function
13579
13580         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13581         representing a server that listens for connections.
13582
13583         * dbus/.cvsignore: create
13584
13585         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13586         public API for reporting errors
13587
13588         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13589         public object representing a connection that
13590         sends/receives messages. (Same object used for
13591         both client and server.)
13592
13593         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13594         Basic abstraction for different kinds of stream
13595         that we might read/write messages from.
13596
13597 2002-11-23  Havoc Pennington  <hp@pobox.com>
13598
13599         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13600         _DBUS_INT_MAX
13601
13602         * dbus/dbus-test.c (main): add list test, and include
13603         dbus-test.h as intended
13604
13605         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13606         (_dbus_hash_table_remove_int): return value indicates
13607         whether the entry existed to remove
13608
13609         * dbus/dbus-list.c: add linked list utility class,
13610         with docs and tests
13611
13612         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13613         array sometimes.
13614
13615 2002-11-23  Havoc Pennington  <hp@pobox.com>
13616
13617         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13618         DBUS_END_DECLS to nothing, that should fix this once and for all
13619
13620         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13621
13622         * dbus/dbus-message.c, dbus/dbus-hash.c:
13623         add some missing @brief
13624
13625 2002-11-23  Havoc Pennington  <hp@pobox.com>
13626
13627         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13628         to avoid confusing Doxygen
13629
13630         * dbus/dbus-hash.c: @} not }@
13631
13632         * dbus/dbus-message.c (struct DBusMessage): split out
13633         internals docs
13634
13635 2002-11-23  Havoc Pennington  <hp@pobox.com>
13636
13637         * configure.in: pile on more warning flags if using gcc
13638
13639         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13640         to document static functions
13641
13642         * configure.in: add summary to end of configure so it
13643         looks nice and attractive
13644
13645         * dbus/dbus-hash.c: finish implementation and write unit
13646         tests and docs
13647
13648         * configure.in: add --enable-tests to enable unit tests
13649
13650         * dbus/dbus-test.c: test program to run unit tests
13651         for all files in dbus/*, initially runs a test for
13652         dbus-hash.c
13653
13654         * dbus/dbus-internals.h: file to hold some internal utility stuff
13655
13656 2002-11-22  Havoc Pennington  <hp@redhat.com>
13657
13658         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13659         "ported" away from Tcl
13660
13661         * dbus/dbus-types.h: header for types such as dbus_bool_t
13662
13663 2002-11-22  Havoc Pennington  <hp@redhat.com>
13664
13665         * dbus/dbus.h: fixups for doc warnings
13666
13667         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13668         macros
13669         (QUIET): make it quiet so we can see warnings
13670
13671         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13672
13673 2002-11-22  Havoc Pennington  <hp@redhat.com>
13674
13675         * Makefile.am: include "Doxyfile" target in all-local
13676
13677         * configure.in: generate the Doxyfile
13678
13679         * Doxyfile.in: move Doxyfile here, so we can use
13680         configure to generate a Doxyfile with the right
13681         version number etc.
13682
13683 2002-11-22  Havoc Pennington  <hp@redhat.com>
13684
13685         * dbus/dbus-message.c: move inline docs into .c file
13686
13687         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13688         so all docs are under doc/
13689         (MAN_EXTENSION): generate man pages. Use extension
13690         ".3dbus" which matches ".3qt" on my system,
13691         I guess this is OK, I don't know really.
13692         (FILE_PATTERNS): look for .c files not .h, makes sense
13693         for plain C I think
13694
13695 2002-11-22  Havoc Pennington  <hp@pobox.com>
13696
13697         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13698         because any app can be a server, and any app can be a client,
13699         the bus is a special kind of server.
13700
13701 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13702
13703         * Doxyfile : adding. Still needs Makefile rules to be generated
13704         automatically (just run "doxygen" in the toplevel dir for now to
13705         generate docs)
13706
13707         * dbus/dbus-message.h : Adding sample docs (javadoc since
13708         resembles gtk-doc a little more)
13709
13710         * dbus/dbus.h : Adding sample docs
13711
13712 2002-11-21  Havoc Pennington  <hp@redhat.com>
13713
13714         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13715         so we can allow ourselves to include files directly,
13716         instead of having to use dbus.h
13717
13718         * dbus/dbus.h: fill in
13719
13720         * dbus/dbus-message.h: sketch out a sample header file.
13721         Include griping if you include it directly instead of
13722         via dbus.h
13723
13724         * dbus/dbus-macros.h: new file with macros for extern "C",
13725         TRUE/FALSE, NULL, etc.
13726
13727         * doc/file-boilerplate.c: put include guards in here
13728
13729 2002-11-21  Havoc Pennington  <hp@redhat.com>
13730
13731         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13732
13733         * COPYING: include the GPL as well, and license code
13734         under both AFL and GPL.
13735
13736 2002-11-21  Havoc Pennington  <hp@redhat.com>
13737
13738         * acconfig.h: get rid of this
13739
13740         * autogen.sh (run_configure): add --no-configure option
13741
13742         * configure.in: remove AC_ARG_PROGRAM to make
13743         autoconf complain less. add AC_PREREQ.
13744         add AC_DEFINE third arg.
13745
13746 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13747
13748         * doc/Makefile.am:
13749         Fix references so we can distcheck.
13750
13751 2002-11-21  Havoc Pennington  <hp@redhat.com>
13752
13753         * Initial module creation
13754