2006-07-17 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-07-17  Havoc Pennington  <hp@redhat.com>
2
3         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
4         ints, reported by Owen Taylor
5
6 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
7
8         * doc/TODO:
9         * dbus/dbus-bus.c:
10         * dbus-errors.c:
11         * dbus/dbus-marshal-validate.c:
12           Removed TODO items which were fixed or are no longer relevent
13
14 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
15
16         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
17         Remove stray files from the stripped bindings
18
19 2006-07-16  Havoc Pennington  <hp@redhat.com>
20
21         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
22         Improve the error message on reply timeout
23
24 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
25
26         * Remove all bindings
27
28 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
29
30         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
31         and set pending_reply out arg to NULL is connection is disconnected
32         (connection_timeout_and_complete_all_pending_calls_unlocked): New
33         static method for cleaning up pending calls on disconnect
34         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
35         calls queued timeouts on disconnect 
36
37          * dbus/dbus-pending-call.ci (_dbus_pending_call_set_connection):
38         Remove 
39
40 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
41
42         * bus/activation.[ch] (bus_activation_list_services): new function to 
43         get the list of services that can be activated
44
45         * bus/dispatch.c: test coverage for the new bus method
46         ListActivatableNames
47
48         * bus/driver.c: new bus method ListActivatableNames to get the list of
49         services that can be activated
50
51         * doc/dbus-specification.xml: ListActivatableNames method documentation
52
53 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
54         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
55         source files
56
57 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
58         * dbus/dbus-message-factory.c:
59         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
60
61 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
62         * dbus/dbus-connection-internal.h:
63         * dbus/dbus-connection.c:
64         * file dbus/dbus-pending-call.c:
65         * dbus/dbus-pending-call.h:
66         Make DBusPendingCall an opaque type even to D-Bus internals
67
68 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
69
70         * dbus/dbus-connection.h: remove connection_disconnect and replace with
71         connection_close
72
73         * dbus/dbus-connection.c: include dbus-bus.h
74         (_dbus_connection_read_write_dispatch): make static
75
76 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
77
78         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
79         function
80         (dbus_connection_dispatch): On disconnect unref any shared connections
81
82         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
83         for cleaning up shared connections on disconnect
84         (internal_bus_get): get a hard refrence to shared connections when
85         they are created
86         
87         * doc/TODO: Remove items which are no longer relevent or have been fixed
88         Split 1.0 todo items with a 0.90 freeze todo list
89  
90 2006-06-14  Ross Burton  <ross@openedhand.com>
91
92         * glib/dbus-gobject.c:
93         Free a leaking GArray (surely not!) in dbus_g_method_return.
94
95 2006-06-14  Ross Burton  <ross@openedhand.com>
96
97         * tools/Makefile.am:
98         * tools/dbus-monitor.c:
99         Don't use the GLib bindings in dbus-monitor (patch from Ralf
100         Habacker).
101         
102 2006-06-14  Ross Burton  <ross@openedhand.com>
103
104         * tools/dbus-print-message.c:
105         Also print the object path when outputting signals or method calls.
106
107 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
108
109         * qt/src/Makefile.am: install the qdbus.h header.
110         This allows people to actually use the installed code.
111
112 2006-06-12  Ross Burton  <ross@openedhand.com>
113
114         * glib/dbus-gproxy.c:
115         Don't leak a GArray when firing signals (thank Rob Taylor for review).
116
117 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
118
119         * Released 0.62
120
121 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
122
123         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
124         break pedantic builds. Closes bug 6043 (patch approved by
125         Havoc back in February).
126
127 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
128
129         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
130         that took a QDBusMessage parameter.
131         * qt/src/qdbusbus.h: Add a default flag for RequestName.
132         * qt/tools/dbus.cpp: Don't use automatic call because we might
133         be calling an async method: request a reply.
134
135 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
136
137         * test/qt/*: Update the testcases, including testing the new
138         functionality of sending null QByteArray and QString over the
139         bus. Add new headertest test and restore the old
140         qdbusxmlparser test.
141
142 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
143
144         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
145         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
146
147         * qt/examples/Makefile.am:
148         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
149         form.
150
151         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
152         QByteArray() (nulls) over the bus.
153         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
154         the one that has the signature suffix stripped.
155         * qt/src/qdbusreply.h: Make some methods const.
156
157 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
158
159         Patch from Timo Hoenig <thoenig@suse.de>.
160
161         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
162         required during build to EXTRA_DIST.
163         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
164         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
165         * configure.in: Fix "make dist", take care that the Makefile for
166         qt/dbus is being generated.
167
168 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
169
170         * bus/bus.c: Fix eavesdropping on method calls
171
172 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
173
174         * configure.in:
175         * dbus/dbus-userdb-util.c:
176         Add Solaris console owner patch from Artem Kachitchkine
177
178 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
179
180         * qt/Makfile.am:
181         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
182         reorganisation. Thanks to Timo Hoenig for pointing this out.
183
184 2006-06-06  Robert McQueen  <robot101@debian.org>
185
186         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
187           call to dbus_g_type_get_struct.
188
189 2006-06-06  Robert McQueen  <robot101@debian.org>
190
191         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
192           pointers were put into a GPtrArray-based specialised collection, and
193           then freed along with the array. GValues which you add into
194           collections or maps which have the NOCOPY flag set are assumed to not
195           belong to the caller, so rather than the existing pointer-stealing
196           semantics, they are copied instead. Given that the main consumers of
197           this abstraction are the bindings themselves, I don't think this is
198           too bad, but others should watch their choice of take vs set_static.
199
200 2006-06-06  Robert McQueen  <robot101@debian.org>
201
202         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
203           of g_slist_prepend not being used. Fixed copying of slist-based
204           specialised collections, then wrote a test case and found that it was
205           all broken. Went on to fix iterating and appending too. Good thing
206           nobody uses this code yet.
207
208 2006-06-06  Robert McQueen  <robot101@debian.org>
209
210         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
211           the iterators use gvalue_take_ptrarray_value (the GValues themselves
212           are discarded without unsetting, so it makes no difference whether
213           we take or set_static). Remove cases for G_TYPE_POINTER because
214           there really is nothing useful we can do with them in our
215           specialised types - we *need* boxed copy/free functions at the very
216           least.
217
218 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
219
220         * qt/dbus: Add directory. I had forgotten to add this
221         yesterday after the move...
222
223         * qt/examples/Makefile.am:
224         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
225
226         * qt/tools/Makefile.am:
227         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
228         Added feature to get and set properties.
229         Added validation of service, object path and interface names.
230
231         * qt/tools/dbusidl2cpp.cpp: Two new features:
232         1) Allow specifying both the header and the source file names,
233         by separating them with a colon.
234         2) Don't write an interface output if the -p switch wasn't
235         given, but the -a was.
236
237         * qt/src/*: Fix usage of Iterators and ConstIterators.
238         Fix shadowing of variables by other variables (-Wshadow).
239         Fix keyword-cleanliness in headers.
240         Fix ASCII-cast (QLatin1String, QLatin1Char).
241         Fix validation of member names.
242         Add extra checking of introspection data during XML parsing.
243         Various bug fixes.
244
245 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
246
247         * dbus/Makefile.am:
248         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
249         qt/dbus/qdbus.h now.
250
251 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
252
253         * configure.in: Make --disable-qt actually do
254           something. Patch inspired by Zack Rusin.
255
256 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
257
258         * qt/: Update to Subversion r548032.
259         This includes a big reorganisation of the files inside the
260         subdir.
261
262 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
263
264         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
265         clear:  
266         "Failed to connect to socket <host>:<port> <error>" instead of
267         "Failed to connect to socket <host>: <error>:<port>"
268
269         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
270         for a tcp transport. 
271
272 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
273
274         * qt/*: Update the QtDBus bindings up to revision 546310 in
275         Subversion.
276         This adds the dbuscpp2xml tool, that parses a C++ header and
277         outputs a D-BUS Introspection XML.
278
279 2006-05-21  Havoc Pennington  <hp@redhat.com>
280
281         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
282         is not NULL when it shouldn't be. Also a couple of possible fixes
283         for #4637 though I don't understand why the bug happens, to be
284         honest... also the object constructor has an assert name != NULL
285         and the name is only currently NULL for peer-to-peer proxies that 
286         I don't think anyone uses? So it should be asserting.
287         Anyway, for now at least see if we get an earlier assertion failure.
288
289         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
290         apparently broken code to be sure the tests fail and someone 
291         will fix them...
292
293 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
294
295         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
296         and arrays when they had a single element: has_next returns
297         false, even before you read the element. So, instead, check
298         the array length.
299
300 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
301
302         * qt/qdbusmessage.cpp:
303         * qt/qdbustypehelper_p.h:
304         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
305         the list is a const-reference
306
307 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
308
309         * Adding old doc patch that never got applied
310         
311         * dbus/bus.c (dbus_bus_add_match): Add documentation
312
313         * doc/dbus-specification.xml: Add documentation for the match rules
314           and the AddMatch and RemoveMatch methods
315
316 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
317
318         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
319         call (r535506)
320
321         * qt/dbusidl2cpp.cpp:
322         * qt/qdbusabstractadaptor.cpp:
323         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
324         sibling of the QDBusAbstractAdaptor objects instead of the
325         parent. (r535848)
326
327         * qt/dbusidl2cpp.cpp:
328         * qt/qdbusabstractinterface.cpp:
329         * qt/qdbusabstractinterface.h:
330         * qt/qdbusabstractinterface_p.h:
331         * qt/qdbusinterface.cpp: Make properties in interfaces
332         actually work. The code that was generated would not compile,
333         due to moc calls to functions that did not exist. They now
334         shall. (r536571)
335
336 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
337
338         * Makefile.am:
339         * configure.in:
340         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
341         Thanks to Brad Hards for providing the patch
342
343 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
344
345         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
346         call. (r535506)
347
348 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
349
350         * qt/examples/dbus.cpp: Enhance error messages and use
351         QDBusInterfacePtr.
352
353 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
354
355         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
356         and disable the copy operators. (r533772, r534746)
357
358         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
359
360         * qt/qdbusabstractinterface.cpp:
361         * qt/qdbusabstractinterface.h: Change the default call mode to
362         not use the event loop. Add convenience call() methods that
363         take a CallMode parameter. (r534042)
364
365         * qt/qdbusconnection.h: Change the default call mode to not
366         use the event loop. (r534042)
367
368         * qt/qdbusinterface.cpp:
369         * qt/qdbusinterface.h: Add a method to tell us if the
370         interface is valid (since we don't return a null pointer
371         anymore) (r534099)
372
373         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
374         (r534101)
375
376         * qt/qdbusinternalfilters.cpp: Decouple the introspection
377         function in two so taht we get the chance to introspect
378         without having a QDBusMessage (r534102)
379
380         * qt/qdbusbus.h:
381         * qt/qdbusconnection.cpp:
382         * qt/qdbusconnection_p.h:
383         * qt/qdbusintegrator.cpp: Keep a list of our own names to
384         avoid a round-trip to the server when attempting to introspect
385         one of our own objects. Also make sure the filter functions
386         match the empty interface as well. (r534108)
387         Don't keep the connection names. Instead, trust the unique
388         connection name (r534111)
389         Remove event loop usage (r534112)
390
391 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
392
393         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
394         Brad Hards.
395
396 2006-04-28  Robert McQueen  <robot101@debian.org>
397
398         * glib/dbus-gproxy.c: Fix properties so that they can be given in
399         any order, making it easier for people who inherit from this
400         object.
401
402 2006-04-28  Robert McQueen  <robot101@debian.org>
403
404         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
405         of memory from within pointer arrays and lists. Fixes bug #6300.
406
407 2006-04-28  Robert McQueen  <robot101@debian.org>
408
409         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
410         generating struct signatures. Fixes bug #6083.
411
412 2006-04-28  Robert McQueen  <robot101@debian.org>
413
414         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
415         to qdbusconnection_p.moc.
416
417 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
418
419         * README, INSTALL: Doc fixes
420         Patch from Brad Hards <bradh at frogmouth.net>
421
422 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
423
424         * qt/examples/dbus.cpp: Use the new merged-interface mode for
425         the dynamic meta object. No need to guess which interface to
426         call.
427
428 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
429
430         * qt/qdbusconnection_p.h:
431         * qt/qdbusmetaobject.cpp:
432         * qt/qdbusmetaobject_p.h:
433         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
434         for the dynamic meta object. No need to guess which
435         interface to call.
436         * qt/qdbusabstractinterface_p.h:
437         * qt/qdbusconnection.cpp:
438         * qt/qdbusintegrator.cpp:
439         * qt/qdbusinterface.cpp:
440         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
441         Add a QDBusRef that looks and behaves like DCOPRef.
442
443 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
444
445         * dbus/dbus-connection.c: Interfaces are optional in method
446         calls, so don't give up if the interface parameter is NULL.
447         Patch reviewed by Havoc Pennington.
448
449 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
450
451         * qt/qdbusreply.h: Add default constructor and operator=
452           (r532625)
453         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
454           in public headers (r532952)
455         * qt/qdbusabstractinterface.cpp:
456         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
457           make it the default (r532951)
458
459 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
460
461         * dbus/dbus-connection.c: Fix asserts
462         Patch from Tim Moloney <t.moloney at verizon.net>
463
464 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
465
466         * mono/Connection.cs, mono/Message.cs: Check Target type
467         Patch from Aaron Bockover (abockover at novell.com)
468
469 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
470
471         * INSTALL: fine-tune the requirements for the Qt4 binding.
472
473 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
474
475         * tools/dbus-print-message.c: Added support for printing of all 
476           remaining data types. Fixed logic for indentation of compound
477           data types.
478         
479 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
480
481         * INSTALL: fill out content of file providing DBus specific
482           build installations, followed by generic Auto* INSTALL file
483           content
484         
485 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
486
487         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
488           Patch by Stefan Eilers. (r529537)
489
490 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
491
492         * qt/qdbusinternalfilters.cpp: Don't show the parent's
493           contents (r528208)
494
495 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
496
497         * qt/Makefile.am: fix the dependency for
498           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
499           not in qdbusconnection.cpp.
500           Thanks to Jakub Stachowski <stachowski@hypair.net> for
501           spotting this.
502
503 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
504
505         * qt/examples/listnames.cpp:
506         * qt/examples/Makefile.am: Three ways to list the names on the
507           bus.
508
509 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
510
511         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
512           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
513
514 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
515
516         Merge from Subversion:
517         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
518           something that exists (r526315)
519         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
520           slots/signals (r526316)
521         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
522           also return an unknown-method error if the parameters don't
523           match for org.freedesktop.DBus.Properties. (r526842)
524         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
525         * qt/qdbusintegrator.cpp: Restore the proper order of
526           delivery: don't make method returns be delivered on priority
527           (r528150)
528
529 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
530
531         * configure.in qt/Makefile.am: add qt/examples
532         * qt/examples: Add QtDBus example programs:
533           - hello: Hello, World
534           - ping: Simple method-calling program
535           - pong: Simple object-exporting program (not using adaptors)
536           - complexping: Interactive method-calling program 
537                 (also gets and sets properties).
538           - complexpong: Sample program exporting methods, signals and
539                 properties, using adaptors.
540           - dbus: Simple implementation of a generic method-calling
541                 program, similar to 'dbus-send', but with semantics
542                 similar to 'dcop'.
543           - chat: Simplistic chat program, implemented using signals
544                 and the system bus. Looks like IRC.
545
546 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
547
548         * configure.in: Detect QtGui (necessary for one of the
549           example programs). Note: this increases the minimum required
550           version of Qt to 4.1.3.
551
552 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
553
554         * test/qt/*: Sync with KDE Subversion revision 523647.
555         Update the testcases to the new API. Remove testcases for
556         classes that are no longer public or have been removed.
557
558 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
559
560         * qt/*: 
561         * dbus/qdbus.h: Sync with KDE Subversion revision
562         523647. Hopefully, this will be the last of the
563         source-incompatible changes. Documentation has been improved;
564         support for QList<basic-types> has been added; QDBusObject is
565         gone; QDBus(Abstract)Interface is now a QObject with
566         auto-generated meta-object; QDBusIntrospection is marked
567         private, since QMetaObject can be used now; lots of bugfixes.
568
569 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
570
571         Patch from Milosz Derezynski <internalerror at gmail.com>
572         
573         * configure.in:
574         Output the service directory in the configure summary
575
576         * dbus-1.pc.in:
577         Add session_bus_services_dir
578
579 2006-03-10  Ross Burton  <ross@openedhand.com>
580
581         * tools/dbus-print-message.c:
582         Add support for object paths and signatures.
583
584 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
585
586         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
587         config reload.
588         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
589         information caches
590         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
591         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
592         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
593         * dbus/dbus-userdb.h: Add function to flush all user/group information
594         caches.
595
596 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
597
598         * qt/dbusidl2cpp.cpp:
599         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
600         for dcopidl2cpp, found in the KDE installations (or the more
601         modern kalyptus): generate Qt4 C++ code for the input XML
602         introspection. Currently no IDL parsing.
603
604 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
605
606         * test/qt/*: Update the self-tests.
607
608 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
609
610         * qt/*: 
611         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
612         represents the first feature-complete version of the Qt4
613         bindings since I took ove maintainership.
614
615 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
616
617         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
618         dir. This is C++, so we can't use the DBus ones.
619
620 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
621
622         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
623         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
624
625 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
626
627         * dbus/dbus-connection.c: 
628         (_dbus_connection_block_pending_call):
629         Check to see if our data has already been read off the connection
630         by another blocking pending call before we block in poll.
631         (check_for_reply_and_update_dispatch_unlocked):
632         Code taken from _dbus_connection_block_pending_call - checks for
633         an already read reply and updates the dispatch if there is one.
634
635         * test/name-test/test-pending-call-dispatch.c:
636         New test for making sure we don't get stuck polling a 
637         dbus connection which has no data on the socket when
638         blocking out of order on two or more pending calls.
639
640 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
641
642         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
643         make/automake don't detect that we're talking about the same
644         .lo file if I specify the full path to the source files.
645
646 2006-02-26  Havoc Pennington  <hp@redhat.com>
647
648         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
649
650         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
651         session bus variable is unset, suggest "man dbus-launch" and "man
652         dbus-daemon" to figure out how to fix the problem
653
654 2006-02-25  Havoc Pennington  <hp@redhat.com>
655
656         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
657         should make this thing use the new glib options parser
658
659 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
660
661         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
662         .lo files taking moc sources.
663
664 2006-02-25  Havoc Pennington  <hp@redhat.com>
665
666         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
667         and install it as a public header
668
669 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
670
671         * Released 0.61
672
673 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
674         
675         * proxies.py: Fix the callchain
676
677 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
678         
679         * patch from Sjoerd Simons <sjoerd at debian.org>:      
680
681         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
682         dbus/dbus-sysdeps.c
683
684         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
685         call _dbus_group_info_free_allocated which causes infinite loop,
686         correctly call _dbus_group_info_free
687
688 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
689
690         * qt/qdbusinterface_p.h:
691         * qt/qdbusinterface.cpp: Use the standard
692         org.freedesktop.DBus.Method.NoReply annotation for the "async"
693         calls instead of creating one for us.
694
695         * qt/qdbusconnection_p.h:
696         * qt/qdbusintegrator.cpp: Remove debugging code.
697
698         * qt/qdbusintegrator.cpp:
699         * qt/qdbusmessage.cpp:
700         * qt/qdbusmessage_p.h:
701         * qt/qdbusmessage.h: Change the behaviour of automatic
702         reply-sending: now a reply is always sent, unless the caller
703         didn't request one or if the user slot has already sent one.
704
705 2006-02-16  Robert McQueen  <robot101@debian.org>
706
707         * configure.in: Patch from Debian packages by Sjoerd Simons
708         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
709         arguments so it's possible to build both bindings in the
710         same tree.
711
712         * qt/Makefile.am: Fix truncated value so that make dist works.
713
714 2006-02-16  Robert McQueen  <robot101@debian.org>
715
716         * acinclude.m4, configure.in: Patch from Brad Hards
717         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
718         improving quoting, re-ordering a few checks, and a few other
719         aesthetic tidy-ups.
720
721 2006-02-16  Robert McQueen  <robot101@debian.org>
722
723         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
724         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
725         assertion that the next element to read from the iter is fixed in
726         size. This is not the case when you are at the end of the iter,
727         because the next element type is INVALID.
728
729         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
730         a bogus assert which means that you may not initialise a 0-length
731         string unless you provide a non-NULL pointer. This prevented
732         you from marshalling messages containing zero-length arrays in
733         some cases.
734
735         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
736         from Rob to correct bogus asserts when trying to demarshal an
737         array and get_fixed_array got you 0 elements. Append nothing to
738         the GArray in this case.
739
740         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
741         an empty array via the glib bindings. Without all of the above
742         patches, this new test fails.
743
744 2006-02-16  Robert McQueen  <robot101@debian.org>
745
746         * glib/dbus-gmain.c: Make the previous commit compile.
747
748         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
749         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
750         specify sender_keyword="foo", path_keyword="bar" when adding
751         a signal listener, so that you can bind to signals generically
752         but still do something useful in your callback.
753
754         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
755         chars so that they're not cast to chars and made negative. Thanks
756         to Jakub Stachowski for reporting this and testing the fix.
757
758 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
759
760         * dbus/dbus-glib.h:
761         * glib/dbus-gmain.h:
762         (dbus_g_connection_open): new method for openning
763         a connection to an arbitrary address in the glib bindings
764
765         * ChangeLog: checkin last entry which doesn't seem to be commited
766
767 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
768
769         * tools/dbus-launch.c: Fixed sh syntax output
770
771 2006-02-13  Robert McQueen  <robot101@debian.org>
772
773         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
774         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
775         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
776         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
777         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
778         missing piece of the glib bindings jigsaw puzzle. This modifies
779         the existing specialised types to have N type parameters (rather
780         than the current 1 or 2 for arrays and dictionaries respectively).
781         You can then use this to get a glib type to represent any arbitrary
782         D-Bus struct type using dbus_g_type_get_struct. The only
783         implementation of these types is with GValueArrays as before,
784         but it's now possible to store these in arrays, emit them in
785         signals, etc.
786
787 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
788
789         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
790         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
791         <thiago.macieira at trolltech.com>
792
793 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
794
795         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
796         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
797
798 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
799
800         * bus/connection.c (bus_connections_expect_reply): Make
801         pending reply limit not common to all connections (Bug #5416)
802         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
803
804 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
805
806         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
807
808 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
809
810         * gcj/Makefile.am: point to correct jar command (Bug #4529)
811         patch from Doug Goldstein <cardoe at gentoo.org>
812
813 2006-02-09  Joe Shaw  <joeshaw@novell.com>
814
815         * mono/Arguments.cs: Fix a magic number in the mono bindings
816         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
817
818 2006-01-27  Robert McQueen  <robot101@debian.org>
819
820         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
821         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
822         when generating the client-side methods, instead of overloading
823         CSymbol which broke everything horribly. My apologies.
824
825 2006-01-27  Robert McQueen  <robot101@debian.org>
826
827         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
828         by me and Rob Taylor to add a simple_free function to D-Bus map
829         and collection types, which allows those types which can be freed
830         with a GDestroyNotify (such as GHashTables and GArrays, but not
831         GPtrArrays) to be stored as the values in hashtables.
832
833         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
834         Patch by Rob Taylor to add nested dicts to the glib tests to check
835         the above code works, and appears not to leak when called repeatedly.
836
837 2006-01-27  Robert McQueen  <robot101@debian.org>
838
839         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
840         to free a D-Bus allocated string with dbus_free () instead of
841         g_free ().
842
843 2006-01-27  Iain Holmes  <iain@openedhand.com>
844
845         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
846         method from being called multiple times.
847
848 2006-01-19  Robert McQueen  <robot101@debian.org>
849
850         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
851         <rob.taylor@collabora.co.uk> to add support for generating bindings
852         to arrays that are represented as GPtrArrays rather than GArrays (ie
853         size-variable things, such as strings, objects, structs, etc).
854
855 2006-01-05  Robert McQueen  <robot101@debian.org>
856
857         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
858         <ricardo.kekki@movial.fi> to make it possible to inherit from
859         DBusGProxy, by splitting the DBusGProxy struct into a public part and
860         a private part, and moving the setting of the DBusGProxyManager into a
861         connection property, allowing proper GObject construction.
862
863 2006-01-05  Robert McQueen  <robot101@debian.org>
864
865         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
866         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
867         annotations when generating glib client bindings.
868
869 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
870
871         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
872
873         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
874
875 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
876
877         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
878
879 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
880
881         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
882
883 2005-12-19  Ross Burton  <ross@openedhand.com>
884
885         * doc/dbus-tutorial.xml:
886         Document the Glib client-side bindings, and list all possible annotations.
887
888 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
889
890         * dbus/bus.c (dbus_bus_release_name): Add documentation
891
892 2005-12-06  Robert McQueen  <robot101@debian.org>
893
894         * python/service.py: s/sucessful/successful/ so we're allocating to
895         and reading from the same variable. Oops.
896
897 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
898
899         * Released 0.60
900
901 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
902
903         * test/qt/Makefile.am: build from srcdir
904
905         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
906         Note - this code is wrong and needs to be fixed by the Qt binding
907         developers.  The flags should be treated as bitfields and not enums.
908
909         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
910
911 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
912
913         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
914           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
915           in production code
916
917 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
918
919         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
920         method for getting messages off the bus in the absence of a
921         mainloop.  This method is much like 
922         dbus_connection_read_write_dispatch except it does not dispatch
923         the messages to a registered filter function.  Instead it
924         allows a developer to process messages by directly popping
925         them off the bus.
926
927 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
928
929         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
930         the parser to continue instead of returning error
931         (bus_desktop_file_load): Do not free parser data when
932         parse_section_start or parse_key_value fails because it was 
933         already freed by parser_free (patch from Carlos Garcia Campos  
934         <carlosgc at gnome.org>)
935
936 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
937
938         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
939         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
940         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
941         test/test-segfault.c, test/test-utils.c,
942         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
943         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
944         Various cleanup of dead code and compiler warnings (patch from
945         Kjartan Maraas <kmaraas at gnome.org>) 
946
947 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
948
949         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
950         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
951
952 2005-11-27  Robert McQueen  <robot101@debian.org>
953
954         * python/dbus_bindings.pyx: Repair my previous commit which reverted
955         part of the preceding one. Oops. Merge patch by Johan Hedberg
956         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
957         on big-endian platforms.
958
959         * test/python/test-client.py: Add some 16-bit integers to the test
960         values.
961
962 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
963
964         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
965         method return message for property getters
966
967 2005-11-27  Robert McQueen  <robot101@debian.org>
968
969         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
970         with type v of an instance of dbus.Variant(foo, type='x') caused
971         it to be boxed twice before sending over the bus.
972
973         * python/dbus_bindings.pyx, python/service.py,
974         test/python/test-client.py: Update the constants for the new
975         request_name flags, and update comments/test cases now that queueing
976         is the default action.
977
978 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
979
980         * configure.in:
981         - Change version to 0.60 for impending release
982         - upped the sonames because of ABI and API breakage
983
984 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
985
986         * configure.in: Add test/name-test/Makefile to the generated
987         Makefile list
988
989         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
990         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
991         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
992         not to queue an ower if it can't be the primary owner
993
994         * bus/bus.h: Add new internal BusOwner struct
995
996         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
997         to bus_registry_ensure and don't set the prohibit_replacement flag
998         since they are now set per BusOwner and not per name.
999         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1000         that returns the list of connections in a name's connection queue
1001         
1002         * bus/services.c (struct BusService): remove prohibit_replacement field
1003         (struct BusOwner): new struct for keeping track of queued connections
1004         and their associated flags for the queue
1005         (struct BusRegistry): add a BusOwner memory pool
1006         (bus_registry_new): initialize the BusOwner memory pool
1007         (bus_registry_unref): free the BusOwner memory pool
1008         (_bus_service_find_owner_link): new internal method for
1009         searching the queue for a specific connection
1010         (bus_owner_set_flags): new method for adding setting the flags on a
1011         bus owner
1012         (bus_owner_new): new method that creates a BusOwner object from the
1013         pool and sets its flags
1014         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1015         (bus_registry_ensure): Add the flags parameter
1016         (bus_registry_acquire_service): Switch from using raw connections to
1017         using the BusOwner struct
1018         Add new state machine for dealing with the new set of flags
1019         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1020         cancel_ownership, free_ownership_cancel_data, 
1021         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1022         restore_ownership, free_ownership_restore_data, 
1023         add_restore_ownership_to_transaction): Switch to using BusOwner 
1024         instead of raw connections
1025         (bus_service_add_owner): Add flags parameter
1026         Switch to using BusOwner instead of raw connections
1027         Add state machine for dealing with the new set of flags
1028         (bus_service_swap_owner): Swaps the first and second owners in the
1029         queue.  Used to make sure proper signals are sent when a service looses 
1030         or gains primary ownership.  We never insert an owner at the top of the
1031         queue.  Instead we insert it in the second position and then swap.
1032         (bus_service_remove_owner): Remove the owner from the queue sending
1033         out the NameLost and NameOwnerChanged signals if the we were the 
1034         primary owner
1035         (bus_service_get_primary_owners_connection): New method that extracts
1036         the connection from the primary owner
1037         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1038         connection
1039         (bus_service_get_allow_replacement): Changed from the old 
1040         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1041         primary owner and returns if it can be replaced or not
1042         (bus_service_set_prohibit_replacement): removed
1043         (bus_service_has_owner): returns TRUE if and owner with
1044         the specified connection exists in the queue
1045         
1046         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1047         method that only compiles if tests are enabled.  Allows us to get the 
1048         unique name of a connection so we can check it against the queue when
1049         doing regression tests
1050
1051         * bus/activation.c (bus_activation_send_pending_auto_activate),
1052         bus/dispatch.c (bus_dispatch),  
1053         bus/driver.c (bus_driver_handle_get_service_owner, 
1054         bus_driver_handle_get_connection_unix_user, 
1055         bus_driver_handle_get_connection_unix_process_id,
1056         bus_driver_handle_get_connection_selinux_security_context),
1057         bus/signals.c (connection_is_primary_owner): 
1058         use bus_service_get_primary_owners_connection instead of
1059         bus_service_get_primary_owner
1060
1061         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1062         _dbus_listen_unix_socket): Calculate the length of the socket
1063         path and use that instead of using a fixed length which was
1064         causing socket names to contain many trailing Nul bytes.
1065
1066         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1067         (dbus_g_method_get_sender): New method for extracting the sender 
1068         from a DBusGMethodInvocation
1069         (dbus_g_method_return_get_reply): changed name to 
1070         dbus_g_method_get_reply
1071         (dbus_g_method_return_send_reply): changed name to
1072         dbus_g_method_send reply
1073
1074         * doc/dbus-specification.xml: New docs that describe how the new
1075         queueing system works and talks about the changes to the how
1076         we specify socket names
1077
1078         * glib/examples/example-service.c, 
1079         glib/examples/example-signal-emitter.c,
1080         glib/examples/statemachine/statemachine-server.c:
1081         Changed the RequestName flags to the new system
1082
1083         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1084         regression test suite for testing various states of the new
1085         queueing system
1086         
1087 2005-11-15  Robert McQueen  <robot101@debian.org>
1088
1089         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1090         Taylor to add two methods, dbus_g_method_return_get_reply and
1091         dbus_g_method_return_send_reply, to allow you to get the reply
1092         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1093         and send it. The GLib bindings can't marshal a return value of
1094         something like a(s) if the array is empty - ultimately they should be
1095         made to heed the signature of the out arguments as the Python bindings
1096         now can, but this is a workable interim solution which might have
1097         other applications.
1098
1099 2005-11-15  Robert McQueen  <robot101@debian.org>
1100
1101         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1102         method to org.freedesktop.DBus to release a bus name or give up
1103         waiting in the queue for it.
1104
1105         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1106         dbus_bus_release_name method to send the ReleaseName method calls.
1107         Add constants for the return values to dbus/dbus-shared.h.
1108
1109         * doc/dbus-specification.xml: Document the new ReleaseName method
1110         in the specification.
1111
1112         * python/dbus_bindings.pyx: Add a low-level python binding for the
1113         release name method.
1114
1115         * python/exceptions.py, python/service.py: Make freeing BusName
1116         objects release the name. Add a NameExistsException, and fix a
1117         bug with creating UnknownMethodException.
1118
1119         * test/python/test-client.py: Add tests for freeing BusName
1120         objects causing names to be released.
1121
1122 2005-11-14  Robert McQueen  <robot101@debian.org>
1123
1124         * python/service.py: Include the traceback in the error reply when we
1125         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1126
1127 2005-11-14  David Zeuthen  <davidz@redhat.com>
1128
1129         Patch from Timo Hoenig <thoenig@suse.de>.
1130
1131         * bus/bus.c: I've recently investigated why the automatic reload
1132         of configuration files does not work as expected.
1133
1134         Currently, reloading configuration files does only work when
1135         running dbus-daemon with --nodaemon.  If we are running as daemon
1136         we're hitting a dnotify bug once we fork the process.
1137
1138         We're initializing the dnotify fds before calling fork().  Once
1139         the child process forked it does still have the fds (and they
1140         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1141         getting SIGIO as changes are made to the configuration files.
1142
1143         The attached patch moves the initialization of the dnotify fds to
1144         process_config_postinit().  This is safe for all current code
1145         paths and solves the dnotify disfunction.  If we're running
1146         dbus-daemon as daemon the fds for dnotify are now being
1147         initialized after fork() for the child process.
1148
1149         * configure.in: The current configure.in check for dnotify probes
1150         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1151         match for 'xlinux', too. Additionally I have adapted the configure
1152         option's style to match with the others.
1153
1154 2005-11-14  Robert McQueen  <robot101@debian.org>
1155
1156         * python/decorators.py, python/service.py: Add a new argument to the
1157         dbus.service.method decorator called sender_keyword, which if set,
1158         specifies the name of an argument which will be provided the bus
1159         name of the method caller.
1160
1161         * test/python/test-client.py, test/python/test-service.py: Add a
1162         method and test to check the sender_keyword functionality.
1163
1164 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1165
1166         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1167         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1168         Simons <sjoerd at luon.net>)
1169
1170         * AUTHORS: Add Robert McQueen for his work on the Python
1171         Bindings and other parts of D-Bus
1172
1173 2005-11-07  Robert McQueen  <robot101@debian.org>
1174
1175         * python/decorators.py: Change emit_signal function to use the
1176         signature annotation of the signal when marhsalling the arguments from
1177         the service. Fix a bug where the code checking signature length
1178         against argument length referenced the wrong variable.
1179
1180         * python/introspect_parser.py: Avoid adding the type signature of
1181         signal arguments to any methods which occur after them in the
1182         introspection data (!) by making the parser a little more careful
1183         about its current state.
1184
1185         * python/service.py: Remove debug prints from last commit (again :D).
1186
1187         * test/python/test-client.py, test/python/test-service.py: Add test
1188         signals with signature decorators to test the strict marshalling code
1189         gives errors at the right time. Could do with checking the signals
1190         actually get emitted too, given that the test does nothing with
1191         signals at the moment...
1192
1193 2005-11-07  Robert McQueen  <robot101@debian.org>
1194
1195         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1196         instances to stop madness of creating new instances representing
1197         the same bus connection all the time, rendering any tracking of
1198         match rules and bus names quite meaningless. Caught a bug where
1199         the private argument to SessionBus() and friends was being passed
1200         in as use_default_mainloop by mistake. Still some problems with
1201         multiple dbus_binding.Connection instances representing the same
1202         low-level connection (eg when you use both SessionBus() and
1203         StarterBus() in same process), but it's a lot better now than it
1204         was.
1205
1206         * python/dbus_bindings.pyx: Add constants with the return values
1207         for bus_request_name().
1208
1209         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1210         and retrieve the same instances for the same name, so deletion can be
1211         done with refcounting. Also now throws some kind of error if you
1212         don't actually get the name you requested, unlike previously...
1213
1214         * test/python/test-client.py: Add tests for instance caching of buses
1215         and bus name objects.
1216
1217 2005-11-04  Robert McQueen  <robot101@debian.org>
1218
1219         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1220         marshalling of boolean values. Add some booleans to the values in
1221         the test client.
1222
1223         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1224         argument to the dbus.service.method decorator, which allows you to
1225         name arguments to take two callback functions for replying with
1226         return values or an exception.
1227
1228         * test/python/test-client.py, test/python/test-service.py: Add test
1229         case using asynchronous method reply functions, both return values and
1230         errors, and from within both the function itself and from a mainloop
1231         callback.
1232
1233         * python/decorators.py, python/service.py: Perform checking that the
1234         number of method/signal arguments matches the number of types in the
1235         signature at class loading time, not when you first introspect the
1236         class.
1237
1238         * python/service.py: Remove debug print left by the last commit.
1239
1240 2005-11-03  Robert McQueen  <robot101@debian.org>
1241
1242         * python/service.py: Heavy refactoring of method invocation, with
1243         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1244         in favour of a new _message_cb that uses seperate functions for
1245         looking up the method to call, marshalling the return values, and
1246         sending exceptions as errors, and is easier to follow as a
1247         consequence.  Fixes some corner cases about returning things that
1248         don't match your declared out_signature, allows exceptions to define
1249         _dbus_error_name and have it be sent over the bus as the error name,
1250         and paves the way for cool stuff like heeding the message no reply
1251         flag, asynchronous method implementations, informing the method of the
1252         sender, and including backtraces in the error messages.
1253
1254         * test/python/test-client.py: Catch and print exceptions thrown in the
1255         async callback tests, rather than passing them to the low-level
1256         bindings to be ignored in a noisy and frustrating manner.
1257
1258 2005-11-03  Robert McQueen  <robot101@debian.org>
1259
1260         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1261         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1262         tweak others to be consistent.
1263
1264         * test/python/test-client.py: Tweak output of testInheritance.
1265
1266 2005-10-29  Robert McQueen  <robot101@debian.org>
1267
1268         * python/service.py: Major changes to allow multiple inheritance
1269         from classes that define D-Bus interfaces:
1270         
1271          1. Create a new Interface class which is the parent class of
1272             Object, and make the ObjectType metaclass into InterfaceType.
1273         
1274          2. Patch written with Rob Taylor to replace use of method_vtable
1275             with code that walks the class's __MRO__ (method resolution order)
1276             to behave like Python does when invoking methods and allow
1277             overriding as you'd expect. Code is quite tricky because
1278             we have to find two methods, the one to invoke which has the
1279             right name and isn't decorated with the /wrong/ interface,
1280             and the one to pick up the signatures from which is decorated
1281             with the right interface.
1282         
1283             The same caveats apply as to normal multiple inheritance -
1284             this has undefined behaviour if you try and inherit from two
1285             classes that define a method with the same name but are
1286             decorated with different interfaces. You should decorate
1287             your overriding method with the interface you want.
1288         
1289          3. Replace grungy introspection XML generation code in the metaclass
1290             with dictionaries that cope correctly with multiple inheritance
1291             and the overriding of methods. This also uses the signature
1292             decorations to provide correct introspection data, including
1293             the debut appearance of the types of your return values. :D
1294
1295         * test/python/test-client.py, test/python/test-service.py: Add a test
1296         case to try invoking an method that overrides one inherited from a
1297         D-Bus interface class.
1298
1299 2005-10-29  Robert McQueen  <robot101@debian.org>
1300
1301         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1302         Add checking for the end of struct character when marshalling a
1303         struct in MessageIter.append_strict.
1304
1305         * python/examples/example-service.py,
1306         python/examples/gconf-proxy-service.py,
1307         python/examples/gconf-proxy-service2.py: Update to use gobject
1308         mainloop directly rather than appearing to depend on gtk.
1309
1310         * python/test/test-client.py, python/test/test-server.py: Remove
1311         obsolete and broken test scripts for old bindings. We have up to date
1312         and working tests in test/python/.
1313
1314 2005-10-29  Robert McQueen  <robot101@debian.org>
1315
1316         * python/decorators.py: Add optional arguments to the method and
1317         signal decorators to allow you to specify the signature of arguments
1318         and return values. Preserve the doc strings of signal functions in the
1319         decorated version, for pydoc and friends.
1320
1321         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1322         parse_signature_block function with an iterable dbus.Signature()
1323         type. Fix a bug in MessageIter.append_strict where you could append
1324         anything by claiming it was a string.
1325
1326         * python/service.py: Use the out_signature decoration on methods to
1327         marshal return values, meaning you no longer require dbus.Array()
1328         or dbus.Dictionary() to indicate the type when returning empty
1329         arrays or dictionaries. Fix a bug where exceptions which are defined
1330         in __main__ are not turned into error replies.
1331
1332         * test/python/test-client.py, test/python/test-service.py: Add test
1333         for correct marshalling of return values according to out_signature.
1334         Fix a bug in the async call test where the error_handler is missing a
1335         self argument.
1336
1337 2005-10-29  Robert McQueen  <robot101@debian.org>
1338
1339         * glib/Makefile.am, glib/examples/Makefile.am,
1340         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1341         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1342
1343         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1344
1345         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1346         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1347         the command line.
1348
1349 2005-10-27  Ross Burton  <ross@openedhand.com>
1350
1351         * dbus/dbus-marshal-header.c:
1352         Remove dead code.
1353
1354         * glib/dbus-gobject.c:
1355         Stop compiler warning.
1356
1357 2005-10-25  Ross Burton  <ross@openedhand.com>
1358
1359         * dbus/dbus-auth.c:
1360         * dbus/dbus-server-unix.c:
1361         * dbus/dbus-transport-unix.c:
1362         * glib/dbus-gmain.c:
1363         * glib/dbus-gobject.c:
1364         Add some const keywords.
1365
1366 2005-10-25  Ross Burton  <ross@openedhand.com>
1367
1368         * doc/dbus-specification.xml:
1369         Document the NoReply annotation.
1370
1371         * glib/dbus-binding-tool-glib.h:
1372         * glib/dbus-binding-tool-glib.c:
1373         Respect the NoReply annotation.
1374
1375 2005-10-24  Robert McQueen <robot101@debian.org>
1376
1377         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1378         derive from unicode instead of str, and encode/decode UTF-8 when
1379         marshalling/unmarshalling bus messages
1380
1381         * python/introspect_parser.py: encode introspection data as UTF-8
1382         before passing the buffer into libxml2
1383
1384         * test/python/test-client.py: add unicode test strings
1385
1386         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1387         ignore generated python test files
1388
1389 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1390
1391         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1392         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1393         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1394
1395         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1396         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1397         when constructing struct signatures
1398
1399         * python/_dbus.py (Bus): handle private connections using the
1400         private keyword in the constructor. defaults to private=False
1401         (Bus::close): new method to close a connection to the bus
1402
1403         * python/dbus_bindings.pyx (Connection::close): renamed method
1404         was previously called disconnect
1405         (bus_get): now supports getting a private connection
1406
1407         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1408         keyword is set to True.  if it is, execute the method without waiting
1409         for a reply
1410         (ProxyObject::_introspect_execute_queue): new method for executing
1411         all the pending methods that were waiting for the introspect to
1412         finish.  this is called when introspect either succeeds or fails
1413         (ProxyObject::_introspect_error_handler): call queued methods
1414
1415 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1416
1417         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1418         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1419
1420         * python/service.py (Object::_message_cb): handle exceptions correctly
1421         by sending them over the wire to the calling app.  This makes sure
1422         the client returns immediately instead of waiting the 15 seconds to
1423         timeout.
1424
1425         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1426         Add a test to benchmark how long it takes to introspect a service and 
1427         call a method which returns a large element (pretty fast)
1428
1429         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1430         method which pushes a lot of data
1431
1432 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1433
1434         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1435         reclaim memory outside of the loop and use del istead of just setting
1436         the key to None
1437
1438 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1439
1440         * python/service.py (ObjectType::_reflect_on_signal): Always close
1441         signal tag even when there are no arguments
1442
1443 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1444
1445         * configure.in: Set mono, mono-docs and Qt3 to default
1446         to no instead of auto when building.  These bindings do not
1447         have full time maintainers and will not be supported for the
1448         1.0 release.
1449
1450 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1451
1452         patches from Michael Krivoruchko <misha at sun.com>: 
1453         
1454         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1455         _dbus_connection_message_sent, 
1456         _dbus_connection_send_preallocated_unlocked_no_update, 
1457         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1458         is NULL when calling _dbus_verbose
1459
1460         * configure.in: check for functions getpeerucred and getpeereid
1461
1462         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1463         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1464         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1465         Patch was only tested on Solaris 10 x86 so it might be issues
1466         with other platforms (i.e. BSDs and MacOSX)
1467         
1468
1469 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1470
1471         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1472         instead of marshal basic so we can handle recursive types in a variant
1473
1474         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1475         in variants
1476
1477         * test/glib/test-service-glib.c, test-service-glib.xml
1478         (my_object_echo_variant [EchoVariant], 
1479         my_object_process_variant_of_array_of_ints123
1480         [ProcessVariantOfArrayOfInts123]): 
1481         Add two test methods
1482
1483         * python/introspect_parser.py: New module for parsing introspect
1484         data.
1485
1486         * python/dbus_bindings.pyx:
1487         (various places): when throwing errors fix to use errormsg instead 
1488         of message local variable because Pyrex can get confused with other 
1489         message variables (initial patch by Robert McQueen 
1490         <robert.mcqueen at collabora.co.uk>)
1491         (MessageIter::parse_signature_block): new method for getting the next
1492         block in a signiture.
1493         (MessageIter::append_strict): new method for appending values strictly
1494         using the passed in signature instead of guessing at the type
1495         (MessageItter:: append_dict, append_struct, append_array): use 
1496         signatures to marshal children if the signature is available
1497         
1498         * python/exceptions.py (IntrospectionParserException): new exception
1499
1500         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1501         introspected signatures if available, else we fall back to the
1502         old way of doing things.
1503         (ProxyObject::_introspect_reply_handler ): parse introspection data
1504         
1505         * python/service.py (ObjectType::_reflect_on_method): Properly
1506         terminate <method> if there are no args in the reflection data
1507
1508         * test/python/test-client.py: add tests for talking with the GLib
1509         test server.  This gives us better coverage for introspection since
1510         python to python will always generate arguments as variants.  It also
1511         allows us to test the robustness of the GLib bindings and interlanguage
1512         communications.
1513
1514         
1515 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1516
1517         * bus/driver.c (bus_driver_handle_introspect): Add signals
1518         to the introspect data. (patch from Daniel P. Berrange 
1519         <dan at berrange.com>)
1520
1521         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1522         
1523         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1524         _dbus_connection_run_builtin_filters): Changed these to
1525         be unlock_no_update functions and call 
1526         _dbus_connection_send_unlocked_no_update instead of
1527         dbus_connection_send to avoid locking errors.
1528         
1529         * doc/TODO: Removed the make Ping test TODO
1530         
1531 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1532
1533         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1534         We now copy the message from a DBusError and then free 
1535         the error object befor throwing the error
1536
1537         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1538         DBusBindingOutputMode enum which was causing a warning.
1539         #include <time.h> so using time_t is explicitly defined
1540
1541 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1542
1543         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1544         - dbus/dbus-bus.c
1545         (internal_bus_get): new method that take over the heavy lifting
1546         of dbus_bus_get and adds the ability to get a private connection
1547         to the bus
1548         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1549         interface as in previous versions
1550         (dbus_bus_get_private): new method that is a wrapper to 
1551         internal_bus_get to get a private connection to the bus
1552
1553         - dbus/dbus-bus.h
1554         (dbus_bus_get_private): add as a public libdbus interface
1555
1556         - dbus-1.pc.in: output system_bus_default_address and 
1557         sysconfdir variables so apps can use them when compiling
1558
1559 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1560         * dbus/qt: New Qt bindings
1561
1562 2005-09-12  Waldo Bastian  <bastian@kde.org>
1563
1564         * dbus/dbus-marshal-validate.c,
1565         doc/dbus-specification.xml, test/Makefile.am,
1566         test/test-names.c: allow hyphens in bus names.
1567
1568 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1569
1570         * test/data/auth/fallback.auth-script: we don't
1571         retry the EXTERNAL method when we know its going
1572         to fail anymore.
1573
1574 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1575
1576         * dbus/dbus-connection-internal.h: rename
1577         (add|remove|toggle)_(watch|timeout) to unlocked()
1578         
1579         * dbus/dbus-connection.c: ditto.
1580         
1581         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1582         Update some callers for the renaming.
1583
1584 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1585
1586         * dbus/dbus-auth.c: (record_mechanisms): don't
1587         retry the first auth mechanism because we know
1588         we're just going to get rejected again.
1589         
1590         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1591         Fix thinko ... and what a nasty little bugger to
1592         track down you were ...
1593
1594         * dbus/dbus-connection.c:
1595         (_dbus_connection_add_watch),
1596         (_dbus_connection_remove_watch): add note about
1597         these needing the connection to be locked.
1598         (_dbus_connection_get_dispatch_status_unlocked):
1599         set status to DATA_REMAINS when we queue the
1600         disconnected message.
1601         
1602         * bus/dispatch.c:
1603         (bus_dispatch): fix warning.
1604         (check_existent_service_no_auto_start):
1605         Expect ChildSignaled error too.
1606         (check_existent_hello_from_self): fix another
1607         couple of warnings.
1608         
1609 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1610
1611         Patches from James Willcox <snorp@snorp.net>
1612
1613         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1614
1615         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1616         support array "out" parameters.
1617
1618         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1619         for 16-bit int support.
1620
1621 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1622
1623         * Released 0.50
1624
1625         * Patch from Steve Grubb:
1626         - bus/activation.c (bus_activation_service_reload_test): clean up
1627         some indentation
1628         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1629         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1630         buffer overflows in the test suite.  This is non critical because
1631         it can not be exploited and this code is only run when doing a 
1632         make check.
1633
1634         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1635         - configure.in: Don't check and link against kdecore, only qt headers
1636         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1637         - gcj/org/freedesktop/dbus/Makefile.am:
1638         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1639         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1640         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1641         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1642         - tools/Makefile.am: Add platform extentions to binaries 
1643         (i.e. .exe on windows)
1644
1645         * configure.in: 
1646         - Make it so if no suitable version of python is found we only 
1647         disable building python instead of exiting the configure script
1648         - Require version 2.4 of glib for glib bindings
1649         - Up version to 0.50
1650
1651         * python/__init__.py: Sync version with libdbus to (0,50,0)
1652         
1653 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1654
1655         * dbus/dbus-object-tree.c (find_subtree_recurse):
1656         a couple of optimizations (bug #710):
1657         - do a binary search in the tree
1658         - insert a new child at the right place directly, no need for
1659           qsort anymore
1660         - do the "double alloc" thing when allocating children
1661
1662 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1663
1664         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1665
1666         * python/dbus_bindings.pyx: Memory management foo
1667         (global): remove hacky _user_data_references global list
1668         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1669         tuples. Unref user_data
1670         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1671         (Connection::__del__): Remove and replace with __dealloc__ method
1672         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1673         to keep tuple from being deallocated instead of the global var hack
1674         (Connection::register_object_path): Stuff user_data into a tuple.
1675         Use Py_INCREF to keep tuple from being deallocated instead of the 
1676         global var hack
1677         (Connection::register_fallback): Stuff user_data into a tuple.
1678         Use Py_INCREF to keep tuple from being deallocated instead of the 
1679         global var hack
1680         (GIL_safe_pending_call_notification): Don't unref the message
1681         because it gets unreffed when going out of scope.  Py_XDECREF
1682         the user_data
1683         (PendingCall::__del__): Remove and replace with __dealloc__ method
1684         (PendingCall::set_notify): ref the pending call because we will
1685         need it to stick around for when the notify callback gets called
1686         (Message::__del__): Remove and replace with __dealloc__ method
1687
1688         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1689         gthreads_init to match up with the dbus call
1690
1691         * python/glib.py (init_threads): Changed to threads_init to match
1692         up with gobject.threads_init().  init_threads is kept for backwards
1693         compat but will most likely be deprecated in the future
1694
1695         * test/python/test-client.py: 
1696         - revamp to use Python's unittest functionality
1697         - add async call tests
1698         - setup threads in glib and dbus so we make sure locks are working
1699         
1700 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1701
1702         * python/dbus_bindings.pyx 
1703         (_pending_call_notification, cunregister_function_handler, 
1704         cmessage_function_handler): All callback functions have been rearranged 
1705         to workaround a bug in Pyrex when working with the GIL which is Python's 
1706         global lock when dealing with threads.  They have been split into
1707         a wrapper function (which assumes the name of the old function) and
1708         a _GIL_safe_<function name> function which contains the functionality
1709         of the old function.  This ensures that Pyrex does not write code
1710         the lock is released.
1711         
1712
1713 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1714
1715         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1716         GIL global lock when calling back into Python
1717
1718 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1719
1720         * Release 0.36.2
1721
1722         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1723
1724         * bus/policy.c (bus_policy_allow_user): change default "user is
1725         allowed" to be "user has same uid as the bus itself"; any
1726         allow/deny rules will override.
1727
1728         * bus/session.conf.in: don't allow all users, since now by default
1729         the user that ran the bus can connect.
1730
1731 2005-08-26  Colin Walters  <walters@verbum.org>
1732
1733         * tools/dbus-print-message.c (print_message): Flush stdout
1734         after printing a message, so that redirecting to a file, then
1735         hitting Ctrl-C works.
1736
1737 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1738
1739         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1740         (EmptyMessage): new class that subclasses Message.  This is a workaround
1741         to a Pyrex bug that fails to call __del__ when the Message object goes out
1742         of scope.  For some reason subclassing Message fixes this bug
1743         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1744         - s/Message(_create=0)/EmptyMessage everywhere else
1745         
1746         * test/python/test-{server|client}.py: add the python/.libs directory
1747         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1748         get picked up from the system
1749
1750 2005-08-25  Colin Walters  <walters@verbum.org>
1751
1752         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1753         to Ryan Lortie for the suggestion.
1754
1755 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1756
1757         * test/python: Add python regression test
1758
1759         * configure.in: Add test/python/Makefile
1760
1761         * test/Makefile.am: Add the python directory to SUBDIRS
1762
1763 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1764
1765         * Release 0.36.1
1766
1767         * python/_dbus.py: 
1768         (Interface::connect_to_signal): propigate keywords for match on args
1769         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1770
1771         * python/proxies.py (ProxyObject::connect_to_signal):
1772         propigate keywords for match on args
1773
1774         * Makefile.am: point everything to pyexecdir since python borks
1775         on multilib
1776
1777 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1778
1779         * Release 0.36
1780
1781 2005-08-23  Colin Walters  <walters@verbum.org>
1782
1783         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1784
1785 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1786
1787         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1788         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1789         of defining DBusConnection ourselves.
1790
1791 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1792
1793         * python/dbus.pth: New path file to fix up problems when installing
1794         c libraries to lib64 and python files to lib.
1795
1796         * python/Makefile.am: install dbus.pth in the correct spot
1797
1798 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1799         * ChangeLog: clean up my last entry a bit
1800
1801         * doc/introspect.xsl: New stylesheet for converting introspection data
1802         into browser renderable xhtml. Contributed by Lennart Poettering.
1803
1804         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1805         Poettering.
1806
1807         * doc/dbus-tutorial.xml: 
1808         - Add Colin Walter to the Authors section for authoring the GLib
1809         section
1810         - Add descriptions of the new signature and type functionality
1811         in the Python complex type mapping section
1812         - Add a sidenote on the new args matching functionality in 
1813         the Python bindings
1814         - Fixed up some of the examples to use the gobject.MainLoop
1815         instead of gtk.main
1816         
1817         * python/_dbus.py:
1818         (Bus::_create_args_dict): New. Converts a hash of arg matches
1819         to a more useable format
1820         (Bus::add_signal_receiver): add a **keywords parameter for catching
1821         arg match parameters
1822         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1823         arg match parameters
1824         
1825         * python/matchrules.py:
1826         (MatchTree::exec_matches): Check for arg matches
1827         (SignalMatchRule::add_args_match): New method
1828         (SignalMatchRule::execute): Added args_list parameter as an optimization
1829         so we don't have to marshal the args more than once
1830         (SignalMatchRule::match_args_from_list): New method that checks to see
1831         if the rule's arg matches match an argument list.  Only arguments
1832         set in the rule are checked.
1833         (SignalMatchRule::match_args_from_rule): New method that checks to see
1834         if the rule's arg matches match another rule's.  All args have to match
1835         in order for this method to return true.  If either rule has more args
1836         then it is not a match.
1837         (SignalMatchRule::is_match): Add args match
1838         (SignalMatchRule::repr): Add args to the final output if they exist
1839
1840 2005-08-17  Ross Burton  <ross@burtonini.com>
1841
1842         * glib/dbus-gproxy.c:
1843         (dbus_g_proxy_call_no_reply): unref the message once sent.
1844         (dbus_g_proxy_call): protect against NULL proxy.
1845
1846 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1847
1848         * python/__init__.py: Version updated (0, 43, 0)
1849         
1850         * python/dbus_bindings.pyx: 
1851         - Fixed type objects to have self passed into __init__
1852         - Added the Variant type
1853         - Add the ability to specify types or signatures for Array, Variant 
1854         and Dictionary
1855         (Connection::send_with_reply_handlers): return a PendingCall object
1856         (_pending_call_notification): handle the case when an error is returned 
1857         without an error message in the body
1858         (MessageIter::get_boolean): return True or False instead of an integer
1859         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1860         and add checks for objects with embeded signatures or types (Array, 
1861         Variant and Dictionary)
1862         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1863         (MessageIter::append_dict): handle embeded types or signatures
1864         (MessageIter::append_array): handle embeded types or signatures
1865         (MessageIter::append_variant): new method
1866         
1867         * python/proxies.py:
1868         (DeferedMethod): New. Dummy executable object used when queuing calls 
1869         blocking on introspection data
1870         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1871         or shorter timeouts for method calls
1872         (ProxyObject): Add first pass at an introspection state machine
1873         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1874         introspection. 
1875         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1876         the usual mechanisms for sending messages.  This is to avoid a deadlock
1877         where the Intospect call would be queued waiting for the Introspect 
1878         call to finish ;-)
1879         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1880         when introspection returns with no error
1881         (ProxyObject::_introspect_error_handler): New.  This method is called 
1882         when introspection encounters an error
1883         (ProxyObject::__getattr__): Code to handle different introspection 
1884         states.  Queue async calls or block blocking calls if we are 
1885         introspecting.  Pass through as normal if we are not or are done with 
1886         introspecting.
1887         
1888         * python/service.py: Import signal and method from decorators.py
1889
1890         * python/types.py: Add Variant type
1891
1892 2005-08-16  Colin Walters  <walters@verbum.org>
1893
1894         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1895         DBusError message is NULL.
1896
1897 2005-08-09  Havoc Pennington  <hp@redhat.com>
1898
1899         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1900         malloc'd copy of the name parameter
1901
1902 2005-08-09  Havoc Pennington  <hp@redhat.com>
1903
1904         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1905         warning if the reply serial is set to 0
1906
1907 2005-08-04  Colin Walters  <walters@verbum.org>
1908
1909         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1910         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1911         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1912         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1913         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1914         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1915         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1916         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1917         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1918         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1919         
1920         Prefix name with _ to ensure they're not exported.  All callers
1921         updated.
1922
1923         * glib/dbus-gvalue.c (typecode_to_gtype)
1924         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1925         (signature_iter_to_g_type_dict)
1926         (signature_iter_to_g_type_array)
1927         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1928         (dbus_gtypes_from_arg_signature):
1929         Move to dbus-gsignature.c.
1930
1931         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1932         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1933         (dbus_binding_tool_output_glib_client): Ditto.
1934
1935         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1936         and dbus-gsignature.h
1937
1938         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1939         unused variable.
1940
1941 2005-08-03  Colin Walters  <walters@verbum.org>
1942
1943         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1944         catch any incompatible changes accidentally made.
1945
1946 2005-08-03  Havoc Pennington  <hp@redhat.com>
1947
1948         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1949         typo, from Julien Puydt
1950
1951         * bus/connection.c (bus_connection_disconnected): we were always
1952         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1953
1954 2005-08-01  Colin Walters  <walters@verbum.org>
1955
1956         Patch from Joe Markus Clarke:   
1957         
1958         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1959         use-after-free.
1960
1961 2005-08-01  Colin Walters  <walters@verbum.org>
1962         
1963         Patch from Joe Markus Clarke:   
1964         
1965         * tools/dbus-send.c (main): 
1966         
1967         Don't use C99 style initializers (bug #3933).
1968         
1969 2005-08-01  Colin Walters  <walters@verbum.org>
1970
1971         Patch from Joe Markus Clarke:   
1972
1973         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1974         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1975         * glib/dbus-gobject.c (write_interface):
1976
1977         Don't use C99 style initializers (bug #3933).
1978
1979 2005-07-31  Havoc Pennington  <hp@redhat.com>
1980
1981         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1982         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1983
1984 2005-07-30  Havoc Pennington  <hp@redhat.com>
1985
1986         * fix a bunch of Doxygen warnings and mistakes
1987
1988 2005-07-30  Havoc Pennington  <hp@redhat.com>
1989
1990         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1991         DBUS_BUILD_TESTS since it's now used in production code
1992
1993 2005-07-29  Havoc Pennington  <hp@redhat.com>
1994
1995         * test/glib/test-profile.c (write_junk): initialize the junk
1996         buffer so valgrind doesn't have a breakdown
1997
1998 2005-07-29  Havoc Pennington  <hp@redhat.com>
1999
2000         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2001         (match_rule_matches): remove unused arg
2002         (test_matching): add tests for match_rule_matches()
2003
2004         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2005         do arg0='foo' arg5='bar' in the match rules
2006         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2007
2008         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2009
2010 2005-07-29  Ross Burton  <ross@openedhand.com>
2011
2012         * dbus/dbus-connection.c:
2013         Don't create a DBusCondVar which is never used.
2014
2015 2005-07-27  Ross Burton  <ross@openedhand.com>
2016
2017         * dbus/dbus-message.c:
2018         Reduce the size of the maximum cached message to 10K.
2019
2020 2005-07-25  Ross Burton  <ross@openedhand.com>
2021
2022         * glib/dbus-gproxy.c:
2023         Remove matches when all proxies are unregistered.
2024
2025 2005-07-24  Colin Walters  <walters@verbum.org>
2026
2027         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2028         typedata; recursive arrays won't have it.
2029
2030         * test/glib/test-dbus-glib.c:
2031         * test/glib/test-service-glib.c:
2032         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2033         
2034 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2035
2036         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2037         proxies.py, service.py: Cleanup of code after running it through the
2038         pyflakes code checker mostly dealing with undefined names.  
2039         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2040
2041 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2042
2043         * NEWS: Update to 0.35.2
2044
2045 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2046
2047         * python/_dbus.py: Remove import of the dbus.services
2048         module as it no longer exists (patch from Dimitur Kirov)
2049
2050         * python/service.py (Object::__init__): Fixed typo
2051         s/name/bus_name (patch from Dimitur Kirov)
2052
2053         * python/examples/example-signal-emitter.py: import dbus.glib
2054         to get the main loop and use glib mainloop instead of gtk so
2055         X doesn't have to be running.
2056
2057         * python/examples/example-signal-recipient.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. Import the decorators module
2060         directly.
2061
2062         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2063         didn't pick up on but are needed to build
2064
2065         * configure.in: upped version to 0.35.2
2066
2067         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2068         added Colin Walters' SELinux API rename patch from head 
2069         s/unix sercurity context/selinux security context/
2070
2071 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2072
2073         * python/Makefile.am: dbus_binding.pxd.in should be included 
2074         in EXTRA_DIST not dbus_binding.pxd
2075         fix up $(srcdir) hopefully for the last time
2076
2077         * NEWS: Update to 0.35.1
2078
2079 2005-07-16  Colin Walters  <walters@verbum.org>
2080
2081         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2082         from bus_driver_handle_get_connection_unix_security_context.  Update for
2083         error usage.
2084         (message_handlers): Update for renames.
2085
2086         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2087         _dbus_string_init failure correctly.
2088         (bus_selinux_append_context): Convert SID to context.  Append it
2089         as a byte array.
2090         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2091         hasn't been called.
2092
2093         * bus/selinux.h: Update prototype.
2094
2095         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2096         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2097
2098 2005-07-15  Colin Walters  <walters@verbum.org>
2099
2100         * doc/TODO: Add note about convenience wrappers.
2101
2102 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2103
2104         * NEWS: Update to 0.35
2105
2106 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2107
2108         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2109         so distcheck doesn't fail
2110
2111         * glib/examples/Makefile.am: Add example-service.xml and 
2112         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2113
2114         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2115         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2116
2117         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2118         compiler looks in the right places during distcheck
2119
2120 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2121
2122         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2123         to fail
2124
2125 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2126
2127         * python/examples/example-service.py,
2128         python/examples/example-signal-emitter.py: Fixed up examples
2129         for API changes
2130
2131 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2132
2133         * python/__init__.py: Upped to version (0,42,0) because of
2134         the API change
2135
2136 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2137
2138         * ChangeLog: fix date in last entry
2139
2140         * configure.in, bus/system.conf.in: add the ability to configure 
2141         the system bus user at compiletime with the --with-dbus-user flag
2142         (patch from Kristof Vansant)
2143
2144 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2145
2146         * bus/dispatch.c, test/test-service.c: Add testcase
2147         for sending messages to oneself (TODO item).
2148
2149         * python/service.py (class Object): Swap ordering of bus_name 
2150         and object_path parameters to better support inheritance.
2151
2152         * doc/dbus-tutorial.xml: change Python docs to reflect change
2153         in parameter ordering and fix the inheritance section.
2154
2155         * doc/TODO: remove sending message to oneself TODO item
2156
2157 2005-07-15  Ross Burton  <ross@openedhand.com>
2158
2159         * glib/dbus-gproxy.c:
2160         Fix a leak when calling methods via the proxy.
2161
2162 2005-07-15  Colin Walters  <walters@verbum.org>
2163
2164         * bus/selinux.c (bus_selinux_append_context): Wrap in
2165         HAVE_SELINUX.
2166
2167 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2168
2169         * python/_dbus.py (Bus::remove_signal_receiver):
2170         don't add a callback to the match if none has been passed in
2171         
2172         * python/matchrules.py (SignalMatchTree::remove): if the rule
2173         being matched does not have a callback treat it as a wildcard
2174         fix matching logic
2175
2176         * doc/dbus-tutorial.xml: Add Python tutorial
2177
2178 2005-07-14  Colin Walters  <walters@verbum.org>
2179
2180         * bus/driver.c
2181         (bus_driver_handle_get_connection_unix_security_context): New function.
2182         (message_handlers): Add.
2183
2184         * bus/selinux.c (bus_selinux_append_context): New function; appends
2185         security context to message.
2186
2187         * bus/selinux.h: Prototype.
2188
2189         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2190
2191 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2192
2193         * bus/activation.c: clean up all tabs to be 8 spaces 
2194         (bus_activation_activate_service): make sure we clean up
2195         if activation fails
2196
2197         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2198         (check_shell_fail_service_auto_start): New function
2199         tests to make sure we get fail properly when trying to auto start a service
2200         with a faulty command line
2201         (check_shell_service_success_auto_start): New function tests to make sure
2202         auto started services get the arguments on the command line
2203
2204         * test/test-shell-service.c: Added service for testing auto-starting with 
2205         command line arguments
2206
2207         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2208         test/data/valid-service-files/debug-shell-echo-success.service.in:
2209         Added service files for testing auto-starting with command line arguments
2210
2211         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2212
2213 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2214
2215         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2216         
2217         * dbus/Makefile.am: added new files to build.
2218
2219         * bus/activation.c (bus_activation_activate_service): support
2220         activation commands with parameters.
2221
2222         * test/shell-test.c: added test program for the shell parsing
2223         code.
2224
2225 2005-07-13  David Zeuthen  <davidz@redhat.com>
2226
2227         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2228         64 bit signed and unsigned parameters
2229
2230 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2231
2232         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2233
2234         * python/service.py (class Name): renamed BusName to make it clearer
2235         what the object is for (a name on the bus)
2236
2237         * python/examples/example-service.py,
2238         python/examples/example-signal-emitter.py: change the Name object to
2239         BusName
2240
2241 2005-07-12  Colin Walters  <walters@verbum.org>
2242
2243         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2244
2245         * tools/dbus-launch.c: Include sys/select.h.
2246
2247 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2248         * python/dbus_bindings.pyx.in: removed
2249
2250         * python/dbus_bindings.pyx: Added.
2251         - Fixed some memleaks (patch from 
2252         Sean Meiners <sean.meiners@linspireinc.com>)
2253         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2254         own pxd file (Pyrex definition)
2255         - Broke out glib dependancies into its own pyx module
2256         
2257         * python/dbus_bindings.pdx: Added.
2258         - Defines C class Connection for exporting to other modules
2259
2260         * python/dbus_glib_bindings.pyx: Added.
2261         - New module to handle lowlevel dbus-glib mainloop integration
2262
2263         * python/glib.py: Added.
2264         - Registers the glib mainloop when you import this module
2265
2266         * python/services.py: Removed (renamed to service.py)
2267         
2268         * python/service.py: Added.
2269         - (class Server): renamed Name
2270
2271         * python/__init__.py: Bump ro version (0,41,0)
2272         -don't import the decorators or service module
2273         by default.  These now reside in the dbus.service namespace
2274
2275         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2276         setup function on creation 
2277
2278         * python/examples/example-service.py,
2279         python/examples/example-signal-emitter.py: update examples
2280
2281         * python/examples/gconf-proxy-service.py,
2282         python/examples/gconf-proxy-service2.py: TODO fix these up
2283
2284         * doc/TODO: Addition
2285         - Added a Python Bindings 1.0 section
2286         - added "Add match on args or match on details to match rules"
2287
2288
2289 2005-07-12  Colin Walters  <walters@verbum.org>
2290
2291         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2292         (statemachine-glue.h): 
2293         * glib/examples/Makefile.am (example-service-glue.h) 
2294         (example-signal-emitter-glue.h): 
2295         * glib/Makefile.am (dbus-glib-error-switch.h): 
2296         Add libtool --mode=execute so we use the built library instead
2297         of any installed one.
2298
2299 2005-07-11  Colin Walters  <walters@verbum.org>
2300
2301         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2302         (dbus_g_value_types_init): Remove assertion.
2303         (dbus_g_value_get_g_type, dbus_g_value_open)
2304         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2305         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2306         functions related to DBusGValue.  Now we marshal/demarshal
2307         structures as GValueArray.
2308         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2309         structures.
2310         (signature_iter_to_g_type_array): Don't call
2311         signature_iter_to_g_type_struct.
2312         (signature_iter_to_g_type_struct): Delete.
2313         (dbus_gvalue_to_signature): Delete.
2314         (dbus_gvalue_to_signature): New function with same name as other
2315         one; we can convert structures to signatures.
2316         (demarshal_valuearray): New function.
2317         (get_type_demarshaller): Use it.
2318         (demarshal_recurse): Delete.
2319         (marshal_proxy): New function.
2320         (marshal_map): Warn if we can't determine signature from type.
2321         (marshal_collection_ptrarray): Ditto.
2322         (marshal_collection_array): Ditto.
2323         (get_type_marshaller): Use marshal_valuearray.
2324         (marshal_recurse): Delete.
2325         (_dbus_gvalue_test): Add some tests.
2326
2327         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2328         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2329         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2330         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2331         (dbus_g_value_free): Remove prototypes.
2332
2333         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2334         G_TYPE_VALUE_ARRAY.
2335
2336         * glib/examples/example-service.c:
2337         * glib/examples/example-client.c: Implement GetTuple.
2338
2339         * test/glib/test-dbus-glib.c:
2340         * test/glib/test-service-glib.c:
2341         * test/glib/test-service-glib.xml: Add structure tests.
2342
2343 2005-07-10  Colin Walters  <walters@verbum.org>
2344
2345         * doc/TODO: Knock off some GLib items with this patch.
2346
2347         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2348         (_dbus_gvalue_signals_error): New functions.
2349
2350         * glib/dbus-gvalue-utils.h: Prototype them.
2351
2352         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2353         and change to not output const/retval flags for input args.  All
2354         callers updated.
2355         (invoke_object_method): Refactor to handle return values.  Add
2356         some more comments in various places.  Remove debug g_print.
2357
2358         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2359
2360         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2361         Handle G_TYPE_NONE.
2362         (compute_gsignature): New function; refactored from code from
2363         compute_marshaller and compute_marshaller_name.  Enhance to
2364         handle return values and async ops more cleanly.  Update for
2365         async ops returning NONE instead of BOOLEAN.
2366         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2367         and output appropriate string.
2368         (generate_glue): Handle return value annotation.  Also don't dump
2369         constness flag for input arguments.
2370
2371         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2372         files shared between installed library and utilities.
2373         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2374         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2375         binding tool can access gtype utility functions.
2376
2377         * test/glib/test-service-glib.c: 
2378         * test/glib/test-service-glib.xml: 
2379         * test/glib/test-dbus-glib.c: Add some tests for return values.
2380
2381 2005-07-09  Colin Walters  <walters@verbum.org>
2382
2383         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2384         argument if available, not method.
2385
2386         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2387         (invoke_object_method): First, remove some redundant
2388         GValues (object_value, error_value) in favor of working on
2389         array directly.  Second, rework constness to be less buggy.
2390         Now we iterate directly over the argument metadata instead
2391         of parallel iterating over output signature and metadata.
2392
2393         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2394
2395         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2396         annotation on input args.
2397         
2398 2005-07-09  Colin Walters  <walters@verbum.org>
2399
2400         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2401         Define.
2402
2403         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2404         annotation.
2405
2406         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2407         (method_dir_signature_from_object_info): Handle arg_iterate change.
2408         (write_interface): Ditto.
2409         (lookup_object_info): Don't barf if format_version is > 0.
2410         (invoke_object_method): Handle arg constness.
2411
2412         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2413         (arg_info_new): Create.
2414         (arg_info_unref): Destroy.
2415         (arg_info_get_annotations, arg_info_get_annotation) 
2416         (arg_info_add_annotation): New functions.
2417
2418         * glib/dbus-gidl.h: Prototype them.
2419
2420         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2421         args, disallow them in properties.
2422         (parse_annotation): Handle arg annotations.
2423
2424         * test/glib/test-service-glib.xml: 
2425         * test/glib/test-service-glib.c: Update to make some methods
2426         const.
2427
2428 2005-07-08  Colin Walters  <walters@verbum.org>
2429
2430         * test/glib/test-service-glib.xml: 
2431         * test/glib/test-service-glib.c:
2432         * test/glib/test-dbus-glib.c: Test a{sv}.
2433
2434         * glib/examples/statemachine/statemachine.c:
2435         * glib/examples/statemachine/statemachine-server.c:
2436         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2437         add progress bar, etc.
2438
2439         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2440         needed anymore due to generic array/map marshalling.
2441         (dbus_g_value_types_init): Don't register basic arrays or the
2442         string/string hash.
2443         (dbus_gtype_from_signature_iter): Don't try to recurse into
2444         variants.
2445         (dbus_gtype_to_signature): Check collection/map before type
2446         metadata.
2447         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2448         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2449         generic map creation/append functions instead of hash table
2450         specifically.
2451         (get_type_demarshaller): Handle maps.
2452         (demarshal_collection): Dispatch on collection type to either
2453         demarshal_collection_ptrarray or demarshal_collection_array.
2454         (get_type_marshaller): Handle maps.
2455         (marshal_collection): Dispatch collection type to either
2456         marshal_collection_ptrarray or marshal_collection_array.
2457         (_dbus_gvalue_test): New test.
2458
2459         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2460         (hash_free_from_gtype): Use it to free GValues.
2461         (hashtable_append): New function.
2462         (ptrarray_append): Fix prototype.
2463         (slist_append): Ditto.
2464         (_dbus_gvalue_utils_test): Extend tests.
2465
2466         * glib/dbus-gtype-specialized.c
2467         (dbus_g_type_specialized_init_append): Renamed from
2468         dbus_g_type_specialized_collection_init_append.  Remove const from
2469         value, since we steal it.
2470         (dbus_g_type_specialized_map_append): New function.
2471
2472         * glib/dbus-gtype-specialized.h: Update prototypes.
2473         Add DBusGTypeSpecializedMapAppendFunc.
2474
2475         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2476         _dbus_gvalue_test.
2477         
2478         * glib/dbus-gtest.h: Prototype it.
2479
2480 2005-07-08  Ross Burton  <ross@openedhand.com>
2481
2482         * dbus/dbus-glib.h:
2483         Add DBysGAsyncData for the async bindings.
2484
2485         * glib/dbus-binding-tool-glib.c:
2486         Re-enable the async bindings.
2487
2488         * test/glib/test-dbus-glib.c:
2489         Add a test for the generated async bindings.
2490
2491 2005-07-08  Colin Walters  <walters@verbum.org>
2492
2493         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2494         connection concept.
2495         
2496 2005-07-08  Colin Walters  <walters@verbum.org>
2497         
2498         * tools/Makefile.am: Kill of print-introspect in favor of using
2499         dbus-send --print-reply=literal.
2500
2501         * test/glib/test-service-glib.xml: 
2502         * test/glib/test-service-glib.c (my_object_get_objs): New test
2503         for "ao".
2504
2505         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2506         (main): Test GetObjs.
2507
2508         * glib/examples/statemachine/Makefile.am:
2509         * glib/examples/statemachine/sm-marshal.list:
2510         * glib/examples/statemachine/statemachine-client.c:
2511         * glib/examples/statemachine/statemachine-server.c:
2512         * glib/examples/statemachine/statemachine-server.xml:
2513         * glib/examples/statemachine/statemachine.c:
2514         * glib/examples/statemachine/statemachine.h:
2515         * glib/examples/statemachine/statemachine.xml:
2516
2517         New example.
2518
2519         * glib/examples/example-service.c (main): Move invocation
2520         of dbus_g_object_type_install_info earlier, to emphasize it
2521         should only be done once.
2522
2523         * glib/examples/example-signal-emitter.c (main): Ditto.
2524
2525         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2526
2527         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2528         (dbus_gvalue_marshal): Update prototypes.
2529
2530         * glib/dbus-gvalue.c: Update all marshalling functions to take
2531         const GValue instead of GValue.
2532         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2533         types.
2534         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2535         change.
2536         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2537         Return a newly-allocated string.
2538         (demarshal_proxy, demarshal_object_path, demarshal_object)
2539         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2540         we get the wrong types from message.
2541         (get_type_demarshaller): New function, extracted from
2542         dbus_gvalue_demarshal.
2543         (demarshal_collection): New function, demarshals generic
2544         collection.
2545         (dbus_gvalue_demarshal): Just invoke result of
2546         get_type_demarshaller.  Throw error if we don't have one.
2547         (marshal_garray_basic): Abort on OOM.
2548         (get_type_marshaller): New function, extracted from
2549         dbus_gvalue_marshal.
2550         (collection_marshal_iterator, marshal_collection): New functions;
2551         implements generic marshalling for an iteratable specialized
2552         collection.
2553         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2554
2555         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2556         G_TYPE_STRING.
2557         (ptrarray_value_from_gvalue): Ditto.
2558         (ptrarray_append, ptrarray_free): New functions.
2559         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2560         (slist_append, slist_end_append, slist_free): New functions.
2561         (dbus_g_type_specialized_builtins_init): Add append fuctions
2562         for GPtrArray and GSList.  Register GSList.
2563         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2564
2565         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2566         New.
2567         (dbus_g_type_specialized_collection_init_append)
2568         (dbus_g_type_specialized_collection_append)
2569         (dbus_g_type_specialized_collection_end_append): Prototype.
2570         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2571         end_append_func.
2572
2573         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2574         (dbus_g_type_specialized_collection_append) 
2575         (dbus_g_type_specialized_collection_end_append): New functions.
2576         (dbus_g_type_map_value_iterate): Take const GValue.
2577         (dbus_g_type_collection_value_iterate): Ditto.
2578
2579         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2580         _dbus_gvalue_utils_test.
2581         
2582         * glib/dbus-gtest.h: Prototype it.
2583
2584         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2585         using uninitialized owner_list.
2586         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2587         public API.
2588         (dbus_g_proxy_end_call_internal): Update to use error set
2589         from dbus_gvalue_demarshal instead of setting it here.
2590         (dbus_g_proxy_begin_call): Move return_if_fail here.
2591
2592         * glib/dbus-gobject.c (write_interface): Update for
2593         dbus_gtype_to_signature returning new string.
2594
2595         * configure.in: Add glib/examples/statemachine.
2596
2597 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2598
2599         * configure.in: Add a configure option, --with-console-auth-dir
2600         
2601         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2602         new setting.  Patch from Kay Sievers.
2603
2604 2005-07-06  Colin Walters  <walters@verbum.org>
2605
2606         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2607         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2608         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2609         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2610         Delete in favor of dbus_g_proxy_begin_call and
2611         dbus_g_proxy_cancel_call.
2612         (DBusGProxyCall, DBusGProxyCallNotify): New.
2613         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2614         data, and destroy function.  This replaces
2615         dbus_g_pending_call_set_notify.
2616         (dbus_g_proxy_cancel_call): Prototype.
2617         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2618
2619         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2620         pending_calls map.
2621         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2622         internal proxy for calls to the bus. Remove
2623         pending_nameowner_calls, now the internal proxy keeps track.
2624         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2625         pending_nameowner_calls.
2626         (got_name_owner_cb): Update prototype, and use
2627         dbus_g_proxy_end_call.
2628         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2629         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2630         favor of using internal proxy.
2631         (dbus_g_proxy_manager_unregister): Update to use
2632         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2633         (dbus_g_proxy_init): Initialize pending calls map.
2634         (dbus_g_proxy_constructor): New.
2635         (dbus_g_proxy_class_init): Add get/set property functions,
2636         constructor, and add NAME, PATH, and INTERFACE properties.
2637         (cancel_pending_call): New function.
2638         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2639         cancel them.
2640         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2641         (GPendingNotifyClosure): New structure.
2642         (d_pending_call_notify, d_pending_call_free): Moved here from
2643         dbus-glib.c.
2644         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2645         ordering.
2646         (manager_begin_bus_call): New internal function for talking to
2647         internal bus proxy.
2648         (dbus_g_proxy_new): Construct object using GObjet properties.
2649         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2650         Create closure of same, and insert call into map of pending calls.
2651         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2652         call.  Look up pending call in current set.  Remove it when we've
2653         completed.
2654         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2655         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2656         and destroy function directly.
2657         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2658         (dbus_g_proxy_call): Invoke with NULL callback.
2659         (dbus_g_proxy_cancel_call): New function, replaces
2660         dbus_g_pending_call_cancel.
2661
2662         * glib/dbus-gparser.c (validate_signature): Fix call to
2663         dbus_set_g_error.
2664
2665         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2666         New quark for attaching metadata to GType.
2667         (info_hash): Delete.
2668         (lookup_object_info): Look up using quark.
2669         (dbus_g_object_type_install_info): Check that a type is classed,
2670         not that it's an object.  Also just install type data using quark
2671         instead of using global hash.
2672
2673         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2674         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2675         (GPendingNotifyClosure): Delete.
2676         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2677         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2678
2679         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2680         client method generation until we can fix it...
2681         
2682         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2683         (load_from_service_thread_func): Ditto.
2684
2685         * tools/dbus-names-model.c (struct NamesModel): Hold
2686         DBusGProxyCall.
2687         (have_names_notify): Update prototype, use
2688         dbus_g_proxy_cancel_call.
2689         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2690
2691         * tools/dbus-monitor.c (filter_func): Update for print_message
2692         API change.
2693
2694         * test/glib/test-dbus-glib.c: Add more tests for async
2695         invocations.  Update many begin_call/end_call pairs to just use
2696         dbus_g_proxy_call.
2697
2698         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2699         allows us to dump print-introspect.c.
2700
2701         * tools/dbus-print-message.h (print_message): Add literal argument
2702         to print_message which is intended to allow printing arguments without
2703         metadata like "string=".
2704
2705         * tools/dbus-print-message.c (print_iter): Add literal argument.
2706         (print_message): Allow printing string messages literally.
2707
2708 2005-07-05  Colin Walters  <walters@verbum.org>
2709
2710         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2711         Remove value refcount leak, original patch from Jorn Baayen
2712         <jorn@openedhand.com>.  Also remove useless extra value in favor
2713         of prepending to value array directly.
2714
2715 2005-07-02  Colin Walters  <walters@verbum.org>
2716
2717         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2718
2719 2005-07-01  Colin Walters  <walters@verbum.org>
2720
2721         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2722         
2723         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2724         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2725         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2726         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2727
2728 2005-06-30  Colin Walters  <walters@verbum.org>
2729
2730         * test/glib/test-dbus-glib.c:
2731         * test/glib/test-service-glib.c:
2732         * test/glib/test-service-glib.xml: Update tests for new error
2733         setting bits, also add async tests (patch from Ross Burton).
2734
2735         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2736         DBUS_GLIB_THREADS_LIBS.
2737
2738         * glib/dbus-gproxy.c (get_name_owner)
2739         (dbus_g_pending_call_end_valist): Ditto.
2740
2741         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2742         domain (GQuark) to DBusGErrorInfo.  
2743         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2744         quark in error_metadata.  Take message interface as default
2745         error message interface.
2746         (gerror_to_dbus_error_message): Pass message interface.
2747         (dbus_set_g_error): Resurrected.
2748         (dbus_g_error_info_free): New function.
2749         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2750         of _peek to actually create the object class if it hasn't been
2751         created yet.
2752         (dbus_g_error_domain_register): New function.
2753
2754         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2755
2756         * glib/dbus-gparser.c (validate_signature): Ditto.
2757
2758         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2759         (dbus_g_error_domain_register): Prototype.
2760
2761         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2762         Update tests.
2763
2764 2005-06-29  Colin Walters  <walters@verbum.org>
2765
2766         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2767         DBUS_TYPE_G_OBJECT_PATH.
2768
2769         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2770         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2771         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2772         (dbus_g_object_path_get_g_type): New function.
2773         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2774         to DBUS_TYPE_G_OBJECT_PATH by default.
2775         (demarshal_proxy): Remove unused name variable.
2776         (demarshal_object_path, marshal_object_path): New functions.
2777         (demarshal_proxy_array, marshal_proxy_array): Delete.
2778         
2779         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2780         DBUS_TYPE_G_OBJECT_PATH to char *.
2781         (dbus_g_type_get_lookup_function): Map builtin
2782         DBUS_TYPE_G_OBJECT_PATH.
2783
2784         * test/glib/test-dbus-glib.c
2785         * test/glib/test-service-glib.c (my_object_objpath): 
2786         Adapt tests to new object path marshalling.
2787
2788 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2789
2790         * configure.in: force check for Python >= 2.4
2791
2792 2005-06-29  Colin Walters  <walters@verbum.org>
2793         
2794         Patch from Ross Burton <ross@openedhand.com>
2795         
2796         * glib/dbus-gobject.c (invoke_object_method): Unset object
2797         value in all cases, not only in async case.
2798
2799 2005-06-29  Colin Walters  <walters@verbum.org>
2800
2801         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2802         name_call for keeping track of any outgoing GetNameOwner call.
2803         Also add for_owner and associated.
2804         (struct _DBusGProxyManager): Add owner_names, which is hash table
2805         that maps a base name to a list of names it owns (that we're
2806         interested in).  Add pending_nameowner_calls which is a list of
2807         all outstanding GetNameOwner; avoids us having to iterate over
2808         every proxy.  Add unassociated_proxies which keeps track of name
2809         proxies with no associated name owner.
2810         (dbus_g_proxy_manager_unref): Destroy owner_names.
2811         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2812         name refcounts.
2813         (find_name_in_info, name_owner_foreach)
2814         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2815         (dbus_g_proxy_manager_monitor_name_owner)
2816         (dbus_g_proxy_manager_unmonitor_name_owner)
2817         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2818         New functions; they manipulate the owner_names mapping.
2819         (got_name_owner_cb): New function.
2820         (get_name_owner): New function, extracted from
2821         dbus_g_proxy_new_for_name_owner.
2822         (dbus_g_proxy_manager_register): For now we need to keep track of
2823         all NameOwnerChanged.  Also if the proxy is for a name, if we
2824         don't already know the name owner, queue a new GetNameOwner
2825         request and add it to our list of unassociated proxies.  Otherwise
2826         inc the refcount.
2827         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2828         cancel any pending GetNameOwner call, etc.
2829         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2830         the owner_names mapping to look up the current names for the
2831         signal source, and dispatch to any proxies for that name.
2832         (dbus_g_proxy_new): Initialize new members.
2833         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2834         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2835         (dbus_g_pending_call_end_valist): New function, extracted from
2836         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2837         but want to use the GLib infrastructure.  Also note how many
2838         arguments in reply were over.
2839         (dbus_g_pending_call_end): New function, just call
2840         dbus_g_pending_call_end_valist.
2841         (dbus_g_proxy_end_call_internal): Just call
2842         dbus_g_pending_call_end_valist.
2843
2844         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2845         of builtin marshaller for STRING_STRING_STRING.
2846
2847         * test/glib/test-dbus-glib.c: 
2848         * test/glib/test-service-glib.c:
2849         * test/glib/test-service-glib.xml:
2850         Extend tests to cover name proxies, destruction of owner proxies,
2851         etc.
2852         
2853         * glib/examples/example-signal-recipient.c
2854         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2855         
2856         * tools/dbus-send.c (main): Print D-BUS error name in addition
2857         to message.
2858
2859 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2860
2861         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2862         cmessage_function_handler): Patch from 
2863         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2864         by using the Py_GILState_Ensure/Release to synchronize with the
2865         python runtime.
2866         
2867 2005-06-28  Ray Strode  <rstrode@redhat.com>
2868
2869         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2870         babysitter helper process on last unref, bug #2813.
2871
2872 2005-06-27  Colin Walters  <walters@verbum.org>
2873
2874         * test/glib/test-dbus-glib.c: 
2875         * test/glib/test-service-glib.c:
2876         * test/glib/test-service-glib.xml:
2877         Test hash table signal emitting.
2878
2879         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2880         types to their fundamental basis types, since this is what
2881         marshallers operate on.  Also add an entry for VOID__BOXED.
2882         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2883
2884 2005-06-26  Havoc Pennington  <hp@redhat.com>
2885
2886         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2887         from Don Park
2888
2889 2005-06-26  Colin Walters  <walters@verbum.org>
2890
2891         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2892         (dbus_g_error_set): New public function from its ashes; used by
2893         both service-side method implementation and GLib bindings
2894         internals.
2895         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2896         (_dbus_glib_test): Add some tests.
2897
2898         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2899
2900         * test/glib/test-service-glib.c (my_object_throw_error): Use
2901         dbus_g_error_set.
2902
2903         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2904         errors thrown by dbus_g_error_set.
2905
2906         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2907
2908         * glib/dbus-gparser.c (validate_signature): Ditto.
2909
2910         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2911         (dbus_g_proxy_end_call_internal): Ditto.
2912
2913         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2914         converts DBUS_ERROR_x to DBUS_GERROR_x.
2915         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2916
2917         * doc/TODO: Remove error TODO.
2918
2919         * doc/dbus-tutorial.xml: Update with documentation about error
2920         handling.
2921
2922         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2923         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2924         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2925
2926 2005-06-22  Colin Walters  <walters@verbum.org>
2927         
2928         Patch from Ross Burton <ross@openedhand.com>
2929
2930         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2931
2932 2005-06-20  Colin Walters  <walters@verbum.org>
2933
2934         * configure.in: Add glib/examples.
2935
2936         * glib/Makefile.am: Add examples/
2937
2938         * glib/examples/.cvsignore
2939         * glib/examples/Makefile.am
2940         * glib/examples/example-client.c
2941         * glib/examples/example-service.c
2942         * glib/examples/example-service.xml
2943         * glib/examples/example-signal-emitter.c
2944         * glib/examples/example-signal-emitter.xml
2945         * glib/examples/example-signal-recipient.c:
2946         New files; GLib binding examples, ported from
2947         python/examples.
2948
2949 2005-06-20  Colin Walters  <walters@verbum.org>
2950
2951         * dbus/dbus-glib.h: 
2952         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2953         dbus_g_proxy_call.
2954
2955         * glib/dbus-binding-tool-glib.c: 
2956         * doc/dbus-tutorial.xml: 
2957         * test/glib/test-dbus-glib.c: Update for rename.
2958         
2959 2005-06-20  Colin Walters  <walters@verbum.org>
2960
2961         Patch suggested by Ross Burton <ross@openedhand.com>
2962
2963         * glib/dbus-gobject.c (export_signals): Free signal name.
2964         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2965         memory leak.  Add a bit of documentation.
2966         (dbus_g_method_return_error): Free context, and note we do
2967         so.
2968
2969 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2970
2971         * dbus/dbus-glib.h:
2972         * glib/dbus-gobject.c:
2973         * glib/dbus-gproxy.c:
2974         * glib/dbus-gvalue.c: Predeclare structs as 
2975         typedef struct _Something Something instead of 
2976         typedef struct Something Something, so we can 
2977         redeclare the prototypes. Other GNOME libraries 
2978         do this already.
2979
2980 2005-06-17  Colin Walters  <walters@verbum.org>
2981
2982         * tools/dbus-names-model.c (have_names_notify): Fix call
2983         to dbus_g_proxy_end_call.
2984         
2985 2005-06-17  Colin Walters  <walters@verbum.org>
2986
2987         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2988         spew warnings if we get malformed remote signals.
2989
2990         * glib/dbus-gobject.c (propsig_iterate): New function.
2991         (lookup_object_info): New function, extracted from
2992         lookup_object_and_method.
2993         (introspect_properties, introspect_signals): Delete; these
2994         are merged into write_interface.
2995         (write_interface): Write out signals and properties here;
2996         dump the org.gtk.object stuff and use the interface given
2997         in the introspection data blob.  Also fix up property XML.
2998         (lookup_values): New function.
2999         (introspect_interfaces): Gather a mapping from interface to a
3000         list of its methods, signals, and properties, then write out
3001         each interface.
3002         (lookup_object_and_method): Use lookup_object_info.
3003         (struct DBusGSignalClosure): Add interface.
3004         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3005         we can just use the constant data.
3006         (dbus_g_signal_closure_finalize): Don't free signal name.
3007         (signal_emitter_marshaller): Use interface from signal closure.
3008         (export_signals): Only export signals mentioned in introspection
3009         blob.
3010         (dbus_g_connection_register_g_object): Warn if we have no
3011         introspection data for an object.
3012         (funcsig_equal): Remove unused variable.
3013         (dbus_g_object_register_marshaller): Take varargs instead of
3014         list.
3015         (dbus_g_object_register_marshaller_array): New function,
3016         extracted from old dbus_g_object_register_marshaller.
3017
3018         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3019         signals and property data.
3020         (write_quoted_string): New function, extracted from generate_glue.
3021         (generate_glue): Write signals and properties to introspection
3022         blob.
3023
3024         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3025         exported_signals and exported_properties.
3026         (dbus_g_object_register_marshaller): Update prototype.
3027         (dbus_g_object_register_marshaller_array): Prototype.
3028         
3029         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3030
3031         * test/glib/test-service-glib.c: Add new test signals and method
3032         to emit them.
3033
3034         * test/glib/test-service-glib.xml: Add some test signals.
3035
3036         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3037         and my-object-marshal.h
3038         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3039         my-object-marshal.c.
3040         (my-object-marshal.c, my-object-marshal.h): Implement.
3041
3042         * test/glib/.cvsignore: Update.
3043
3044         * doc/TODO: Remove two GLib TODO items fixed by this
3045         patch.
3046
3047 2005-06-16  Colin Walters  <walters@verbum.org>
3048
3049         * doc/TODO: Update for GLib bindings.
3050         
3051 2005-06-16  Colin Walters  <walters@verbum.org>
3052
3053         * glib/dbus-binding-tool-glib.c:
3054         * glib/dbus-gobject.c:
3055         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3056         from Ross Burton, for his GLib bindings work.
3057
3058 2005-06-16  Colin Walters  <walters@verbum.org>
3059
3060         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3061         to iterate instead of walking to G_TYPE_INVALID.
3062
3063         Patch based on a patch from Ryan Gammon.
3064
3065 2005-06-16  Colin Walters  <walters@verbum.org>
3066
3067         * bus/bus.c (bus_context_new): Set parser to NULL
3068         after we unref it (Patch from Chris Boscolo, #2174).
3069         
3070 2005-06-16  Colin Walters  <walters@verbum.org>
3071
3072         * python/dbus_bindings.pyx.in: Import size_t,
3073         __int64_t, __uint64_t, and __signed.
3074
3075         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3076         Define cmsg struct, output it.
3077         (_dbus_read_credentials_unix_socket):
3078         Use cmsg struct.
3079         
3080         Patch from Joe Markus Clarke for FreeBSD support.
3081         
3082 2005-06-16  Colin Walters  <walters@verbum.org>
3083
3084         * tools/dbus-send.c (append_array): Use strtok.
3085         (append_dict): New function.
3086         (type_from_name): New function, extracted from main.
3087         (main): Handle sending dicts.
3088
3089         * tools/dbus-print-message.c (print_iter): Print dict
3090         entries.
3091         
3092 2005-06-16  Colin Walters  <walters@verbum.org>
3093
3094         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3095         values as the empty string (#2948).
3096         
3097 2005-06-16  Colin Walters  <walters@verbum.org>
3098
3099         * dbus/Makefile.am:
3100         * mono/doc/Makefile.am:
3101         * test/glib/Makefile.am:
3102
3103         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3104
3105 2005-06-16  Colin Walters  <walters@verbum.org>
3106
3107         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3108         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3109
3110         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3111         Increment pointer after swapping fixed array.  Add assertion
3112         for array length.
3113                 
3114 2005-06-15  Colin Walters  <walters@verbum.org>
3115
3116         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3117         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3118         
3119 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3120
3121         * NEWS: Update to 0.34
3122
3123 2005-06-15  David Zeuthen  <davidz@redhat.com>
3124
3125         * configure.in (LT_CURRENT): Revert back to 1 as the library
3126         hasn't changed and we've certainly not committed to protocol
3127         stability yet.  All this does is to break ABI. See commit note
3128         from hp@redhat.com 2005-05-05 for details.
3129         
3130 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3131
3132         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3133         (_dbus_connection_run_builtin_filters): New method
3134         (dbus_connection_dispatch): Run the builtin filters which in turn
3135         runs the peer filter which handles Ping messages.
3136
3137         * doc/TODO: 
3138          - Ping isn't handled: This patch fixes it
3139          
3140          - Add a test case for the Ping message: added TODO item
3141
3142 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3143
3144         * dbus/dbus-message.c:
3145         (dbus_message_has_path): New method
3146         (dbus_message_has_interface): New method
3147         (dbus_message_has_member): New method
3148
3149         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3150         New method
3151
3152         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3153         the keyring directory is private to the user
3154
3155         * doc/TODO:
3156          - The convenience functions in dbus-bus.h should perhaps have
3157          the signatures that they would have if they were autogenerated
3158          stubs. e.g. the acquire service function. We should also evaluate
3159          which of these functions to include, in light of the fact that
3160          GLib/Qt native stubs will probably also exist.: Punted
3161
3162          - add dbus_message_has_path(), maybe has_member/interface:
3163          fixed in this patch
3164
3165          - in dbus-keyring.c, enforce that the keyring dir is not
3166          world readable/writable: Fixed in this patch
3167
3168 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3169
3170         * dbus/dbus-marshal-validate.h: Added a new validation
3171         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3172         out of memory errors when validating signitures
3173
3174         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3175         in places where we previously used DBUS_VALID and a FALSE return 
3176         value to indicate OOM
3177         
3178         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3179         Use a stack to track the number of elements inside containers.  The 
3180         stack values are then used to validate that dict entries have only two
3181         elements within them.
3182         (validate_body_helper): check the reason for failure when validating
3183         varients
3184         
3185         * dbus/dbus-message.c (load_message): use 
3186         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3187         DBUS_VALID and a FALSE return value to indicate OOM
3188
3189         * doc/TODO: remove "- validate dict entry number of fields" as this
3190         patch fixes it
3191
3192 2005-06-14  David Zeuthen  <davidz@redhat.com>
3193
3194         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3195         watches (if applicable) and add new watches
3196
3197         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3198         (main): Setup SIGIO signal handler if using D_NOTIFY
3199
3200         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3201
3202         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3203         (merge_included): Also merge conf_dirs list
3204         (bus_config_parser_unref): Clear conf_dirs list
3205         (include_dir): Add directory to conf_dirs list
3206         (bus_config_parser_get_conf_dirs): New function
3207
3208         * bus/dir-watch.[ch]: New files
3209
3210         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3211
3212         * configure.in: Add checks for D_NOTIFY on Linux
3213
3214 2005-06-14  Colin Walters  <walters@verbum.org>
3215
3216         * glib/dbus-binding-tool-glib.c:
3217         * glib/dbus-gobject.c:
3218         * glib/dbus-gvalue.c: Fix indentation and brace style.
3219         
3220 2005-06-14  Ross Burton <ross@openedhand.com>.
3221
3222         * glib/dbus-glib.h: Make DBusGMethodInvocation
3223         a private structure.  Rearrange prototypes a bit.
3224         
3225         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3226         documentation for first_arg_type.
3227         
3228         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3229         here, add documentation.  Move dbus_g_method_return
3230         and dbus_g_method_return_error into public API
3231         section.
3232
3233 2005-06-14  Colin Walters  <walters@verbum.org>
3234
3235         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3236         Add missing return statements, noticed by Ross Burton.
3237         
3238 2005-06-13  Ross Burton <ross@openedhand.com>.
3239
3240         * glib/dbus-gobject.c: Handle errors on message
3241         demarshalling by sending error message back.
3242         * glib/dbus-gvalue.c: Initialize return variables.
3243
3244 2005-06-13  Colin Walters  <walters@verbum.org>
3245
3246         * glib/Makefile.am: Fix thinko in last patch.
3247
3248 2005-06-13  Colin Walters  <walters@verbum.org>
3249
3250         * glib/Makefile.am: Move dbus-gtype-specialized.c
3251         and dbus-gtype-specialized.h into a _HEADERS variable,
3252         install them.
3253
3254 2005-06-12  Colin Walters  <walters@verbum.org>
3255
3256         Async signals and various bugfixes and testing by
3257         Ross Burton <ross@openedhand.com>.
3258
3259         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3260         (dbus_gvalue_genmarshal_name_from_type)
3261         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3262         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3263         (dbus_g_value_types_init, dbus_gtype_from_signature)
3264         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3265         (dbus_gtypes_from_arg_signature): New function prototypes.
3266         (dbus_gvalue_demarshal): Take context and error arguments.
3267         (dbus_gvalue_demarshal_variant): New function.
3268         (dbus_gvalue_demarshal_message): New function.
3269         (dbus_gvalue_store): Delete.
3270
3271         * glib/dbus-gvalue.c:
3272
3273         File has been almost entirely rewritten; now we special-case
3274         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3275         hash tables correctly, etc.  Full support for recursive values
3276         is not yet complete.
3277
3278         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3279         argument of signal to G_TYPE_POINTER since we now pass a
3280         structure.
3281         (lookup_g_marshaller): Delete in favor of
3282         _dbus_gobject_lookup_marshaller.
3283         (marshal_dbus_message_to_g_marshaller): Use
3284         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3285         to handle remote signal callbacks.
3286         (dbus_g_proxy_new_from_proxy): New function; creates a new
3287         DBusGProxy by copying an existing one.
3288         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3289         (dbus_g_proxy_get_path): New functions.
3290         (dbus_g_proxy_marshal_args_to_message): New function;
3291         factored out of existing code.
3292         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3293         from a varargs array.
3294         (dbus_g_proxy_begin_call_internal): New function.
3295         (dbus_g_proxy_end_call_internal): New function.
3296         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3297         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3298         after collecting args into value array.
3299         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3300         invoke dbus_g_proxy_end_call_internal.
3301         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3302         end_call_internal.
3303         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3304         types.
3305         (array_free_all): New function.
3306         (dbus_g_proxy_add_signal): Take GTypes.
3307
3308         * glib/dbus-gobject.h:
3309         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3310         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3311         Prototype.
3312
3313         * glib/dbus-gobject.c: Add a global marshal_table hash which
3314         stores mappings from type signatures to marshallers.  Change lots
3315         of invocations of dbus_gtype_to_dbus_type to
3316         dbus_gtype_to_signature.
3317         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3318         (introspect_signals): Fix test for query.return_type.
3319         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3320         (invoke_object_method): Many changes.  Handle asynchronous
3321         invocations.  Convert arguments with
3322         dbus_gvalue_demarshal_message.  Handle errors.  Use
3323         DBusSignatureIter instead of strlen on args. Handle all arguments
3324         generically.  Special-case variants.
3325         (dbus_g_method_return, dbus_g_method_return_error): New function.
3326         (DBusGSignalClosure): New structure, closes over signal
3327         information.
3328         (dbus_g_signal_closure_new): New function.
3329         (dbus_g_signal_closure_finalize): New function.
3330         (signal_emitter_marshaller): New function; is special marshaller
3331         which emits signals on bus.
3332         (export_signals): New function; introspects object signals and
3333         connects to them.
3334         (dbus_g_object_type_install_info): Take GType instead of
3335         GObjectClass.
3336         (dbus_g_connection_register_g_object): Invoke export_signals.
3337         (dbus_g_connection_lookup_g_object): New function.
3338         (DBusGFuncSignature) New structure; used for mapping type
3339         signatures to marshallers.
3340         (funcsig_hash): New function; hashes DBusGFuncSignature.
3341         (funcsig_equal): New function; compares DBusGFuncSignature.
3342         (_dbus_gobject_lookup_marshaller): New function.
3343         (dbus_g_object_register_marshaller): New function; used to
3344         register a marshaller at runtime for a particular signature.
3345
3346         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3347
3348         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3349         which notes a server method implementation should be
3350         asynchronous.
3351
3352         * glib/dbus-binding-tool-glib.c
3353         (dbus_binding_tool_output_glib_server): Call
3354         dbus_g_value_types_init.
3355         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3356         variants specially.
3357         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3358         of a lookup function.
3359         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3360         (write_untyped_out_args): New method; write output arguments.
3361         (write_formal_declarations_for_direction): Function for
3362         writing prototypes.
3363         (write_formal_parameters_for_direction): Function for
3364         writing implementations.
3365         (write_typed_args_for_direction): Function for writing
3366         arguments prefixed with GTypes.
3367         (write_async_method_client): Write out async version
3368         of method.
3369
3370         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3371         (dbus_g_type_get_marshal_name): Move mapping from GType
3372         to marshal name into here.
3373         (dbus_g_type_get_c_name): Move into here.
3374         (compute_marshaller): Convert signature to type with
3375         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3376         (compute_marshaller_name): Ditto.
3377         (compute_marshaller): Handle async signal annotations.
3378         (gather_marshallers): Return if we don't have a known
3379         prefix.
3380         (generate_glue): Collect introspection blob here, and
3381         write all of the blob at the end.  This allows an object
3382         with multiple interfaces to work.
3383         Mark async methods in introspection blob.
3384
3385         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3386         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3387         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3388
3389         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3390         avoids people accidentally using DBUS_TYPE_* which should
3391         not be necessary anymore.
3392         Do include dbus-gtype-specialized.h, which are utilities
3393         for GLib container types.
3394         Add various #defines for types such as
3395         DBUS_TYPE_G_BOOLEAN_ARRAY.
3396         (DBusGValueIterator, DBusGValue): Define, not fully used
3397         yet.
3398         (dbus_g_value_get_g_type): Type for recursive value.
3399         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3400         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3401         (dbus_g_value_free): Prototypes.
3402         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3403         (dbus_g_proxy_set_interface): Prototype.
3404         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3405         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3406         types.
3407         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3408         Accessors.
3409         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3410         doing async invocations.
3411         (dbus_g_method_return, dbus_g_method_return_error):
3412         Prototypes.
3413         * doc/dbus-tutorial.xml: Update GLib section.
3414         
3415         * tools/dbus-viewer.c (load_child_nodes): Update
3416         for new invocation type of dbus_g_proxy_end_call.
3417         (load_from_service_thread_func): Ditto.
3418
3419         * tools/print-introspect.c (main): Ditto.
3420
3421         * tools/dbus-names-model.c (have_names_notify)
3422         (names_model_reload, names_model_set_connection)
3423         Use GTypes.
3424
3425         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3426         needed since Python bindings use GLib bindings.
3427
3428         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3429         Add --prefix argument.
3430
3431         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3432         unneeded --ignore-unsupported arg.
3433         
3434         * test/glib/test-service-glib.c: 
3435         * test/glib/test-service-glib.xml:
3436         * test/glib/test-dbus-glib.c: Add many more tests.
3437
3438 2005-06-06  David Zeuthen  <davidz@redhat.com>
3439
3440         * doc/TODO: Add item about need to remove deprecated functions.
3441
3442         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3443
3444         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3445         to repair the ABI which was broken with the last commit.
3446
3447 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3448
3449         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3450         (dbus_connection_disconnect): renamed to dbus_connection_close 
3451         for API symmetry with dbus_connection_open
3452         (_dbus_connection_open_internal): 
3453         s/dbus_connection_disconnect/dbus_connection_close
3454
3455         * dbus/dbus-bus.c (dbus_bus_get):
3456         s/dbus_connection_disconnect/dbus_connection_close
3457
3458         * bus/connection.c (bus_connections_unref, 
3459         bus_connections_setup_connection, bus_connections_expire_incomplete):
3460         s/dbus_connection_disconnect/dbus_connection_close
3461
3462         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3463         kill_client_connection_unchecked, check_hello_connection):
3464         s/dbus_connection_disconnect/dbus_connection_close
3465
3466         * bus/bus.c (new_connection_callback):
3467         s/dbus_connection_disconnect/dbus_connection_close
3468
3469         * tools/dbus-send.c (main):
3470         s/dbus_connection_disconnect/dbus_connection_close
3471
3472         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3473         s/dbus_connection_disconnect/dbus_connection_close
3474         
3475         * test/test-service.c (path_message_func, filter_func):
3476         s/dbus_connection_disconnect/dbus_connection_close
3477         
3478         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3479         
3480 2005-05-25  Colin Walters  <walters@verbum.org>
3481
3482         * dbus/dbus-protocol.h: Move various bus service #defines such
3483           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3484           dbus/dbus-shared.h.
3485         * dbus/dbus-shared.h: Various defines moved here.
3486         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3487
3488 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3489
3490         * python/__init__.py: Python bindings deserve a minor version
3491         update.  Upped to (0, 40, 2)
3492
3493 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3494
3495         * python/decorators.py: add explicitly_pass_message decorator
3496         for passing in the dbus message as keyword for edge case signal
3497         handling
3498
3499         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3500         to conform with what dbus expects for match rules
3501         (SignalMatchRule.execute): add the dbus message as a keyword
3502         if the signal handler has requested it
3503
3504         * python/examples/example/signal-recipient.py: added some more
3505         examples on how to hook up to signals
3506
3507 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3508
3509         * python/decorators.py: import dbus_bindings
3510
3511         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3512         SignalMatchNode): new classes that implement wildcard signal
3513         callback matching using a tree lookup. Heavily modified from a
3514         patch sent by Celso Pinto (fd.o bug #3241)
3515
3516         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3517         use new match classes to handle signals.
3518
3519 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3520         
3521         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3522
3523 2005-05-18  Havoc Pennington  <hp@redhat.com>
3524
3525         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3526         gettext. Not really worth requiring yet perhaps, but any
3527         production quality 1.0 would require it so we should go ahead and
3528         get things set up. We do have a couple token calls to
3529         bindtextdomain in the code already.
3530
3531 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3532
3533         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3534         when using recursive g_main_loops
3535
3536         * python/_dbus.py (class Bus): add the ProxyObjectClass
3537         alias for ProxyObject to make it easier for the Twisted 
3538         networking framework to integrate dbus.
3539
3540         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3541         alias for ProxyMethod to make it easier for the Twisted 
3542         networking framework to integrate dbus. 
3543
3544 2005-05-11  Ross Burton  <ross@openedhand.com>
3545
3546         * glib/dbus-glib-tool.c: Add --prefix argument.
3547         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3548         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3549         Add prefix argument.
3550         (generate_glue): Pass prefix argument down.
3551         (dbus_binding_tool_output_glib_server): Pass prefix to
3552         glib-genmarshal.
3553         
3554 2005-05-11  Colin Walters  <walters@verbum.org>
3555
3556         * tools/dbus-send.c (append_array): New function.
3557         (append_arg): Broken out from main.
3558         (main): Add cheesy hack to send arrays and variants.
3559         (usage): Update.
3560         * tools/dbus-print-message.c (print_iter): Broken out
3561         from main.
3562
3563 2005-05-11  Colin Walters  <walters@verbum.org>
3564
3565         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3566         New function, returns signature string for signature iter.
3567         * dbus/dbus-signature.h: Prototype it.
3568         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3569         New function, returns signature string for message iter.
3570         (dbus_message_iter_get_array_len): New function, returns
3571         length of array.
3572         (dbus_message_iter_get_fixed_array): Fix assertion; this
3573         function should be used when the iter is pointing to the
3574         contents of an array
3575         * dbus/dbus-message.h: Prototypes.
3576         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3577         New function; returns length of an array.
3578         * dbus/dbus-marshal-recursive.h: Prototype it.
3579         
3580 2005-05-11  Colin Walters  <walters@verbum.org>
3581
3582         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3583         compilation error.
3584         
3585 2005-05-08  Havoc Pennington  <hp@redhat.com>
3586
3587         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3588         daemon's pid, not the parent's pid, to the file descriptor.
3589         Reported by Taj Morton.
3590
3591 2005-05-05  Havoc Pennington  <hp@redhat.com>
3592
3593         * configure.in (LT_*): add notes on how the libtool versioning
3594         works to save thinking. Increment soname to indicate protocol
3595         breakage (though really the library interface hasn't changed I
3596         guess)
3597
3598         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3599         verify the GUID received from server matches what we were
3600         expecting, if we had an expectation
3601
3602         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3603         (_dbus_auth_get_guid_from_server): new function
3604         (send_begin): parse the OK args
3605
3606         * doc/dbus-specification.xml: add GUID to the auth protocol
3607
3608 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3609
3610         * Fix my name in previous changelog ;)
3611
3612         * python/proxies.py (ProxyObject.__getattr__): add further patch
3613         from Anthony Baxter to throw an AttributeError when python 
3614         __special__ functions are called instead of marshling them over 
3615         the bus (Bug#1685 comment 3).
3616
3617 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3618
3619         * python/Makefile.am: changed to use pyexecdir for the binding
3620         shared libraries (Bug#2494)
3621
3622         * python/exceptions.py: bring exceptions over from the bindings
3623         so they can be used in applications (Bug#2036)
3624         Make all exceptions derive from DBusException
3625
3626         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3627         of classes so that print obj doesn't throw an exception (Bug #1685)
3628
3629 2005-05-03  Ross Burton  <ross@openedhand.com>
3630
3631         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3632         Return if we get an error during registration.  Set up a
3633         weak reference on object to unregister if object is destroyed.
3634         (unregister_gobject): New function.
3635         
3636 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3637
3638         * python/dbus_bindings.pyx.in: 
3639         - added new type classes for hinting to the marashaler what type 
3640         to send over the wire
3641         - added int16 and uint16 marshalers
3642         - Fixed a bug in the type constants that caused int32 to go out
3643         as uint16 over the wire
3644         * python/dbus.py: split up into different files and renamed _dbus.py
3645         * python/__init__.py, python/_util.py, python/decorators.py, 
3646         python/exceptions.py, python/proxies.py, python/services.py,
3647         python/types.py: new files split off from dbus.py
3648         * python/Makefile.am: Add new files, remove dbus.py and 
3649         install all python files to <python module dir>/dbus
3650         * python/examples/*: Added #!/usr/bin/env python to the top of
3651         every example.  Patch provided by Tatavarty Kalyan
3652
3653 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3654
3655         * NEWS: Update to 0.33
3656
3657 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3658
3659         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3660         method for doing async calls
3661         (_pending_call_notification): New C function for handling pendning call
3662         callbacks
3663         (set_notify): New method for setting pending call notification
3664         
3665         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3666         Async capabilities added to remote method calls
3667         (Sender): class removed
3668         (RemoteService): class removed
3669         (ObjectTree): class removed for now
3670         (RemoteObject): Renamed to ProxyObject
3671         (RemoteMethod): Renamed to ProxyMethod
3672         (method): Decorator added for decorating python methods as dbus methods
3673         (signal): Decorator added for decorating python methods as signal emitters
3674         (ObjectType): Metaclass added for generating introspection data and the
3675         method callback vtable
3676         (Interface): Wrapper class added to wrap objects in a dbus interface
3677         (Object): Uses ObjectType as its metaclass and exports Introspect
3678         of the org.freedesktop.DBus.Introspectable interface
3679         (ValidationException, UnknownMethodException): new exceptions
3680
3681         * python/examples/*: Modified to fit with the new bindings
3682
3683 2005-04-23  Havoc Pennington  <hp@redhat.com>
3684
3685         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3686         reported by Tony Houghton
3687
3688         * test/test-service.c (main): test
3689         dbus_connection_get_object_path_data()
3690
3691         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3692         the exact_match
3693         (_dbus_object_tree_get_user_data_unlocked): new function used by
3694         dbus_connection_get_object_path_data()
3695         (do_register): add assertion test for get_user_data_unlocked
3696         (object_tree_test_iteration): more tests
3697
3698         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3699         new function from Dan Reed to let you get the user data from 
3700         dbus_connection_register_object_path()
3701
3702 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3703
3704         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3705         in numerous places that did not account for the NULL terminator
3706         (signature_from_seed): changed the manual string copy loop to 
3707         just use strcpy instead
3708         make check should now pass
3709
3710 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3711
3712         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3713         so that it allows messages that are not signals to pass in 
3714         NULL as the interface.
3715
3716 2005-04-18  David Zeuthen  <davidz@redhat.com>
3717
3718         * glib/dbus-gmain.c (io_handler_destroy_source): 
3719         (timeout_handler_destroy_source, connection_setup_free): 
3720         Also unref the source to avoid memory leaks.
3721
3722 2005-04-13  David Zeuthen  <davidz@redhat.com>
3723
3724         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3725         more reasonable, yet still totally arbitrary, value :-). 
3726
3727 2005-04-13  David Zeuthen  <davidz@redhat.com>
3728
3729         * doc/TODO: Added an "important for 1.0" item about selinux
3730         allow/deny messages
3731
3732 2005-04-13  David Zeuthen  <davidz@redhat.com>
3733
3734         * bus/selinux.c: Add c-file-style to top of file
3735         (log_audit_callback): Don't free the data here anymore
3736         (bus_selinux_check): Don't take spid and tpid since appending
3737         that to auxdata may OOM.
3738         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3739         to the caller if we are OOM by taking an error object.
3740         (bus_selinux_allows_send): -do-
3741
3742         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3743         and bus_selinux_allows_send
3744
3745         * bus/bus.c (bus_context_check_security_policy): Pass error and
3746         pass on OOM thrown by bus_selinux_allows_send()
3747
3748         * bus/services.c (bus_registry_acquire_service): Pass error and
3749         pass on OOM thrown by bus_selinux_allows_acquire_service()
3750
3751 2005-04-13  Havoc Pennington  <hp@redhat.com>
3752
3753         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3754         message at a time to avoid monopolizing the main loop, bug 
3755         #2953 from Benjamin Otte
3756
3757 2005-04-09  Havoc Pennington  <hp@redhat.com>
3758
3759         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3760         possible overlap, fix from Daniel Reed
3761         (fixup_alignment): fix signedness warnings
3762         (_dbus_string_append_unichar): ditto
3763
3764 2005-04-09  Havoc Pennington  <hp@redhat.com>
3765
3766         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3767
3768         * glib/dbus-glib-tool.c (main): fix warning
3769
3770         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3771
3772         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3773         add a new function that can be used in simple applications that
3774         don't have a main loop and are willing to block
3775
3776 2005-04-05  David Zeuthen  <davidz@redhat.com>
3777
3778         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3779
3780         * glib/dbus-gmain.c:
3781         (io_handler_destroy_source): Remove from list of IO handlers
3782         of the ConnectionSetup object
3783         (timeout_handler_destroy_source): -do- for timeout handlers
3784         (io_handler_source_finalized): Don't remove from list since
3785         we now do that in io_handler_destroy_source(). Renamed from
3786         io_handler_source_destroyed
3787         (timeout_handler_source_destroyed): -do- for timeout handlers
3788         (connection_setup_free): It is now safe to iterate over all
3789         IO and timeout handlers as the _destroy_source removes them
3790         from the list synchronously
3791
3792 2005-03-30  Havoc Pennington  <hp@redhat.com>
3793
3794         * configure.in: change check to gtk 2.4
3795
3796         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3797         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3798         to 2.4
3799
3800 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3801
3802         * News: Update 0.32
3803
3804         * HACKING: Fixed realease instructions.  configure.in should be updated to
3805           the next release by the person who made the last release.
3806
3807 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3808
3809         * python/lvalue_cast_post_process.py - removed.  Patch has been
3810           submitted to Pyrex maintainers that fixes gcc4.0 errors
3811
3812         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3813
3814 2005-03-24  Daniel Reed  <n@ml.org>
3815
3816         * tools/Makefile.am: Make print-introspect and
3817         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3818
3819 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3820
3821         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3822
3823         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3824           had in Red Hat packages for a while but for some reason never 
3825           got merged upstream
3826           (_dbus_is_a_number): New checks if a string
3827           can be converted to a number and does the conversion if it can
3828           (_dbus_user_database_lookup): Add check to see if the given username
3829           is a udi.  This allows udi's to be used instead of usernames in the
3830           config file.
3831           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3832           is a gdi.  This allows gdi's to be used instead of groupnames in the
3833           config file.
3834
3835 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3836
3837         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3838           code so that it compiles with gcc4.0
3839
3840         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3841           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3842           results back to dbus_binding.c
3843
3844 2005-03-20  Colin Walters  <walters@verbum.org>
3845
3846         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3847
3848         * configure.in: Require GTK+ 2.6.
3849         
3850 2005-03-20  Colin Walters  <walters@verbum.org>
3851
3852         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3853
3854 2005-03-17  Tom Parker  <palfrey@tevp.net>
3855
3856         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3857         print DBUS_UID_UNSET; instead print passed username.  Also
3858         be sure to actually use gid looked up in cache.
3859         
3860         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3861         for DBUS_GID_UNSET and groupname.
3862
3863 2005-03-17  Colin Walters  <walters@verbum.org>
3864
3865         * bus/print-introspect.c: Move to tools/.
3866         * bus/run-with-tmp-session-bus.sh: Ditto.
3867         
3868         * glib/Makefile.am (dbus-glib-bindings.h): Move
3869         generation to tools/Makefile.am.
3870
3871         * test/glib/run-test.sh: Update to handle move
3872         of run-with-tmp-session-bus.sh.
3873
3874         * test/glib/test-service-glib.c: Update to handle
3875         move of dbus-glib-bindings.h.
3876
3877         * tools/print-introspect.c: Moved here
3878         from bus/, and ported to GLib bindings.
3879
3880         * tools/run-with-tmp-session-bus.sh: Moved here
3881         from bus/.
3882
3883         * tools/Makefile.am: Generate dbus-glib-bindings.h
3884         and dbus-bus-introspect.xml here.
3885
3886         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3887         Update.
3888
3889 2005-03-17  Colin Walters  <walters@verbum.org>
3890
3891         * bus/driver.c (write_args_for_direction): Use
3892         _dbus_string_get_const_data to retrieve string;
3893         _dbus_string_get_const_data_len doesn't actually return
3894         a NULL-terminated substring.
3895
3896         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3897         (main): Change to use org_freedesktop_DBus_request_name
3898         instead of using g_proxy_begin_call/end_call.
3899
3900 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3901
3902         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3903         generating the finalizer.  Fixes from Ben Maurer.
3904
3905 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3906
3907         * mono/BusDriver.cs: Update method names: ListServices
3908         becomes ListNames; GetOwner becomes GetNameOwner.
3909
3910         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3911         onto the eval stack when removing the delegate.
3912
3913 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3914
3915         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3916         LT_CURRENT.  Set it to the autoconf variable.
3917                                                                                 
3918         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3919         classes that disconnects the signal handler delegate from the
3920         service object.  Fixes a big leak of proxy objects on the
3921         client side of things.  Patch from Ben Maurer
3922         <bmaurer@ximian.com>
3923
3924 2005-03-12  Colin Walters  <walters@verbum.org>
3925
3926         * bus/driver.c (write_args_for_direction): New function,
3927         parses a type signature into arguments and outputs to
3928         XML.
3929         (bus_driver_handle_introspect): Use it instead of
3930         hardcoding XML for certain signatures.
3931         
3932         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3933         dependency on dbus-daemon.
3934
3935         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3936         argument, pass it to dbus_binding_tool_output_glib_client.
3937
3938         * glib/dbus-binding-tool-glib.c
3939         (generate_client_glue): Protect against multiple inclusion.
3940         (dbus_binding_tool_output_glib_client): Add
3941         G_BEGIN_DECLS/G_END_DECLS.
3942
3943         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3944         Change to just take iface prefix directly.
3945         (write_formal_parameters): Clarify error message.
3946         (check_supported_parameters): New function; checks to see type
3947         signatures of method parameters are supported.
3948         (generate_client_glue): Handle ignore_unsupported flag.
3949         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3950         parameter.
3951
3952         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3953         --ignore-unsupported by default until glib bindings
3954         support arrays.
3955
3956 2005-03-11  Colin Walters  <walters@verbum.org>
3957
3958         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3959         install it.
3960
3961         * bus/print-introspect.c: New file; prints introspection
3962         data for a given name and object path.
3963
3964         * bus/run-with-tmp-session-bus.sh: New file, refactored
3965         from test/glib/run-test.sh.  Creates a temporary session
3966         bus and runs another program.
3967
3968         * test/glib/run-test.sh: Refactor to invoke
3969         run-with-tmp-session-bus.sh.
3970
3971         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3972         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3973         macros instead of hardcoding.
3974
3975         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3976
3977 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3978
3979         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3980         this unref; it doesn't match up evenly in some codepaths.
3981         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3982         this evenly matches with the ref near the top of this function.
3983
3984 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3985
3986         * dbus/dbus-object-tree.c
3987         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3988         and we try to unregister a path that's not registered, still go
3989         through the process of unlocking and don't just return.
3990
3991 2005-03-09  Colin Walters  <walters@verbum.org>
3992
3993         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3994         to this are generated for client-side wrappers.  Invokes a
3995         D-BUS method and returns reply values.  
3996
3997         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3998         function; writes signature string for argument direction.
3999         (write_args_for_direction): Change to pass input values directly
4000         instead of via address, and fix indentation.
4001         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4002         make generated wrappers inlineable.
4003
4004         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4005         note about using dbus_type_is_fixed.
4006
4007         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4008         dbus/dbus-signature.c as dbus_type_is_fixed.
4009
4010         All callers updated.
4011
4012         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4013         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4014
4015         * dbus/dbus-signature.h: Prototype.
4016
4017         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4018         error printf code.
4019
4020         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4021         appropriate instead of just freeing it.
4022         (main): Free returned strings using g_free.
4023
4024         * test/glib/Makefile.am (test-service-glib-glue.h)
4025         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4026
4027         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4028         simply maps a simple D-BUS type to GType.
4029         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4030         GType.
4031         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4032         initialize the value with it.
4033         (dbus_gvalue_binding_type_from_type): Unused, delete.
4034         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4035         various types instead of unmarshalling to value data directly.
4036         Remove can_convert boolean.
4037         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4038         returning directly instead of using can_convert boolean.
4039         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4040         Stores a GValue in a pointer to a value of its corresponding C
4041         type.
4042
4043         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4044         add dbus_gvalue_store.
4045
4046 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4047
4048         Fix a bunch of lifecycle and memory management problems
4049         in the mono bindings.
4050
4051         * mono/Arguments.cs (Arguments): Implement IDisposable
4052
4053         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4054         strictly a static class.
4055
4056         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4057         delegates into this file.
4058         (Connection): Implement IDisposable.
4059         (Dispose): Disconnect the connection and set the raw connection
4060         pointer to IntPtr.Zero.
4061         (~Connection): Call Dispose().
4062         (RegisterObjectPath): Added.  Manages the registration of object
4063         paths so we can cleanly disconnect them at dispose/finalize time.
4064         (UnregisterObjectPath): Ditto.
4065         (set_RawConnection): Unregister all of the object paths when
4066         changing the underlying DBusConnection.  Add them back onto the
4067         new connection, if any.
4068
4069         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4070         more unmanaged resources anymore, so it's not necessary.  Move all
4071         the DBusObjectPathVTable stuff out of here.
4072         (Handler): Save references to our delegates so that they don't get
4073         finalized.  Call Connection.RegisterObjectPath() instead of
4074         dbus_connection_register_object_path() directly.
4075         (Message_Called): Dispose the message after we're finished with
4076         it.
4077
4078         * mono/Message.cs (Message): Implement IDisposable.
4079         (Dispose): Dispose the Arguments, and set the RawMessage to
4080         IntPtr.Zero.
4081         (SendWithReplyAndBlock): We own the ref to the reply that comes
4082         back from dbus_connection_send_with_reply_and_block() so add a
4083         comment about that and unref it after we've constructed a managed
4084         MethodReturn class around it.  Fixes a big, big leak.
4085
4086         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4087         method.
4088         (BuildSignalHandler): After we've sent the Signal message, dispose
4089         of it.
4090         (BuildMethod): Dispose of the method call and reply messages after
4091         we've sent the message and extracted the data we want from the
4092         reply.
4093
4094         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4095         anymore.
4096         (Service_FilterCalled): Dispose of the message after we're
4097         finished with it.
4098
4099 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4100
4101         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4102         After we attach our pending call to the connection, unref
4103         it.  Fixes a leak.
4104  
4105         * mono/Connection.cs (set_RawConnection): Disconnect our
4106         filter and match callbacks from the old connection and
4107         reconnect them to the new connection, if any.
4108
4109         * mono/DBusType/Array.cs: "Code" is a static member, so
4110         don't use "this" to refer to it.  Fix for stricter checking
4111         in Mono 1.1.4.
4112  
4113         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4114         object path that we pass into unmanaged code.
4115  
4116         * mono/DBusType/String.cs (Append): Don't leak the string
4117         that we pass into unmanged code.
4118
4119 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4120         * NEWS: Update for 0.31
4121
4122         * configure.in: Release 0.31
4123         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4124
4125         * qt/Makefile.am: fixed build
4126
4127         * dbus/Makefile.am: soname bump for libdbus
4128
4129         * glib/Makefile.am: soname bump for libdbus-glib
4130
4131 2005-03-05  Havoc Pennington  <hp@redhat.com>
4132
4133         * dbus/dbus-sysdeps.c:
4134         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4135         value
4136         (_dbus_generate_random_bytes_buffer): fix return value
4137
4138         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4139         checks actually work, from Tom Parker <fdo@tevp.net>
4140
4141 2005-03-01  Colin Walters  <walters@verbum.org>
4142
4143         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4144         functions copied from dbus-glib-tool.c.
4145         (main): Convert lots of error code to use them.
4146         Also add some testing for introspection bits.
4147
4148 2005-03-01  Colin Walters  <walters@verbum.org>
4149         
4150         * doc/TODO: Remove introspection signature TODO.
4151
4152 2005-02-27  Colin Walters  <walters@verbum.org>
4153
4154         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4155         Change return value to const char * instead of int so we can do
4156         full signatures.
4157         (struct PropertyInfo, struct ArgInfo): Store char *.
4158         (property_info_new, arg_info_new): Update parameters, strdup.
4159         (property_info_unref, arg_info_unref): Free.
4160
4161         * glib/dbus-gidl.h: Update prototypes.
4162
4163         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4164         (validate_signature): New function, just validates signature and
4165         sets GError.
4166         (parse_property, parse_arg): Invoke validate_signature.  Store
4167         signature instead of just type code.
4168
4169         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4170         function to return a primary type for a signature, dropping
4171         information about types in container types.
4172         (dbus_gvalue_genmarshal_name_from_type)
4173         (dbus_gvalue_binding_type_from_type)
4174         (dbus_gvalue_ctype_from_type): Update to take full signature
4175          instead of type code.
4176         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4177
4178         * glib/dbus-gvalue.h: Update prototypes for above.
4179
4180         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4181         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4182         (introspect_properties, introspect_signals, write_interface):
4183         Update to handle signatures, and remove usage of
4184         _dbus_gutils_type_to_string.
4185         (handle_introspect): Print out type codes instead of e.g. "string"
4186         in hardcoded introspection XML; also use x_AS_STRING constants
4187         instead of hardcoding in string.
4188
4189         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4190         to string.  Remove usage of _dbus_gutils_type_to_string.
4191
4192         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4193
4194         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4195         deletion.
4196         
4197         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4198         (compute_marshaller_name, generate_glue): Handle signature change
4199         to string.
4200         (write_formal_parameters, write_args_for_direction): Ditto, and
4201         remove FIXME.
4202
4203         * tools/dbus-tree-view.c (type_to_string): Delete.
4204         (info_set_func_text): Update to print full signatures.
4205
4206         * test/glib/test-service-glib.xml: Change types to new
4207         introspection format.
4208
4209 2005-02-26  Havoc Pennington  <hp@redhat.com>
4210
4211         * doc/TODO: remove the "guid" item
4212
4213         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4214         (with_bus_thread_func): use open_private
4215
4216         * dbus/dbus-connection.c (dbus_connection_open_private): new
4217         function that works like the old dbus_connection_open()
4218         (dbus_connection_open): now returns an existing connection if
4219         possible
4220
4221         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4222         through the GUID to the transport
4223
4224         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4225         GUID in hex-encoded form.
4226
4227         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4228         pass GUID argument in to the transport
4229
4230         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4231         guid argument
4232
4233         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4234
4235         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4236
4237 2005-02-25  Havoc Pennington  <hp@redhat.com>
4238
4239         * doc/dbus-specification.xml: document the GUID thing
4240
4241         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4242         globally unique ID for the server, and put a "guid=hexencoded"
4243         field in the address
4244
4245         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4246
4247         * dbus/dbus-message.c: ditto
4248
4249         * dbus/dbus-dataslot.c: ditto
4250
4251         * dbus/dbus-list.c: ditto
4252
4253         * dbus/dbus-internals.h: wait, just include
4254         dbus-threads-internal.h here
4255         
4256         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4257         use in main library
4258
4259         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4260
4261 2005-02-24  Colin Walters  <walters@verbum.org>
4262
4263         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4264
4265 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4266
4267         * glib/Makefile.am: added dbus-gobject.h to sources list
4268         so distcheck doesn't fail
4269         
4270 2005-02-24  Havoc Pennington  <hp@redhat.com>
4271
4272         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4273         you must disconnect before unref, since locking and other things
4274         are screwed up otherwise. Fix assorted other locking stuff.
4275
4276         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4277         fix compilation
4278
4279         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4280         into a private header and don't export from the library
4281
4282         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4283
4284 2005-02-24  Colin Walters  <walters@verbum.org>
4285         
4286         * dbus/dbus-signature.c: New file; implements various functions
4287         related to type signatures.  Includes an interator for parsing,
4288         validation functions.
4289         (dbus_type_is_basic): Moved here from
4290         dbus-marshal-basic.c:_dbus_type_is_basic.
4291         (dbus_type_is_container): Moved here from
4292         dbus-marshal-basic.c:_dbus_type_is_container.
4293
4294         All callers of _dbus_type_is_container and _dbus_type_is_basic
4295         updated, and include dbus-signature.h.
4296
4297         * dbus/dbus-signature.h: New file; prototypes for the above.
4298
4299         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4300         dbus-signature.h.
4301
4302         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4303         function factored out of _dbus_first_type_in_signature.
4304         (_dbus_first_type_in_signature_c_str): New function; returns first
4305         type code for a type signature character.
4306
4307         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4308         handle function moves.
4309
4310         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4311
4312         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4313         function; skips to next complete type in type signature.
4314         Implemented using previous skip_one_complete_type.  Now
4315         skip_one_complete_type just delegates to
4316         _dbus_type_signature_next.
4317
4318         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4319         to dbus-signature.c
4320         (_dbus_type_is_container): Ditto.
4321
4322         * doc/dbus-specification.xml: Update introspection sample to
4323         use real type signatures.
4324
4325         * dbus/dbus-test.h: Prototype signature test.
4326
4327         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4328         signature tests.
4329
4330         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4331
4332 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4333
4334         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4335         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4336
4337 2005-02-21  Colin Walters  <walters@verbum.org>
4338
4339         * dbus/dbus-test-main.c (main): Take optional specific test
4340         argument.
4341
4342         * dbus/dbus-test.c (run_test): New function, runs a test function
4343         with no data directory.
4344         (run_data_test): Like above, but takes data directory.
4345         (dbus_internal_do_not_use_run_tests): Take
4346         specific test argument.  Replace lots of cut n' paste code
4347         with run_test and run_data_test.
4348
4349         * dbus/dbus-test.h: Update prototype for
4350         dbus_internal_do_not_use_run_tests.
4351
4352 2005-02-20  Havoc Pennington  <hp@redhat.com>
4353
4354         Fix bugs reported by Daniel P. Berrange
4355         
4356         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4357         (protected_change_watch): new function
4358         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4359         (_dbus_server_add_watch): change to work like the
4360         dbus-connection.c equivalents; like those, probably kind of
4361         busted, but should at least mostly work for now
4362         (dbus_server_disconnect): drop the lock if we were already
4363         disconnected, patch from Daniel P. Berrange
4364
4365         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4366         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4367         same stuff
4368
4369         * doc/TODO: todo about unscrewing this mess
4370
4371 2005-02-19  Colin Walters  <walters@verbum.org>
4372
4373         * glib/dbus-binding-tool-glib.c
4374         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4375
4376         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4377         as errno.h and sys/stat.h.
4378         (lose): New function, prints error with
4379         newline and exits.
4380         (lose_gerror): Similar, but takes GError for message.
4381         (main): Add --output argument to specify output file to write to,
4382         instead of always printing to stdout.  In this mode, determine
4383         timestamps on source files to see whether any are newer than the
4384         target file.  If not, exit.  Also convert a number of error
4385         messages to use lose (since it's shorter), and switch to using
4386         g_io_channel_shutdown.
4387
4388 2005-02-19  Havoc Pennington  <hp@redhat.com>
4389
4390         * glib/dbus-gobject.c
4391         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4392
4393         * glib/dbus-glib.c: fix doxygen warnings
4394
4395         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4396         is found on an <arg>
4397
4398 2005-02-17  Colin Walters  <walters@verbum.org>
4399
4400         * glib/dbus-gobject.h: Don't export
4401         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4402         
4403         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4404         (invoke_object_method): Handle it.
4405
4406         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4407         Handle rename.
4408         
4409 2005-02-17  Colin Walters  <walters@verbum.org>
4410
4411         * bus/.cvsignore, doc/.cvsignore
4412         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4413         Update.
4414
4415 2005-02-17  Colin Walters  <walters@verbum.org>
4416         
4417         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4418         Rename to DBUS_SERVICE_DBUS.
4419         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4420         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4421         Change the value from "org.freedesktop.Local"
4422         to "org.freedesktop.DBus.Local".
4423         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4424         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4425         DBUS_INTERFACE_INTROSPECTABLE.
4426         Change the value from "org.freedesktop.Introspectable"
4427         to "org.freedesktop.DBus.Introspectable".
4428         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4429         DBUS_INTERFACE_PROPERTIES.
4430         Change the value from "org.freedesktop.Properties"
4431         to "org.freedesktop.DBus.Properties".
4432         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4433         DBUS_INTERFACE_PEER.
4434         Change the value from "org.freedesktop.Peer"
4435         to "org.freedesktop.DBus.Peer".
4436         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4437         DBUS_INTERFACE_LOCAL.
4438         Change the value from "org.freedesktop.Local"
4439         to "org.freedesktop.DBus.Local".
4440
4441         All other users of those constants have been changed.
4442
4443         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4444
4445         * glib/dbus-gobject.c (handle_introspect): Use constants.
4446
4447         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4448
4449 2005-02-17  Colin Walters  <walters@verbum.org>
4450
4451         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4452         (parse_node, parse_interface, parse_method, parse_signal)
4453         (parse_property, parse_annotation): Lose if we're currently in an
4454         annotation.
4455         (parse_annotation): New function.
4456         (parser_start_element, parser_end_element): Handle annotation.
4457         (parse_method, parse_interface): Remove support for c_name attribute,
4458         switch to annotations.
4459
4460         * glib/dbus-gidl.h (interface_info_get_binding_names)
4461         (method_info_get_binding_names)
4462         (interface_info_get_binding_name, method_info_get_binding_name)
4463         (interface_info_set_binding_name, method_info_set_binding_name):
4464         Remove.
4465         (interface_info_get_annotations, method_info_get_annotations)
4466         (interface_info_get_annotation, method_info_get_annotation)
4467         (interface_info_add_annotation, method_info_add_annotation):
4468         Prototype.
4469
4470         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4471         for "bindings".
4472         (struct MethodInfo): Ditto.
4473         Straightfoward conversion of binding methods into annotation methods
4474         as prototyped.
4475
4476         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4477
4478         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4479
4480         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4481         Use new annotation API.
4482
4483         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4484         annotation element.
4485         
4486         * doc/dbus-specification.xml: Discuss introspection annotations,
4487         include list of well-known annotations.
4488
4489         * test/glib/test-service-glib.xml: Make validate against new DTD.
4490
4491 2005-02-17  Colin Walters  <walters@verbum.org>
4492
4493         This patch is based on initial work from
4494         Paul Kuliniewicz <kuliniew@purdue.edu>.
4495
4496         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4497         initialization of GValue from dbus type to here.
4498         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4499         for the "glib-genmarshal" program from a DBus type.
4500         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4501         into the C name for it we use in the glib bindings.
4502         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4503         glib C type (not GValue).
4504         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4505
4506         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4507         from dbus-gobject.c.
4508
4509         * glib/dbus-gutils.h: Prototype it.
4510
4511         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4512         (marshal_dbus_message_to_g_marshaller): Use new shared function
4513         dbus_glib_marshal_dbus_message_to_gvalue_array.
4514
4515         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4516         Will be changed once we have annotations.
4517
4518         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4519         GStaticRWLock.  Callers updated.
4520         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4521         (string_table_next): New function for iterating over zero-terminated
4522         string value array.
4523         (string_table_lookup): New function; retrieves specific entry in
4524         array.
4525         (get_method_data): New function; look up method data in object data chunk.
4526         (object_error_domain_prefix_from_object_info)
4527         (object_error_code_from_object_info): New functions, but not implemented yet.
4528         (method_interface_from_object_info): New function; retrieve interface name.
4529         (method_name_from_object_info): New function; retrieve method name.
4530         (method_arg_info_from_object_info): New function; retrieve argument data.
4531         (arg_iterate): New function; iterates over serialized argument data.
4532         (method_dir_signature_from_object_info): New function; returns a
4533         GString holding type signature for arguments for just one
4534         direction (input or output).
4535         (method_input_signature_from_object_info)
4536         (method_output_signature_from_object_info): New functions.
4537         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4538         converts dbus message arguments into a GValue array.  Used for both
4539         signal handling and method invocation.
4540         (struct DBusGlibWriteIterfaceData): New utility structure.
4541         (write_interface): New function; generate introspection XML for
4542         an interface.
4543         (introspect_interfaces): New function; gathers all interface->methods,
4544         generates introspection XML for them.
4545         (handle_introspect): Invoke introspect_interfaces.
4546         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4547         (lookup_object_and_method): New function; examines an incoming message
4548         and attempts to match it up (via interface, method name, and argument
4549         signature) with a known object and method.
4550         (gerror_domaincode_to_dbus_error_name): New function; converts a
4551         GError domain and code into a DBus error name.  Needs GError data
4552         added to object introspection to work well.
4553         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4554         GError.
4555         (invoke_object_method): New function to invoke an object method
4556         looked up via lookup_object_and_method.  Parses the incoming
4557         message, turns it into a GValue array, then invokes the marshaller
4558         specified in the DBusGMethodInfo.  Creates a new message with
4559         either return values or error message as appropriate.
4560         (gobject_message_function): Invoke lookup_object_and_method and
4561         invoke_object_method.
4562
4563         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4564         (enum DBusBindingOutputMode): New enum for binding output modes.
4565         (pretty_print): Print binding names.
4566         (dbus_binding_tool_error_quark): GError bits.
4567         (version): Fix typo.
4568         (main): Create GIOChannel for output.  Parse new --mode argument,
4569         possible values are "pretty-print", "glib-server", "glib-client".
4570         Use mode to invoke appropriate function.
4571         
4572         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4573
4574         * glib/dbus-glib-tool.h: New header, just includes GError bits
4575         for now.
4576
4577         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4578         maps binding style to name.
4579         (struct MethodInfo): Ditto.
4580         (get_hash_keys, get_hash_key): Utility function, returns keys for
4581         a GHashTable.
4582         (interface_info_new, method_info_new): Initialize bindings.
4583         (interface_info_unref, method_info_unref): Destroy bindings.
4584         (method_info_get_binding_names, method_info_get_binding_name)
4585         (interface_info_get_binding_names, interface_info_get_binding_name):
4586         Functions for retrieving binding names.
4587         (method_info_set_binding_name, interface_info_set_binding_name):
4588         Functions for setting binding names.
4589
4590         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4591         for glib binding generation.
4592
4593         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4594         and client-side glib glue generation.
4595
4596         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4597         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4598         dbus-glib-tool.h.
4599
4600         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4601         of using GClosureMarshal directly.
4602         (struct DBusGObjectInfo): Add n_infos member.
4603
4604         * test/glib/test-service-glib.xml: New file; contains introspection data
4605         for MyTestObject used in test-service-glib.c.
4606
4607         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4608         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4609         (my_object_uppercase, my_object_many_args): New test methods.
4610         (main): Use dbus_g_object_class_install_info to include generated object
4611         info.
4612
4613         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4614         as well as client-side bindings.
4615
4616         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4617         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4618         using both the dbus_gproxy stuff directly as well as the generated bindings.
4619
4620 2005-02-15  Havoc Pennington  <hp@redhat.com>
4621
4622         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4623         complete a pending call, don't run filters first.
4624
4625         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4626         dbus_pending_call_steal_reply
4627
4628         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4629         _dbus_connection_block_pending_call
4630         (dbus_pending_call_get_reply): change to steal_reply and return a
4631         ref
4632
4633         * dbus/dbus-connection.c
4634         (dbus_connection_send_with_reply_and_block): port to work in terms
4635         of DBusPendingCall
4636         (_dbus_connection_block_pending_call): replace block_for_reply
4637         with this
4638
4639 2005-02-14  Havoc Pennington  <hp@redhat.com>
4640
4641         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4642         properly handle looking up group information by name; fix 
4643         from j@bootlab.org
4644
4645 2005-02-13  Havoc Pennington  <hp@redhat.com>
4646
4647         * dbus/dbus-connection.c (dbus_connection_return_message) 
4648         (dbus_connection_borrow_message): hold dispatch lock while message
4649         is outstanding
4650         (_dbus_connection_block_for_reply): hold dispatch lock while we
4651         block for the reply, so nobody steals our reply
4652         (dbus_connection_pop_message): hold the dispatch lock while we
4653         pluck the message
4654
4655 2005-02-13  Havoc Pennington  <hp@redhat.com>
4656
4657         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4658         (_dbus_connection_release_dispatch)
4659         (_dbus_connection_acquire_io_path)
4660         (_dbus_connection_release_io_path): make the mutex and condvar
4661         control access to the "acquired" flag. Drop the connection lock
4662         while waiting on the condvar. Hopefully these are baby steps in
4663         roughly the right direction.
4664
4665 2005-02-13  Havoc Pennington  <hp@redhat.com>
4666
4667         * dbus/dbus-connection.c: use separate mutexes for the condition
4668         variables; this is some kind of baseline for sanity, but the
4669         condition variables still aren't used correctly afaict
4670
4671 2005-02-13  Havoc Pennington  <hp@redhat.com>
4672
4673         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4674         fix a double-unlock
4675
4676         * dbus/dbus-connection.c
4677         (_dbus_connection_detach_pending_call_unlocked): add this
4678
4679         Initial semi-correct pass through to fix thread locking; there are
4680         still some issues with the condition variable paths I'm pretty
4681         sure
4682         
4683         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4684         lock/unlock calls
4685
4686         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4687         rename to add _unlocked
4688         (struct DBusConnection): move "dispatch_acquired" and
4689         "io_path_acquired" to use only one bit each.
4690         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4691         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4692         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4693         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4694         (_dbus_connection_remove_timeout) 
4695         (_dbus_connection_toggle_timeout): drop lock when calling out to
4696         user functions; done in a hacky/bad way.
4697         (_dbus_connection_send_and_unlock): add a missing unlock
4698         (_dbus_connection_block_for_reply): add a missing unlock
4699
4700         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4701         drop lock in a hacky probably unsafe way to call out to user
4702         function
4703
4704 2005-02-12  Havoc Pennington  <hp@redhat.com>
4705
4706         * tools/dbus-tree-view.c (info_set_func_text): display more
4707         details on args
4708
4709         * bus/driver.c (bus_driver_handle_list_services): list the bus
4710         driver
4711
4712         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4713
4714         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4715         (method_info_get_n_args): new function
4716
4717 2005-02-12  Havoc Pennington  <hp@redhat.com>
4718
4719         * bus/driver.c (bus_driver_handle_introspect): add introspection
4720         for bus driver
4721
4722 2005-02-12  Havoc Pennington  <hp@redhat.com>
4723
4724         * bus/driver.c: put the signature of each bus driver method in the
4725         table of handlers and check it on incoming calls; this isn't
4726         really useful, but going to add introspect support in a minute.
4727
4728 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4729
4730         * mono/Connection.cs: The unpredictability of finalizers in mono
4731         prevents us from deterministically disconnecting the filters from
4732         the Service class's finalizer, so move tracking of filters and
4733         matches here.  Add API for that.
4734
4735         * mono/Service.cs: Remove the code, add code which calls the
4736         methods now on the Connection class.
4737
4738 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4739
4740         * python/dbus.py (class Sender): added to support dbus signals better
4741         (Bus::add_signal_receiver): added expand_args parameter which defaults
4742         to True.  When expand args is True the signal handler will pass the 
4743         message arguments as parameters to the signal handler.  If False
4744         revert to previous behavior where the signal handler must get the
4745         argument list from the message.  This is to help port applications
4746         like HAL that have a tendancy to send variable length argument lists.
4747         self._match_rule_to_receivers is now a dict of dicts.
4748         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4749         removing it from a list
4750         (Bus::_signal_func): change signal handlers so that interface,
4751         signal_name, service, path and message are packed into a Sender
4752         object and that is passed to the handler.  If expand_args is True
4753         extract the args list from the message and append it to the parameter
4754         list
4755         
4756         * python/dbus_bindings.pyx.in (class Signature): added to support 
4757         signiature types
4758         (MessageIter::__init__): changed iteration limit to match D-BUS
4759         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4760         STRUCT and VARIENT type support
4761         (MessageIter::python_value_to_dbus_sig): made recursive to support
4762         recursive types
4763         (MessageIter::append*): added Signature, dict, tuple 
4764         support
4765
4766         * python/examples/example-client.py: added examples of getting tuples
4767         and dicts
4768
4769         * python/examples/example-service.py: added examples of sending tuples
4770         and dicts
4771
4772         * python/examples/example-signal-recipient.py: Fixed to handle new
4773         signal callback format
4774
4775 2005-02-10  Havoc Pennington  <hp@redhat.com>
4776
4777         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4778         (call dbus_g_proxy_add_signal)
4779
4780         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4781         escape the hostname
4782         (_dbus_server_new_for_domain_socket): escape the path
4783
4784         * dbus/dbus-address.c (dbus_address_escape_value): new
4785         (dbus_address_unescape_value): new
4786         (dbus_parse_address): unescape values
4787
4788         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4789
4790         * doc/dbus-specification.xml: explain how to escape values in
4791         addresses
4792
4793 2005-02-10  Havoc Pennington  <hp@redhat.com>
4794
4795         * dbus/dbus-message-factory.c (generate_special): modify test to
4796         avoid using a non-basic dict key
4797
4798         * dbus/dbus-marshal-validate-util.c: add test for the below
4799
4800         * doc/dbus-specification.xml: require that dict keys are a basic
4801         type
4802
4803         * dbus/dbus-marshal-validate.c
4804         (_dbus_validate_signature_with_reason): require that dict key is a
4805         basic type
4806
4807 2005-02-10  Havoc Pennington  <hp@redhat.com>
4808
4809         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4810         change to be _and_unlock instead of _unlocked
4811
4812         * dbus/dbus-connection.c
4813         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4814         have no_update so we can find this bug quickly in future
4815
4816 2005-02-10  Havoc Pennington  <hp@redhat.com>
4817
4818         * dbus/dbus-message-util.c (verify_test_message): tests for string
4819         array
4820
4821         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4822         support for arrays of string/signature/path
4823
4824 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4825
4826         * dbus/dbus-connection.c
4827         (_dbus_connection_queue_received_message_link,
4828         _dbus_connection_message_sent): Add the path to
4829         the verbose output.
4830         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4831         _dbus_connection_send_preallocated_unlocked(), updated the
4832         dispatch status, and unlocks.  Fixes a bug where certain
4833         situations (like a broken pipe) could cause a Disconnect message
4834         to not be sent, tricking the bus into thinking a service was still
4835         there when the process had quit.
4836         (_dbus_connection_send_preallocated): Call
4837         _dbus_connection_send_preallocated_and_unlock().
4838         (_dbus_connection_send_and_unlock): Added.  Calls
4839         _dbus_connection_send_preallocated_and_unlock().
4840         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4841         (dbus_connection_send_with_reply): Update the dispatch status and
4842         unlock.
4843
4844         * mono/Service.cs (~Service): Added.  Removes the filter so that
4845         we don't get unmanaged code calling back into a GCed delegate.
4846         (RemoveFilter); Added.
4847
4848 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4849
4850         * dbus/dbus-message.c (dbus_message_iter_open_container):
4851         - Removed check for iterator type being an array because
4852         get_arg_type does not work with writer iterators
4853         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4854
4855 2005-02-07  Havoc Pennington  <hp@redhat.com>
4856
4857         * doc/dbus-specification.xml: some more language cleanups; add
4858         stuff about how to deal with invalid protocol and extension
4859         points; add _ to allowed chars in auth commands; add EXTENSION_
4860         auth command prefix
4861
4862 2005-02-06  Havoc Pennington  <hp@redhat.com>
4863
4864         * s/expected/required/ in a couple places for clarity
4865
4866 2005-02-07  Colin Walters  <walters@verbum.org>
4867
4868         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4869         sender or proposed_recipient.
4870
4871 2005-02-06  Havoc Pennington  <hp@redhat.com>
4872
4873         * dbus/dbus-message-factory.c (generate_special): more tests
4874
4875         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4876         array length that exceeds the maximum
4877
4878 2005-02-05  Havoc Pennington  <hp@redhat.com>
4879
4880         * dbus/dbus-message-factory.c (generate_special): more test cases,
4881         increasing coverage
4882
4883         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4884         reason why a signature was invalid
4885
4886         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4887         skip the length of the string before we look at it in validation
4888
4889         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4890         equal_substring
4891
4892         * dbus/dbus-message.c (_dbus_message_loader_new): default
4893         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4894
4895 2005-02-05  Havoc Pennington  <hp@redhat.com>
4896
4897         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4898         if the signature of a variant was empty
4899         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4900         struct with no element type)
4901
4902         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4903         mangled messages to break things
4904
4905 2005-02-04  Havoc Pennington  <hp@redhat.com>
4906
4907         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4908         g_quark_try_string() so it actually can return 0
4909         (dbus_g_proxy_connect_signal): ditto
4910
4911 2005-02-04  Havoc Pennington  <hp@redhat.com>
4912
4913         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4914         bogus warning
4915         (tristring_from_message): assert cleanly on null path/interface
4916         (should not be possible though I decided later)
4917         (dbus_g_proxy_dispose): move proxy manager unregistration here
4918         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4919         g_return_if_fail() checks
4920
4921 2005-02-04  Havoc Pennington  <hp@redhat.com>
4922
4923         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4924
4925         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4926         (with some minor changes)
4927
4928         * doc/dbus-specification.xml: add deprecated attribute to
4929         introspection format
4930
4931 2005-01-31  Havoc Pennington  <hp@redhat.com>
4932
4933         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4934         think it's sort of right
4935
4936 2005-01-30  Havoc Pennington  <hp@redhat.com>
4937
4938         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4939
4940 2005-01-30  Havoc Pennington  <hp@redhat.com>
4941
4942         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4943
4944         * autogen.sh: change to autotools 1.9
4945
4946         * glib/dbus-gproxy.c: completely change how signals work
4947         (dbus_g_proxy_add_signal): new function to specify signature of a
4948         signal
4949         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4950         and g_warning if the incoming message has the wrong signature.
4951
4952 2005-01-30  Havoc Pennington  <hp@redhat.com>
4953
4954         * tools/dbus-names-model.c (have_names_notify): fix this
4955
4956         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4957         up the string array handling a bit 
4958
4959 2005-01-30  Havoc Pennington  <hp@redhat.com>
4960
4961         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4962         (dbus_g_pending_call_cancel): new function
4963
4964         * dbus/dbus-glib.h: move GType decls for connection/message here;
4965         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4966         here, just kind of rationalizing how we handle all that
4967
4968         * tools/dbus-names-model.c: new file for a tree model listing the
4969         services on a bus
4970
4971         * tools/dbus-tree-view.c (model_new): use proper typing on the
4972         model rows
4973
4974 2005-01-30  Havoc Pennington  <hp@redhat.com>
4975
4976         * glib/dbus-gmain.c: add a custom GSource back that just checks
4977         whether the message queue has anything in it; otherwise, there are 
4978         cases where we won't see messages in the queue since there was no 
4979         IO visible to the glib main loop
4980
4981         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4982         increase default message timeout to 25 seconds
4983
4984 2005-01-30  Havoc Pennington  <hp@redhat.com>
4985
4986         * test/glib/test-profile.c (no_bus_stop_server): remove the
4987         warning about the g_warning that I just fixed
4988
4989         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4990         custom source, seems to be a lot easier to understand and work
4991         better.
4992
4993 2005-01-30  Havoc Pennington  <hp@redhat.com>
4994
4995         I think this main loop thing is conceptually broken, but here are 
4996         some band aids. I'll maybe rewrite it in a minute.
4997         
4998         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4999         custom GSource, so don't pass it in; confusing
5000         (gsource_server_finalize, gsource_connection_finalize): add
5001         finalize handlers that remove all the watches.  
5002
5003 2005-01-30  Havoc Pennington  <hp@redhat.com>
5004
5005         * glib/dbus-gobject.c (introspect_properties): fix the XML
5006         generated
5007
5008         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5009         which effectively detects the use of freed messages
5010
5011         * glib/dbus-gobject.c (handle_introspect): modify and return the
5012         reply message instead of the incoming message
5013
5014         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5015         gee, maybe it should SEND THE XML instead of just making a string
5016         and freeing it again ;-)
5017
5018         * tools/dbus-print-message.c (print_message): improve printing of
5019         messages
5020
5021         * configure.in: add debug-glib.service to the output
5022
5023 2005-01-30  Havoc Pennington  <hp@redhat.com>
5024
5025         dbus-viewer introspected and displayed the bus driver
5026         
5027         * dbus/dbus-object-tree.c 
5028         (object_tree_test_iteration): add tests for a handler registered on "/"
5029
5030         * dbus/dbus-object-tree.c
5031         (_dbus_decompose_path): fix to handle path "/" properly
5032         (run_decompose_tests): add tests for path decomposition
5033         
5034         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5035         properly
5036
5037         * glib/dbus-gobject.c (handle_introspect): fix quotes
5038
5039         * test/glib/run-test.sh: support launching the bus, then running
5040         dbus-viewer
5041
5042         * test/glib/test-service-glib.c (main): put in a trivial gobject
5043         subclass and register it on the connection
5044
5045         * bus/driver.c (bus_driver_handle_introspect): implement
5046         introspection of the bus driver service
5047
5048         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5049         identifiers, doctype decl
5050
5051         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5052         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5053         returning the service unchanged.
5054         (bus_driver_handle_message): remove old check for reply_serial in
5055         method calls, now the message type deals with that
5056         (bus_driver_handle_message): handle NULL interface
5057
5058         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5059
5060         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5061         -1 for len
5062
5063         * tools/dbus-viewer.c: add support for introspecting a service on
5064         a bus
5065
5066         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5067         (dbus_g_pending_call_unref): add
5068
5069 2005-01-29  Havoc Pennington  <hp@redhat.com>
5070
5071         * tools/dbus-tree-view.c: add support for displaying properties.
5072         (run dbus-viewer with an introspect xml file as arg, then resize
5073         the window so the tree elements show up, not sure what that is)
5074
5075         * glib/dbus-gobject.c (handle_introspect): return
5076         org.freedesktop.Properties and org.freedesktop.Introspectable
5077         interfaces when we are introspected.
5078
5079         * doc/dbus-specification.xml: allow empty interface name when 
5080         Get/Set a property
5081
5082 2005-01-29  Havoc Pennington  <hp@redhat.com>
5083
5084         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5085         though it uses glib, it could be extended for any binding in
5086         principle
5087
5088         * glib/dbus-gobject.c (gobject_message_function): change to the
5089         new way properties work
5090
5091         * dbus/dbus-protocol.h: add the new interfaces
5092
5093         * doc/dbus-specification.xml: document the introspection format,
5094         Introspectable interface, and add an org.freedesktop.Properties
5095         interface.
5096
5097         * glib/dbus-gparser.c: add support for a <property> element
5098
5099         * glib/dbus-gidl.c: add PropertyInfo
5100
5101         * glib/dbus-gobject.c (handle_introspect): put the outermost
5102         <node> outside the signal and property descriptions.
5103         (introspect_properties): export properties as <property> rather
5104         than as method calls
5105
5106 2005-01-28  Havoc Pennington  <hp@redhat.com>
5107
5108         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5109         related to authentication protocol
5110
5111 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5112
5113         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5114                 - BUS_ACTIVATION -> BUS_STARTER
5115                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5116                 - class MessageIter (__init__): Added recursion checking 
5117                 so we throw a nice error instead of just disconnecting from the
5118                 bus.
5119                 (get): Added arg_type parameter for recursion.
5120                 Removed the nil type
5121                 Added signiture type placeholder (not implemented)
5122                 Added struct type placeholder (not implemented)
5123                 Added varient type placeholder (not implemented)
5124                 Commented out dict type for now     
5125                 (get_element_type): renamed from get_array_type
5126                 (get_*): changed to use the dbus_message_iter_get_basic API
5127                 (get_*_array): removed in favor of recursive get_array method
5128                 (get_array): new recursive method which calls get to marshal
5129                 the elements of the array
5130                 (value_to_dbus_sig): New method returns the corrasponding
5131                 dbus signiture to a python value
5132                 (append): Comment out dict handling for now
5133                 Handle lists with the new recursive API
5134                 Comment out None handling for now
5135                 (append_nil): removed
5136                 (append_*): changed to use dbus_message_iter_append_basic API
5137                 (append_*_array): removed in favor of recursive append_array 
5138                 method
5139                 (__str__): Make it easier to print out recursive iterators
5140                 for debugging
5141                 - class Message (__str__): moved type inspection to the
5142                 MessageIter class' __str__ method
5143                 (get_iter): Added an append parameter wich defaults to False
5144                 If True use the new API's to create an append iterator
5145
5146         * python/dbus.py: Update to use new bindings API
5147                 - TYPE_ACTIVATION -> TYPE_STARTER
5148                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5149                 - class ActivationBus -> class StarterBus
5150                 - class RemoteObject (__call__): get an append iterator
5151                 - (_dispatch_dbus_method_call): get an append iterator
5152                 - class Object (emit_signal): get an append iterator
5153
5154         * python/examples/: Fixed up the examples to work with the new API
5155                 
5156 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5157
5158         * configure.in: Bump version up to 0.30.
5159
5160         * HACKING: Add a release item to bump the version number up after 
5161         a release.
5162
5163 2005-01-28  Havoc Pennington  <hp@redhat.com>
5164
5165         * doc/dbus-specification.xml: update to describe 16-bit types and
5166         dict entries
5167
5168         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5169         assertion
5170
5171         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5172         type
5173
5174         * dbus/dbus-marshal-recursive.c: implement
5175
5176 2005-01-27  Havoc Pennington  <hp@redhat.com>
5177
5178         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5179
5180         * configure.in: find the right type for 16 and 32 bit ints as well
5181         as 64
5182
5183         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5184         the 16-bit types so people don't have to stuff them in 32-bit or
5185         byte arrays.
5186
5187 2005-01-27  Havoc Pennington  <hp@redhat.com>
5188
5189         * dbus/dbus-message.c: byteswap the message if you init an
5190         iterator to read/write from it
5191         
5192         * dbus/dbus-marshal-byteswap.c: new file implementing 
5193         _dbus_marshal_byteswap()
5194
5195         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5196
5197 2005-01-26  Havoc Pennington  <hp@redhat.com>
5198         
5199         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5200         build, apparently - nobody noticed?)
5201         
5202 2005-01-26  Havoc Pennington  <hp@redhat.com>
5203
5204         * dbus/dbus-marshal-recursive.h: remove todo comment
5205
5206 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5207
5208         * Land the mono binding changes to conform to the new APIs.
5209
5210         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5211         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5212
5213         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5214         type code as a string.
5215         (InitAppending): Rename dbus_message_append_iter_init() to
5216         dbus_message_iter_init_append().
5217
5218         * mono/BusDriver.cs: Rename ServiceEventHandler to
5219         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5220         Rename ServiceOwnerChanged to NameOwnerChanged.
5221
5222         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5223         underlying C call.
5224
5225         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5226
5227         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5228         dbus_bus_acquire_service() to dbus_bus_request_name().
5229
5230         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5231         of Type.UnderlyingSystemType to get the correct element type for
5232         the array.
5233         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5234         dbus_message_get_{element|arg}_type() instead of
5235         dbus_message_iter_init_array_iterator().
5236         (Append): Replace dbus_message_iter_append_array() with
5237         dbus_message_iter_open_container() and
5238         dbus_message_iter_close_container().
5239
5240         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5241         types have been removed.
5242         
5243         * mono/DBusType/*.cs: Replace calls of
5244         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5245         but specify the type in the DllImport extern declaration.  Ditto
5246         for dbus_message_iter_append_[type]() ->
5247         dbus_message_iter_append_basic().
5248
5249         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5250         NameOwnerChangedHandler.
5251
5252 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5253
5254         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5255                 - get_base_service -> get_unique_name
5256                 - bus_get_base_service -> bus_get_unique_name
5257                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5258                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5259                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5260                 - bus_activate_service -> bus_start_service_by_name
5261                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5262                 - bus_acquire_service -> bus_request_name
5263                 - dbus_bus_acquire_service -> dbus_bus_request_name
5264                 - bus_service_exists -> bus_name_has_owner
5265                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5266
5267         * python/dbus.py: Rename of methods
5268                 - activate_service -> start_service_by_name
5269                 - bus_acquire_service -> bus_request_name
5270                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5271                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5272
5273         
5274 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5275
5276         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5277         signature for the method that can't be found.
5278
5279         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5280         the message has any arguments, we need to call
5281         _dbus_type_reader_get_current_type(), not
5282         _dbus_type_reader_has_next().
5283
5284 2005-01-24  Havoc Pennington  <hp@redhat.com>
5285
5286         * dbus/dbus-message-factory.c: more testing of message validation
5287
5288         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5289         header
5290
5291 2005-01-23  Havoc Pennington  <hp@redhat.com>
5292
5293         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5294         get this all working, not many tests in the framework yet though
5295
5296 2005-01-22  Havoc Pennington  <hp@redhat.com>
5297
5298         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5299         tutorial, based on work from David Wheeler.
5300
5301 2005-01-21  Havoc Pennington  <hp@redhat.com>
5302
5303         * dbus/dbus-bus.c: add more return_if_fail checks
5304
5305         * dbus/dbus-message.c (load_message): have the "no validation"
5306         mode (have to edit the code to toggle the mode for now though)
5307
5308         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5309         skips all validation; I want to use this at least for benchmark
5310         baseline, I'm not sure if it should be a publicly-available switch.
5311
5312 2005-01-21  Havoc Pennington  <hp@redhat.com>
5313
5314         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5315         toplevel doxygen group as the low-level API stuff
5316
5317         * dbus/dbus.h: note that libdbus is the low-level API
5318
5319 2005-01-20  Havoc Pennington  <hp@redhat.com>
5320
5321         * update-dbus-docs.sh: script to update docs on the web site, only
5322         works for me though. neener.
5323
5324 2005-01-20  Havoc Pennington  <hp@redhat.com>
5325
5326         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5327         code can reveal bugs in it
5328
5329 2005-01-20  Havoc Pennington  <hp@redhat.com>
5330
5331         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5332         select() version, patches from Tor Lillqvist
5333
5334 2005-01-20  Havoc Pennington  <hp@redhat.com>
5335
5336         * doc/dbus-tutorial.xml: replace > with &gt;
5337
5338         * bus/services.c (bus_registry_acquire_service): validate the name
5339         and return a better error if it's no good.
5340
5341         * doc/dbus-specification.xml: note NO_AUTO_START change
5342
5343         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5344         from AUTO_START, we're toggling the default
5345
5346         * bus/dispatch.c: adapt the tests to change of auto-start default
5347
5348 2005-01-18  Havoc Pennington  <hp@redhat.com>
5349
5350         * rename dbus-daemon-1 to dbus-daemon throughout
5351
5352 2005-01-18  Havoc Pennington  <hp@redhat.com>
5353
5354         * Throughout, grand renaming to strip out the use of "service",
5355         just say "name" instead (or "bus name" when ambiguous).  Did not
5356         change the internal code of the message bus itself, only the
5357         programmer-facing API and messages.
5358         
5359         * doc/dbus-specification.xml: further update the message bus section
5360         
5361         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5362         in error case
5363
5364 2005-01-17  Havoc Pennington  <hp@redhat.com>
5365
5366         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5367         ever
5368
5369         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5370         "invalid name character" not only non-ASCII
5371
5372         * doc/dbus-specification.xml: further update spec, message bus 
5373         parts are still out-of-date but the marshaling etc. stuff is now
5374         accurate-ish
5375
5376 2005-01-17  Havoc Pennington  <hp@redhat.com>
5377
5378         * doc/dbus-specification.xml: partially update spec
5379
5380 2005-01-17  Havoc Pennington  <hp@redhat.com>
5381
5382         * Throughout, align variant bodies according to the contained
5383         type, rather than always to 8. Should save a fair bit of space in
5384         message headers.
5385         
5386         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5387         fix handling of case where p == end
5388
5389         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5390
5391 2005-01-17  Havoc Pennington  <hp@redhat.com>
5392
5393         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5394
5395         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5396         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5397         are marshaling/unmarshaling a boolean.
5398
5399 2005-01-16  Havoc Pennington  <hp@redhat.com>
5400
5401         This is about it on what can be disabled/deleted from libdbus
5402         easily, back below 150K anyhow. Deeper cuts are more work than 
5403         just turning the code off as I've done here.
5404         
5405         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5406         signed int convenience funcs
5407
5408         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5409         verbose mode
5410
5411         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5412         things out of libdbus
5413
5414         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5415         
5416         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5417         tests-enabled-only, though it should probably be deleted)
5418
5419         * dbus/dbus-message-util.c: same stuff
5420
5421         * dbus/dbus-auth-util.c: same stuff
5422
5423 2005-01-16  Havoc Pennington  <hp@redhat.com>
5424
5425         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5426
5427         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5428         way for stripping down dbus-userdb.c stuff included in libdbus.
5429         Rename _dbus_parse_uid for consistency.
5430
5431 2005-01-16  Havoc Pennington  <hp@redhat.com>
5432
5433         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5434         name the assertion failed in
5435
5436         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5437         (_dbus_return_val_if_fail): assert that the name of the function
5438         containing the check doesn't start with '_', since we only want to 
5439         use checks on public functions
5440         
5441         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5442         checks to assertions
5443
5444         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5445         change checks to asserts for private function
5446
5447         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5448         to asserts for private function
5449
5450         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5451         broken assertion that was breaking make check
5452         (_dbus_type_reader_array_is_empty): remove this rather than fix
5453         it, was only used in assertions
5454
5455 2005-01-16  Havoc Pennington  <hp@redhat.com>
5456
5457         * test/unused-code-gc.py: hacky script to find code that's used
5458         only by the bus (not libdbus) or used only by tests or not used at
5459         all. It has some false alarms, but looks like we can clean up a
5460         lot of size from libdbus.
5461
5462         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5463         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5464         
5465 2005-01-16  Havoc Pennington  <hp@redhat.com>
5466
5467         * Add and fix docs according to Doxygen warnings throughout
5468         source.
5469         
5470         * dbus/dbus-marshal-recursive.c
5471         (_dbus_type_reader_array_is_empty): change this to just call
5472         array_reader_get_array_len() and make it static
5473
5474         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5475         from get_array_type
5476         (dbus_message_iter_init_append): rename from append_iter_init
5477
5478         * dbus/dbus-marshal-recursive.c
5479         (_dbus_type_reader_get_element_type): rename from
5480         _dbus_type_reader_get_array_type
5481
5482 2005-01-15  Havoc Pennington  <hp@redhat.com>
5483
5484         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5485
5486         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5487         when DBUS_DISABLE_ASSERT
5488         (_dbus_marshal_set_basic): be sure we align for the string length
5489
5490         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5491         this look faster
5492
5493         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5494         inline macro version
5495         (_dbus_string_set_byte): provide inline macro version
5496
5497 2005-01-15  Havoc Pennington  <hp@redhat.com>
5498
5499         * Land the new message args API and type system.
5500
5501         This patch is huge, but the public API change is not 
5502         really large. The set of D-BUS types has changed somewhat, 
5503         and the arg "getters" are more geared toward language bindings;
5504         they don't make a copy, etc.
5505
5506         There are also some known issues. See these emails for details
5507         on this huge patch:
5508         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5509         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5510         
5511         * dbus/dbus-marshal-*: all the new stuff
5512
5513         * dbus/dbus-message.c: basically rewritten
5514
5515         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5516         freed blocks to be all non-nul bytes so using freed memory is less
5517         likely to work right
5518
5519         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5520         DBUS_FAIL_MALLOC=N environment variable, so you can do
5521         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5522         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5523         thorough.
5524
5525         * qt/message.cpp: port to the new message args API
5526         (operator<<): use str.utf8() rather than str.unicode()
5527         (pretty sure this is right from the Qt docs?)
5528
5529         * glib/dbus-gvalue.c: port to the new message args API
5530
5531         * bus/dispatch.c, bus/driver.c: port to the new message args API
5532
5533         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5534         "locked" flag to TRUE and align_offset to 0; I guess we never
5535         looked at these anyhow, but seems cleaner.
5536
5537         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5538         move allocation padding macro to this header; use it to implement
5539         (_DBUS_STRING_STATIC): ability to declare a static string.
5540
5541         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5542         change to return TRUE if the interface is not set.
5543
5544         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5545         to dbus-marshal-validate.[hc]
5546
5547         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5548         dbus-internals.c
5549
5550         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5551         to dbus-marshal-*.[hc]
5552
5553         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5554         function here from dbus-marshal.c
5555
5556 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5557
5558         * NEWS: Update for 0.23.
5559
5560         * configure.in: Release 0.23.
5561
5562 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5563
5564         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5565         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5566         behind.
5567
5568         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5569         uninstall"
5570
5571         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5572         is an enum, get the enum's underlying type.  Another mono
5573         1.1.3 fix.
5574
5575 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5576
5577         Patch from Sjoerd Simons <sjoerd@luon.net>
5578
5579         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5580         DESTDIR.  It breaks stuff.
5581
5582 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5583
5584         Patch from Tambet Ingo <tambet@ximian.com>
5585
5586         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5587         calling type.GetElementType().  The code previously depended on
5588         broken Mono behavior, which was fixed in Mono 1.1.3.
5589
5590         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5591         Activator.CreateInstance() so that the class's constructor is
5592         called with the right parameters.
5593
5594 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5595
5596         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5597
5598         * dbus/dbus-connection.c
5599         (_dbus_connection_queue_received_message_link): Call
5600         _dbus_connection_remove_timeout() instead of the _locked()
5601         variant, since it's always called from
5602         _dbus_connection_handle_watch(), which handles the locking.
5603         Removed the _locked() variant since it's no longer used.
5604
5605 2005-01-03  Havoc Pennington  <hp@redhat.com>
5606
5607         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5608         return
5609         
5610 2004-12-26  Havoc Pennington  <hp@redhat.com>
5611
5612         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5613
5614 2005-01-03  Havoc Pennington  <hp@redhat.com>
5615
5616         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5617         floating point
5618
5619         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5620
5621 2005-01-02  Havoc Pennington  <hp@redhat.com>
5622
5623         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5624
5625 2005-01-01  Havoc Pennington  <hp@redhat.com>
5626
5627         * configure.in: add -Wfloat-equal
5628
5629 2005-01-01  Havoc Pennington  <hp@redhat.com>
5630
5631         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5632         for a variety of reasons '==' doesn't do this.
5633
5634 2004-12-31  Havoc Pennington  <hp@redhat.com>
5635
5636         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5637         I keep wishing I had
5638
5639 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5640
5641         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5642
5643 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5644
5645         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5646         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5647         dbus-protocol.h.  Because they are defines and not enums they are not
5648         autogenerated.
5649
5650 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5651
5652         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5653         dbus_bus_activate_service
5654
5655         * python/dbus.py (Bus.activate_service): activate a service on the
5656         bus.
5657
5658 2004-12-24  Havoc Pennington  <hp@redhat.com>
5659
5660         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5661         file format has also changed and I haven't adapted to that yet
5662         
5663         * Makefile.am: load .gcno files from latest gcc
5664
5665 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5666         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5667
5668         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5669         lowlevel binding
5670
5671         * python/dbus.py (get_unix_user): Added binding to 
5672         call dbus_bindings.bus_get_unix_user
5673
5674         * python/extract.py: Modified the proto_pat regex to
5675         handle unsigned long
5676
5677 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5678
5679         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5680         better POSIX compliance.
5681
5682 2004-12-19  Havoc Pennington  <hp@redhat.com>
5683
5684         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5685         (_dbus_string_insert_8_aligned): new functions
5686
5687         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5688
5689 2004-12-18  Havoc Pennington  <hp@redhat.com>
5690
5691         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5692         macro
5693
5694         * dbus/dbus-message.c: fix a comment, and add a still-unused
5695         not-implemented function
5696
5697         * dbus/dbus-marshal.h: fix comment
5698
5699         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5700
5701 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5702
5703         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5704         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5705         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5706         Type.UnderlyingSystemType to get the actual system type
5707         underneath.  This code previously depended on the broken Mono
5708         behavior, which was fixed in 1.1.3.
5709
5710 2004-11-27  Havoc Pennington  <hp@redhat.com>
5711
5712         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5713         are disabled
5714         (_dbus_string_get_const_data): inline when asserts are disabled
5715
5716         * dbus/dbus-message.c: record the _dbus_current_generation of
5717         creation so we can complain if dbus_shutdown() is used improperly.
5718         Do this only if checks are enabled.
5719
5720         * dbus/dbus-connection.c: ditto
5721         
5722 2004-11-26  Havoc Pennington  <hp@redhat.com>
5723
5724         * test/glib/test-profile.c: add with_bus mode to profile echoes
5725         that go through the bus.
5726
5727         * test/glib/run-test.sh: add ability to run test-profile
5728
5729         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5730         config file reload.
5731
5732 2004-11-26  Havoc Pennington  <hp@redhat.com>
5733
5734         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5735         thing was implemented
5736
5737 2004-11-26  Havoc Pennington  <hp@redhat.com>
5738
5739         * test/glib/test-profile.c: tweak a bit, add support for some
5740         made-up minimal malloc overhead with plain sockets, since in 
5741         real life some sort of buffers are unavoidable thus we could 
5742         count them in the theoretical best case
5743
5744 2004-11-26  Havoc Pennington  <hp@redhat.com>
5745
5746         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5747         where I was trying to cache one too many messages
5748
5749 2004-11-26  Havoc Pennington  <hp@redhat.com>
5750
5751         * dbus/dbus-message.c: reimplement message cache as an array which 
5752         makes the cache about twice as fast and saves maybe 1.5% overall
5753
5754 2004-11-26  Havoc Pennington  <hp@redhat.com>
5755
5756         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5757         message cache lock here
5758
5759 2004-11-26  Havoc Pennington  <hp@redhat.com>
5760
5761         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5762         the "char byte_order" next to each other to save 4 bytes
5763         (dbus_message_new_empty_header): reduce preallocation, since the
5764         message cache should achieve a similar effect
5765         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5766         message cache that keeps a few DBusMessage around in a pool,
5767         another 8% speedup or so.
5768
5769         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5770
5771 2004-11-25  Havoc Pennington  <hp@redhat.com>
5772
5773         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5774         to write, without reading or blocking, try it before the poll()
5775         and skip the poll() if nothing remains to write. This is about a
5776         3% speedup in the echo client/server
5777
5778 2004-11-25  Havoc Pennington  <hp@redhat.com>
5779
5780         The primary change here is to always write() once before adding
5781         the write watch, which gives us about a 10% performance increase.
5782         
5783         * dbus/dbus-transport-unix.c: a number of modifications to cope
5784         with removing messages_pending
5785         (check_write_watch): properly handle
5786         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5787         messages_pending stuff
5788         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5789         AUTHENTICATED cases
5790         (unix_handle_watch): after writing, see if the write watch can be
5791         removed
5792         (unix_do_iteration): assert that write_watch/read_watch are
5793         non-NULL rather than testing that they aren't, since they 
5794         aren't allowed to be NULL. check_write_watch() at the end so 
5795         we add the watch if we did not finish writing (e.g. got EAGAIN)
5796
5797         * dbus/dbus-transport-protected.h: remove messages_pending call,
5798         since it resulted in too much inefficient watch adding/removing; 
5799         instead we now require that the transport user does an iteration 
5800         after queueing outgoing messages, and after trying the first
5801         write() we add a write watch if we got EAGAIN or exceeded our 
5802         max bytes to write per iteration setting
5803
5804         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5805         function
5806
5807         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5808         freed and then accessed, valgrind flagged this bug, fix it
5809
5810         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5811         as the last valid field plus 1, where really it is equal to the
5812         last valid field. Corrects some message corruption issues.
5813
5814         * dbus/dbus-mainloop.c: verbosity changes
5815
5816         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5817         instead of aborting in one of the test codepaths
5818
5819         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5820         caused not printing the pid ever again if a verbose was missing
5821         the newline at the end
5822         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5823
5824         * dbus/dbus-connection.c: verbosity changes; 
5825         (dbus_connection_has_messages_to_send): new function
5826         (_dbus_connection_message_sent): no longer call transport->messages_pending
5827         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5828         try to write() immediately, so we can avoid the write watch. This
5829         is the core purpose of this patchset
5830         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5831         dump the outgoing message queue, so nobody will get confused
5832         trying to send them or thinking stuff is pending to be sent
5833
5834         * bus/test.c: verbosity changes
5835
5836         * bus/driver.c: verbosity/assertion changes
5837
5838         * bus/dispatch.c: a bunch of little tweaks to get it working again
5839         because this patchset changes when/where you need to block.
5840
5841 2004-11-23  Havoc Pennington  <hp@redhat.com>
5842
5843         * test/glib/test-profile.c: modify to accept a plain_sockets
5844         argument in which case it will bench plain sockets instead of
5845         libdbus, for comparison purposes.
5846
5847 2004-11-22  Havoc Pennington  <hp@redhat.com>
5848
5849         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5850         threads for more time, so sysprof can get a grip on it.
5851
5852         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5853         pointless variable
5854
5855 2004-11-13  Havoc Pennington  <hp@redhat.com>
5856
5857         * test/glib/test-profile.c: fix this thing up a bit
5858
5859         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5860         preallocation sizes by a fair bit; not sure if this will be an
5861         overall performance win or not, but it does reduce reallocs.
5862
5863         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5864         the test hack that forced constant realloc if asserts are
5865         disabled, so we can profile sanely. Sprinkle in some
5866         _DBUS_UNLIKELY() which are probably pointless, but before I
5867         noticed the real performance problem I put them in.
5868         (_dbus_string_validate_utf8): micro-optimize this thing a little
5869         bit, though callgrind says it didn't help; then special-case
5870         ascii, which did help a lot; then be sure we detect nul bytes as
5871         invalid, which is a bugfix.
5872         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5873         superstition; use memset to nul the padding instead of a manual
5874         loop.
5875         (_dbus_string_get_length): inline this as a
5876         macro; it showed up in the profile because it's used for loop
5877         tests and so forth
5878
5879 2004-11-10  Colin Walters  <walters@verbum.org>
5880
5881         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5882         for extra paranoia.
5883
5884 2004-11-09  Colin Walters  <walters@verbum.org>
5885
5886         * dbus/dbus-string.c (_dbus_string_get_length): New
5887         function, writes DBusString to C buffer.
5888
5889         * dbus/dbus-string.h: Prototype it.
5890
5891         * dbus/dbus-message.c (dbus_message_type_to_string): New
5892         function, converts message type into C string.
5893
5894         * dbus/dbus-message.h: Prototype it.
5895
5896         * bus/selinux.c (bus_selinux_check): Take source pid,
5897         target pid, and audit data.  Pass audit data to
5898         avc_has_perm.
5899         (log_audit_callback): New function, appends extra
5900         audit information.
5901         (bus_selinux_allows_acquire_service): Also take
5902         service name, add it to audit data.
5903         (bus_selinux_allows_send): Also take message
5904         type, interface, method member, error name,
5905         and destination, and add them to audit data.
5906         (log_cb): Initialize func_audit.
5907         
5908         * bus/selinux.h (bus_selinux_allows_acquire_service)
5909         (bus_selinux_allows_send): Update prototypes 
5910
5911         * bus/services.c (bus_registry_acquire_service): Pass
5912         service name to bus_selinux_allows_acquire_service.
5913
5914         * bus/bus.c (bus_context_check_security_policy): Pass
5915         additional audit data.  Move assignment of dest
5916         to its own line.
5917
5918 2004-11-07  Colin Walters  <walters@verbum.org>
5919
5920         * dbus/dbus-transport-unix.c (do_authentication): Always
5921         initialize auth_completed.
5922         
5923 2004-11-07  Colin Walters  <walters@verbum.org>
5924
5925         * bus/bus.c (load_config): Break into three
5926         separate functions: process_config_first_time_only,
5927         process_config_every_time, and process_config_postinit.
5928         (process_config_every_time): Move call of
5929         bus_registry_set_service_context_table into
5930         process_config_postinit.
5931         (process_config_postinit): New function, does
5932         any processing that needs to happen late
5933         in initialization (and also on reload).
5934         (bus_context_new): Instead of calling load_config,
5935         open config parser here and call process_config_first_time_only
5936         and process_config_every_time directly.  Later, after
5937         we have forked but before changing UID,
5938         invoke bus_selinux_full_init, and then call
5939         process_config_postinit.
5940         (bus_context_reload_config): As in bus_context_new,
5941         load parse file inside here, and call process_config_every_time
5942         and process_config_postinit.
5943
5944         * bus/services.h, bus/services.c
5945         (bus_registry_set_service_context_table): Rename
5946         from bus_registry_set_sid_table.  Take string hash from config
5947         parser, and convert them here into SIDs.
5948
5949         * bus/config-parser.c (struct BusConfigParser): Have
5950         config parser only store a mapping of service->context
5951         string.
5952         (merge_service_context_hash): New function.
5953         (merge_included): Merge context string hashes instead
5954         of using bus_selinux_id_table_union.
5955         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5956         simply create a new string hash.
5957         (bus_config_parser_unref): Unref it.
5958         (start_selinux_child): Simply insert strings into hash,
5959         don't call bus_selinux_id_table_copy_over.
5960
5961         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5962         (bus_selinux_id_table_copy_over): Delete.
5963
5964 2004-11-03  Colin Walters  <walters@verbum.org>
5965
5966         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5967         variables.
5968         
5969 2004-11-03  Colin Walters  <walters@verbum.org>
5970
5971         * bus/test-main.c (test_pre_hook): Fix test logic,
5972         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5973
5974 2004-11-02  Colin Walters  <walters@redhat.com>
5975
5976         * bus/selinux.c (bus_selinux_init): Split into two functions,
5977         bus_selinux_pre_init and bus_selinux_post_init.
5978         (bus_selinux_pre_init): Just determine whether SELinux is
5979         enabled.
5980         (bus_selinux_post_init): Do everything else.
5981
5982         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5983         config file, and bus_selinux_post_init after.  This ensures that
5984         we don't lose the policyreload notification thread that
5985         bus_selinux_init created before forking previously.
5986         
5987         * bus/test-main.c (test_pre_hook): Update for split.
5988
5989 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5990
5991         Patch from Johan Fischer <linux@fischaz.com>
5992         
5993         * mono/doc/Makefile.am (install-data-local): Added directory
5994         install for DESTDIR
5995
5996 2004-10-29  Colin Walters  <walters@redhat.com>
5997
5998         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5999         parameter for fd to write pid to.       
6000
6001         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6002         
6003         * bus/bus.c (bus_context_new): Pass print_pid_fd
6004         to _dbus_become_daemon (bug #1720)
6005
6006 2004-10-29  Colin Walters  <walters@redhat.com>
6007
6008         Patch from Ed Catmur <ed@catmur.co.uk>
6009
6010         * mono/doc/Makefile.am (install-data-local): Handle
6011         DESTDIR.
6012
6013 2004-10-29  Colin Walters  <walters@redhat.com>
6014
6015         * bus/.cvsignore, qt/.cvsignore: Update.
6016
6017 2004-10-29  Colin Walters  <walters@redhat.com>
6018
6019         Patch from Kristof Vansant <de_lupus@pandora.be>
6020
6021         * configure.in: Detect Slackware.
6022         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6023         * bus/rc.messagebus.in: New file.
6024
6025 2004-10-29  Colin Walters  <walters@redhat.com>
6026
6027         * tools/dbus-monitor.c (filter_func): Return
6028         DBUS_HANDLER_RESULT_HANDLED in filter function
6029         for now.  See:
6030         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6031
6032 2004-10-29  Colin Walters  <walters@redhat.com>
6033
6034         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6035
6036         * bus/services.c (bus_registry_acquire_service): 
6037         Correctly retrieve service name from DBusString
6038         for printing.
6039
6040 2004-10-29  Colin Walters  <walters@redhat.com>
6041
6042         * dbus/dbus-glib.h: Update documentation to not
6043         refer to internal APIs.
6044
6045 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6046
6047         * mono/Arguments.cs (GetDBusTypeConstructor):
6048         type.UnderlyingSystemType will return "System.Byte" if you do it
6049         on "byte[]", which is not what we want.  So check the type.IsArray
6050         property and use System.Array instead.
6051
6052 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6053
6054         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6055         the DBusUserInfo structure since this is passed into the function.
6056         This would cause a double free when the function that allocated
6057         the structure would try to free it when an error occured.
6058
6059         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6060         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6061         for service activation to avoid 32bit/64bit parallel install issues
6062
6063 2004-10-21  Colin Walters  <walters@verbum.org>
6064
6065         * AUTHORS: Fix my email address, the @gnu.org one
6066         has been bouncing for some time.  Also add J5.
6067         
6068 2004-10-21  Colin Walters  <walters@verbum.org>
6069
6070         * dbus/dbus-transport-unix.c (do_authentication): Return
6071         authentication status to callers.
6072         (unix_handle_watch): If we completed authentication this round,
6073         don't do another read.  Instead wait until the next iteration,
6074         after we've read any pending data in the auth buffer.
6075         (unix_do_iteration): Ditto.
6076         (unix_handle_watch): Updated for new do_authentication prototype.
6077
6078 2004-10-18  Colin Walters  <walters@verbum.org>
6079
6080         * bus/selinux.c (bus_selinux_enabled): Handle
6081         --disable-selinux case.
6082         
6083 2004-10-18  Colin Walters  <walters@verbum.org>
6084
6085         * bus/selinux.h: Add bus_selinux_enabled.
6086         
6087         * bus/selinux.c (bus_selinux_enabled): Implement it.
6088         
6089         * bus/config-parser.c (struct include): Add
6090         if_selinux_enabled member.
6091         (start_busconfig_child): Parse if_selinux_enabled
6092         attribute for include.
6093         (bus_config_parser_content): Handle it.
6094
6095         * bus/session.conf.in, bus/system.conf.in: Add
6096         inclusion of context mapping to default config files;
6097         conditional on SELinux being enabled.
6098         
6099         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6100         
6101         * test/data/invalid-config-files/badselinux-1.conf, 
6102         test/data/invalid-config-files/badselinux-2.conf:
6103         Test files for bad syntax.
6104         
6105 2004-10-17  Colin Walters  <walters@verbum.org>
6106
6107         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6108         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6109         format specifier mismatches.
6110
6111 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6112
6113         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6114         format string.
6115
6116         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6117         pointer (bug #1540, Leonardo Boiko).
6118
6119 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6120
6121         * mono/BusDriver.cs: Changed BusDriver struct to remove
6122         the ServiceCreated and ServiceDeleted events and replace them
6123         with the new ServiceOwnerChanged event.
6124
6125         * mono/example/BusListener.cs: Added a new example program,
6126         which listens for and reports any ServiceOwnerChanged events
6127         on the bus driver.
6128
6129         * mono/example/Makefile.am (DESTDIR): Build changes for the
6130         new BusListener.cs example.
6131
6132 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6133
6134         * bus/signals.c (bus_match_rule_parse): validate the components of
6135         match rules (bug #1439).
6136
6137         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6138
6139 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6140
6141         * doc/dbus-specification.xml: document ServiceOwnerChanged
6142         signal.
6143         
6144         * bus/driver.c, bus/driver.h, bus/services.c: Use
6145         ServiceOwnerChanged signal instead of ServiceCreated and
6146         ServiceDeleted.
6147         
6148         * bus/dispatch.c: update testcase for the new signal.
6149
6150 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6151
6152         Patch from Nat Friedman <nat@novell.com>
6153
6154         * mono/Makefile.am: A number of small build fixes to allow "make
6155         distcheck" to succeed.
6156
6157         * mono/example/Makefile.am: "make distcheck" fixes.
6158
6159         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6160         key in @srcdir@.
6161
6162         * test/Makefile.am: "make distcheck" fixes.
6163
6164 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6165
6166         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6167
6168         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6169
6170         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6171         messages after the first one (bug #1389).
6172         
6173         * bus/dispatch.c (check_double_hello_message): add a test case for
6174         the double hello message bug.
6175         (check_existent_service_activation): fix check of spawning error.
6176         
6177 2004-09-16  David Zeuthen  <david@fubar.dk>
6178
6179         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6180
6181 2004-09-12  David Zeuthen  <david@fubar.dk>
6182
6183         Patch from Kay Sievers <kay.sievers@vrfy.org>
6184
6185         * bus/bus.c (bus_context_new):
6186         * bus/bus.h:
6187         * bus/main.c (usage)
6188         (main):
6189         Add commandline option --nofork to override configuration file
6190         setting.
6191
6192 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6193
6194         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6195         compilers don't like it (bug #974).
6196
6197 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6198
6199         * qt/connection.*: Applied patch by Jérôme Lodewyck
6200         <lodewyck@clipper.ens.fr> to integrate an existing
6201         connection into the Qt eventloop
6202
6203 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6204
6205         * mono/BusDriver.cs: Added.  This is a class for interacting with
6206         the org.freedesktop.DBus service.
6207
6208         * mono/Message.cs: Added a mechanism to expose the message that is
6209         currently being dispatched via the static Message.Current
6210         property.  Added Message.Sender and Message.Destination
6211         properties.
6212
6213         * mono/Handler.cs: Expose the dispatched message via
6214         Message.Current when handling method calls.
6215
6216         * mono/Service.cs: Expose the dispatched message via
6217         Message.Current when handling signal emissions.
6218         
6219         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6220         Connection.BaseService property.
6221
6222 2004-08-28  Havoc Pennington  <hp@redhat.com>
6223
6224         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6225
6226         More fixes from Steve Grubb
6227         
6228         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6229         (_dbus_listen_tcp_socket): fix fd leak
6230
6231         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6232         EINTR to a bit lower in the code
6233
6234 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6235
6236         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6237         TRUE if we are inquiring about the existence of the built-in
6238         org.freedesktop.DBus service.
6239
6240 2004-08-25  John Palmieri  <johnp@redhat.com>
6241         * bus/config-parser.c:
6242         (struct PolicyType): Add POLICY_CONSOLE
6243         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6244         (start_busconfig_child): Sets up console element when
6245         <policy at_console=""> is encountered in a policy file
6246         (append_rule_from_element): Convert console elements to console
6247         rules.
6248
6249         * bus/policy.c: 
6250         (bus_policy_create_client_policy): Add console rules to the client
6251         policy based on if the client is at the console
6252         (bus_policy_append_console_rule): New function for adding a
6253         console rule to a policy
6254         (bus_policy_merge): Handle console rule merging
6255
6256         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6257         where we check for console user files
6258         
6259         * dbus/dbus-sysdeps.c:
6260         (_dbus_file_exists): New function which checks if the given
6261         file exists
6262         (_dbus_user_at_console): New function which does the system
6263         specific process of checking if the user is at the console
6264
6265         * dbus/dbus-userdb.c:
6266         (_dbus_is_console_user): New function converts a UID to user name
6267         and then calls the system specific _dbus_user_at_console to 
6268         see if the user is at the console and therefor a console user
6269
6270 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6271
6272         * bus/config-parser.c (set_limit):
6273         * bus/dbus-daemon-1.1.in:
6274         * test/data/valid-config-files/many-rules.conf: set the
6275         max_match_rules_per_connection limt from the config file. 
6276
6277         * doc/busconfig.dtd: update the DTD.
6278
6279         * bus/driver.c: remove some unused variables.
6280
6281 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6282
6283         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6284         it's been replaced by dbus_g_bus_get
6285
6286 2004-08-23  Colin Walters  <walters@redhat.com>
6287
6288         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6289
6290         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6291
6292         * bus/selinux.c: Create a thread for policy reload notification.
6293         (bus_selinux_get_policy_root): Implement.
6294
6295         * bus/config-parser.c (start_busconfig_child)
6296         (bus_config_parser_content): Support SELinux-root relative
6297         inclusion.
6298
6299         * configure.in <HAVE_SELINUX>: Add -lpthread.
6300         
6301         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6302         (test_post_hook): Move memory checking into here.
6303         (test_pre_hook, test_post_hook): Move SELinux checks in
6304         here, but conditional on a DBUS_TEST_SELINUX environment
6305         variable.  Unfortunately we can't run the SELinux checks
6306         as a normal user, since they won't have any permissions
6307         for /selinux.  So this will have to be tested manually
6308         for now, until we have virtualization for most of
6309         libselinux.
6310         
6311 2004-08-23  Havoc Pennington  <hp@redhat.com>
6312
6313         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6314         drop supplementary groups, suggested by Steve Grubb
6315
6316 2004-08-20  Colin Walters  <walters@redhat.com>
6317
6318         * bus/config-parser.c (start_busconfig_child): Remove some unused
6319         variables.
6320         
6321         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6322         warning.
6323
6324 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6325
6326         * configure.in: If --enable-mono is passed in, if we can't find
6327         mono error out.
6328
6329         * mono/Makefile.am: Use /gacutil to install assemblies into the
6330         GAC and not /root.
6331
6332 2004-08-12  Havoc Pennington  <hp@redhat.com>
6333
6334         * NEWS: update for 0.22
6335
6336         * configure.in: release 0.22
6337
6338 2004-08-11  Colin Walters  <walters@redhat.com>
6339
6340         * tools/dbus-send.c (main, usage): Add --reply-timeout
6341         argument.
6342
6343 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6344
6345         * bus/bus.c (process_config_first_time_only): get rid of an unused
6346         DBusError that was causing a memoy leak (bug #989).
6347
6348         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6349         fix compilation on Solaris/Forte C (bug #974)
6350
6351         * bus/main.c (main): plug two minuscule memleaks.
6352
6353 2004-08-10  Havoc Pennington  <hp@redhat.com>
6354
6355         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6356
6357 2004-08-09  Havoc Pennington  <hp@redhat.com>
6358
6359         * COPYING: switch to Academic Free License version 2.1 instead of
6360         2.0, to resolve complaints about patent termination clause.
6361
6362 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6363
6364         * README: added documentation for the --enable-python 
6365         configure switch.
6366
6367 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6368
6369         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6370         _unref in the SELinux support.
6371
6372         * doc/busconfig.dtd: update DTD for SELinux support.
6373
6374         * bus/config-loader-libxml.c: fix error handler and parser
6375         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6376
6377         * configure.in: remove the warning about libxml2.
6378
6379         * dbus/dbus-bus.c: silence doxygen warning.
6380
6381 2004-07-31  Colin Walters  <walters@redhat.com>
6382
6383         * configure.in: Move #error in SELinux check to its own line.
6384
6385 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6386
6387         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6388         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6389         dbus_error_set.
6390
6391         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6392         broken by the change in the _SET_OOM macros.
6393
6394 2004-07-31  Colin Walters  <walters@redhat.com>
6395
6396         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6397         BUS_SET_OOM.
6398
6399 2004-07-31  Colin Walters  <walters@redhat.com>
6400
6401         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6402         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6403         AC_MSG_CHECKING.
6404
6405 2004-07-24  Havoc Pennington  <hp@redhat.com>
6406
6407         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6408
6409         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6410         functionality
6411
6412         * configure.in: add --enable-selinux
6413         
6414         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6415
6416         * bus/main.c (main): initialize and shut down selinux
6417
6418         * bus/connection.c: store SELinux ID on each connection, to avoid 
6419         repeated getting of the string context and converting it into 
6420         an ID
6421
6422         * bus/bus.c (bus_context_get_policy): new accessor, though it
6423         isn't used
6424         (bus_context_check_security_policy): check whether the security
6425         context of sender connection can send to the security context of
6426         recipient connection
6427
6428         * bus/config-parser.c: add parsing for <selinux> and <associate>
6429         
6430         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6431         implement dbus_connection_get_unix_fd()
6432
6433         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6434         function, used by the selinux stuff
6435         
6436 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6437
6438         * bus/config-loader-libxml.c: complete the implementation of
6439         libxml backend for config file loader. Doesn't work with full OOM
6440         test yet. 
6441         
6442         * configure.in: change error when selecting libxml into a warning.
6443         
6444         * test/data/invalid-config-files: add two non-well-formed XML
6445         files. 
6446         
6447         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6448         
6449         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6450         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6451         be necessary to read all the buffer. (bug #894)
6452
6453         * bus/activation.c (bus_activation_activate_service): fix a
6454         potential assertion failure (bug #896). Small optimization in the
6455         case of auto-activation messages.
6456
6457         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6458         add test case for byte-through-vararg bug (#901). patch by Kimmo
6459         Hämäläinen. 
6460
6461 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6462
6463         * python/dbus.py:
6464         * python/dbus_bindings.pyx.in:
6465         Add dbus.init_gthreads (), allow emit_signal to pass
6466         arguments to the signal.
6467         
6468 2004-07-24  Havoc Pennington  <hp@redhat.com>
6469
6470         * AUTHORS: add some people, not really comprehensively, let me
6471         know if I missed you
6472
6473 2004-07-24  Havoc Pennington  <hp@redhat.com>
6474
6475         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6476         Owen
6477
6478         * test/Makefile.am (DIST_SUBDIRS): here also
6479
6480 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6481
6482         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6483         breaking build on Solaris, reported by Farhad Saberi on the ML.
6484
6485         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6486         va_arg invocation to account for integer promotion in the case of
6487         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6488
6489         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6490         _dbus_list_get_first_link, not _dbus_list_get_first.
6491
6492         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6493
6494         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6495         handler functions so that the asserts in _dbus_object_subtree_unref
6496         do not fail.
6497
6498         * dbus/dbus-transport-unix.c (do_reading):
6499         _dbus_transport_queue_messages return value is of type
6500         dbus_bool_t, not DBusDispatchStatus.
6501         
6502 2004-07-19  David Zeuthen  <david@fubar.dk>
6503
6504         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6505
6506         * bus/dispatch.c:
6507         (check_get_connection_unix_user): Debug says GetProperty; but the
6508         method is called GetConnectionUnixUser
6509         (check_get_connection_unix_process_id): New function
6510         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6511         also call check_get_connection_unix_process_id()
6512         
6513         * bus/driver.c:
6514         (bus_driver_handle_get_connection_unix_process_id): New function,
6515         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6516         interface
6517         
6518         * dbus/dbus-auth.c:
6519         (handle_server_data_external_mech): Set pid from the credentials
6520         obtained from the socket
6521         
6522         * dbus/dbus-connection.c:
6523         (dbus_connection_get_unix_process_id): New function
6524         
6525         * dbus/dbus-connection.h: 
6526         Add prototype for dbus_connection_get_unix_process_id
6527         
6528         * dbus/dbus-transport.c:
6529         (_dbus_transport_get_unix_process_id): New function
6530         
6531         * dbus/dbus-transport.h:
6532         Add prototype for _dbus_transport_get_unix_process_id
6533         
6534 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6535
6536         * dbus/dbus-message.c: Message counter fix, patch by Christian
6537         Hammond <chipx86@gnupdate.org>
6538
6539 2004-07-18  Seth Nickell  <seth@gnome.org>
6540
6541         * python/dbus.py:
6542         * python/dbus_bindings.pyx.in:
6543         * python/tests/test-client.py:
6544
6545         Add dbus.ByteArray and dbus_bindings.ByteArray
6546         types so that byte streams can be passed back.
6547
6548         Give jdahlin the heaps of credit that are so
6549         rightfully his.
6550         
6551 2004-07-12  Seth Nickell  <seth@gnome.org>
6552
6553         * python/dbus.py:
6554
6555         Add message argument to the default object_method_handler
6556         function.
6557         
6558         * python/dbus_bindings.pyx.in:
6559
6560         Automatically return NIL when passed an empty list
6561         (we can't pass back a list since lists are typed
6562         and we don't have any idea what type the the client
6563         intended the list to be... :-( )
6564         
6565 2004-07-10  Seth Nickell  <seth@gnome.org>
6566
6567         * python/examples/Makefile.am:
6568
6569         Fix distcheck breakage caused by new examples.
6570
6571 2004-07-10  Seth Nickell  <seth@gnome.org>
6572
6573         * python/dbus.py:
6574
6575         Add "message" argument to service-side dbus.Object
6576         methods. This will break existing services written
6577         using the python bindings, but will allow extraction
6578         of all the message information (e.g. who its from).
6579
6580         Add improved "object oriented" signal handling/emission.
6581         
6582         * python/examples/example-service.py:
6583
6584         Nix this example.
6585         
6586         * python/examples/example-signal-emitter.py:
6587         * python/examples/example-signal-recipient.py:
6588
6589         Two new examples that show how to emit and receive
6590         signals using the new APIs.
6591         
6592         * python/examples/example-signals.py:
6593         * python/examples/gconf-proxy-service.py:
6594         * python/examples/gconf-proxy-service2.py:
6595
6596         Add "message" argument to service methods.
6597
6598 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6599
6600         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6601         * dbus/bus.c (dbus_bus_get_unix_user)
6602         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6603         method of org.freedesktop.DBus interface.
6604
6605         * bus/dispatch.c: test case
6606
6607 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6608
6609         * python/Makefile.am: switched include directory from glib/ to dbus/
6610         since dbus-glib.h moved
6611  
6612 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6613
6614         * configure.in: prevent building the gcj stuff and libxml loader
6615         since they are broken.
6616
6617 2004-06-20  Havoc Pennington  <hp@redhat.com>
6618
6619         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6620         codes from the dbus error names
6621         
6622         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6623         as dbus/dbus-glib.h and that breakage is now visible due to 
6624         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6625         
6626         * glib/dbus-glib.h: s/gproxy/g_proxy/
6627
6628         * dbus/dbus-shared.h: new header to hold stuff shared with
6629         binding APIs
6630         
6631         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6632         than dbus-errors.h
6633
6634         * glib/dbus-glib.h (dbus_set_g_error): move to
6635         dbus-glib-lowlevel.h
6636
6637         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6638         of stuff to enable this
6639
6640         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6641
6642         * a bunch of other changes with the same basic "separate glib 
6643         bindings from dbus.h" theme
6644         
6645 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6646
6647         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6648
6649         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6650
6651 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6652
6653         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6654         the reply value of the ServiceExists message.
6655
6656 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6657
6658         * python/dbus_bindings.pyx.in: No longer need to parse path
6659         elements and pass them as arrays of strings.  The C API now
6660         accepts plain path strings.
6661         (_build_parsed_path): removed 
6662
6663 2004-06-07  Havoc Pennington  <hp@redhat.com>
6664
6665         * doc/TODO: remove auto-activation item since it's done; sort
6666         items by importance/milestone
6667
6668 2004-06-07  Havoc Pennington  <hp@redhat.com>
6669
6670         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6671         random signature when using REQUIRED_FIELDS (this hack won't work
6672         in the long term)
6673
6674         * dbus/dbus-message.c: change the signature to be a header field,
6675         instead of message->signature special-case string. Incremental
6676         step forward. Then we can fix up code to send the signature in the
6677         message, then fix up code to validate said signature, then fix up
6678         code to not put the typecodes inline, etc.
6679         (load_one_message): don't make up the signature after the fact
6680         (decode_header_data): require signature field for the known
6681         message types
6682
6683         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6684
6685         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6686
6687 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6688
6689         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6690
6691         * mono/Handler.cs: Updated to follow new path argument for
6692         (un-)registering objects.
6693
6694         * mono/example/Makefile.am:
6695         * mono/Makefile.am:
6696         * configure.in: Bumped required version for mono and use new -pkg
6697         syntax for deps
6698
6699 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6700
6701         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6702         registration functions take the path argument as char* instead of
6703         char**.
6704
6705         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6706         split off the path decompostion part of
6707         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6708         warnings. 
6709
6710         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6711         
6712 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6713  
6714         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6715         machine approach.  A state is implemented as a function that
6716         handles incoming events as specified for that state.
6717         
6718         * doc/dbus-specification.xml: Update auth protocol state machine
6719         specification to match implementation.  Remove some leftover
6720         base64 examples.
6721
6722 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6723
6724         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6725         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6726         quiet doxygen.
6727
6728         * Doxyfile.in: remove deprecated options.
6729
6730         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6731         glib/test-thread.h, glib/test-thread-client.c,
6732         glib/test-thread-server.c, glib/test-profile.c,
6733         glib/test-dbus-glib.c: remove these unused files.
6734
6735 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6736
6737         * dbus/dbus-object-tree.c
6738         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6739         non-fallback handlers (bug #684).
6740         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6741         (find_subtree_recurse): report wether the returned subtree is an
6742         exact match or a "fallback" match higher up in the tree.
6743         (object_tree_test_iteration): update test case.
6744
6745 2004-06-01  Seth Nickell  <seth@gnome.org>
6746
6747         * python/dbus_bindings.pyx.in:
6748         * python/tests/test-client.py:
6749
6750         Round off basic type support. Add dicts (yay!), and 
6751         remaining array types.
6752
6753         Make MessageIter more general so it works for dicts too.
6754
6755         Mark all loop variables as C integers.
6756         
6757 2004-05-31  Havoc Pennington  <hp@redhat.com>
6758
6759         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6760         "in" before "out"
6761
6762         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6763
6764         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6765         option that runs the tests, and start filling in some code
6766         including for starters just dumping the interfaces to stdout
6767
6768         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6769
6770         * test/data/valid-introspection-files/lots-of-types.xml: test of
6771         an example introspection file
6772
6773         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6774         "node" (I think...)
6775
6776 2004-05-31  Seth Nickell  <seth@gnome.org>
6777
6778         * python/dbus_bindings.pyx.in:
6779         * python/tests/test-client.py:
6780
6781         Test Suite: 1
6782         Python Bindings: 0
6783
6784         Fix string array memory trashing bug... oops...
6785
6786 2004-05-30  Seth Nickell  <seth@gnome.org>
6787
6788         * python/dbus.py:
6789
6790         Add a nicer-but-less-flexible alternate API for handling 
6791         calls to virtual objects in dbus.ObjectTree.
6792
6793         Screw up the argument order to the dbus.Object constructor
6794         for consistency with dbus.ObjectTree (and to make dbus_methods
6795         optional for future extension)
6796         
6797         * python/examples/Makefile.am:
6798         * python/examples/gconf-proxy-service.py:
6799         * python/examples/gconf-proxy-service2.py:
6800
6801         Alternate implementation of gconf-proxy-service using the
6802         nicer dbus.ObjectTree API.
6803         
6804         * python/examples/example-service.py:
6805         * python/tests/test-server.py
6806
6807         Reverse the argument order to deal with dbus.Object constructor
6808         changes.
6809         
6810 2004-05-30  Seth Nickell  <seth@gnome.org>
6811
6812         * python/examples/example-client.py:
6813         * python/examples/example-service.py:
6814
6815         Take it back. Lists seem to work but they're broken
6816         in the test suite. Make the base examples use
6817         lists (works fine).
6818
6819 2004-05-30  Seth Nickell  <seth@gnome.org>
6820
6821         * python/dbus_bindings.pyx.in:
6822         * python/tests/test-client.py:
6823
6824         Add some more tests and fix errors that crop up.
6825         Unfortunately, currently it seems like marshalling
6826         and unmarshalling of lists is completely broken :-(
6827
6828 2004-05-30  Seth Nickell  <seth@gnome.org>
6829
6830         * python/dbus_bindings.pyx.in:
6831
6832         Add support for ObjectPath type.
6833
6834         * python/dbus.py:
6835
6836         Refactor message handling code to a common function.
6837         
6838         * python/tests/test-client.py:
6839         * python/tests/test-server.py:
6840
6841         Add tests that check to make sure values of all types
6842         can be echoed from a service w/o mangling.
6843         
6844 2004-05-29  Seth Nickell  <seth@gnome.org>
6845
6846         * python/dbus.py:
6847
6848         Add ObjectTree class which allows implementation
6849         of trees of "virtual" objects. Basically the python
6850         wrapper for "register_fallback".
6851         
6852         * python/examples/Makefile.am
6853         * python/examples/gconf-proxy-client.py:
6854         * python/examples/gconf-proxy-service.py:
6855
6856         Implement a simple GConf proxy service that supports
6857         get/set on string and int GConf keys using the ObjectTree.
6858         
6859 2004-05-29  Seth Nickell  <seth@gnome.org>
6860
6861         * python/dbus.py:
6862         * python/examples/example-client.py:
6863         * python/examples/example-service.py:
6864         * python/examples/list-system-services.py:
6865
6866         Add SessionBus, SystemBus and ActivationBus classes
6867         so you don't need to know the special little BUS_TYPE
6868         flag.
6869         
6870 2004-05-29  Havoc Pennington  <hp@redhat.com>
6871
6872         * bus/config-parser.c (process_test_valid_subdir): temporarily
6873         stop testing config parser OOM handling, since expat has issues
6874         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6875
6876         * bus/dbus-daemon-1.1.in: change requested_reply to
6877         send_requested_reply/receive_requested_reply so we can send the
6878         replies, not just receive them.
6879
6880         * bus/config-parser.c: parse the new
6881         send_requested_reply/receive_requested_reply
6882
6883         * bus/policy.c (bus_client_policy_check_can_send): add
6884         requested_reply argument and use it
6885
6886         * bus/bus.c (bus_context_check_security_policy): pass through
6887         requested_reply status to message send check
6888
6889         * bus/system.conf.in: adapt to requested_reply change
6890         
6891 2004-05-28  Havoc Pennington  <hp@redhat.com>
6892
6893         * test/glib/test-service-glib.c (main): remove unused variable
6894
6895         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6896
6897         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6898         from the enum, no longer in use.
6899
6900         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6901         works right.
6902
6903         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6904         whether error_name passed in is a valid error name.
6905
6906 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6907
6908         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6909         OBJECT_PATH and OBJECT_PATH_ARRAY
6910
6911 2004-05-28  Seth Nickell  <seth@gnome.org>
6912
6913         * python/examples/Makefile.am:
6914
6915         Forget to add Makefile.am. Do not pass go.
6916
6917 2004-05-28  Michael Meeks  <michael@ximian.com>
6918
6919         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6920         fix no int64 case.
6921
6922         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6923
6924         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6925         (_dbus_message_iter_get_basic_type_array): impl.
6926         drastically simplify ~all relevant _get methods to use these.
6927         (_dbus_message_iter_append_basic_array),
6928         (dbus_message_iter_append_basic): impl
6929         drastically simplify ~all relevant _append methods to use these.
6930
6931         * dbus/dbus-message-builder.c (parse_basic_type) 
6932         (parse_basic_array, lookup_basic_type): impl.
6933         (_dbus_message_data_load): prune scads of duplicate /
6934         cut & paste coding.
6935
6936         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6937         (_dbus_demarshal_basic_type): implement,
6938         (demarshal_and_validate_len/arg): beef up debug.
6939         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6940
6941 2004-05-27  Seth Nickell  <seth@gnome.org>
6942
6943         * configure.in:
6944         * python/Makefile.am:
6945
6946         Include the example python apps in the tarball.
6947         
6948         * python/examples/list-system-services.py
6949
6950         Add a python new example that fetches the list of services
6951         from the system bus.
6952         
6953 2004-05-27  Seth Nickell  <seth@gnome.org>
6954
6955         * python/dbus.py:
6956         * python/dbus_bindings.pyx.in:
6957
6958         Fix failure to notify that a signal was not handled,
6959         resulted in hung functions.
6960         
6961 2004-05-25  Colin Walters  <walters@redhat.com>
6962
6963         * tools/dbus-monitor.c (main): Monitor all types of messages.
6964
6965 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6966
6967         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6968         which unregisters the object path and disposes the handler.
6969
6970 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6971  
6972         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6973          
6974         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6975         operands to && so we call dbus_message_iter_next () for the last
6976         argument also.
6977
6978 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6979
6980         * dbus/dbus-object-tree.c
6981         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6982         children even if the requested path isn't registered.
6983         (object_tree_test_iteration): test object_tree_list_registered.
6984
6985         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6986         it to 0.
6987         
6988 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6989
6990         * doc/TODO: Remove resolved items.
6991
6992         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6993         field.
6994         
6995         * bus/connection.c (bus_connections_expect_reply): Enforce the
6996         per-connection limit on pending replies.
6997         
6998         Patch from Jon Trowbridge <trow@ximian.com>:
6999  
7000         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7001         up a watch that triggers a config reload when one end of the pipe
7002         becomes readable.
7003         (signal_handler): Instead of doing the config reload in our SIGHUP
7004         handler, just write to the reload pipe and let the associated
7005         watch handle the reload when control returns to the main loop.
7006  
7007         * bus/driver.c (bus_driver_handle_reload_config): Added.
7008         Implements a ReloadConfig method for requesting a configuration
7009         file reload via the bus driver.
7010  
7011 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7012
7013         * HACKING: Updated release instructions concerning the wiki page.
7014
7015 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7016
7017         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7018         filter against auth->allowed_mechs; we only add allowed mechs in
7019         record_mechanisms().
7020  
7021         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7022         ALLOWED_MECHS to auth-script format so we can set the list of
7023         allowed mechanisms.
7024  
7025         * data/auth/client-out-of-mechanisms.auth-script: New test to
7026         check client disconnects when it is out of mechanisms to try.
7027  
7028         * dbus/dbus-auth.c (process_command): Remove check for lines
7029         longer that 1 MB; we only buffer up maximum 16 kB.
7030  
7031         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7032         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7033         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7034         assume there might be unused bytes.
7035  
7036         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7037         client-out-of-mechs, it is handled in process_reject(). Move check
7038         for max failures to send_rejected(), as it's a server-only thing.
7039
7040         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7041         send_auth(), send_data(), send_rejected(), send_error(),
7042         send_ok(), send_begin() and send_cancel().
7043
7044 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7045
7046         Remove base64 encoding, replace with hex encoding. Original patch
7047         from trow@ximian.com, added error handling.
7048
7049         * dbus/dbus-string.c (_dbus_string_base64_encode)
7050         (_dbus_string_base64_decode): Remove.
7051         (_dbus_string_hex_decode): Add end_return argument so we can
7052         distinguish between OOM and invalid hex encoding.
7053         (_dbus_string_test): Remove base64 tests and add test case for
7054         invalid hex.
7055
7056         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7057         Replace base64 with hex.
7058
7059         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7060         for invalid hex encoded data in auth protocol.
7061
7062 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7063
7064         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7065         leak.
7066
7067 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7068
7069         * mono/dbus-sharp.dll.config.in: Added for GAC
7070         * mono/dbus-sharp.snk: Added for GAC
7071         * mono/Assembly.cs.in: Added for GAC
7072         * mono/Makefile.am: Changes for GAC installation        
7073         * configure.in: Added refs for dbus-sharp.dll.config.in and
7074         Assembly.cs.in. More fixes for mono testing
7075         * mono/example/Makefile.am: Changed var to CSC
7076         * Makefile.am: Changed flag name to DBUS_USE_CSC
7077
7078 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7079
7080         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7081         * mono/doc/*: Added documentation framework
7082         * configure.in: Added monodoc check
7083         * README: Added description of mono configure flags
7084
7085 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7086
7087         * doc/dbus-specification.xml: Added a "Required" column to the 
7088         header fields table and changed the "zero or more" verbage in
7089         the above paragraph to read "The header must contain the required 
7090         named header fields and zero or more of the optional named header 
7091         fields".
7092         * test/data/invalid-messages/*.message: Added the required PATH 
7093         named header field to the tests so that they don't fail on 
7094         'Missing path field'
7095
7096 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7097
7098         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7099         the stack by implicitly defining variable and parameter types and
7100         removing the hack of defining C pointers as python objects and later
7101         casting them.
7102
7103 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7104
7105         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7106
7107 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7108
7109         * mono/DBusType/Dict.cs: Handle empty dicts
7110         * mono/DBusType/Array.cs: Handle empty arrays
7111         * mono/Arguments.cs: Handle empty arguments
7112
7113 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7114
7115         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7116         field
7117
7118 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7119
7120         * test/data/valid-messages/standard-*.message: Update message
7121         test scripts to new header field names.
7122
7123 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7124
7125         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7126         overflow to times_we_did_each_thing array which would chop off the
7127         first character of the failure_dir string. Increased the size of
7128         the array to 7 to reflect the number of random mutation functions
7129         we have.
7130
7131 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7132
7133         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7134         unix_server->watch here, it is unreffed in disconnect.
7135         (_dbus_server_new_for_tcp_socket): convert NULL host to
7136         "localhost" here so we don't append NULL to address.
7137         
7138         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7139         various addresses, including tcp with no explicit host.
7140
7141 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7142
7143         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7144         fix incorrect setting of .name_offset in the HeaderField (it was
7145         off by two bytes, positioned right after the name and typecode)
7146
7147         * bus/bus.c (bus_context_new, bus_context_unref): test before
7148         calling dbus_server_free_data_slot and _dbus_user_database_unref
7149         in case of an error.
7150
7151         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7152         by libdbus-gtool.
7153
7154 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7155
7156         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7157         _dbus_poll() instead of select().
7158
7159 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7160
7161         * bus/main.c (signal_handler): Reload the configuration files
7162         on SIGHUP.
7163         (main): Set up our SIGHUP handler.
7164
7165         * bus/bus.c (struct BusContext): Store the config file, user and
7166         fork flag in the BusContext.
7167         (process_config_first_time_only): Added.  Contains the code
7168         (previously in bus_context_new) for setting up the BusContext from
7169         the BusConfigParser that should only be run the first time the
7170         config files are read.
7171         (process_config_every_time): Added.  Contains the code (previously
7172         in bus_context_new) for setting up the BusContext from the
7173         BusConfigParser that should be run every time the config files are
7174         read.
7175         (load_config): Added.  Builds a BusConfigParser from the config
7176         files and passes the resulting structure off to
7177         process_config_first_time_only (assuming this is the first time)
7178         and process_config_every_time.
7179         (bus_context_new): All of the config-related code has been moved
7180         to process_config_first_time_only and process_config_every_time.
7181         Now this function just does the non-config-related initializations
7182         and calls load_config.
7183         (bus_context_reload_config): Added.
7184
7185 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7186
7187         * bus/driver.c (bus_driver_handle_get_service_owner):
7188         implement a GetServiceOwner method.
7189         * doc/dbus-specification.xml: document it.
7190         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7191         
7192         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7193         implement, using the bus GetServiceOwner method.
7194
7195         * test/glib/test-dbus-glib.c:
7196         use dbus_gproxy_new_for_service_owner so that we can receive the
7197         signal. 
7198
7199 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7200
7201         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7202         dbus/dbus-message.c, dbus/dbus-protocol.h
7203         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7204
7205         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7206         dbus/dbus-message.c, dbus/dbus-protocol.h
7207         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7208
7209         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7210         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7211         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7212
7213         * doc/dbus-specification.xml (Header Fields Table):
7214         s/SERVICE/DESTINATION
7215         s/SENDER_SERVICE/SENDER
7216
7217
7218 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7219
7220         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7221         a few seconds.
7222
7223 2004-04-13  Michael Meeks  <michael@ximian.com>
7224
7225         * glib/dbus-gobject.c (handle_introspect): split out
7226         (introspect_properties): this.
7227         (handle_introspect): implement this.
7228
7229         * test/glib/Makefile.am: use the absolute path so the bus
7230         daemon's chdir ("/") doesn't kill us dead.
7231
7232         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7233
7234 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7235
7236         * bus/config-parser.c (struct BusConfigParser): Added
7237         included_files field.
7238         (seen_include): Added.  Checks whether or not a file has already
7239         been included by any parent BusConfigParser.
7240         (bus_config_parser_new): Copy the parent's included_files.
7241         (include_file): Track which files have been included, and fail on
7242         circular inclusions.
7243         (process_test_valid_subdir): Changed printf to report if we are
7244         testing valid or invalid conf files.
7245         (all_are_equiv): Changed printf to be a bit clearer about
7246         what we are actually doing.
7247         (bus_config_parser_test): Test invalid configuration files.
7248
7249 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7250
7251         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7252         argument.  If non-null, the newly-constructed BusConfigParser will
7253         be initialized with the parent's BusLimits instead of the default
7254         values.
7255         (include_file): When including a config file, pass in
7256         the current parser as the parent and then copy the BusLimits
7257         from the included BusConfigParser pack to the current parser.
7258         (process_test_valid_subdir): Renamed from process_test_subdir.
7259         (process_test_equiv_subdir): Added.  Walks through a directory,
7260         descending into each subdirectory and loading the config files
7261         it finds there.  If any subdirectory contains two config files
7262         that don't produce identical BusConfigParser structs, fail.
7263         For now, the BusConfigParser's BusPolicies are not compared.
7264         (bus_config_parser_test): Call both process_test_valid_subdir and
7265         process_test_equiv_subdir.
7266
7267         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7268         argument and pass it along to the call to bus_config_parser_new.
7269         Also made a few small changes to allow this code to compile.
7270
7271         * bus/config-loader-expat.c (bus_config_load): Take a parent
7272         argument and pass it along to the call to bus_config_parser_new.
7273
7274         * bus/bus.c (bus_context_new): Load the config file
7275         with a NULL parent argument.
7276
7277 2004-03-29  Michael Meeks  <michael@ximian.com>
7278
7279         * glib/dbus-gobject.c (introspect_properties): split
7280         out, fix mangled 'while' flow control.
7281         (introspect_signals): implement.
7282         (handle_introspect): update.
7283
7284 2004-03-29  Michael Meeks  <michael@ximian.com>
7285
7286         * glib/dbus-gobject.c (set_object_property): split out / 
7287         re-work, use the property type, and not the message type(!)
7288         (get_object_property): ditto.
7289
7290         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7291         (dbus_gvalue_marshal): make this code re-usable, needed
7292         for signals too, also on both proxy and server side.
7293         Re-write for more efficiency / readability.
7294
7295 2004-03-29  Michael Meeks  <michael@ximian.com>
7296
7297         * dbus/dbus-message.c
7298         (dbus_message_new_error_printf): impl.
7299
7300         * dbus/dbus-connection.c
7301         (dbus_connection_unregister_object_path): fix warning.
7302
7303         * configure.in: fix no-mono-installed situation.
7304
7305 2004-03-27  Havoc Pennington  <hp@redhat.com>
7306
7307         Patch from Timo Teräs:
7308         
7309         * tools/dbus-send.c (main): if --print-reply, assume type is
7310         method call; support boolean type args
7311         
7312         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7313         bunch of memleak and logic bugs
7314         
7315 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7316
7317         * mono/Arguments.cs:
7318         * mono/Introspector.cs:
7319         * mono/Handler.cs:
7320         * mono/InterfaceProxy.cs:
7321         * mono/Message.cs
7322         * mono/ProxyBuilder.cs:
7323         * mono/Service.cs:
7324         Added InterfaceProxy class to avoid building proxies for every
7325         object.
7326
7327         * dbus-message.h:
7328         * dbus-message.c (dbus_message_append_args_valist)
7329         (dbus_message_iter_get_object_path)
7330         (dbus_message_iter_get_object_path_array)
7331         (dbus_message_iter_append_object_path)
7332         (dbus_message_iter_append_object_path_array):
7333         Added object_path iter functions to handle OBJECT_PATH arguments
7334         
7335 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7336
7337         First checkin of mono bindings.
7338         * configure.in:
7339         * Makefile.am:
7340         Build stuff for the bindings
7341         * dbus-sharp.pc.in: Added for pkgconfig
7342         
7343 2004-03-21  Havoc Pennington  <hp@redhat.com>
7344
7345         * test/test-service.c (main): remove debug spew
7346
7347 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7348
7349         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7350         arrays
7351
7352         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7353         (dbus_message_iter_init_array_iterator)
7354         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7355         indicate whether the iterator is empty
7356
7357         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7358         warnings
7359
7360 2004-03-19  Havoc Pennington  <hp@redhat.com>
7361
7362         * NEWS: 0.21 updates
7363
7364         * configure.in: 0.21
7365
7366         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7367         
7368         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7369         you don't need pyrex to make dist
7370
7371         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7372         sources; run moc
7373         
7374 2004-03-18  Richard Hult  <richard@imendio.com>
7375
7376         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7377         (dbus_message_set_auto_activation): Add doxygen docs.
7378
7379 2004-03-16  Richard Hult  <richard@imendio.com>
7380
7381         * bus/activation.c: (bus_activation_service_created),
7382         (bus_activation_send_pending_auto_activation_messages),
7383         (bus_activation_activate_service):
7384         * bus/activation.h:
7385         * bus/dispatch.c: (bus_dispatch),
7386         (check_nonexistent_service_auto_activation),
7387         (check_service_auto_activated),
7388         (check_segfault_service_auto_activation),
7389         (check_existent_service_auto_activation), (bus_dispatch_test):
7390         * bus/driver.c: (bus_driver_handle_activate_service):
7391         * bus/services.c: (bus_registry_acquire_service):
7392         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7393         (dbus_message_get_auto_activation):
7394         * dbus/dbus-message.h:
7395         * dbus/dbus-protocol.h: Implement auto-activation.
7396         
7397         * doc/dbus-specification.xml: Add auto-activation to the spec.
7398
7399 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7400
7401         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7402         fix a bug with CUSTOM types.
7403
7404         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7405         a unit test for this bug (used to fail).
7406
7407 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7408
7409         * bus/activation.c:
7410         (babysitter_watch_callback): notify all pending activations waiting for
7411           the same exec that the activation failed.
7412         (bus_activation_activate_service): shortcut the activation if we 
7413           already waiting for the same executable to start up.
7414
7415 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7416
7417         * bus/activation.c: 
7418         - Added service file reloading. 
7419           Each service files directory is kept in an hash table in 
7420           BusActivation and each BusActivationEntry knows what .service-file it
7421           was read from. So when you try to activate a service the bus will 
7422           check if it's been updated, removed or if new .service-files has 
7423           been installed.
7424         - Test code at the bottom for the service file reloading.
7425         * bus/test-main.c: (main):
7426         * bus/test.h:
7427         - added service reloading test.
7428         * dbus/dbus-sysdeps.c: 
7429         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7430
7431 2004-03-08  Michael Meeks  <michael@ximian.com>
7432
7433         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7434         bail immediately if disconnected, to avoid busy loop.
7435
7436         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7437         cleanup cut/paste/inefficiency.
7438
7439 2004-03-01  David Zeuthen  <david@fubar.dk>
7440
7441         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7442         bug where args were used twice. This bug resulted in a segfault
7443         on a Debian/PPC system when starting the messagebus daemon. Include
7444         dbus-sysdeps.h for DBUS_VA_COPY
7445
7446         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7447
7448         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7449         appropriate va_copy implementation. From GLib
7450         
7451 2004-02-24  Joe Shaw  <joe@ximian.com>
7452
7453         * bus/services.c (bus_registry_acquire_service): We need to pass
7454         in the service name to dbus_set_error() to prevent a crash.
7455
7456 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7457
7458         * AUTHORS: Reveal my True identity.
7459
7460 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7461
7462         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7463         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7464
7465 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7466
7467         * doc/TODO: Added not about better error check of configuration files.
7468
7469 2003-12-02  Richard Hult  <richard@imendio.com>
7470
7471         * Update AFL version to 2.0 throughout the source files to reflect
7472         the update that was done a while ago.
7473
7474 2003-12-02  Richard Hult  <richard@imendio.com>
7475
7476         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7477         wrote_dict_key to FALSE on the iter that the dict is appended to,
7478         just like when appending other types. Fixes a bug where a dict
7479         couldn't be put inside a dict.
7480         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7481         (message_iter_test, _dbus_message_test): Add test case for dict
7482         inside dict.
7483
7484 2003-12-01  David Zeuthen  <david@fubar.dk>
7485
7486         * python/dbus.py: Add the actual message when calling the reciever
7487         of a signal such that parameters can be inspected. Add the method
7488         remove_signal_receiver
7489         
7490 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7491
7492         * bus/*.[ch]:
7493         * dbus/*.[ch]:
7494         * glib/*.[ch]: Made ref functions return the pointer
7495
7496 2003-11-25  Zack Rusin  <zack@kde.org>
7497
7498         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7499
7500         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7501         wrappers,
7502
7503         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7504         the Integrator and to better fit with the server,
7505
7506 2003-11-24  Zack Rusin  <zack@kde.org>
7507
7508         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7509         the integrator handles it now
7510
7511         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7512         since QTimer wasn't really meant to be used the way DBusTimeout is
7513
7514 2003-11-24  Zack Rusin  <zack@kde.org>
7515
7516         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7517         Integrator class which integrates D-BUS with the Qt event loop,
7518
7519         * qt/connection.h, qt/connection.cpp: Move all the code which
7520         was dealing with D-BUS integration to the Integrator class,
7521         and start using Integrator,
7522
7523 2003-11-23  Zack Rusin  <zack@kde.org>
7524
7525         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7526         wrapper
7527
7528         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7529         switching namespaces to DBusQt, reworking the class,
7530
7531         * Makefile.cvs: switching dependencies so that it matches KDE 
7532         schematics,
7533         
7534         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7535         the library
7536
7537 2003-11-19  Havoc Pennington  <hp@redhat.com>
7538
7539         * NEWS: update
7540
7541         * configure.in: bump version to 0.20
7542
7543         * configure.in (have_qt): add yet another place to look for qt
7544         (someone hand trolltech a .pc file...)
7545
7546 2003-11-01  Havoc Pennington  <hp@redhat.com>
7547
7548         * doc/dbus-specification.xml: add state machine docs on the auth
7549         protocol; just a first draft, I'm sure it's wrong.      
7550
7551 2003-10-28  David Zeuthen  <david@fubar.dk>
7552
7553         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7554         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7555         
7556 2003-10-28  Havoc Pennington  <hp@redhat.com>
7557
7558         * dbus/dbus-message.c (get_next_field): delete unused function
7559
7560 2003-10-28  Havoc Pennington  <hp@redhat.com>
7561
7562         * bus/expirelist.c (do_expiration_with_current_time): detect
7563         failure of the expire_func due to OOM
7564
7565         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7566
7567         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7568         NoReply error that's now created by the bus when the service exits
7569
7570 2003-10-28  Havoc Pennington  <hp@redhat.com>
7571
7572         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7573         tests for set_path, set_interface, set_member, etc.
7574
7575         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7576
7577         * dbus/dbus-message.c (set_string_field): always just delete and
7578         re-append the field; accept NULL for deletion
7579         (re_align_fields_recurse): reimplement
7580         
7581 2003-10-26  Havoc Pennington  <hp@redhat.com>
7582
7583         * dbus/dbus-connection.c: fix docs to properly describe the
7584         disconnected message
7585         (_dbus_connection_notify_disconnected): remove this function; 
7586         we can't synchronously add the disconnected message, we have to 
7587         do it after we've queued any remaining real messages
7588         (_dbus_connection_get_dispatch_status_unlocked): queue the
7589         disconnect message only if the transport has finished queueing all
7590         its real messages and is disconnected.
7591         (dbus_connection_disconnect): update the dispatch status here
7592
7593 2003-10-22  Havoc Pennington  <hp@redhat.com>
7594
7595         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7596
7597         * bus/connection.c (bus_transaction_send_from_driver): set the
7598         destination to the connection's base service
7599
7600 2003-10-20  Havoc Pennington  <hp@redhat.com>
7601
7602         hmm, make check is currently not passing.
7603         
7604         * doc/dbus-specification.xml: add requirement that custom type
7605         names follow the same rules as interface names.
7606
7607         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7608         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7609         'map'
7610
7611         * doc/dbus-specification.xml: update type codes to match
7612         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7613         CUSTOM. Add type OBJECT_PATH to the spec.
7614
7615 2003-10-17  Havoc Pennington  <hp@redhat.com>
7616
7617         * bus/driver.c (create_unique_client_name): use "." as separator
7618         in base service names instead of '-'
7619
7620         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7621         byte at the end of the string
7622
7623         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7624         optimization macros since string validation seems to be a slow
7625         point.
7626         
7627         * doc/dbus-specification.xml: restrict valid
7628         service/interface/member/error names. Add test suite code for the
7629         name validation.
7630
7631         * dbus/dbus-string.c: limit service/interface/member/error names 
7632         to [0-9][A-Z][a-z]_
7633
7634         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7635         format arg to verbose spew
7636
7637         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7638         memory, return instead of g_error
7639
7640         * test/test-service.c (path_message_func): support emitting a
7641         signal on request
7642
7643         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7644         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7645         assuming the activation bus was the session bus so that services
7646         started manually will still register.
7647         (init_connections_unlocked): fix so that in OOM situation we get
7648         the same semantics when retrying the function
7649         
7650         * test/test-service.c (main): change to use path registration, to
7651         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7652         than DBUS_BUS_SESSION
7653
7654 2003-10-16  Havoc Pennington  <hp@redhat.com>
7655
7656         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7657
7658         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7659         coverage of the tests
7660         (coverage-report.txt): don't move the .da and .bbg files around
7661
7662 2003-10-16  Havoc Pennington  <hp@redhat.com>
7663
7664         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7665         to put there
7666
7667 2003-10-16  Havoc Pennington  <hp@redhat.com>
7668
7669         * bus/connection.c (bus_pending_reply_expired): either cancel or
7670         execute, not both
7671         (bus_connections_check_reply): use unlink, not remove_link, as we
7672         don't want to free the link; fixes double free mess
7673
7674         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7675         where no reply was received
7676
7677         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7678         fix a refcount leak
7679
7680         * bus/signals.c (match_rule_matches): add special cases for the
7681         bus driver, so you can match on sender/destination for it.
7682
7683         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7684         DBUS_PRINT_BACKTRACE is set
7685
7686         * dbus/dbus-internals.c: add pid to assertion failure messages
7687
7688         * dbus/dbus-connection.c: add message type code to the debug spew
7689
7690         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7691         sender=foo not service=foo
7692
7693         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7694         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7695         DBUS_ACTIVATION_ADDRESS instead
7696
7697         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7698         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7699
7700         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7701         context struct
7702
7703         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7704         (dbus_message_iter_get_object_path_array): new function (half
7705         finished, disabled for the moment)
7706         
7707         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7708         DBUS_MESSAGE_TYPE_ERROR
7709
7710         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7711         avoid redirecting stderr to /dev/null
7712         (babysit): close stdin if not doing the "exit_with_session" thing
7713
7714         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7715         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7716         stdout/stdin, so things don't get confused
7717         
7718         * bus/system.conf.in: fix to allow replies, I modified .conf
7719         instead of .conf.in again.
7720
7721 2003-10-14  David Zeuthen  <david@fubar.dk>
7722
7723         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7724         argtype to arg_type when raising unknown arg type exception.
7725         Changed type list to reflect the changes in dbus-protocol.h so 
7726         the bindings actually work.
7727
7728 2003-10-14  Havoc Pennington  <hp@redhat.com>
7729
7730         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7731         to have a bug keeping it from outputting the .da files sometimes
7732         (string_get_string): don't append garbage nul bytes to the string.
7733
7734 2003-10-15  Seth Nickell  <seth@gnome.org>
7735
7736         * python/Makefile.am:
7737
7738         Include dbus_h_wrapper.h in the dist tarball.
7739
7740 2003-10-14  Havoc Pennington  <hp@redhat.com>
7741
7742         * bus/bus.c (bus_context_check_security_policy): revamp this to
7743         work more sanely with new policy-based requested reply setup
7744
7745         * bus/connection.c (bus_transaction_send_from_driver): set bus
7746         driver messages as no reply
7747
7748         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7749         requested_reply attribute on allow/deny rules
7750
7751         * bus/system.conf: add <allow requested_reply="true"/>
7752
7753         * bus/driver.c (bus_driver_handle_message): fix check for replies
7754         sent to the bus driver, which was backward. How did this ever work
7755         at all though? I think I'm missing something.
7756
7757         * dbus/dbus-message.c (decode_header_data): require error and
7758         method return messages to have a reply serial field to be valid
7759         (_dbus_message_loader_queue_messages): break up this function;
7760         validate that reply serial and plain serial are nonzero; 
7761         clean up the OOM/error handling.
7762         (get_uint_field): don't return -1 from this
7763         (dbus_message_create_header): fix signed/unsigned bug
7764
7765         * bus/connection.c (bus_connections_expect_reply): save serial of
7766         the incoming message, not reply serial
7767
7768 2003-10-14  Havoc Pennington  <hp@redhat.com>
7769
7770         * bus/connection.c: implement pending reply tracking using
7771         BusExpireList
7772
7773         * bus/bus.c (bus_context_check_security_policy): verify that a
7774         reply is pending in order to allow a reply to be sent. Deny 
7775         messages of unknown type.
7776
7777         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7778
7779         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7780         (bus_context_get_reply_timeout): new
7781
7782 2003-10-13  Seth Nickell  <seth@gnome.org>
7783
7784         * python/Makefile.am:
7785
7786         Pass "make distcheck": remove a couple files from DIST_FILES
7787         that weren't included in the final version.
7788
7789 2003-10-12  Havoc Pennington  <hp@pobox.com>
7790
7791         Added test code that 1) starts an actual bus daemon and 2) uses
7792         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7793         more testing possible, but this is the basic framework.
7794         
7795         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7796         empty proxy lists from the proxy list hash
7797
7798         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7799         couple of return_if_fail checks
7800
7801         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7802         to allocate, so everything is cleared to NULL as it should be.
7803
7804         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7805         source as data to dbus_connection_set_timeout_functions() as the 
7806         timeout functions expected
7807
7808         * test/glib/run-test.sh: add a little script to start up a message
7809         bus and run tests using it
7810
7811         * tools/dbus-launch.1: updates
7812
7813         * tools/dbus-launch.c (main): add --config-file option
7814
7815         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7816         that could never be reached.
7817
7818         * dbus/dbus-message.c (dbus_message_new_method_return) 
7819         (dbus_message_new_error, dbus_message_new_signal): set the
7820         no-reply-expected flag on all these. Redundant, but may
7821         as well be consistent.
7822
7823 2003-10-11  Havoc Pennington  <hp@pobox.com>
7824
7825         * test/decode-gcov.c (function_solve_graph): make broken block
7826         graph a nonfatal error since it seems to be broken. Need to debug
7827         this.
7828
7829         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7830         can't just check type > INVALID < LAST anymore
7831
7832         * dbus/dbus-message.c (dbus_message_get_signature): new function
7833         (dbus_message_has_signature): new function
7834         (struct DBusMessage): add signature field (right now it isn't sent
7835         over the wire, just generated on the fly)
7836         (dbus_message_copy): copy the signature, and init strings to
7837         proper length to avoid some reallocs
7838         (dbus_message_iter_init_array_iterator): return void, since it
7839         can't fail
7840         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7841         (_dbus_message_loader_queue_messages): add silly temporary hack to
7842         fill in message->signature on load
7843
7844         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7845         characters, so they are relatively human-readable.
7846
7847 2003-10-11  Havoc Pennington  <hp@pobox.com>
7848
7849         * dbus/dbus-message.c (_dbus_message_test): add more test
7850         coverage, but #if 0 for now since they uncover a bug 
7851         not fixed yet; I think in re_align_field_recurse()
7852         (re_align_field_recurse): add FIXME about broken assertion
7853
7854         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7855
7856         * bus/connection.c: share a couple code bits with expirelist.c
7857
7858         * bus/expirelist.h, bus/expirelist.c: implement a generic
7859         expire-items-after-N-seconds facility, was going to share between
7860         expiring connections and replies, decided not to use for expiring
7861         connections for now.
7862
7863         * COPYING: include AFL 2.0 (still need to change all the file headers)
7864
7865 2003-10-09  Havoc Pennington  <hp@redhat.com>
7866
7867         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7868         gcc 3.3. Not that we do anything about it yet.
7869
7870         * bus/signals.c (bus_match_rule_parse): impose max length on the
7871         match rule text
7872
7873         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7874
7875 2003-10-09  Havoc Pennington  <hp@redhat.com>
7876
7877         Make matching rules theoretically work (add parser).
7878         
7879         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7880         the case where destination is explicitly specified as bus driver
7881         and someone else is eavesdropping.
7882         
7883         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7884         definition of eavesdropping and assertion
7885
7886         * tools/dbus-send.c (main): use dbus_message_type_from_string
7887
7888         * bus/signals.c (bus_match_rule_parse): implement
7889
7890         * dbus/dbus-message.c (dbus_message_type_from_string): new
7891
7892         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7893
7894 2003-10-02  Havoc Pennington  <hp@pobox.com>
7895
7896         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7897         dbus_gproxy_oneway_call
7898
7899         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7900         (dbus_server_setup_with_g_main): fix to allow calling them more
7901         than once on the same args
7902         (dbus_bus_get_with_g_main): new function
7903
7904 2003-10-02  Havoc Pennington  <hp@redhat.com>
7905
7906         * doc/dbus-tutorial.xml: write some stuff
7907
7908 2003-09-29  Havoc Pennington  <hp@pobox.com>
7909
7910         * configure.in: split checks for Doxygen from XML docs, check for
7911         xmlto
7912
7913         * doc/Makefile.am: XML-ify all the docs, and add a blank
7914         dbus-tutorial.xml
7915
7916 2003-09-29  Havoc Pennington  <hp@pobox.com>
7917
7918         * Merge dbus-object-names branch. To see the entire patch 
7919         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7920         it's huuuuge though.
7921         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7922         
7923 2003-09-28  Havoc Pennington  <hp@pobox.com>
7924
7925         * HACKING: update to reflect new server
7926
7927 2003-09-26  Seth Nickell  <seth@gnome.org>
7928
7929         * python/dbus.py:
7930         * python/examples/example-signals.py:
7931
7932         Start implementing some notions of signals. The API
7933         is really terrible, but they sort of work (with the
7934         exception of being able to filter by service, and to
7935         transmit signals *as* a particular service). Need to
7936         figure out how to make messages come from the service
7937         we registered :-(
7938         
7939         * python/dbus_bindings.pyx.in:
7940
7941         Removed duplicate message_handler callbacks.
7942         
7943 2003-09-25  Havoc Pennington  <hp@redhat.com>
7944
7945         * bus/session.conf.in: fix my mess
7946
7947 2003-09-25  Havoc Pennington  <hp@pobox.com>
7948
7949         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7950
7951 2003-09-25  Seth Nickell  <seth@gnome.org>
7952
7953         * python/examples/example-service.py:
7954
7955         Johan notices complete wrong code in example-service, but
7956         completely wrong in a way that works exactly the same (!).
7957         Johan is confused, how could this possibly work? Example
7958         code fails to serve purpose of making things clear.
7959         Seth fixes.
7960
7961 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7962
7963         * doc/dbus-specification.sgml: don't require header fields
7964         to be 4-byte aligned and specify that fields should be
7965         distinguished from padding by the fact that zero is not
7966         a valid field name.
7967         
7968         * doc/TODO: remove re-alignment item and add item to doc
7969         the OBJECT_PATH type.
7970         
7971         * dbus/dbus-message.c:
7972         (HeaderField): rename the original member to value_offset
7973         and introduce a name_offset member to keep track of where
7974         the field actually begins.
7975         (adjust_field_offsets): remove.
7976         (append_int_field), (append_uint_field),
7977         (append_string_field): don't align the start of the header
7978         field to a 4-byte boundary.
7979         (get_next_field): impl finding the next marhsalled field
7980         after a given field.
7981         (re_align_field_recurse): impl re-aligning a number of
7982         already marshalled fields.
7983         (delete_field): impl deleting a field of any type and
7984         re-aligning any following fields.
7985         (delete_int_or_uint_field), (delete_string_field): remove.
7986         (set_int_field), (set_uint_field): no need to re-check
7987         that we have the correct type for the field.
7988         (set_string_field): ditto and impl re-aligning any
7989         following fields.
7990         (decode_header_data): update to take into account that
7991         the fields aren't 4-byte aligned any more and the new
7992         way to distinguish padding from header fields. Also,
7993         don't exit when there is too much header padding.
7994         (process_test_subdir): print the directory.
7995         (_dbus_message_test): add test to make sure a following
7996         field is re-aligned correctly after field deletion.
7997         
7998         * dbus/dbus-string.[ch]:
7999         (_dbus_string_insert_bytes): rename from insert_byte and
8000         allow the insert of multiple bytes.
8001         (_dbus_string_test): test inserting multiple bytes.
8002
8003         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8004         warning note to docs about having to re-align any
8005         marshalled values following the string.
8006         
8007         * dbus/dbus-message-builder.c:
8008         (append_string_field), (_dbus_message_data_load):
8009         don't align the header field.
8010         
8011         * dbus/dbus-auth.c: (process_test_subdir): print the
8012         directory.
8013         
8014         * test/break-loader.c: (randomly_add_one_byte): upd. for
8015         insert_byte change.
8016         
8017         * test/data/invalid-messages/bad-header-field-alignment.message:
8018         new test case.
8019         
8020         * test/data/valid-messages/unknown-header-field.message: shove
8021         a dict in the unknown field.
8022
8023 2003-09-25  Seth Nickell  <seth@gnome.org>
8024
8025         * python/dbus.py:
8026         * python/dbus_bindings.pyx.in:
8027
8028         Handle return values.
8029         
8030         * python/examples/example-client.py:
8031         * python/examples/example-service.py:
8032
8033         Pass back return values from the service to the client.
8034         
8035 2003-09-24  Seth Nickell  <seth@gnome.org>
8036
8037         * python/dbus.py:
8038
8039         Connect Object methods (when you are sharing an object) up... pass
8040         in a list of methods to be shared. Sharing all the methods just
8041         worked out too weird. You can now create nice Services over the
8042         DBus in Python. :-)
8043         
8044         * python/dbus_bindings.pyx.in:
8045
8046         Keep references to user_data tuples passed into C functions so 
8047         Python doesn't garbage collect on us.
8048
8049         Implement MethodReturn and Error subclasses of Message for creating
8050         DBusMessage's of those types.
8051         
8052         * python/examples/example-client.py:
8053         * python/examples/example-service.py:
8054
8055         Simple example code showing both how create DBus services and objects,
8056         and how to use them.
8057
8058 2003-09-23  Havoc Pennington  <hp@pobox.com>
8059
8060         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8061
8062 2003-09-23  Havoc Pennington  <hp@redhat.com>
8063
8064         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8065         (dbus_gproxy_disconnect_signal): implement
8066         (dbus_gproxy_manager_remove_signal_match): implement
8067         (dbus_gproxy_manager_add_signal_match): implement
8068         (dbus_gproxy_oneway_call): implement
8069
8070 2003-09-23  Havoc Pennington  <hp@pobox.com>
8071
8072         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8073         subclass. This means dropping the transparent thread safety of the
8074         proxy; you now need a separate proxy per-thread, or your own
8075         locking on the proxy. Probably right anyway.
8076         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8077
8078 2003-09-22  Havoc Pennington  <hp@redhat.com>
8079
8080         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8081
8082 2003-09-21  Seth Nickell  <seth@gnome.org>
8083
8084         First checkin of the Python bindings.
8085         
8086         * python/.cvsignore:
8087         * python/Makefile.am:
8088         * python/dbus_bindings.pyx.in:
8089         * python/dbus_h_wrapper.h:
8090
8091         Pieces for Pyrex to operate on, building a dbus_bindings.so
8092         python module for low-level access to the DBus APIs.
8093         
8094         * python/dbus.py:
8095
8096         High-level Python module for accessing DBus objects.
8097
8098         * configure.in:
8099         * Makefile.am:
8100
8101         Build stuff for the python bindings.
8102
8103         * acinclude.m4:
8104
8105         Extra macro needed for finding the Python C header files.
8106
8107 2003-09-21  Havoc Pennington  <hp@pobox.com>
8108
8109         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8110         implementing the proxy manager, didn't get very far.
8111
8112         * dbus/dbus-bus.c (dbus_bus_add_match): new
8113         (dbus_bus_remove_match): new
8114
8115         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8116         path_name argument; adjust the other not-yet-implemented 
8117         gproxy constructors to be what I think they should be.
8118
8119 2003-09-21  Havoc Pennington  <hp@pobox.com>
8120
8121         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8122         by default for message bus connections.
8123
8124         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8125         exit_on_disconnect flag is set and we process the disconnected
8126         signal.
8127         (dbus_connection_set_exit_on_disconnect): new function
8128
8129 2003-09-21  Havoc Pennington  <hp@pobox.com>
8130
8131         Get matching rules mostly working in the bus; only actually
8132         parsing the rule text remains. However, the client side of
8133         "signal connections" hasn't been started, this patch is only the
8134         bus side.
8135         
8136         * dbus/dispatch.c: fix for the matching rules changes
8137         
8138         * bus/driver.c (bus_driver_handle_remove_match)
8139         (bus_driver_handle_add_match): send an ack reply from these
8140         method calls
8141
8142         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8143         arguments, reported by Seth Nickell
8144
8145         * bus/config-parser.c (append_rule_from_element): support
8146         eavesdrop=true|false attribute on policies so match rules 
8147         can be prevented from snooping on the system bus.
8148
8149         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8150         and "destination" in attribute names; fix some docs bugs; 
8151         add eavesdrop=true|false attribute
8152
8153         * bus/driver.c (bus_driver_handle_add_match)
8154         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8155         messages
8156
8157         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8158         rid of broadcast service concept, signals are just always broadcast
8159
8160         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8161         mostly implement matching rules stuff (currently only exposed as signal
8162         connections)
8163
8164 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8165
8166         * doc/dbus-specification.sgml: Change the header field name
8167         to be an enum and update the rest of the spec to reference
8168         the fields using the conventinal name.
8169
8170         * dbus/dbus-protocol.h: update to reflect the spec.
8171
8172         * doc/TODO: add item to remove the 4 byte alignment requirement.
8173         
8174         * dbus/dbus-message.c: Remove the code to generalise the
8175         header/body length and serial number header fields as named
8176         header fields so we can reference field names using the 
8177         protocol values.
8178         (append_int_field), (append_uint_field), (append_string_field):
8179         Append the field name as a byte rather than four chars.
8180         (delete_int_or_uint_field), (delete_string_field): reflect the
8181         fact that the field name and typecode now occupy 4 bytes instead
8182         of 8.
8183         (decode_string_field), (decode_header_data): update to reflect
8184         protocol changes and move the field specific encoding from
8185         decode_string_field() back into decode_header_data().
8186         
8187         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8188         Add utility to aid debugging.
8189         
8190         * dbus/dbus-message-builder.c:
8191         (append_string_field), (_dbus_message_data_load): Update to
8192         reflect protocol changes; Change the FIELD_NAME directive
8193         to HEADER_FIELD and allow it to take the field's conventional
8194         name rather than the actual value.
8195         
8196         * test/data/*/*.message: Update to use HEADER_FIELD instead
8197         of FIELD_NAME; Always align the header on an 8 byte boundary
8198         *before* updating the header length.
8199
8200 2003-09-15  Havoc Pennington  <hp@pobox.com>
8201
8202         * dbus/dbus-pending-call.c: add the get/set object data
8203         boilerplate as for DBusConnection, etc. Use generic object data
8204         for the notify callback.
8205
8206         * glib/dbus-gparser.c (parse_node): parse child nodes
8207
8208         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8209         
8210         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8211         contain functions shared between the convenience lib and the
8212         installed lib
8213
8214         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8215         -export-symbols-regex to the GLib library
8216
8217         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8218         fix the locking in here, and add a default handler for
8219         Introspect() that just returns sub-nodes.
8220
8221 2003-09-14  Havoc Pennington  <hp@pobox.com>
8222
8223         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8224         rather than gfoo consistent
8225
8226         * glib/dbus-gproxy.h: delete for now, move contents to
8227         dbus-glib.h, because the include files don't work right since we
8228         aren't in the dbus/ subdir.
8229         
8230         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8231         (dbus_gproxy_end_call): finish
8232         (dbus_gproxy_begin_call): finish
8233
8234         * glib/dbus-gmain.c (dbus_set_g_error): new
8235
8236         * glib/dbus-gobject.c (handle_introspect): include information
8237         about child nodes in the introspection
8238
8239         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8240         function to help in implementation of introspection
8241
8242         * dbus/dbus-object-tree.c
8243         (_dbus_object_tree_list_registered_and_unlock): new function
8244
8245 2003-09-12  Havoc Pennington  <hp@pobox.com>
8246
8247         * glib/dbus-gidl.h: add common base class for all the foo_info
8248         types
8249
8250         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8251         similar to kdcop
8252
8253         * test/Makefile.am: try test srcdir -ef . in addition to test
8254         srcdir = ., one of them should work (yeah lame)
8255         
8256         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8257         library
8258         
8259         * glib/dbus-gparser.h: make description_load routines return
8260         NodeInfo* not Parser*
8261
8262         * Makefile.am (SUBDIRS): build test dir after all library dirs
8263
8264         * configure.in: add GTK+ detection
8265
8266 2003-09-07  Havoc Pennington  <hp@pobox.com>
8267
8268         * Make Doxygen contented.
8269
8270 2003-09-07  Havoc Pennington  <hp@pobox.com>
8271
8272         * doc/dbus-specification.sgml: more updates
8273
8274 2003-09-06  Havoc Pennington  <hp@pobox.com>
8275
8276         * doc/dbus-specification.sgml: partial updates
8277
8278         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8279         zillionth time; hopefully I edited the right file this time.
8280
8281         * bus/config-parser.c (append_rule_from_element): support
8282         send_type, send_path, receive_type, receive_path
8283
8284         * bus/policy.c: add message type and path to the list of things
8285         that can be "firewalled"
8286
8287 2003-09-06  Havoc Pennington  <hp@pobox.com>
8288
8289         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8290         (dbus_connection_register_object_path): make this not handle
8291         messages to paths below the given path
8292
8293 2003-09-03  Havoc Pennington  <hp@pobox.com>
8294
8295         * test/glib/Makefile.am: add this with random glib-linked test
8296         programs
8297
8298         * glib/Makefile.am: remove the random test programs from here,
8299         leave only the unit tests
8300
8301         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8302         uscore/javacaps conversion, and fix     
8303         (get_object_property, set_object_property): change to .NET
8304         convention for mapping props to methods, set_FooBar/get_FooBar, 
8305         since one language has such a convention we may as well copy it. 
8306         Plus real methods in either getFooBar or get_foo_bar style won't 
8307         collide with this convention.
8308
8309 2003-09-01  Havoc Pennington  <hp@pobox.com>
8310
8311         * glib/dbus-gparser.c: implement
8312
8313         * glib/dbus-gobject.c: start implementing skeletons support
8314
8315         * configure.in: when disabling checks/assert, also define
8316         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8317
8318 2003-09-01  Havoc Pennington  <hp@pobox.com>
8319
8320         * glib/Makefile.am: rearrange a bunch of files and get "make
8321         check" framework set up
8322
8323 2003-08-31  Havoc Pennington  <hp@pobox.com>
8324
8325         * fix build with --disable-tests
8326
8327 2003-08-30  Havoc Pennington  <hp@pobox.com>
8328
8329         * dbus/dbus-connection.c: purge DBusMessageHandler
8330
8331         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8332         use callbacks everywhere
8333
8334 2003-08-30  Havoc Pennington  <hp@pobox.com>
8335
8336         * test/data/valid-config-files/system.d/test.conf: change to 
8337         root for the user so warnings don't get printed
8338
8339         * dbus/dbus-message.c: add dbus_message_get_path,
8340         dbus_message_set_path
8341         
8342         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8343         dispatching to a path
8344
8345         * dbus/dbus-string.c (_dbus_string_validate_path): add
8346
8347         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8348         (_dbus_marshal_object_path): implement
8349
8350         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8351         to contain the path to the target object
8352         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8353         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8354
8355 2003-08-30  Havoc Pennington  <hp@pobox.com>
8356
8357         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8358
8359 2003-08-29  Havoc Pennington  <hp@pobox.com>
8360
8361         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8362         registered
8363         (struct DBusObjectSubtree): shrink this
8364         a lot, since we may have a lot of them
8365         (_dbus_object_tree_free_all_unlocked): implement
8366         (_dbus_object_tree_dispatch_and_unlock): implement
8367
8368 2003-08-29  Havoc Pennington  <hp@pobox.com>
8369
8370         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8371
8372 2003-08-28  Havoc Pennington  <hp@pobox.com>
8373
8374         purge DBusObjectID
8375         
8376         * dbus/dbus-connection.c: port to no ObjectID, create a
8377         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8378
8379         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8380         everything except UnregisterFunction and MessageFunction
8381         
8382         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8383         add DBUS_TYPE_OBJECT_PATH
8384         
8385         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8386         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8387         path-based object IDs
8388
8389 2003-08-25  Havoc Pennington  <hp@pobox.com>
8390
8391         Just noticed that dbus_message_test is hosed, I wonder when I
8392         broke that. I thought make check was passing earlier...
8393         
8394         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8395         container tree, will replace most of dbus-object-registry
8396
8397         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8398         screwup
8399
8400 2003-08-19  Havoc Pennington  <hp@pobox.com>
8401
8402         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8403         (dbus_message_is_error): fix this function
8404
8405         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8406         match
8407
8408         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8409         reflect clarified man page
8410         (bus_client_policy_check_can_send): ditto
8411         
8412         * bus/session.conf.in: fixup
8413
8414         * bus/system.conf.in: fixup
8415
8416 2003-08-18  Havoc Pennington  <hp@redhat.com>
8417
8418         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8419
8420         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8421         dumb bug created earlier (wrong order of args to
8422         decode_header_data())
8423         
8424         * tools/dbus-send.c: port
8425
8426         * tools/dbus-print-message.c (print_message): port
8427
8428         * test/data/*messages: port all messages over
8429         
8430         * dbus/dbus-message-builder.c: support including 
8431         message type
8432         
8433         * bus/driver.c: port over
8434         
8435         * bus/dispatch.c: port over to new stuff
8436
8437         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8438         rename disconnect signal to "Disconnected"
8439
8440 2003-08-17  Havoc Pennington  <hp@pobox.com>
8441
8442         This doesn't compile yet, but syncing up so I can hack on it from
8443         work. What are branches for if not broken code? ;-)
8444         
8445         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8446         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8447         DBUS_HEADER_FIELD_ERROR_NAME
8448         
8449         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8450         for the interface+member pairs
8451         (string_hash): change to use g_str_hash algorithm
8452         (find_direct_function, find_string_function): refactor these to
8453         share most code.
8454         
8455         * dbus/dbus-message.c: port all of this over to support 
8456         interface/member fields instead of name field
8457
8458         * dbus/dbus-object-registry.c: port over
8459         
8460         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8461         from _dbus_string_validate_name
8462
8463         * bus/dbus-daemon-1.1: change file format for the 
8464         <deny>/<allow> stuff to match new message naming scheme
8465
8466         * bus/policy.c: port over
8467
8468         * bus/config-parser.c: parse new format
8469         
8470 2003-08-16  Havoc Pennington  <hp@pobox.com>
8471
8472         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8473         broken assertion
8474
8475         * glib/dbus-gproxy.c: some hacking
8476
8477 2003-08-15  Havoc Pennington  <hp@redhat.com>
8478
8479         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8480
8481         * dbus/dbus-connection.c
8482         (dbus_connection_send_with_reply_and_block): factor out internals;
8483         change to convert any error replies to DBusError instead of 
8484         returning them as a message
8485
8486 2003-08-15  Havoc Pennington  <hp@pobox.com>
8487
8488         * dbus/dbus-connection.c, 
8489         dbus/dbus-pending-call.c: Finish the pending call stuff
8490
8491 2003-08-14  Havoc Pennington  <hp@redhat.com>
8492
8493         * dbus/dbus-pending-call.c: start on new object that will replace
8494         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8495         replies
8496
8497         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8498         with remote interfaces
8499
8500         * dbus/dbus-gidl.c: do the boring boilerplate in here
8501         
8502 2003-08-12  Havoc Pennington  <hp@pobox.com>
8503
8504         * bus/dispatch.c (bus_dispatch): make this return proper 
8505         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8506
8507         * dbus/dbus-errors.c (dbus_set_error): use
8508         _dbus_string_append_printf_valist
8509
8510         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8511         (_dbus_string_append_printf): new
8512
8513         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8514         UNKNOWN_METHOD
8515
8516         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8517         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8518         message is unhandled.
8519
8520 2003-08-11  Havoc Pennington  <hp@pobox.com>
8521
8522         * bus/test.c (client_disconnect_handler): change to return
8523         HANDLED (would have been REMOVE_MESSAGE)
8524
8525         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8526         HANDLED/NOT_YET_HANDLED instead of
8527         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8528         should be used.
8529
8530 2003-08-10  Havoc Pennington  <hp@pobox.com>
8531
8532         * tools/dbus-send.c (main): add --type argument, for now
8533         supporting only method_call and signal types.
8534
8535         * tools/dbus-print-message.c: print message type
8536
8537         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8538         init connection->objects
8539
8540         * doc/dbus-specification.sgml: fix sgml
8541
8542         * bus/*.c: port over to object-instance API changes
8543
8544         * test/test-service.c: ditto
8545         
8546         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8547         name, we will have to fix up the rest of the code to also handle
8548         this
8549         (dbus_message_new): generic message-creation call
8550         (set_string_field): allow appending name field
8551
8552 2003-08-06  Havoc Pennington  <hp@pobox.com>
8553
8554         * dbus/dbus-object-registry.c: implement signal connection 
8555         and dispatch
8556
8557         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8558
8559         * dbus/dbus-internals.c (_dbus_memdup): new function
8560
8561 2003-08-02  Havoc Pennington  <hp@pobox.com>
8562
8563         * dbus/dbus-message.c (dbus_message_get_no_reply)
8564         (dbus_message_set_no_reply): add these and remove
8565         set_is_error/get_is_error
8566
8567         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8568         remove the ERROR flag, since there's now an ERROR type
8569
8570 2003-08-01  Havoc Pennington  <hp@pobox.com>
8571
8572         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8573         implement
8574
8575         * dbus/dbus-message.c (dbus_message_get_type): new function
8576
8577         * doc/dbus-specification.sgml: add "type" byte to messages
8578
8579 2003-08-01  Havoc Pennington  <hp@pobox.com>
8580
8581         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8582         a message type enum to distinguish kinds of message
8583         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8584         that need not be replied to
8585
8586 2003-08-01  Havoc Pennington  <hp@pobox.com>
8587
8588         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8589         (unpack_8_octets): fix no-64-bit-int bug
8590
8591         * dbus/dbus-object-registry.c (validate_id): validate the 
8592         connection ID bits, not just the instance ID.
8593
8594         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8595         the connection-global 33 bits of the object ID
8596
8597         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8598         object ID in the new way
8599
8600         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8601         define server/client/instance bits.
8602
8603 2003-07-30  Havoc Pennington  <hp@pobox.com>
8604
8605         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8606         build
8607
8608 2003-07-13  Havoc Pennington  <hp@pobox.com>
8609
8610         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8611         fields to DBusObjectVTable and DBusObjectInfo
8612
8613 2003-07-12  Havoc Pennington  <hp@pobox.com>
8614
8615         * dbus/dbus-object-registry.c: implement unit test,
8616         fix bugs discovered in process
8617
8618         * dbus/dbus-connection.c: remove handler_table and
8619         register_handler(), add DBusObjectRegistry usage
8620
8621         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8622         (dbus_object_id_set_null): new functions
8623
8624 2003-07-08  Havoc Pennington  <hp@pobox.com>
8625
8626         * dbus/dbus-object.c: implement some of this
8627
8628         * dbus/dbus-object-registry.c
8629         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8630         param
8631         (_dbus_object_registry_new): handle OOM
8632
8633 2003-07-08  Havoc Pennington  <hp@pobox.com>
8634
8635         * dbus/dbus-object.h: sketch out an API for registering objects
8636         with a connection, that allows us to use as little as 24 bytes
8637         per object and lets application code represent an object in 
8638         any conceivable way.
8639
8640         * dbus/dbus-object-registry.c: implement the hard bits of the
8641         DBusConnection aspect of object API. Not yet wired up.
8642         
8643 2003-07-06  Havoc Pennington  <hp@pobox.com>
8644
8645         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8646         (_dbus_marshal_object_id): new
8647         (_dbus_demarshal_object_id): new
8648         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8649         consolidate identical switch cases. Don't conditionalize handling
8650         of DBUS_TYPE_UINT64, need to handle the type always.
8651         (_dbus_marshal_validate_arg): consolidate identical cases, and
8652         handle DBUS_TYPE_OBJECT_ID
8653
8654         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8655
8656         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8657
8658 2003-09-28  Havoc Pennington  <hp@pobox.com>
8659
8660         * real 0.13 release
8661
8662 2003-09-28  Havoc Pennington  <hp@pobox.com>
8663
8664         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8665         to work with Debian db2html
8666
8667 2003-09-28  Havoc Pennington  <hp@pobox.com>
8668
8669         * configure.in: 0.13
8670
8671         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8672         stylesheet-images for benefit of Debian
8673         
8674         Change back to using filesystem-linked sockets for the system
8675         bus, so only root can create the default system bus address.
8676         
8677         * bus/system.conf.in: change to use
8678         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8679
8680         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8681         from here.
8682
8683         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8684         here, and AC_DEFINE DBUS_SYSTEM_PATH
8685
8686 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8687
8688         * doc/TODO:
8689         * doc/busconfig.dtd:
8690         Add busconfig DTD.
8691         
8692 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8693
8694         * doc/dbus-specification.sgml:
8695         Add activation reply values.
8696         
8697 2003-08-05  Havoc Pennington  <hp@redhat.com>
8698
8699         * configure.in: 0.12
8700
8701 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8702
8703         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8704         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8705         (add_watch), (remove_watch), (create_source):
8706         Refcount fds, fixes some reentrancy issues.
8707         
8708 2003-07-30  Havoc Pennington  <hp@redhat.com>
8709
8710         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8711         bus address to be abstract if we have abstract sockets
8712
8713         * NEWS: update
8714
8715 2003-07-28  Havoc Pennington  <hp@redhat.com>
8716
8717         * bus/messagebus.in: fix to avoid processname/servicename 
8718         confusion, from Michael Kearey
8719         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8720         
8721 2003-07-23  Havoc Pennington  <hp@pobox.com>
8722
8723         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8724         fix from Andy Hanton to remove broken "+1"
8725
8726 2003-07-16  Havoc Pennington  <hp@pobox.com>
8727
8728         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8729         babysitter process, as suggested by Thomas Leonard, so 
8730         an "eval `dbus-launch --exit-with-session`" will actually 
8731         return
8732
8733 2003-07-16  Havoc Pennington  <hp@pobox.com>
8734
8735         * configure.in: print out EXPANDED_* variables in the summary at
8736         the end; clean up the code that computes EXPANDED_ variables and
8737         get the ones using exec_prefix right. Should make things work
8738         when you build without --prefix
8739
8740 2003-06-29  Havoc Pennington  <hp@pobox.com>
8741
8742         * mono/Test.cs (class Test): fire up a main loop and run it
8743
8744         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8745         done once, the app has to do it
8746
8747 2003-06-26  Havoc Pennington  <hp@pobox.com>
8748
8749         * mono/Connection.cs: set up connection with the glib main loop
8750
8751 2003-07-01  Havoc Pennington  <hp@redhat.com>
8752
8753         * doc/dbus-specification.sgml: clarify the format of a type code,
8754         change suggested by Jim Blandy
8755
8756 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8757
8758         * doc/Makefile.am:
8759         * tools/Makefile.am: Don't assume srcdir == builddir.
8760
8761         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8762         the allocated block.
8763         (_dbus_memory_test): New function.
8764         * dbus/dbus-test.h: Add _dbus_memory_test ().
8765         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8766
8767         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8768         of %c%c%c%c.
8769         (dbus_message_new): Remove obsolete @todo.
8770
8771         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8772         (_dbus_marshal_set_uint64): Fix comment.
8773
8774         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8775         hardcode FIELD_REPLY_SERIAL.
8776
8777         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8778         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8779
8780         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8781         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8782
8783 2003-06-24  Havoc Pennington  <hp@pobox.com>
8784
8785         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8786
8787 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8788
8789         * configure.in:
8790         * gcj/.cvsignore:
8791         * gcj/Hello.java:
8792         * gcj/Makefile.am:
8793         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8794         * gcj/org/.cvsignore:
8795         * gcj/org/Makefile.am:
8796         * gcj/org/freedesktop/.cvsignore:
8797         * gcj/org/freedesktop/Makefile.am:
8798         * gcj/org/freedesktop/dbus/.cvsignore:
8799         * gcj/org/freedesktop/dbus/Makefile.am:
8800         * gcj/org/freedesktop/dbus/Message.java: (Message),
8801         (Message.Message):
8802         * gcj/org/freedesktop/dbus/natMessage.cc:
8803         Fix the build system.
8804
8805 2003-06-22  Havoc Pennington  <hp@pobox.com>
8806
8807         * mono/Connection.cs: add more bindings
8808
8809         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8810         more than once.
8811
8812 2003-06-22  Havoc Pennington  <hp@pobox.com>
8813
8814         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8815         Start wrapping more stuff.
8816
8817 2003-06-22  Havoc Pennington  <hp@pobox.com>
8818
8819         * mono/Message.cs: implement Message.Wrap() that ensures we only
8820         have a single C# wrapper per DBusMessage, assuming it works which
8821         it probably doesn't.
8822
8823         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8824         (dbus_message_free_data_slot): new
8825         (dbus_message_set_data): new
8826         (dbus_message_get_data): new
8827
8828 2003-06-22  Havoc Pennington  <hp@pobox.com>
8829
8830         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8831         (_dbus_data_slot_allocator_alloc): rework these to keep a
8832         reference count on each slot and automatically manage a global
8833         slot ID variable passed in by address
8834
8835         * bus/bus.c: convert to new dataslot API
8836
8837         * dbus/dbus-bus.c: convert to new dataslot API
8838
8839         * dbus/dbus-connection.c: convert to new dataslot API
8840
8841         * dbus/dbus-server.c: convert to new dataslot API
8842
8843         * glib/dbus-gmain.c: ditto
8844
8845         * bus/test.c: ditto
8846
8847         * bus/connection.c: ditto
8848
8849 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8850
8851         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8852         after the gcj checks so that the correct configuration tags
8853         will be added to libtool.
8854
8855         * dbus-glib-1.pc.in: No need to specify any includes since
8856         dbus-1.pc.in has those.
8857
8858 2003-06-22  Havoc Pennington  <hp@pobox.com>
8859
8860         * mono/*, gcj/*, configure.in, Makefile.am:
8861         Check in makefiles and subdirs for mono and gcj bindings.
8862         Neither binding actually exists, just trying to get through
8863         all the build and other boring bits.
8864
8865 2003-06-21  Philip Blundell  <philb@gnu.org>
8866
8867         * tools/dbus-monitor.1: Updated.
8868
8869         * tools/dbus-send.1: Likewise.
8870
8871 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8872
8873         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8874         for hangup and error after checking read so we won't discard
8875         pending data if both hangup and read are set.
8876
8877 2003-06-19  Philip Blundell  <philb@gnu.org>
8878
8879         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8880
8881         * tools/dbus-send.c: Accept both --system and --session.
8882
8883         * tools/dbus-monitor.c: Same here.
8884
8885 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8886
8887         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8888         from C++ (Patch by Miloslav Trmac).
8889
8890 2003-06-15  Joe Shaw  <joe@assbarn.com>
8891
8892         * configure.in: Check for socklen_t.
8893
8894         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8895
8896         * test/test-segfault.c: Add #include <sys/time.h>
8897
8898         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8899         dbus-launch needs it.
8900
8901 2003-06-09  Havoc Pennington  <hp@redhat.com>
8902
8903         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8904         SUN_LEN, it breaks abstract socket usage
8905
8906         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8907         starts of lines.
8908
8909 2003-06-04  Havoc Pennington  <hp@pobox.com>
8910
8911         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8912         using unix:abstract=/foo, and when listening in a tmpdir
8913         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8914
8915         * dbus/dbus-transport.c (_dbus_transport_open): support
8916         unix:abstract=/foo
8917
8918         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8919         support abstract sockets
8920
8921         * dbus/dbus-transport-unix.c
8922         (_dbus_transport_new_for_domain_socket): support abstract sockets
8923
8924         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8925         toggle as an argument, implement abstract namespace support
8926         (_dbus_listen_unix_socket): ditto
8927
8928         * configure.in: add --enable-abstract-sockets and implement
8929         a configure check for autodetection of the right value.
8930
8931 2003-06-01  Havoc Pennington  <hp@pobox.com>
8932
8933         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8934         in /tmp (though on Linux this will end up being useless,
8935         when we add abstract namespace support)
8936
8937         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8938         subst'ing it
8939
8940 2003-05-28  Colin Walters  <walters@verbum.org>
8941
8942         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8943
8944 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8945
8946         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8947
8948 2003-05-17  Colin Walters  <walters@gnu.org>
8949
8950         * tools/dbus-send.c: Don't exit with an error code if --help was
8951         passed.  Default to using the session bus instead of the system
8952         one.
8953
8954         * tools/dbus-launch.c: Ditto.
8955
8956         * tools/dbus-monitor.c: Ditto.
8957
8958         * tools/dbus-send.1: Update with new arguments.
8959
8960         * tools/dbus-launch.c: Emit code to export variables.  New
8961         arguments -s and -c to specify shell syntax, and a bit of code to
8962         autodetect syntax.  Also, allow specifying a program to run.
8963
8964         * tools/dbus-launch.1: Update with new arguments.
8965
8966         * tools/dbus-send.1: Ditto.
8967
8968         * tools/dbus-monitor.1: Ditto.
8969
8970 2003-05-17  Havoc Pennington  <hp@pobox.com>
8971
8972         * bus/config-parser.c (merge_included): merge in policies from
8973         child configuration file.
8974
8975         * bus/policy.c (bus_policy_merge): function to merge two policies
8976         together
8977
8978 2003-05-16  Havoc Pennington  <hp@redhat.com>
8979
8980         * dbus/dbus-connection.c: disable verbose lock spew
8981
8982         * tools/dbus-send.c: add --print-reply command line option
8983
8984         * tools/dbus-print-message.h (print_message): new util function
8985         shared by dbus-send and dbus-monitor
8986
8987         * tools/dbus-monitor.c (handler_func): exit on disconnect
8988
8989         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8990         disconnected, don't try to use the read_watch
8991
8992         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8993         so we can find this bug more easily
8994
8995 2003-05-16  Havoc Pennington  <hp@redhat.com>
8996
8997         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8998         NULL as DBusHashTable is annoyingly likely to do.
8999
9000 2003-05-16  Colin Walters  <walters@verbum.org>
9001
9002         * tools/dbus-monitor.c: Add --session argument and usage()
9003         function.
9004
9005         * tools/dbus-monitor.1: Update with new --session arg.
9006
9007         * bus/Makefile.am (install-data-hook): Create
9008         $(libdir)/dbus-1.0/services so that the session bus is happy.
9009
9010 2003-05-15  Havoc Pennington  <hp@redhat.com>
9011
9012         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9013         on non-x86. ifdef's are evil.
9014
9015 2003-05-15  Havoc Pennington  <hp@redhat.com>
9016
9017         * configure.in: 0.11
9018
9019         * NEWS: update
9020
9021         * bus/Makefile.am (initddir): apparently we are supposed to put
9022         init scripts in /etc/rc.d/init.d not /etc/init.d
9023
9024         * bus/Makefile.am: remove the "you must --enable-tests to make
9025         check" as it broke distcheck
9026
9027         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9028
9029 2003-05-13  James Willcox  <jwillcox@gnome.org>
9030
9031         * configure.in:
9032         * bus/activation.c: (bus_activation_service_created),
9033         (bus_activation_activate_service):
9034         * bus/driver.c: (bus_driver_send_service_deleted),
9035         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9036         (bus_driver_send_service_acquired),
9037         (bus_driver_send_welcome_message),
9038         (bus_driver_handle_list_services):
9039         * bus/session.conf.in:
9040         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9041         (dbus_bus_service_exists), (dbus_bus_activate_service):
9042         * dbus/dbus-bus.h:
9043
9044         Add some convenience API which lets you activate a service, and did a
9045         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9046         and dbus_message_get_args()
9047
9048 2003-05-11  Havoc Pennington  <hp@pobox.com>
9049
9050         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9051         calling _dbus_marshal_validate_arg() for every byte in a byte
9052         array, etc.
9053
9054         * dbus/dbus-message-handler.c: use atomic reference counting to
9055         reduce number of locks slightly; the global lock in here sucks
9056
9057         * dbus/dbus-connection.c
9058         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9059         update_dispatch_status that can be called with lock held; then use
9060         in a couple places to reduce locking/unlocking
9061         (dbus_connection_send): hold the lock over the whole function
9062         instead of acquiring it twice.
9063
9064         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9065
9066         * bus/connection.c (bus_connections_setup_connection): fix access
9067         to already-freed memory.
9068
9069         * dbus/dbus-connection.c: keep a little cache of linked list
9070         nodes, to avoid using the global linked list alloc lock in the
9071         normal send-message case. Instead we just use the connection lock
9072         that we already have to take.
9073
9074         * dbus/dbus-list.c (_dbus_list_find_last): new function
9075
9076         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9077         change to use a struct for the atomic type; fix docs,
9078         they return value before increment, not after increment.
9079
9080         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9081         (_dbus_string_append_8_aligned): new functions to try to
9082         microoptimize this operation.
9083         (reallocate_for_length): break this out of set_length(), to
9084         improve profile info, and also so we can consider inlining the
9085         set_length() part.
9086
9087         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9088         strings with some preallocation, cuts down on our calls to realloc
9089         a fair bit. Though if we can get the "move entire string to empty
9090         string" optimization below to kick in here, it would be better.
9091
9092         * dbus/dbus-string.c (_dbus_string_move): just call
9093         _dbus_string_move_len
9094         (_dbus_string_move_len): add a special case for moving
9095         an entire string into an empty string; we can just
9096         swap the string data instead of doing any reallocs.
9097         (_dbus_string_init_preallocated): new function
9098
9099 2003-05-11  Havoc Pennington  <hp@pobox.com>
9100
9101         Write a "test-profile" that does echo client-server with threads;
9102         profile reveals lock contention, memcpy/realloc of buffers, and
9103         UTF-8 validation as hot spots. 20% of lock contention eliminated
9104         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9105         contention is global mempool locks for GList and DBusList.
9106
9107         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9108         x86 implementation
9109
9110         * dbus/dbus-connection.c (struct DBusConnection): use
9111         dbus_atomic_t for the reference count
9112
9113         * dbus/dbus-message.c (struct DBusMessage): declare
9114         dbus_atomic_t values as volatile
9115
9116         * configure.in: code to detect ability to use atomic integer
9117         operations in assembly, from GLib patch
9118
9119         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9120         time, tired of it being wrong in threads and forked processes
9121
9122         * glib/test-profile.c: a little program to bounce messages back
9123         and forth between threads and eat CPU
9124
9125         * dbus/dbus-connection.c: add debug spew macros for debugging
9126         thread locks; include config.h at top; fix deadlock in
9127         dbus_connection_flush()
9128
9129 2003-05-08  Havoc Pennington  <hp@pobox.com>
9130
9131         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9132         data from getting written, and there wasn't a good reason to
9133         use _exit really.
9134
9135         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9136         dbus_verbose lines in test coverage
9137         (main): add list of functions sorted by # of untested blocks
9138         to the coverage report
9139
9140         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9141
9142         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9143
9144         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9145         extend test coverage
9146
9147         * test/data/auth/cancel.auth-script: test canceling an
9148         authentication
9149
9150         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9151         aren't used. in CVS history if we end up needing them.
9152
9153 2003-05-04  Havoc Pennington  <hp@pobox.com>
9154
9155         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9156         unit test
9157
9158         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9159         function, which assumed length was in # of strings, not bytes
9160
9161         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9162         missing coverage
9163
9164         * dbus/dbus-connection.c
9165         (_dbus_connection_queue_received_message): disable function for
9166         now, we are only using it in test mode
9167
9168         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9169         remove a mistaken FIXME
9170
9171 2003-05-04  Havoc Pennington  <hp@pobox.com>
9172
9173         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9174         unlock mutex on successful return, patch from Anders Gustafsson
9175
9176 2003-05-04  Havoc Pennington  <hp@pobox.com>
9177
9178         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9179         Anders Gustafsson
9180
9181 2003-05-04  Havoc Pennington  <hp@pobox.com>
9182
9183         * tools/dbus-launch.c: implement
9184
9185         * bus/main.c (main), bus/bus.c (bus_context_new):
9186         implement --print-pid and --fork
9187
9188 2003-05-03  Havoc Pennington  <hp@redhat.com>
9189
9190         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9191         the address had no value, and add to test suite. Fix and
9192         regression test from Miloslav Trmac
9193
9194 2003-05-03  Havoc Pennington  <hp@pobox.com>
9195
9196         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9197         watch is invalid when handled
9198
9199         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9200         dbus-launch utility to launch the bus from a shell script.  Didn't
9201         actually implement dbus-launch yet, it's just a placeholder still.
9202
9203 2003-05-03  Havoc Pennington  <hp@pobox.com>
9204
9205         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9206         daemon; also documents daemon config file, so replaces
9207         doc/config-file.txt. Corrected some stuff from config-file.txt in
9208         the process of moving it.
9209
9210 2003-05-03  Havoc Pennington  <hp@pobox.com>
9211
9212         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9213         add some man pages
9214
9215 2003-05-03  Colin Walters  <walters@verbum.org>
9216
9217         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9218         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9219
9220         * Makefile.am: Update to use new .pc versioning scheme.
9221
9222 2003-05-02  Havoc Pennington  <hp@redhat.com>
9223
9224         * bus/system.conf.in: allow send/receive to/from message bus
9225         service
9226
9227 2003-04-30  Havoc Pennington  <hp@redhat.com>
9228
9229         * configure.in: print a note when building with unit tests and
9230         without assertions
9231
9232 2003-04-30  Havoc Pennington  <hp@redhat.com>
9233
9234         * Makefile.am: add a check-local that complains if you didn't
9235         configure with --enable-tests
9236
9237 2003-04-29  Havoc Pennington  <hp@redhat.com>
9238
9239         * glib/dbus-gmain.c: docs cleanups
9240
9241         * dbus/dbus-types.h: add docs on int64 types
9242
9243         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9244         public API docs section
9245
9246 2003-04-29  Havoc Pennington  <hp@redhat.com>
9247
9248         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9249         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9250         parallel install API version, not with the D-BUS package version.
9251
9252         * HACKING: move some of README over here
9253
9254         * README: updates, and document API/ABI policy
9255
9256         * configure.in: reindentation
9257
9258 2003-04-29  Havoc Pennington  <hp@redhat.com>
9259
9260         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9261         to use this library" to be sure people have the right
9262         expectations.
9263
9264 2003-04-28  Havoc Pennington  <hp@redhat.com>
9265
9266         * configure.in: add --enable-docs which by default is auto yes if
9267         doxygen and db2html found, no otherwise; but can be forced on/off
9268
9269         * doc/Makefile.am: conditionalize whether to build docs on
9270         --enable-docs
9271
9272 2003-04-28  Havoc Pennington  <hp@redhat.com>
9273
9274         * configure.in: 0.10
9275
9276         * NEWS: update
9277
9278         * bus/system.conf.in: add <includedir>system.d</includedir>
9279
9280         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9281         username was provided but not uid
9282
9283         * bus/config-parser.c (struct BusConfigParser): keep track of
9284         whether the parser is toplevel or was included; change some
9285         of the error handling if it's included.
9286
9287 2003-04-27  Havoc Pennington  <hp@pobox.com>
9288
9289         Unbreak my code...
9290
9291         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9292         report correct status if we finish processing authentication
9293         inside this function.
9294
9295         * bus/activation.c (try_send_activation_failure): use
9296         bus_transaction_send_error_reply
9297
9298         * bus/connection.c (bus_connection_get_groups): return an error
9299         explaining the problem
9300
9301         * bus/bus.c (bus_context_check_security_policy): implement
9302         restriction here that inactive connections can only send the
9303         hello message. Also, allow bus driver to send anything to
9304         any recipient.
9305
9306         * bus/connection.c (bus_connection_complete): create the
9307         BusClientPolicy here instead of on-demand.
9308         (bus_connection_get_policy): don't return an error
9309
9310         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9311         sender field in message being replied to
9312
9313         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9314         causing it to return FALSE always
9315
9316         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9317         we checked sender rather than destination
9318
9319 2003-04-25  Havoc Pennington  <hp@redhat.com>
9320
9321         test suite is slightly hosed at the moment, will fix soon
9322
9323         * bus/connection.c (bus_connections_expire_incomplete): fix to
9324         properly disable the timeout when required
9325         (bus_connection_set_name): check whether we can remove incomplete
9326         connections timeout after we complete each connection.
9327
9328         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9329         probably still broken.
9330
9331         * bus/services.c (bus_registry_acquire_service): implement max
9332         number of services owned, and honor allow/deny rules on which
9333         services a connection can own.
9334
9335         * bus/connection.c (bus_connection_get_policy): report errors here
9336
9337         * bus/activation.c: implement limit on number of pending
9338         activations
9339
9340 2003-04-25  Havoc Pennington  <hp@redhat.com>
9341
9342         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9343         where we used >= 0 instead of != DBUS_UID_UNSET.
9344
9345 2003-04-25  Havoc Pennington  <hp@redhat.com>
9346
9347         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9348         were toggled without add/remove, fix from Anders Gustafsson
9349
9350 2003-04-24  Havoc Pennington  <hp@redhat.com>
9351
9352         * test/data/valid-config-files/basic.conf: add <limit> tags to
9353         this test
9354
9355         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9356         <limit> tag in configuration file.
9357
9358 2003-04-24  Havoc Pennington  <hp@redhat.com>
9359
9360         * bus/dispatch.c: somehow missed some name_is
9361
9362         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9363         (_dbus_timeout_set_interval): new
9364
9365         * bus/connection.c (bus_connections_setup_connection): record time
9366         when each connection is first set up, and expire them after the
9367         auth timeout passes.
9368
9369 2003-04-24  Havoc Pennington  <hp@redhat.com>
9370
9371         * dbus/dbus-message.c (dbus_message_name_is): rename
9372         (dbus_message_service_is): rename
9373         (dbus_message_sender_is): rename
9374         (dbus_message_get_service): rename
9375
9376 2003-04-24  Havoc Pennington  <hp@redhat.com>
9377
9378         * configure.in: add --enable-checks
9379
9380         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9381
9382         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9383         to use thread locks.
9384         (_dbus_connection_handler_destroyed_locked): move some private
9385         functions into proper docs group
9386
9387         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9388         _dbus_return_val_if_fail
9389
9390         Throughout: use dbus_return_if_fail
9391
9392 2003-04-23  James Willcox  <jwillcox@gnome.org>
9393
9394         * glib/dbus-glib.h:
9395         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9396         (dbus_connection_setup_with_g_main),
9397         (dbus_server_setup_with_g_main):
9398         * glib/test-dbus-glib.c: (main):
9399         * glib/test-thread-client.c: (main):
9400         * glib/test-thread-server.c: (new_connection_callback), (main):
9401         * tools/dbus-monitor.c: (main):
9402
9403         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9404         and dbus_server_setup_with_g_main().
9405
9406 2003-04-20  Havoc Pennington  <hp@pobox.com>
9407
9408         * doc/dbus-specification.sgml: document the restrictions on
9409         message and service names
9410
9411 2003-04-22  Havoc Pennington  <hp@redhat.com>
9412
9413         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9414         support, and do some code cleanups to share more code and
9415         speed up array marshal/demarshal.
9416
9417         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9418
9419         * configure.in: generate dbus-arch-deps.h
9420
9421         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9422         64-bit typecodes
9423
9424 2003-04-22  Havoc Pennington  <hp@redhat.com>
9425
9426         * test/data/valid-messages/opposite-endian.message: fix test
9427         to use proper type for rply field
9428
9429         * test/data/invalid-messages: add tests for below validation
9430
9431         * dbus/dbus-message.c (decode_header_data): validate field types,
9432         and validate that named fields are valid names
9433         (decode_name_field): consider messages in the
9434         org.freedesktop.Local. namespace to be invalid.
9435
9436         * dbus/dbus-string.c (_dbus_string_validate_name): new
9437
9438 2003-04-19  Havoc Pennington  <hp@pobox.com>
9439
9440         * bus/driver.c (bus_driver_handle_hello): check limits and
9441         return an error if they are exceeded.
9442
9443         * bus/connection.c: maintain separate lists of active and inactive
9444         connections, and a count of each. Maintain count of completed
9445         connections per user. Implement code to check connection limits.
9446
9447         * dbus/dbus-list.c (_dbus_list_unlink): export
9448
9449         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9450         number of bytes in the message queue for a connection
9451
9452 2003-04-18  Havoc Pennington  <hp@pobox.com>
9453
9454         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9455
9456         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9457         memleaks
9458
9459         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9460         on realloc be sure to update the pointer in the keyring
9461
9462         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9463         offset to avoid writing to unallocated memory
9464
9465         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9466         try the next mechanism, so we properly handle OOM
9467
9468         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9469         on OOM.
9470         (_dbus_keyring_new): fix OOM bug
9471         (_dbus_keyring_new_homedir): always set error; impose a maximum
9472         number of keys we'll load from the file, mostly to speed up the
9473         test suite and make its OOM checks more useful, but also for
9474         general sanity.
9475
9476         * dbus/dbus-auth.c (process_error_server): reject authentication
9477         if we get an error from the client
9478         (process_cancel): on cancel, send REJECTED, per the spec
9479         (process_error_client): send CANCEL if we get an error from the
9480         server.
9481
9482 2003-04-18  Havoc Pennington  <hp@pobox.com>
9483
9484         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9485         debug spew
9486
9487         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9488         handling problem
9489
9490         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9491         about DBUS_TEST_HOMEDIR once
9492
9493         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9494         the environment
9495
9496         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9497         config file so we test the right thing
9498
9499         Throughout: assorted docs improvements
9500
9501 2003-04-18  Havoc Pennington  <hp@pobox.com>
9502
9503         * glib/dbus-gmain.c: adapt to watch changes
9504
9505         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9506
9507         * dbus/dbus-server.h: remove dbus_server_handle_watch
9508
9509         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9510
9511         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9512         like DBusTimeout, so we don't need dbus_connection_handle_watch
9513         etc.
9514
9515 2003-04-17  Havoc Pennington  <hp@redhat.com>
9516
9517         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9518         database usage so it all goes via the DBusUserDatabase cache.
9519
9520 2003-04-17  Havoc Pennington  <hp@redhat.com>
9521
9522         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9523         there was an OOM watch we skipped, we always return TRUE so we
9524         iterate again to have a look at it again. Fixes test suite hang.
9525         Code rearrangement also lets us lose some memset and only iterate
9526         over callbacks once.
9527
9528         * bus/driver.c (bus_driver_handle_message): sense of test for
9529         reply was backward
9530
9531 2003-04-16  Havoc Pennington  <hp@pobox.com>
9532
9533         * doc/dbus-specification.sgml: make spec say serials are unsigned
9534
9535         * dbus/dbus-message.h: change message serials to unsigned
9536
9537         * dbus/dbus-connection.c: adapt to message serials being unsigned
9538
9539 2003-04-15  Havoc Pennington  <hp@pobox.com>
9540
9541         * bus/bus.c: create and keep around a shared DBusUserDatabase
9542         object.
9543
9544         * bus/connection.c (bus_connection_get_groups): don't cache
9545         groups for user in the connection object, since user database
9546         object now does that.
9547
9548 2003-04-16  Havoc Pennington  <hp@redhat.com>
9549
9550         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9551         list of size counters
9552         (_dbus_message_loader_putback_message_link): put back a popped link
9553
9554         * dbus/dbus-connection.c
9555         (dbus_connection_set_max_live_messages_size): rename
9556         max_received_size
9557         (dbus_connection_get_outgoing_size): get size of outgoing
9558         queue
9559         (_dbus_connection_set_connection_counter): remove this cruft
9560
9561 2003-04-14  Havoc Pennington  <hp@redhat.com>
9562
9563         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9564         caching, but at some point we might want to be able to use a
9565         different database.
9566
9567         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9568         SHA1 conf file to test the sha1 auth mechanism, since the regular
9569         test always uses EXTERNAL when available.
9570
9571         * configure.in,
9572         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9573         add conf file that requires use of sha1 auth
9574
9575 2003-04-13  Havoc Pennington  <hp@pobox.com>
9576
9577         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9578         from Philip Blundell to send messages and monitor them.
9579
9580 2003-04-13  Havoc Pennington  <hp@pobox.com>
9581
9582         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9583         callbacks
9584
9585         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9586         users
9587
9588         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9589         fix to only recover unused bytes if we're already authenticated
9590         (_dbus_transport_get_is_authenticated): fix to still mark us
9591         authenticated if there are unused bytes.
9592
9593         * bus/dispatch.c: implement security policy checking
9594
9595         * bus/connection.c (bus_transaction_send_from_driver): new
9596
9597         * bus/bus.c (bus_context_check_security_policy): new
9598
9599         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9600         now we just set the DBusError and it gets converted to an error
9601         reply.
9602
9603         * bus/connection.c (allow_user_function): enable code using actual
9604         data from the config file
9605
9606         * bus/policy.c (list_allows_user): handle wildcard rules for
9607         user/group connection perms
9608
9609 2003-04-13  Havoc Pennington  <hp@pobox.com>
9610
9611         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9612
9613         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9614
9615         * bus/policy.c (bus_policy_append_mandatory_rule)
9616         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9617         (bus_policy_append_group_rule): new functions
9618
9619 2003-04-12  Havoc Pennington  <hp@pobox.com>
9620
9621         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9622
9623         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9624         the pid/gid/uid, just for paranoia.
9625
9626         * test/break-loader.c (randomly_do_n_things): find a byte
9627         containing a type code, and randomly change it to a different
9628         type code.
9629
9630 2003-04-12  Havoc Pennington  <hp@pobox.com>
9631
9632         * bus/policy.h: change BusPolicy to be the thing from the config
9633         file, and rename old BusPolicy to BusClientPolicy
9634
9635         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9636         match change in how policy works
9637
9638         * dbus/dbus-internals.h: mark assert_not_reached as
9639         __attribute((noreturn))__
9640
9641 2003-04-11  Havoc Pennington  <hp@redhat.com>
9642
9643         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9644         the broadcast service. Use boolean return for ServiceExists.
9645
9646 2003-04-11  Havoc Pennington  <hp@redhat.com>
9647
9648         * configure.in: add another directory to look for qt in.
9649
9650 2003-04-11  Havoc Pennington  <hp@redhat.com>
9651
9652         * AUTHORS: add Colin Walters
9653
9654 2003-04-11  Havoc Pennington  <hp@redhat.com>
9655
9656         * NEWS: update
9657
9658         * configure.in: 0.9
9659
9660 2003-04-11  Havoc Pennington  <hp@redhat.com>
9661
9662         * bus/messagebus.in: remove pid file when stopping the
9663         message bus, since the bus won't have privileges to remove it
9664         itself.
9665
9666 2003-04-11  Havoc Pennington  <hp@redhat.com>
9667
9668         * bus/bus.c (bus_context_new): move credentials change after
9669         creating pidfile
9670
9671 2003-04-11  Havoc Pennington  <hp@pobox.com>
9672
9673         * test/decode-gcov.c: add "below average functions" to the
9674         coverage report, and change how some of the code works.
9675
9676         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9677         not in the coverage stats.
9678
9679         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9680         couple places so running the test suite doesn't result in megaspam.
9681
9682 2003-04-11  Havoc Pennington  <hp@pobox.com>
9683
9684         * bus/dispatch.c (check_existent_service_activation): accept a no
9685         memory error in a place we didn't before
9686
9687         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9688         in case the first one failed," since the test suite is less
9689         broken now.
9690
9691 2003-04-10  Havoc Pennington  <hp@pobox.com>
9692
9693         * bus/dispatch.c (check_segfault_service_activation): add test
9694         for launching an executable that just crashes.
9695
9696         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9697         don't leave a million cores. We'll see how portable this is.
9698
9699 2003-04-10  Havoc Pennington  <hp@pobox.com>
9700
9701         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9702         the possible parent failures before we fork, so that we don't
9703         fail to create a babysitter after creating the child.
9704
9705         * bus/activation.c (bus_activation_activate_service): kill child
9706         if we don't successfully complete the activation.
9707
9708 2003-04-10  Havoc Pennington  <hp@redhat.com>
9709
9710         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9711         the connection if it's disconnected
9712
9713         * bus/activation.c (bus_activation_service_created): use new
9714         transaction features to roll back removal of pending activation if
9715         we don't successfully create the service after all. Don't remove
9716         pending activation if the function fails.
9717
9718         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9719         (_dbus_list_insert_after_link): new code to facilitate
9720         services.c fixes
9721
9722         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9723         new functionality, so we can preallocate the ability to insert
9724         into a hash table.
9725
9726         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9727         allowing us to put custom hooks in a transaction to be used for
9728         cancelling said transaction
9729
9730         * doc/dbus-specification.sgml: add some discussion of secondary
9731         service owners, and disallow zero-length service names
9732
9733         * bus/services.c (bus_registry_acquire_service): new function,
9734         splits out part of bus_driver_handle_acquire_service() and fixes
9735         a bug where we didn't remove the service doing the acquiring
9736         from the secondary queue if we failed to remove the current owner
9737         from the front of the queue.
9738
9739 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9740
9741         * doc/dbus-specification.sgml:
9742         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9743
9744 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9745
9746         * bus/.cvsignore:
9747         * glib/.cvsignore:
9748         * test/.cvsignore:
9749         Added files to cvsignore
9750
9751         * dbus/dbus-message.h:
9752         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9753         Make get_named() take two out argument and return a boolean.
9754         (dbus_message_iter_get_args_valist):
9755         Update usage of get_named().
9756         (dbus_message_iter_append_byte):
9757         Fix typo
9758         (dbus_message_iter_append_named)
9759         Fix typo
9760         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9761         More tests.
9762
9763 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9764
9765         * dbus/dbus-marshal.[ch]:
9766         Add array_type_pos argument to _dbus_marshal_validate_arg.
9767         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9768
9769         * dbus/dbus-message.[ch]:
9770         Multi-dimensional arrays have full type specification in the
9771         outermost array. Iter code re-arranged to handle this.
9772         Added some more iter tests.
9773
9774         * doc/dbus-specification.sgml:
9775         Add me to authors.
9776         Remove old FIXME.
9777         Update new array encoding description.
9778         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9779
9780         * test/data/invalid-messages/array-with-mixed-types.message:
9781         * test/data/valid-messages/array-of-array-of-uint32.message:
9782         Change to the new array format.
9783
9784         * test/data/invalid-messages/too-short-dict.message:
9785         Fix bug in test.
9786
9787         * test/data/valid-messages/recursive-types.message:
9788         Fix up and extend test.
9789
9790 2003-04-10  Havoc Pennington  <hp@pobox.com>
9791
9792         * bus/dispatch.c: lots of fixes
9793
9794         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9795         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9796         that was crack, broke the test service.
9797
9798         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9799         handling to avoid piling up errors if we get a failure on the
9800         first address.
9801
9802         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9803         pid in assertion failures.
9804
9805         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9806         to some fixed size of file descriptor array. Don't return TRUE
9807         anytime a timeout exists, that led to lots of busy loop silliness
9808         in the tests.
9809
9810 2003-04-09  Havoc Pennington  <hp@redhat.com>
9811
9812         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9813         I'd checked this in earlier but hadn't.
9814
9815 2003-04-09  Havoc Pennington  <hp@redhat.com>
9816
9817         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9818         the activation test (man this is getting old!)
9819
9820 2003-04-09  Havoc Pennington  <hp@redhat.com>
9821
9822         * test/test-utils.c: use dispatch status function to fix this up
9823
9824         * bus/connection.c (connection_watch_callback): don't dispatch
9825         from here
9826         (connection_timeout_callback): don't dispatch from here
9827         (bus_connections_setup_connection): set the dispatch status function
9828         (bus_connection_disconnected): unset it
9829
9830         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9831         used to add a connection to be dispatched
9832         (_dbus_loop_iterate): do the dispatching at the end of each
9833         iteration
9834
9835         * dbus/dbus-connection.c
9836         (dbus_connection_set_dispatch_status_function): new function
9837         allowing us to fix up main loop usage
9838         (_dbus_connection_last_unref): free all the various function
9839         user data
9840         (dbus_connection_dispatch): call the DispatchStatusFunction
9841         whenever this function returns
9842         (dbus_connection_handle_watch): call DispatchStatusFunction
9843         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9844         (reply_handler_timeout): call DispatchStatusFunction
9845         (dbus_connection_flush): call DispatchStatusFunction
9846
9847 2003-04-09  Havoc Pennington  <hp@redhat.com>
9848
9849         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9850         a memory leak
9851
9852         * bus/dispatch.c (check_service_activated): fix bug in test
9853
9854         * dbus/dbus-mainloop.c (check_timeout): fix this up
9855
9856         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9857         verbose output so we can sort out output from different processes,
9858         e.g. in the activation case.
9859
9860 2003-04-08  Colin Walters  <walters@gnu.org>
9861
9862         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9863         the pid file.
9864         (bus_context_new): Set it.
9865         (bus_context_unref): Use it to delete the pid file.
9866
9867 2003-04-08  Havoc Pennington  <hp@redhat.com>
9868
9869         * test/data/invalid-messages/array-with-mixed-types.message:
9870         regression test that fails for the moment
9871
9872         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9873         tests for convenience
9874
9875         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9876         array of nil, it broke things.
9877
9878         * test/data/invalid-messages/array-of-nil.message: regression test
9879
9880         * test/data/valid-messages/array-of-array-of-uint32.message:
9881         happened to write this so added it to suite
9882
9883 2003-04-08  Havoc Pennington  <hp@redhat.com>
9884
9885         * bus/driver.c (bus_driver_handle_acquire_service): init
9886         retval/reply before checking name
9887
9888         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9889         recursion depth argument
9890
9891         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9892         in the public struct for future extension
9893
9894         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9895         typo
9896
9897         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9898         message
9899
9900         * doc/dbus-specification.sgml: fix typo
9901
9902 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9903
9904         Implemented recursive types, named types and new-style iters
9905
9906         * bus/driver.c:
9907         * glib/test-thread-client.c: (thread_func):
9908         * glib/test-thread-server.c: (handle_test_message):
9909         * test/test-service.c: (handle_echo):
9910         Update to new api
9911
9912         * dbus/Makefile.am:
9913         * dbus/dbus-dict.c:
9914         * dbus/dbus-dict.h:
9915         * dbus/dbus.h
9916         Remove DBusDict
9917
9918         * dbus/dbus-internals.c: (_dbus_type_to_string):
9919         Update for new types.
9920
9921         * dbus/dbus-marshal.[ch]:
9922         Implement recursive types and the new marshalling format.
9923         Remove hardcoded dict marshalling.
9924         Marshal named types.
9925
9926         * dbus/dbus-message-builder.c:
9927         Add BYTE_ARRAY.
9928         Remove references to old types
9929
9930         * dbus/dbus-message.[ch]:
9931         New non-refcounted iter API that supports recursive iters.
9932         Use iters for appending, including support for recursive
9933         iters.
9934         Add byte and named type support.
9935         Update everything to new marshalling formats.
9936         Add tests for new API.
9937
9938         * dbus/dbus-protocol.h:
9939         Remove old array types.
9940         Add types: BYTE, ARRAY, DICT, NAMED
9941
9942         * dbus/dbus-string.c:
9943         * dbus/dbus-sysdeps.c:
9944         Make parse_double locale safe.
9945
9946         * dbus/dbus-test-main.c:
9947         Call setlocale.
9948
9949         * dbus/dbus-test.c:
9950         Kill dict test
9951
9952         * doc/dbus-specification.sgml:
9953         Update spec
9954
9955         * test/data/incomplete-messages/missing-body.message:
9956         * test/data/invalid-messages/bad-boolean.message:
9957         * test/data/invalid-messages/bad-boolean-array.message:
9958         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9959         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9960         * test/data/invalid-messages/too-short-dict.message:
9961         * test/data/valid-messages/dict-simple.message:
9962         * test/data/valid-messages/dict.message:
9963         * test/data/valid-messages/emptiness.message:
9964         * test/data/valid-messages/lots-of-arguments.message:
9965         * test/data/valid-messages/no-padding.message:
9966         * test/data/valid-messages/recursive-types.message:
9967         Add missing NAME fields
9968         Fix up dicts & arrays
9969
9970         * test/data/invalid-messages/dict-with-nil-value.message:
9971         Removed, this is not invalid anymore.
9972
9973         * test/data/valid-messages/recursive-types.message:
9974         Add new test for deeply recursive types.
9975
9976 2003-04-07  Havoc Pennington  <hp@pobox.com>
9977
9978         * bus/driver.c (bus_driver_handle_acquire_service): return an
9979         error if you try to acquire a service that starts with ':'
9980
9981 2003-04-07  Havoc Pennington  <hp@redhat.com>
9982
9983         * doc/dbus-specification.sgml: require that base service names
9984         start with ':' and that the base service is created/deleted
9985         as first and last things a connection does on the bus
9986
9987         * bus/dispatch.c (check_existent_service_activation): lots more
9988         work on the activation test; it doesn't fully pass yet...
9989
9990         * test/test-service.c (main): fix so we don't memleak the
9991         connection to the message bus
9992         (filter_func): accept a message asking us to exit
9993
9994 2003-04-06  Havoc Pennington  <hp@pobox.com>
9995
9996         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9997         from Colin Walters
9998
9999         * configure.in: fixes to Qt detection from Colin Walters
10000
10001         * doc/Makefile.am: Only remove generated docbook dirs if they
10002         exist, from Colin Walters
10003
10004         * dbus/dbus-bus.c: change how we set well-known connections to
10005         NULL, so that it works if a single connection is stored in
10006         two well-known array slots.
10007
10008         * test/Makefile.am: remove a lot of stuff that isn't immediately
10009         useful, it's in CVS history if we want it.
10010
10011         * test/test-service.c: use dbus-mainloop instead of that
10012         watch.[hc] crack
10013
10014 2003-04-06  Havoc Pennington  <hp@pobox.com>
10015
10016         * dbus/Makefile.am: split lists of sources into stuff that goes in
10017         the library, util functions that go in the lib and are also used
10018         elsewhere, and util functions that are used in tests/daemon but
10019         don't go in the lib.
10020
10021         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10022         here so it can be used in test binaries also
10023
10024 2003-04-06  Havoc Pennington  <hp@pobox.com>
10025
10026         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10027         here in the parent process, so we can return an error if it
10028         fails. Also, move some of the code into the child so the parent
10029         is less hosed if we fail midway through.
10030
10031         * bus/bus.c (bus_context_new): move pidfile detection further up
10032         in the function, before we start overwriting sockets and such.
10033
10034         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10035
10036         * configure.in: add --with-system-pid-file and --with-system-socket
10037
10038 2003-04-06  Colin Walters  <walters@verbum.org>
10039
10040         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10041
10042         * bus/system.conf.in: Declare a pidfile.
10043
10044         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10045         create one (if appropriate).
10046
10047         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10048         (struct BusConfigParser) [pidfile]: New.
10049         (element_type_to_name, merge_included, start_busconfig_child)
10050         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10051         (bus_config_parser_unref): Free it.
10052         (bus_config_parser_get_pidfile): New function.
10053
10054         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10055
10056         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10057
10058         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10059
10060         * dbus/dbus-sysdeps.h: Prototype it.
10061
10062 2003-04-06  Havoc Pennington  <hp@pobox.com>
10063
10064         * bus/bus.c (bus_context_new): print the address in here, rather
10065         than in main(), because we need to do it before forking the daemon
10066
10067         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10068         on the service nonexistent error
10069
10070         * bus/driver.c (bus_driver_handle_acquire_service): set the
10071         sender on the AcquireService reply
10072
10073         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10074         server also listen on a UNIX socket so services can connect to it.
10075
10076 2003-04-06  Havoc Pennington  <hp@pobox.com>
10077
10078         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10079         so it detects deadlocks and also we actually init threads when
10080         debugging.
10081
10082 2003-04-06  Havoc Pennington  <hp@pobox.com>
10083
10084         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10085         save the domain socket name, and unlink it when we disconnect the
10086         server. Means that at least when we exit normally, we won't leave
10087         a bunch of junk in /tmp
10088
10089         * dbus/dbus-transport-unix.c
10090         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10091         memory management). (I was making a real change here but then
10092         didn't)
10093
10094 2003-04-06  Havoc Pennington  <hp@pobox.com>
10095
10096         * bus/bus.c (bus_context_new): fix wrong handling of
10097         server_data_slot_unref() in the error case.
10098
10099         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10100         "(condition) != 0" to _dbus_real_assert so that
10101         "_dbus_assert (pointer)" doesn't cause a warning
10102
10103         * bus/main.c (main): accept --print-address option to print out
10104         the message bus address
10105
10106         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10107
10108         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10109         "tmpdir" option to unix: address on client side
10110
10111         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10112         to unix: address
10113
10114         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10115         we can use to create sockets in the test suite.
10116
10117         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10118         cleanly. To be used for testing.
10119
10120         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10121
10122         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10123
10124         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10125         handle trying to call this when there's no servers active
10126
10127 2003-04-05  Havoc Pennington  <hp@pobox.com>
10128
10129         * NEWS: update
10130
10131         * configure.in: 0.8
10132
10133 2003-04-05  Havoc Pennington  <hp@pobox.com>
10134
10135         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10136         crash on startup. Need to get "try starting the daemon"
10137         in the test suite I guess. ;-)
10138
10139         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10140         tracked the number of open connections; it's better done in
10141         application-specific code as you want it to span all servers etc.
10142
10143 2003-04-05  Havoc Pennington  <hp@pobox.com>
10144
10145         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10146         patch from Colin Walters
10147
10148 2003-04-05  Havoc Pennington  <hp@pobox.com>
10149
10150         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10151         reality; in fact multiple mechanisms are allowed.
10152
10153         * dbus/dbus-internals.c (_dbus_real_assert)
10154         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10155         _dbus_assert_not_reached() into functions, so that they don't show
10156         up in basic block counts for test coverage, and don't use up as
10157         much disk space. Does mean slower execution speed though, so
10158         assumes --disable-asserts is the normal production case.
10159
10160 2003-04-05  Havoc Pennington  <hp@pobox.com>
10161
10162         * test/Makefile.am (dist-hook): also dist *.in files
10163
10164         * NEWS: update
10165
10166         * configure.in: 0.7
10167
10168 2003-04-05  Havoc Pennington  <hp@pobox.com>
10169
10170         * dbus/dbus-string.c: docs warning
10171
10172         * dbus/dbus-spawn.c: missing docs
10173
10174         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10175
10176 2003-04-05  Havoc Pennington  <hp@pobox.com>
10177
10178         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10179         magic from GLib
10180
10181         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10182         to -1 once we've reaped the babysitter
10183         (_dbus_babysitter_handle_watch): do as much work as we can, not
10184         just one go of it
10185
10186         * bus/activation.c: add code using DBusBabysitter so that we
10187         handle it when a service fails to start up properly.
10188         (bus_activation_service_created): don't remove the activation
10189         entries as we go, just let them get removed when we free the pending
10190         activation. Unref reply messages after sending them.
10191
10192 2003-04-05  Havoc Pennington  <hp@pobox.com>
10193
10194         * test/decode-gcov.c (main): print per-directory stats in the report
10195
10196         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10197
10198 2003-04-05  Havoc Pennington  <hp@pobox.com>
10199
10200         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10201
10202         * test/decode-gcov.c: hack up a little program to suck data
10203         out of gcov files. Yes this is sort of silly.
10204
10205         * configure.in: define something in config.h and do an
10206         AM_CONDITIONAL when gcov is enabled
10207
10208 2003-04-04  Havoc Pennington  <hp@redhat.com>
10209
10210         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10211         return a "babysitter" object that is used to monitor the status of
10212         the spawned process and reap it when required.
10213
10214         * test/test-segfault.c, test/test-exit.c,
10215         test/test-sleep-forever.c: binaries that do various lame things,
10216         used in the test suite.
10217
10218         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10219
10220 2003-04-03  Havoc Pennington  <hp@pobox.com>
10221
10222         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10223         in preparation for modifying it, dbus-sysdeps is getting
10224         a bit unmanageable.
10225
10226 2003-04-03  Havoc Pennington  <hp@redhat.com>
10227
10228         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10229         have multiple ones
10230
10231         * bus/*.[hc]: adapt to mainloop change
10232
10233 2003-04-03  Havoc Pennington  <hp@redhat.com>
10234
10235         * bus/activation.c (load_directory): fix up memleaks
10236         (bus_activation_entry_free): free the entry
10237
10238         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10239         we get one from the message bus; fix memleaks.
10240
10241         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10242
10243 2003-04-03  Havoc Pennington  <hp@pobox.com>
10244
10245         * bus/config-parser.c (bus_config_parser_unref): free
10246         list of mechanisms, bug discovered by test suite enhancements
10247         (putting system.conf and session.conf into suite)
10248
10249         * test/Makefile.am, test/test-service.c: add placeholder for a
10250         test service that we'll activate as part of test suite. Doesn't
10251         do anything yet.
10252
10253         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10254         setting NULL value, and use system malloc not dbus_malloc()
10255         when we have unavoidable memleakage.
10256
10257         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10258         didn't work, and support DBUS_BUS_ACTIVATION.
10259
10260         * bus/activation.c (child_setup): pass our well-known bus type to
10261         the child
10262
10263         * bus/config-parser.c: support <type> to specify well-known type
10264
10265         * doc/dbus-specification.sgml: document the env variables to
10266         locate well-known buses and find service activator
10267
10268 2003-04-02  Havoc Pennington  <hp@redhat.com>
10269
10270         * test/Makefile.am (all-local): add a rule to copy tests to
10271         builddir, so we can have generated tests. Use this to remove the
10272         silly hack for testing system.conf and session.conf. Will use this
10273         shortly to generate .service files pointing to test binaries.
10274
10275 2003-04-02  Havoc Pennington  <hp@redhat.com>
10276
10277         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10278         current alloc and needed new length, not max of the doubled
10279         allocation and needed new length. Also, when building tests,
10280         don't do the double-allocation stuff, just realloc every time.
10281
10282 2003-04-02  Havoc Pennington  <hp@redhat.com>
10283
10284         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10285         in error messages
10286         (_dbus_string_get_dirname): new
10287         (_dbus_sysdeps_test): new
10288         (_dbus_directory_open): include dirnames in error messages
10289
10290         * bus/config-parser.c: interpret <include> and <includedir> and
10291         <servicedir> relative to config file location if the given
10292         filename is not absolute.
10293
10294         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10295
10296 2003-04-02  Havoc Pennington  <hp@redhat.com>
10297
10298         * bus/connection.c (bus_transaction_send_error_reply): set sender
10299         service for the error, and unref the reply on success
10300
10301         * bus/activation.c: convert to use BusTransaction so OOM can be
10302         handled correctly
10303         (bus_activation_service_created): set sender of the message
10304
10305 2003-04-01  Havoc Pennington  <hp@redhat.com>
10306
10307         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10308         <includedir> (at least mostly)
10309
10310         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10311         first, then the user ID
10312
10313 2003-04-01  Havoc Pennington  <hp@pobox.com>
10314
10315         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10316         function
10317
10318         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10319
10320         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10321
10322         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10323         socket 0777, and unlink any existing socket.
10324
10325         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10326         the configuration file so specifies; set up auth mechanism
10327         restrictions
10328
10329         * bus/config-parser.c (bus_config_parser_content): add support
10330         for <fork> option and fill in code for <auth>
10331
10332         * bus/system.conf.in: add <fork/> to default configuration,
10333         and limit auth mechanisms to EXTERNAL
10334
10335         * doc/config-file.txt (Elements): add <fork>
10336
10337         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10338         (_dbus_change_identity): new function
10339
10340 2003-03-31  Havoc Pennington  <hp@redhat.com>
10341
10342         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10343         (_dbus_listen_unix_socket): fix off-by-one error in null
10344         termination spotted by Nalin
10345
10346 2003-03-31  Havoc Pennington  <hp@redhat.com>
10347
10348         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10349         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10350         having a real home directory available.
10351
10352 2003-03-31  Havoc Pennington  <hp@redhat.com>
10353
10354         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10355
10356         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10357
10358         * configure.in: add support for specifying a style of init script
10359         to install
10360
10361 2003-03-31  Havoc Pennington  <hp@redhat.com>
10362
10363         Fix some annoying DBusString API and fix all affected code.
10364
10365         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10366         max_length argument
10367         (_dbus_string_get_data): change to return string instead of using
10368         an out param
10369         (_dbus_string_get_const_data): ditto
10370         (_dbus_string_get_data_len): ditto
10371         (_dbus_string_get_const_data_len): ditto
10372
10373 2003-03-31  Havoc Pennington  <hp@redhat.com>
10374
10375         * bus/main.c (main): fix up the command line arguments to be nicer
10376
10377 2003-03-31  Havoc Pennington  <hp@redhat.com>
10378
10379         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10380         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10381         final location that lands in the config file
10382
10383         * bus/config-loader-expat.c (bus_config_load): fix type of
10384         XML_Parser variable
10385
10386         * doc/TODO: remove TODO item for dbus_bus_get()
10387
10388         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10389
10390 2003-03-31  Havoc Pennington  <hp@pobox.com>
10391
10392         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10393         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10394         argument since they are always client side
10395
10396         * dbus/dbus-server.c (dbus_server_get_address): new function
10397
10398         * bus/main.c (main): take the configuration file as an argument.
10399
10400         * test/data/valid-config-files/debug-allow-all.conf: new file to
10401         use with dispatch.c tests for example
10402
10403         * bus/test-main.c (main): require test data dir
10404
10405         * bus/bus.c (bus_context_new): change this to take a
10406         configuration file name as argument
10407
10408         * doc/config-file.txt (Elements): add <servicedir>
10409
10410         * bus/system.conf, bus/session.conf: new files
10411
10412         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10413         well-known socket if none set
10414
10415         * configure.in: create system.conf and session.conf
10416
10417 2003-03-30  Havoc Pennington  <hp@pobox.com>
10418
10419         * bus/config-parser.c: hacking
10420
10421         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10422         to shut down, since it could cause weirdness with the DBusList
10423         lock
10424
10425         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10426         link-oriented stack routines
10427         (alloc_link): free the mempool if the first alloc from it fails
10428
10429         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10430
10431         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10432         from GLib
10433         (_dbus_string_skip_white): new
10434
10435         * doc/config-file.txt (Elements): add <includedir>
10436
10437 2003-03-28  Havoc Pennington  <hp@pobox.com>
10438
10439         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10440         (_dbus_string_copy_data): new functions
10441
10442 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10443
10444         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10445         * dbus/dbus-bus.h:
10446         Add dbus_bus_get.
10447
10448         * dbus/dbus-memory.c:
10449         Fix a doc comment.
10450
10451 2003-03-28  Havoc Pennington  <hp@pobox.com>
10452
10453         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10454         I think it may have just been superstition. Not sure.
10455
10456         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10457         failures that were not being handled.
10458
10459         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10460
10461         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10462         row that will fail on out-of-memory.
10463
10464         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10465         function for testing out-of-memory handling.
10466
10467         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10468         allocation functions, they do map exactly to the expat ones.
10469
10470 2003-03-27  Havoc Pennington  <hp@redhat.com>
10471
10472         * bus/config-loader-libxml.c (bus_config_load): add another error
10473         check
10474
10475 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10476
10477         * doc/TODO:
10478         Add note about automatic service activation.
10479
10480         * doc/dbus-specification.sgml:
10481         Rename the specification and clarify a few things.
10482
10483 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10484
10485         * Doxyfile.in:
10486         * dbus/dbus-address.c:
10487         * dbus/dbus-dict.c:
10488         * dbus/dbus-marshal.c:
10489         * dbus/dbus-server-debug-pipe.c:
10490         * dbus/dbus-transport-unix.c:
10491         Fix documentation warnings.
10492
10493 2003-03-26  Havoc Pennington  <hp@pobox.com>
10494
10495         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10496         after every test so it's quick and easy to see which leaked, and
10497         so we test multiple dbus_shutdown() calls
10498
10499         * configure.in: change configure.in XML stuff to also support
10500         expat
10501
10502         * config-loader-libxml.c: some hacking
10503
10504         * config-loader-expat.c: some hacking
10505
10506         * config-parser.c: some hacking, plus tests
10507
10508 2003-03-25  Havoc Pennington  <hp@redhat.com>
10509
10510         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10511
10512         * configure.in: add --with-xml option to specify XML library,
10513         right now only libxml is supported.
10514
10515         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10516         nonworking code between home and work, still just stubs
10517
10518 2003-03-24  Havoc Pennington  <hp@redhat.com>
10519
10520         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10521         file
10522
10523         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10524         NULL argument for "message" if the error is a well-known one,
10525         fill in a generic message in this case.
10526
10527         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10528         favor of DBusError
10529
10530         * bus/test.c (bus_test_flush_bus): add
10531
10532         * bus/policy.c (bus_policy_test): test code stub
10533
10534 2003-03-24  Havoc Pennington  <hp@pobox.com>
10535
10536         * bus/connection.c (bus_connections_setup_connection): set up
10537         the "can this user connect" function, but it always returns
10538         TRUE until we have a config file parser so we can have a config
10539         file that allows connections.
10540
10541 2003-03-23  Havoc Pennington  <hp@pobox.com>
10542
10543         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10544         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10545         the mutex, so we can check for proper memory management
10546         and OOM handling.
10547
10548         * dbus/dbus-dataslot.c: remove the mutex from
10549         DBusDataSlotAllocator and lock it manually when using it,
10550         to simplify fitting it into the global slots framework.
10551
10552         * dbus/dbus-threads.c (init_static_locks): rework how we're
10553         handling global locks so they are easily shut down.
10554
10555         * bus/policy.c (bus_policy_append_rule): fix
10556
10557         * bus/test-main.c (main): check for memleaks
10558
10559         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10560         test suite check for memleaks
10561
10562         * dbus/dbus-memory.c: add support in test mode for tracking
10563         number of outstanding blocks
10564
10565 2003-03-23  Havoc Pennington  <hp@pobox.com>
10566
10567         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10568         policies code
10569
10570         * dbus/dbus-hash.h: add ULONG hash keys
10571
10572         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10573         (_dbus_get_group_id): new function
10574
10575 2003-03-20  Havoc Pennington  <hp@redhat.com>
10576
10577         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10578         new function
10579         (dbus_connection_get_unix_user): new function
10580
10581 2003-03-20  Havoc Pennington  <hp@pobox.com>
10582
10583         * bus/connection.c (bus_connection_send_oom_error): assert that
10584         message has a sender
10585         (connection_execute_transaction): ditto
10586         (bus_connection_preallocate_oom_error): fix to set the sender, and
10587         set recipient to the destination service, not the bus driver
10588
10589         * bus/policy.c: hacking
10590
10591         * dbus/dbus-message.c (dbus_message_service_is): new function
10592         (dbus_message_sender_is): new
10593
10594 2003-03-19  Havoc Pennington  <hp@redhat.com>
10595
10596         * bus/policy.c: start sketching code for policy restrictions on
10597         what connections can do.
10598
10599 2003-03-18  Havoc Pennington  <hp@redhat.com>
10600
10601         * doc/TODO: some notes on high-level todo items. Little nitpick
10602         stuff is all in @todo, so no need to add it here.
10603
10604         * doc/config-file.txt: some notes on how config file might look
10605
10606 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10607
10608         * configure.in: 0.6
10609
10610         * NEWS: Update.
10611
10612 2003-03-17  Havoc Pennington  <hp@redhat.com>
10613
10614         * dbus/dbus-internals.h: add gcc attributes so that
10615         our printf-style functions warn on bad arguments to
10616         format
10617
10618         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10619         format bug
10620
10621         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10622         printf format bug
10623
10624 2003-03-17  Havoc Pennington  <hp@redhat.com>
10625
10626         * bus/test-main.c (main): make it print something as it runs
10627         so make check doesn't look stuck
10628
10629         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10630         from CVS, now obsolete
10631
10632 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10633
10634         * bus/dispatch.c: (bus_dispatch):
10635         Refetch the service name since it may have been reallocated
10636         when dbus_message_set_sender was called.
10637
10638         * dbus/dbus-sysdeps.c: (_dbus_accept):
10639         Add address and address length variables and use them to stop
10640         valgrind from complaining.
10641
10642 2003-03-17  Havoc Pennington  <hp@pobox.com>
10643
10644         All tests pass, no memleaks, no valgrind complaints.
10645
10646         * bus/test.c: refcount handler_slot
10647
10648         * bus/connection.c (bus_connections_new): refcount
10649         connection_data_slot
10650
10651         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10652         bytes so that auth scripts pass.
10653
10654         * bus/dispatch.c: init message_handler_slot so it gets allocated
10655         properly
10656
10657         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10658
10659         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10660         dealloc server_pipe_hash when no longer used for benefit of
10661         leak checking
10662
10663         * dbus/dbus-auth.c (process_command): memleak fix
10664
10665         * bus/dispatch.c (check_hello_message): memleak fix
10666
10667 2003-03-16  Havoc Pennington  <hp@pobox.com>
10668
10669         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10670
10671 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10672
10673         * bus/activation.c (bus_activation_activate_service): Append
10674         the pending activation entry to the list of pending activations.
10675
10676 2003-03-16  Havoc Pennington  <hp@pobox.com>
10677
10678         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10679         connections
10680
10681         * dbus/dbus-address.c (create_entry): fix OOM handling when
10682         failing to alloc entry->method
10683
10684 2003-03-16  Havoc Pennington  <hp@pobox.com>
10685
10686         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10687         the watch
10688
10689         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10690         add some missing dbus_set_result
10691
10692         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10693         alloc the DBusMessageHandler
10694
10695         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10696         the transport here, since we call this from the finalizer; it
10697         resulted in a double-finalize.
10698
10699         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10700         where we tried to use transport->connection that was NULL,
10701         happened when transport was disconnected early on due to OOM
10702
10703         * bus/*.c: adapt to handle OOM for watches/timeouts
10704
10705         * dbus/dbus-transport-unix.c: port to handle OOM during
10706         watch handling
10707
10708         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10709         reference to unused bytes instead of a copy
10710
10711         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10712         out of memory
10713
10714         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10715         FALSE on OOM
10716
10717         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10718         of memory
10719
10720 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10721
10722         * doc/dbus-specification.sgml:
10723         Document reply message for ActivateService.
10724
10725 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10726
10727         * bus/activation.c: (bus_pending_activation_entry_free),
10728         (bus_pending_activation_free), (bus_activation_new),
10729         (bus_activation_unref), (bus_activation_service_created),
10730         (bus_activation_activate_service):
10731         * bus/activation.h:
10732         * bus/bus.c: (bus_context_new):
10733         * bus/desktop-file.c: (new_section):
10734         * bus/driver.c: (bus_driver_send_service_deleted),
10735         (bus_driver_handle_activate_service):
10736         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10737         * bus/services.h:
10738         * dbus/dbus-connection.c:
10739         (dbus_connection_send_with_reply_and_block):
10740         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10741         * dbus/dbus-protocol.h:
10742         Make activation work better. Now pending activations will be queued
10743         and the daemon won't try to activate services that are already registered.
10744
10745 2003-03-16  Havoc Pennington  <hp@pobox.com>
10746
10747         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10748         connection data
10749
10750         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10751         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10752
10753 2003-03-16  Havoc Pennington  <hp@pobox.com>
10754
10755         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10756         this. always run the test suite before commit...
10757
10758         * bus/*: adapt to DBusConnection API changes
10759
10760         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10761         requires renaming stuff to avoid dbus_connection_dispatch name
10762         conflict.
10763
10764         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10765         function
10766
10767         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10768         separate from _dbus_message_loader_return_buffer()
10769
10770         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10771         this, because it's now always broken to use; the number of
10772         messages in queue vs. the number still buffered by the message
10773         loader is undefined/meaningless. Should use
10774         dbus_connection_get_dispatch_state().
10775         (dbus_connection_dispatch): rename from
10776         dbus_connection_dispatch_message
10777
10778 2003-03-16  Havoc Pennington  <hp@pobox.com>
10779
10780         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10781         implementation
10782
10783 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10784
10785         * dbus/dbus-connection.c:
10786         (dbus_connection_send_with_reply_and_block):
10787         Decrease connection->n_incoming when removing an entry
10788         from the list.
10789         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10790         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10791         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10792         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10793         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10794         (dbus_dict_get_byte_array):
10795         Handle NULL arrays and strings. Also add support for byte arrays.
10796
10797         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10798         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10799         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10800         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10801         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10802         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10803         * dbus/dbus-marshal.h:
10804         Add support for marshalling and demarshalling empty arrays and strings.
10805
10806         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10807         (dbus_message_append_string_array),
10808         (dbus_message_iter_get_boolean),
10809         (dbus_message_iter_get_boolean_array),
10810         (dbus_message_iter_get_int32_array),
10811         (dbus_message_iter_get_uint32_array),
10812         (dbus_message_iter_get_double_array),
10813         (dbus_message_iter_get_byte_array),
10814         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10815         (check_message_handling):
10816         Add support for getting empty arrays and dicts.
10817
10818         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10819         Don't do any validation at all for now, that's better than just checking
10820         for ASCII.
10821
10822         * test/data/valid-messages/emptiness.message:
10823         New test message with lots of empty arrays.
10824
10825 2003-03-16  Havoc Pennington  <hp@pobox.com>
10826
10827         * dbus/dbus-connection.c
10828         (_dbus_connection_queue_received_message_link): new function that
10829         can't fail due to OOM
10830
10831         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10832         new function pops a message together with a list link
10833         containing it.
10834
10835         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10836         message queuing functions to avoid needing to alloc memory
10837
10838 2003-03-16  Havoc Pennington  <hp@pobox.com>
10839
10840         Oops - test code was only testing failure of around 30 of the
10841         mallocs in the test path, but it turns out there are 500+
10842         mallocs. I believe this was due to misguided linking setup such
10843         that there was one copy of dbus_malloc etc. in the daemon and one
10844         in the shared lib, and only daemon mallocs were tested. In any
10845         case, the test case now tests all 500+ mallocs, and doesn't pass
10846         yet, though there are lots of fixes in this patch.
10847
10848         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10849         this so that it doesn't need to allocate memory, since it
10850         has no way of indicating failure due to OOM (and would be
10851         annoying if it did).
10852
10853         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10854
10855         * bus/Makefile.am: rearrange to create two self-contained
10856         libraries, to avoid having libraries with overlapping symbols.
10857         that was resulting in weirdness, e.g. I'm pretty sure there
10858         were two copies of global static variables.
10859
10860         * dbus/dbus-internals.c: move the malloc debug stuff to
10861         dbus-memory.c
10862
10863         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10864         empty.
10865
10866         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10867
10868         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10869         on failure.
10870
10871         * bus/dispatch.c (bus_dispatch_add_connection): free
10872         message_handler_slot when no longer using it, so
10873         memory leak checkers are happy for the test suite.
10874
10875         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10876
10877         * bus/bus.c (new_connection_callback): disconnect in here if
10878         bus_connections_setup_connection fails.
10879
10880         * bus/connection.c (bus_connections_unref): fix to free the
10881         connections
10882         (bus_connections_setup_connection): if this fails, don't
10883         disconnect the connection, just be sure there are no side
10884         effects.
10885
10886         * dbus/dbus-string.c (undo_alignment): unbreak this
10887
10888         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10889         leaking
10890         (_dbus_auth_new): fix the order in which we free strings
10891         on OOM failure
10892
10893         * bus/connection.c (bus_connection_disconnected): fix to
10894         not send ServiceDeleted multiple times in case of memory
10895         allocation failure
10896
10897         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10898         get the base service name
10899         (dbus_bus_register_client): don't return base service name,
10900         instead store it on the DBusConnection and have an accessor
10901         function for it.
10902         (dbus_bus_register_client): rename dbus_bus_register()
10903
10904         * bus/dispatch.c (check_hello_message): verify that other
10905         connections on the bus also got the correct results, not
10906         just the one sending hello
10907
10908 2003-03-15  Havoc Pennington  <hp@pobox.com>
10909
10910         Make it pass the Hello handling test including all OOM codepaths.
10911         Now to do other messages...
10912
10913         * bus/services.c (bus_service_remove_owner): fix crash when
10914         removing owner from an empty list of owners
10915         (bus_registry_ensure): don't leave service in the list of
10916         a connection's owned services if we fail to put the service
10917         in the hash table.
10918
10919         * bus/connection.c (bus_connection_preallocate_oom_error): set
10920         error flag on the OOM error.
10921
10922         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10923         handle _dbus_transport_set_connection failure
10924
10925         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10926         to create watches up front and simply enable/disable them as
10927         needed.
10928         (unix_connection_set): this can now fail on OOM
10929
10930         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10931         of enabling/disabling a watch or timeout.
10932
10933         * bus/loop.c (bus_loop_iterate): don't touch disabled
10934         watches/timeouts
10935
10936         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10937
10938 2003-03-15  Havoc Pennington  <hp@pobox.com>
10939
10940         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10941         write useful test code, after all that futzing around ;-)
10942
10943         Test does not yet pass because we can't handle OOM in
10944         _dbus_transport_messages_pending (basically,
10945         dbus_connection_preallocate_send() does not prealloc the write
10946         watch). To fix this, I think we need to add new stuff to
10947         set_watch_functions, namely a SetEnabled function so we can alloc
10948         the watch earlier, then enable it later.
10949
10950         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10951         dbus-memory.c to the convenience lib
10952
10953         * bus/test.c: rename some static functions to keep them clearly
10954         distinct from stuff in connection.c. Handle client disconnection.
10955
10956 2003-03-14  Havoc Pennington  <hp@pobox.com>
10957
10958         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10959         transport, tests more of the real codepath. Set up clients
10960         with bus_setup_debug_client.
10961
10962         * bus/test.c (bus_setup_debug_client): function to set up debug
10963         "clients" on the main loop
10964
10965         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10966         support
10967
10968         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10969         server type
10970
10971         * dbus/dbus-server-debug.c: support a debug server based on pipes
10972
10973         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10974         (_dbus_close): new function
10975
10976         * configure.in: check for socketpair
10977
10978 2003-03-14  Havoc Pennington  <hp@redhat.com>
10979
10980         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10981         cheesy hack
10982
10983         * dbus/dbus-transport-debug.c: rework this a good bit to be
10984         less complicated. hopefully still works.
10985
10986         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10987         manually
10988
10989         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10990         after running it
10991
10992         * dbus/dbus-message.c (dbus_message_copy): rename from
10993         dbus_message_new_from_message, fix it up to copy
10994         all the message fields, add test case
10995
10996         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10997         not quite passing yet
10998
10999 2003-03-14  Havoc Pennington  <hp@pobox.com>
11000
11001         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11002         until no work remains" in test code. (the large diff here
11003         is just code movement, no actual changes)
11004
11005         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11006         1, no point waiting around for test code.
11007         (_dbus_server_debug_accept_transport): unref the timeout
11008         after adding it (right?)
11009
11010         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11011
11012 2003-03-13  Havoc Pennington  <hp@redhat.com>
11013
11014         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11015         out of memory
11016
11017         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11018         of memory
11019
11020         * dbus/dbus-connection.h: Make AddWatchFunction and
11021         AddTimeoutFunction return a bool so they can fail on out-of-memory
11022
11023         * bus/bus.c (bus_context_new): set up timeout handlers
11024
11025         * bus/connection.c (bus_connections_setup_connection): set up
11026         timeout handlers
11027
11028         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11029         can fail
11030
11031         * bus/bus.c (bus_context_new): adapt to changes
11032
11033         * bus/connection.c: adapt to changes
11034
11035         * test/watch.c: adapt to DBusWatch changes
11036
11037         * bus/dispatch.c (bus_dispatch_test): started adding this but
11038         didn't finish
11039
11040 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11041
11042         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11043
11044 2003-03-13  Havoc Pennington  <hp@pobox.com>
11045
11046         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11047         set up a test framework as for the library
11048
11049 2003-03-12  Havoc Pennington  <hp@pobox.com>
11050
11051         Throughout: purge global variables, introduce BusActivation,
11052         BusConnections, BusRegistry, etc. objects instead.
11053
11054         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11055         message bus object
11056
11057         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11058         going to redo this a bit differently I think
11059
11060 2003-03-12  Havoc Pennington  <hp@redhat.com>
11061
11062         Mega-patch that gets the message bus daemon initially handling
11063         out-of-memory. Work still needed. Also lots of random
11064         moving stuff to DBusError instead of ResultCode.
11065
11066         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11067
11068         * dbus/dbus-connection.c
11069         (dbus_connection_send_with_reply_and_block): use DBusError
11070
11071         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11072         DBusResultCode
11073
11074         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11075         code here, as the only failure possible is OOM.
11076
11077         * bus/connection.c (bus_connection_disconnect):
11078         rename bus_connection_disconnected as it's a notification only
11079
11080         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11081         "name" on get_args failure, should be done by get_args;
11082         don't disconnect client for bad args, just return an error.
11083         (bus_driver_handle_service_exists): ditto
11084
11085         * bus/services.c (bus_services_list): NULL-terminate returned array
11086
11087         * bus/driver.c (bus_driver_send_service_lost)
11088         (bus_driver_send_service_acquired): send messages from driver to a
11089         specific client to the client's unique name, not to the broadcast
11090         service.
11091
11092         * dbus/dbus-message.c (decode_header_data): reject messages that
11093         contain no name field
11094         (_dbus_message_get_client_serial): rename to
11095         dbus_message_get_serial and make public
11096         (_dbus_message_set_serial): rename from set_client_serial
11097         (_dbus_message_set_reply_serial): make public
11098         (_dbus_message_get_reply_serial): make public
11099
11100         * bus/connection.c (bus_connection_foreach): allow stopping
11101         iteration by returning FALSE from foreach function.
11102
11103         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11104         (dbus_connection_free_preallocated_send)
11105         (dbus_connection_preallocate_send): new API for sending a message
11106         without possibility of malloc failure.
11107         (dbus_connection_send_message): rename to just
11108         dbus_connection_send (and same for whole function family)
11109
11110         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11111
11112         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11113
11114         * bus/activation.c: handle/return errors
11115
11116         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11117
11118         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11119         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11120         (_dbus_result_from_errno): move to this file
11121
11122 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11123
11124         * dbus/dbus-marshal.c:
11125         (_dbus_marshal_set_string):
11126         Take a length argument so we can marshal the correct string
11127         length.
11128
11129         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11130         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11131         (_dbus_marshal_test):
11132         * dbus/dbus-marshal.h:
11133         Add support for marshalling and demarshalling dicts.
11134
11135         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11136         Add support for TYPE DICT.
11137
11138         * dbus/dbus-message.c: (set_string_field):
11139         Adjust header padding.
11140
11141         (dbus_message_append_args_valist), (dbus_message_append_dict),
11142         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11143         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11144         (check_message_handling), (check_have_valid_message):
11145         * dbus/dbus-message.h:
11146         Add functions for setting and getting dicts.
11147
11148         * dbus/dbus-protocol.h:
11149         Add DBUS_TYPE_DICT.
11150
11151         * dbus/dbus.h:
11152         Add dbus-dict.h
11153
11154         * doc/dbus-specification.sgml:
11155         Add information about how dicts are marshalled.
11156
11157         * test/data/invalid-messages/dict-with-nil-value.message:
11158         * test/data/invalid-messages/too-short-dict.message:
11159         * test/data/valid-messages/dict-simple.message:
11160         * test/data/valid-messages/dict.message:
11161         Add sample messages containing dicts.
11162
11163 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11164
11165         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11166
11167 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11168
11169         * dbus/Makefile.am:
11170         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11171         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11172         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11173         (dbus_dict_set_double), (dbus_dict_set_string),
11174         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11175         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11176         (dbus_dict_set_string_array), (_dbus_dict_test):
11177         * dbus/dbus-dict.h:
11178         Fix according to comments from Havoc.
11179
11180 2003-03-06  Michael Meeks  <michael@server.home>
11181
11182         * configure.in: if we don't have kde-config, disable have_qt.
11183
11184 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11185
11186         * dbus/Makefile.am:
11187         Add dbus-dict.[ch]
11188
11189         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11190         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11191         (dbus_dict_remove), (dbus_dict_get_value_type),
11192         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11193         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11194         (dbus_dict_put_double), (dbus_dict_put_string),
11195         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11196         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11197         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11198         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11199         (dbus_dict_get_double), (dbus_dict_get_string),
11200         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11201         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11202         (dbus_dict_get_string_array), (_dbus_dict_test):
11203         * dbus/dbus-dict.h:
11204         Add DBusDict implementation
11205
11206         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11207         * dbus/dbus-test.h:
11208         Add _dbus_dict_test
11209
11210 2003-03-04  Havoc Pennington  <hp@pobox.com>
11211
11212         * test/data/auth/*: adapt to changes
11213
11214         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11215         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11216         userid
11217
11218         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11219         more stuff from being in a context name, to make the protocol
11220         simpler to deal with
11221
11222         * dbus/dbus-errors.c (dbus_error_has_name): new function
11223         (dbus_error_is_set): new function
11224
11225         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11226         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11227
11228         * dbus/dbus-connection.c (dbus_connection_flush): also read
11229         messages during a flush operation
11230
11231         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11232
11233 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11234
11235         * configure.in: Check for gethostbyname on Solaris.
11236
11237         * dbus/dbus-transport.c: (_dbus_transport_open):
11238         Remove duplicate "tcp" entry.
11239
11240         * doc/dbus-specification.sgml:
11241         Clarify some things.
11242
11243 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11244
11245         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11246         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11247         (_dbus_keyring_test):
11248         * dbus/dbus-md5.c: (_dbus_md5_compute):
11249         * dbus/dbus-sha.c: (_dbus_sha_compute):
11250         Plug memory leaks.
11251
11252 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11253
11254         * README: Add some things.
11255
11256 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11257
11258         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11259         after case DBUS_TYPE_BOOELAN.
11260
11261 2003-03-02  Havoc Pennington  <hp@pobox.com>
11262
11263         * test/break-loader.c (randomly_set_extreme_ints): add test that
11264         sets really huge and small integers
11265
11266         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11267         that length of boolean array fits in the string, and that
11268         string has room for boolean value in single-bool case.
11269
11270         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11271         optional value to "ALIGN" command which is what to fill the
11272         alignment with.
11273
11274         * test/data/valid-messages/no-padding.message: add regression
11275         test for the message padding problem
11276
11277 2003-03-02  Havoc Pennington  <hp@pobox.com>
11278
11279         * dbus/dbus-message.c (decode_header_data): fix to always init
11280         message_padding, from Benjamin Dauvergne
11281
11282 2003-03-02  Havoc Pennington  <hp@pobox.com>
11283
11284         * configure.in: 0.5
11285
11286         * NEWS: Update.
11287
11288 2003-03-01  Joe Shaw  <joe@assbarn.com>
11289
11290         * configure.in: Check for "struct cmsgcred" and try to access its
11291         members for BSD-like unices.
11292
11293         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11294         _dbus_read_credentials_unix_socket().
11295         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11296         read() for reading the credential byte off the unix socket.  Use
11297         struct cmsgcred on systems that support it.
11298
11299 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11300
11301         * glib/Makefile.am:
11302         * configure.in:
11303         Make gthreads-2.0 dependency optional. Don't build thread test if
11304         its not found.
11305
11306 2003-02-27  Havoc Pennington  <hp@pobox.com>
11307
11308         * dbus/dbus-connection.c
11309         (dbus_connection_send_message_with_reply_and_block): fix doh!
11310         doh! doh! bug that resulted in never removing a reply from the
11311         queue, no wonder we called get_reply_serial so much ;-)
11312
11313         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11314         and client serial instead of demarshaling them every time
11315
11316 2003-02-27  Havoc Pennington  <hp@pobox.com>
11317
11318         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11319         more inlined, using dbus-string-private.h, speeds things up
11320         substantially
11321
11322         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11323         when freeing the string
11324         (_dbus_string_steal_data): fix for align offset
11325         (undo_alignment): new function
11326
11327 2003-02-26  Havoc Pennington  <hp@redhat.com>
11328
11329         All kinds of audit fixes from Owen, plus initial attempt to
11330         handle unaligned memory returned from malloc.
11331
11332         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11333         leave room for align_offset and nul byte
11334         (fixup_alignment): function to track an align_offset and
11335         ensure real->str is aligned
11336         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11337         to allow a nul byte plus align offset
11338         (_dbus_string_lock): fix overflow issue
11339         (_dbus_string_init_const_len): add assertions on sanity of len,
11340         assign allocated to be ALLOCATION_PADDING larger than len
11341         (set_length): fixup the overflow handling
11342         (_dbus_string_get_data_len): fix overflow in assertion
11343         (open_gap): detect overflow in size of gap to be opened
11344         (_dbus_string_lengthen): add overflow check
11345         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11346         (_dbus_string_append): add overflow check
11347         (_dbus_string_append_unichar): overflow
11348         (_dbus_string_delete): fix overflow in assertion
11349         (_dbus_string_copy_len): overflow in assertion
11350         (_dbus_string_replace_len): overflows in assertions
11351         (_dbus_string_find): change to implement in terms of
11352         _dbus_string_find_to
11353         (_dbus_string_find_to): assorted fixage
11354         (_dbus_string_equal_c_str): assert c_str != NULL,
11355         fix logic so the function works
11356         (_dbus_string_ends_with_c_str): fix overflow thingy
11357         (_dbus_string_base64_encode): overflow fix
11358         (_dbus_string_validate_ascii): overflow
11359         (_dbus_string_validate_nul): overflow
11360
11361 2003-02-26  Havoc Pennington  <hp@redhat.com>
11362
11363         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11364
11365 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11366
11367         * configure.in:
11368         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11369
11370         * dbus/dbus-connection.c:
11371         * dbus/dbus-connection.h:
11372         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11373         Add dbus_connection_set_wakeup_main_function and use it when queueing
11374         incoming and outgoing messages.
11375
11376
11377         * dbus/dbus-dataslot.c:
11378         Threadsafe usage of DBusDataSlotAllocator
11379
11380         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11381         dbus_new can fail.
11382
11383         * dbus/dbus-server-unix.c:
11384         Add todo comment
11385
11386         * glib/dbus-gmain.c:
11387         Implement the new wakeup functions for glib.
11388
11389         * glib/Makefile.am:
11390         * glib/test-thread-client.c:
11391         * glib/test-thread-server.c:
11392         * glib/test-thread.h:
11393         Initial cut at some thread test code. Not really done yet.
11394
11395 2003-02-26  Havoc Pennington  <hp@pobox.com>
11396
11397         * dbus/dbus-connection.c
11398         (dbus_connection_send_message_with_reply_and_block): fix crash
11399         where we ref'd the outgoing message instead of the returned reply
11400
11401         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11402         at the end of this function, so if we didn't need to read for
11403         authentication, we reinstall it for receiving messages
11404
11405         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11406         a NULL sender for peer-to-peer case
11407
11408         * dbus/dbus-transport-unix.c (check_read_watch): handle
11409         !authenticated case correctly
11410
11411         * glib/dbus-gmain.c: add support for DBusServer
11412
11413         * dbus/dbus-server.c: add data slot support
11414
11415         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11416         return values and handle errors
11417
11418         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11419         DBusConnection
11420
11421         * Doxyfile.in (INPUT): add glib subdir
11422
11423         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11424         setup_with_g_main instead of hookup_with_g_main; write docs
11425
11426 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11427
11428         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11429         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11430         * dbus/dbus-message.c: (dbus_message_append_boolean),
11431         (dbus_message_append_boolean_array),
11432         (dbus_message_get_args_valist), (_dbus_message_test):
11433         * dbus/dbus-message.h:
11434         * doc/dbus-specification.sgml:
11435         Various fixes as pointed out by Havoc.
11436
11437         * test/data/invalid-messages/bad-boolean-array.message:
11438         * test/data/invalid-messages/bad-boolean.message:
11439         Add invalid boolean value test cases.
11440
11441 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11442
11443         * dbus/dbus-internals.c: (_dbus_type_to_string):
11444         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11445         (_dbus_marshal_validate_arg):
11446         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11447         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11448         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11449         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11450         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11451         (dbus_message_iter_get_double),
11452         (dbus_message_iter_get_boolean_array), (message_iter_test):
11453         * dbus/dbus-message.h:
11454         * dbus/dbus-protocol.h:
11455         * doc/dbus-specification.sgml:
11456         * test/data/valid-messages/lots-of-arguments.message:
11457         Add support for boolean and boolean array types.
11458
11459 2003-02-23  Havoc Pennington  <hp@pobox.com>
11460
11461         * dbus/dbus-keyring.c: finish most of this implementation and
11462         simple unit test
11463
11464         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11465         these barf if the error isn't cleared to NULL
11466
11467         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11468         (_dbus_create_directory): new function
11469
11470         * dbus/dbus-errors.c (dbus_set_error): fix warning
11471
11472         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11473         (_dbus_string_hex_decode): new function
11474         (test_hex_roundtrip): test code
11475
11476         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11477
11478         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11479
11480         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11481         the save-to-temp/rename trick to atomically write the new file
11482         (_dbus_string_parse_uint): new function
11483
11484 2003-02-22  Havoc Pennington  <hp@pobox.com>
11485
11486         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11487
11488 2003-02-22  Havoc Pennington  <hp@pobox.com>
11489
11490         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11491         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11492
11493         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11494
11495         * dbus/test/data/sha-1: add US government test suite for SHA-1
11496
11497 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11498
11499         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11500         Make string arrays NULL-terminated.
11501
11502         * dbus/dbus-memory.c: (dbus_free_string_array):
11503         * dbus/dbus-memory.h:
11504         New function for freeing NULL-terminated string arrays.
11505
11506         * dbus/dbus-message-builder.c: (append_quoted_string),
11507         (_dbus_message_data_load):
11508         Add support for array types.
11509
11510         * dbus/dbus-message.c: (check_message_handling):
11511         Add more types as test cases.
11512
11513         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11514         (_dbus_string_parse_double):
11515         Add the start offset to the end offset.
11516
11517         * test/data/valid-messages/lots-of-arguments.message:
11518         New test message with lots of arguments.
11519
11520 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11521
11522         * dbus/dbus-message.c: (dbus_message_append_nil),
11523         (dbus_message_append_int32), (dbus_message_append_uint32),
11524         (dbus_message_append_double), (dbus_message_append_string),
11525         (dbus_message_append_int32_array),
11526         (dbus_message_append_uint32_array),
11527         (dbus_message_append_double_array),
11528         (dbus_message_append_byte_array),
11529         (dbus_message_append_string_array):
11530         Fix all out-of-memory handling in these functions.
11531
11532 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11533
11534         * dbus/dbus-message.c: (dbus_message_append_nil):
11535         Fix a silly.
11536
11537 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11538
11539         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11540         (dbus_message_append_nil), (dbus_message_append_int32_array),
11541         (dbus_message_append_uint32_array),
11542         (dbus_message_append_double_array),
11543         (dbus_message_append_byte_array),
11544         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11545         (dbus_message_iter_get_int32_array),
11546         (dbus_message_iter_get_uint32_array),
11547         (dbus_message_iter_get_double_array),
11548         (dbus_message_iter_get_byte_array),
11549         (dbus_message_iter_get_string_array):
11550
11551         * dbus/dbus-message.h:
11552         Add functions for appending and getting arrays.
11553
11554 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11555
11556         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11557         element size at least 8 bytes, fixes mempool tests on
11558         64-bit machines.
11559
11560 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11561
11562         * dbus/dbus-transport-unix.c (unix_do_iteration):
11563         Unlock the connection mutex during a blocking select call.
11564         Add todo about how we need a way to wake up the select.
11565
11566         * dbus/dbus-connection-internal.h:
11567         * dbus/dbus-connection.c:
11568         Add _dbus_connection_lock and _dbus_connection_unlock.
11569
11570 2003-02-19  Havoc Pennington  <hp@pobox.com>
11571
11572         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11573         Doxyfile.in, not Doxyfile
11574
11575         * dbus/dbus-keyring.c: do some hacking on this
11576
11577         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11578
11579         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11580         dbus_error_init
11581         (dbus_set_error): remove dbus_error_init, check for message ==
11582         NULL *before* we sprintf into it, and add @todo about including
11583         system headers in this file
11584
11585         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11586
11587         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11588
11589         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11590         get various bits of user information based on either username
11591         or user ID
11592         (_dbus_homedir_from_username): new function
11593
11594 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11595
11596         * configure.in:
11597         Add check for nonposix getpwnam_r
11598
11599         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11600         Align the pool element size to a sizeof (void *) boundary.
11601
11602         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11603         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11604         General Solaris fixes.
11605
11606         * test/data/valid-messages/simplest-manual.message:
11607         Explicitly state that we want little-endian packing.
11608
11609 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11610
11611         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11612
11613         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11614         Added to create a transport connecting using a tcp/ip socket.
11615
11616         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11617         to a tcp socket at given host and port.
11618         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11619         hostname and port.
11620
11621         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11622
11623         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11624         Added to create a server listening on a TCP/IP socket.
11625
11626 2003-02-19  Havoc Pennington  <hp@pobox.com>
11627
11628         Throughout: mop up all the Doxygen warnings and undocumented
11629         stuff.
11630
11631         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11632         to search any paths.
11633
11634         * dbus/dbus-threads.c: move global mutex initializers to
11635         dbus-internals.h, multiple prototypes was confusing doxygen
11636         besides being kind of ugly
11637
11638         * Doxyfile (PREDEFINED): have Doxygen define
11639         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11640         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11641         (do not abuse the feature! it's for stuff like the autogenerated
11642         macros in dbus-md5.c, not just for things you don't feel like
11643         documenting...)
11644
11645 2003-02-18  Havoc Pennington  <hp@pobox.com>
11646
11647         * dbus/dbus-string.c (_dbus_string_zero): new function
11648
11649         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11650         wrap it in some dbus-friendly API
11651
11652         * dbus/dbus-types.h: add 16-bit types
11653
11654 2003-02-18  Joe Shaw  <joe@assbarn.com>
11655
11656         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11657         credentials from our currently running process.
11658         (get_word): Fix a buglet where we were copying the entire length
11659         instead of relative to our position.
11660
11661         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11662         keys on the stack... it's 640k of data.
11663
11664         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11665         read the credentials byte off the socket, even if we don't have
11666         SO_PEERCRED.
11667         (_dbus_poll): Implement poll() using select() for systems which
11668         don't have it.
11669
11670         * glib/test-dbus-glib.c (main): Print out an error if no
11671         parameters are given.
11672
11673         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11674         can fallback to a secondary auth mechanism if the first fails.
11675
11676 2003-02-18  Havoc Pennington  <hp@pobox.com>
11677
11678         * AUTHORS: add Alex
11679
11680 2003-02-17  Havoc Pennington  <hp@pobox.com>
11681
11682         * doc/dbus-specification.sgml: lots of cosmetic
11683         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11684         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11685         s/server/bus/ (except in authentication section). Add a section
11686         "Message Bus Message Routing"
11687
11688 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11689
11690         Release 0.4
11691
11692         * NEWS: Update
11693
11694 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11695
11696         * doc/dbus-specification.sgml:
11697         Specification updates.
11698
11699 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11700
11701         * bus/activation.c: (bus_activation_init), (child_setup),
11702         (bus_activation_activate_service):
11703         * bus/activation.h:
11704         * bus/main.c: (main):
11705         Set DBUS_ADDRESS environment variable.
11706
11707         * dbus/dbus-errors.c: (dbus_set_error):
11708         Don't use va_copy since that's a C99 feature.
11709
11710         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11711         (_dbus_spawn_async):
11712         * dbus/dbus-sysdeps.h:
11713         Add child_setup_func to _dbus_spawn_async.
11714
11715         * doc/dbus-specification.sgml:
11716         Update specification.
11717
11718         * test/spawn-test.c: (setup_func), (main):
11719         Fix test.
11720
11721 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11722
11723         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11724         Added todo.
11725
11726 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11727
11728         * doc/.cvsignore:
11729         * doc/Makefile.am:
11730         * doc/dbus-test-plan.sgml:
11731         Add test plan document.
11732
11733         * test/Makefile.am:
11734         Fix distcheck.
11735
11736 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11737
11738         * dbus/dbus-message.c: (decode_header_data),
11739         (_dbus_message_loader_return_buffer):
11740         Set the header padding amount when loading a message.
11741
11742 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11743
11744         * bus/dispatch.c: (send_one_message):
11745         Only send broadcast messages to registered connections.
11746
11747         * dbus/dbus-message.c: (dbus_message_name_is):
11748         * dbus/dbus-message.h:
11749         New convenience function.
11750
11751         * dbus/dbus-transport-debug.c: (do_reading):
11752         Only dispatch one message per run.
11753
11754         * test/Makefile.am:
11755         * test/bus-test.c: (new_connection_callback), (die),
11756         (test_hello_client1_handler), (test_hello_client2_handler),
11757         (test_hello_replies), (main):
11758
11759         * test/bus-test-loop.[ch]:
11760         Add these.
11761
11762 2003-02-16  Havoc Pennington  <hp@pobox.com>
11763
11764         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11765         backward conditional
11766
11767 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11768
11769         * dbus/dbus-connection.c:
11770         Implement sent_message_with_reply. (with_reply_and block is still
11771         busted).
11772         Made dispatch_message not lose message if OOM.
11773
11774         * dbus/dbus-errors.h:
11775         Add NoReply error (for reply timeouts).
11776
11777 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11778
11779         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11780         Actually free keys and values when destroying hashtable.
11781
11782 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11783
11784         * dbus/dbus-auth.c: (client_try_next_mechanism):
11785         Plug a leak.
11786
11787         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11788         Return TRUE if there's no thread implementation around.
11789
11790         * glib/dbus-gmain.c: (free_source),
11791         (dbus_connection_hookup_with_g_main):
11792         Make sure to remove the GSource when the connection is finalized.
11793
11794 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11795
11796         * bus/dispatch.c: (bus_dispatch_message_handler):
11797         * dbus/dbus-errors.h:
11798         Return an error if someone tries to send a message to a service
11799         that doesn't exist.
11800
11801 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11802
11803         * bus/activation.c: (load_directory), (bus_activation_init),
11804         (bus_activation_activate_service):
11805         * bus/activation.h:
11806         * bus/driver.c:
11807         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11808         More work on the activation handling.
11809
11810         * dbus/dbus-errors.h:
11811         Add some error messages
11812
11813         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11814         * dbus/dbus-message.h:
11815         New function that creates an error message.
11816
11817         * dbus/dbus-protocol.h:
11818         Add ACTIVATE_SERVER message.
11819
11820         * dbus/dbus-server-unix.c: (unix_handle_watch),
11821         (_dbus_server_new_for_domain_socket):
11822         Call _dbus_fd_set_close_on_exec.
11823
11824         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11825         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11826         (_dbus_fd_set_close_on_exec):
11827         * dbus/dbus-sysdeps.h:
11828         Add _dbus_fd_set_close_on exec function. Also add function that checks
11829         that all open fds are set to close-on-exec and warns otherwise.
11830
11831         * dbus/dbus-transport-unix.c:
11832         (_dbus_transport_new_for_domain_socket):
11833         Call _dbus_fd_set_close_on_exec.
11834
11835 2003-02-16  Havoc Pennington  <hp@pobox.com>
11836
11837         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11838         allow people to avoid setting SIGPIPE to SIG_IGN
11839         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11840         we've been asked not to
11841
11842 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11843
11844         * dbus/dbus-list.c: (_dbus_list_append_link),
11845         (_dbus_list_prepend_link):
11846         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11847         (dbus_realloc):
11848         Warning fixes.
11849
11850 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11851
11852         * bus/Makefile.am:
11853         * bus/activation.c: (bus_activation_entry_free),
11854         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11855         * bus/activation.h:
11856         * bus/main.c: (main):
11857         Add simple activation support, doesn't work yet though.
11858
11859 2003-02-15   Zack Rusin  <zack@kde.org>
11860
11861         * qt/dbus-qthread.cpp:  small casting fix
11862
11863 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11864
11865         * dbus/dbus-errors.c: (dbus_set_error):
11866         * dbus/dbus-errors.h:
11867         Add a few errors and make dbus_set_error void.
11868
11869         * dbus/dbus-sysdeps.c:
11870         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11871         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11872         * dbus/dbus-sysdeps.h:
11873         Add _dbus_spawn_async.
11874
11875         * test/spawn-test.c: (main):
11876         Test for _dbus_spawn_async.
11877
11878 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11879
11880         * dbus/dbus-internals.h:
11881         Fix build without tests.
11882
11883         * dbus/dbus-list.c: (alloc_link):
11884         Fix a segfault when a malloc fails.
11885
11886         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11887         (dbus_malloc0), (dbus_realloc):
11888         Add support for malloc debugging.
11889
11890 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11891
11892         * dbus/dbus-threads.c:
11893         * dbus/dbus-threads.h:
11894         Add condvars. Remove static mutext from API.
11895         Implement static mutexes by initializing them from threads_init.
11896
11897         * glib/dbus-gthread.c:
11898         * qt/dbus-qthread.cpp:
11899         Update with the thread api changes.
11900
11901
11902         * dbus/dbus-list.c:
11903         * dbus/dbus-list.h:
11904         Turn StaticMutex into normal mutex + init function.
11905         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11906         _dbus_list_append_link, _dbus_list_prepend_link
11907
11908
11909         * dbus/dbus-sysdeps.c:
11910         * dbus/dbus-sysdeps.h:
11911         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11912         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11913
11914         * dbus/dbus-protocol.h:
11915         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11916
11917         * dbus/dbus-message.c:
11918         Make ref/unref atomic.
11919         Fix some docs.
11920
11921         * dbus/dbus-connection-internal.h:
11922         * dbus/dbus-connection.c:
11923         * dbus/dbus-connection.h:
11924         Make threadsafe.
11925         Change _peek to _borrow,_return & _steal_borrowed.
11926         Change disconnect callback to event.
11927         Make dbus_connection_dispatch_messages reentrant.
11928
11929         * dbus/dbus-transport.c:
11930         Don't ref the connection on calls to the transport
11931         implementation.
11932
11933         * dbus/dbus-message-handler.c:
11934         Make threadsafe.
11935
11936         * glib/dbus-gmain.c:
11937         Don't use peek_message anymore
11938
11939         * test/Makefile.am:
11940         * test/debug-thread.c:
11941         * test/debug-thread.h:
11942         Simple thread implementation that asserts() on deadlocks in
11943         single-threaded code.
11944
11945         * test/bus-test.c:
11946         (main) Call debug_threads_init.
11947
11948         * test/watch.c:
11949         Use disconnect message instead of disconnect callback.
11950
11951         * bus/connection.c:
11952         * bus/connection.h:
11953         Don't call dbus_connection_set_disconnect_function. Instead export
11954         bus_connection_disconnect.
11955
11956         * bus/dispatch.c:
11957         Call bus_connection_disconnect when we get a disconnected message.
11958
11959 2003-02-15  Havoc Pennington  <hp@pobox.com>
11960
11961         * dbus/dbus-message.c (dbus_message_new): fool around with the
11962         docs
11963
11964 2003-02-14  Havoc Pennington  <hp@pobox.com>
11965
11966         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11967
11968         * dbus/dbus-memory.c: fail if the debug functions indicate we
11969         should
11970
11971         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11972         (_dbus_decrement_fail_alloc_counter): debug functions to
11973         simulate memory allocation failures
11974
11975 2003-02-14  Havoc Pennington  <hp@pobox.com>
11976
11977         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11978         to DBusError
11979
11980 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11981
11982         * bus/driver.c: (bus_driver_handle_hello):
11983         * bus/driver.h:
11984         * bus/services.c: (bus_service_lookup):
11985         Reorder message sending so we get a more sane order.
11986
11987         * test/bus-test.c: (message_handler):
11988         Fix tyop.
11989
11990 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11991
11992         * bus/driver.c: (bus_driver_send_service_deleted),
11993         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11994         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11995         (bus_driver_send_welcome_message),
11996         (bus_driver_handle_list_services),
11997         (bus_driver_handle_acquire_service),
11998         (bus_driver_handle_service_exists):
11999         * dbus/dbus-bus.c: (dbus_bus_register_client),
12000         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12001         * dbus/dbus-errors.c: (dbus_result_to_string):
12002         * dbus/dbus-errors.h:
12003         * dbus/dbus-message.c: (dbus_message_append_args),
12004         (dbus_message_append_args_valist), (dbus_message_get_args),
12005         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12006         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12007         (dbus_message_iter_get_byte_array),
12008         (dbus_message_iter_get_string_array), (message_iter_test),
12009         (check_message_handling), (_dbus_message_test):
12010         * dbus/dbus-message.h:
12011         * test/bus-test.c: (main):
12012         Change fields to arguments in messages, so that they won't be
12013         confused with header fields.
12014
12015         * glib/test-dbus-glib.c: (main):
12016         Remove append_fields from hello message.
12017
12018 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12019
12020         * dbus/dbus-errors.c:
12021         * dbus/dbus-message.c:
12022         * dbus/dbus-string.c:
12023         Documentation fixes.
12024
12025 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12026
12027         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12028         (remove_timeout):
12029         Implement support for timeouts in dbus-glib.
12030
12031 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12032
12033         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12034         * dbus/dbus-message.c: (process_test_subdir):
12035         * test/break-loader.c: (find_breaks_based_on):
12036         Plug some memory leaks.
12037
12038 2003-02-13  Richard Hult  <rhult@codefactory.se>
12039
12040         * bus/main.c: Fix build.
12041
12042         * dbus/dbus-errors.h:
12043         * dbus/dbus-errors.c: Fix copyright for Anders.
12044
12045 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12046
12047         * bus/Makefile.am:
12048         Add utils.[ch]
12049
12050         * bus/connection.c: (bus_connection_foreach):
12051         Fix a warning.
12052
12053         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12054         (unescape_string), (new_section), (parse_section_start),
12055         (parse_key_value), (report_error), (bus_desktop_file_load),
12056         (bus_desktop_file_get_string):
12057         * bus/desktop-file.h:
12058         Use DBusError for error reporting.
12059
12060         * bus/dispatch.c: (send_one_message),
12061         (bus_dispatch_message_handler):
12062         * bus/driver.c: (bus_driver_send_service_deleted),
12063         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12064         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12065         (bus_driver_send_welcome_message),
12066         (bus_driver_handle_list_services),
12067         (bus_driver_handle_acquire_service),
12068         (bus_driver_handle_service_exists):
12069         * bus/loop.c: (bus_loop_run):
12070         * bus/main.c:
12071         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12072
12073         * bus/utils.c: (bus_wait_for_memory):
12074         * bus/utils.h:
12075         New files with general utility functions.
12076
12077         * dbus/dbus-internals.h:
12078         Remove _DBUS_HANDLE_OOM.
12079
12080 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12081
12082         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12083         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12084         * dbus/dbus-errors.h:
12085         Add DBusError structure.
12086
12087 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12088
12089         * test/data/valid-messages/standard-acquire-service.message:
12090         * test/data/valid-messages/standard-hello.message:
12091         * test/data/valid-messages/standard-list-services.message:
12092         * test/data/valid-messages/standard-service-exists.message:
12093         Add some standard messages.
12094
12095 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12096
12097         * bus/driver.c: (bus_driver_send_welcome_message),
12098         (bus_driver_handle_list_services),
12099         (bus_driver_handle_acquire_service),
12100         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12101         Update for API changes in libdbus.
12102
12103         * dbus/dbus-message.c: (dbus_message_new_reply):
12104         * dbus/dbus-message.h:
12105         Remove the name argument. The spec states that replies shouldn't
12106         have a name.
12107
12108 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12109
12110         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12111         (report_error), (bus_desktop_file_load), (lookup_section),
12112         (lookup_line), (bus_desktop_file_get_raw),
12113         (bus_desktop_file_get_string):
12114         * bus/desktop-file.h:
12115         Some fixes, and new functions for getting a key value from a section.
12116
12117 2003-02-13  Havoc Pennington  <hp@pobox.com>
12118
12119         * test/data/auth/fail-after-n-attempts.auth-script: new test
12120
12121         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12122         reject the client.
12123
12124 2003-02-13  Havoc Pennington  <hp@pobox.com>
12125
12126         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12127         dbus_credentials_match were backward
12128
12129         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12130         NO_CREDENTIALS and ROOT_CREDENTIALS
12131
12132         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12133         into here. Never process more commands after we've reached an
12134         end state; store further data as unused bytes.
12135
12136         * test/data/auth/*: add more auth tests
12137
12138         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12139         command to match exact string and EXPECT_UNUSED to match unused
12140         bytes
12141
12142         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12143
12144 2003-02-12  Havoc Pennington  <hp@pobox.com>
12145
12146         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12147         \r off of popped lines
12148
12149         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12150         scripts
12151
12152         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12153         SEND, append \r\n
12154
12155 2003-02-12  Havoc Pennington  <hp@pobox.com>
12156
12157         * dbus/Makefile.am: remove break-loader from the build, since it
12158         moved.
12159
12160         * configure.in: add --enable-gcov to turn on coverage profiling
12161         flags and disable optimization
12162
12163 2003-02-10  Havoc Pennington  <hp@pobox.com>
12164
12165         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12166         initial cut at test framework for DBusAuth from laptop.
12167         Doesn't quite work yet but it compiles and I need to get
12168         it off the 266mhz laptop. ;-)
12169
12170         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12171         fix a memleak in error case
12172
12173 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12174
12175         * bus/Makefile.am:
12176         * bus/desktop-file.c:
12177         * bus/desktop-file.h:
12178         Add a desktop file parser.
12179
12180 2003-02-11  Zack Rusin  <zack@kde.org>
12181
12182         * qt/message.[h|cpp]: sample implementation
12183         of the KDE wrapper for DBusMessage
12184
12185 2003-02-09  Zack Rusin  <zack@kde.org>
12186
12187         * test/bus-test.c: make_it_compile
12188         * doc/dbus-specification.sgml: minimal semantic fix
12189
12190 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12191
12192         Release 0.3
12193
12194         * NEWS: Update
12195
12196 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12197
12198         * dbus/Makefile.am:
12199         * dbus/dbus-break-loader.c:
12200         * test/Makefile.am:
12201         * test/break-loader.c:
12202         Move dbus-break-loader to test/ and rename it to break-loader.
12203
12204 2003-02-02  Havoc Pennington  <hp@pobox.com>
12205
12206         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12207         for code to manage cookies in your home directory
12208
12209         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12210
12211         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12212         to authenticate, then disconnect the client.
12213
12214 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12215
12216         * dbus/dbus-message.c (dbus_message_append_fields):
12217         Correct docs.
12218
12219 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12220
12221         * doc/dbus-specification.sgml:
12222         Update address format section.
12223
12224 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12225
12226         * test/Makefile.am:
12227         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12228         (message_handler), (new_connection_callback), (loop_quit),
12229         (loop_run), (main):
12230         Add bus test.
12231
12232 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12233
12234         * bus/driver.c: (bus_driver_handle_service_exists):
12235         Simplify the code a bit.
12236
12237         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12238         Fix a silly.
12239
12240 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12241
12242         * bus/Makefile.am:
12243         Add libdbus-daemon.la and link to it.
12244
12245 2003-02-01  James Willcox  <jwillcox@gnome.org>
12246
12247         * bus/driver.c: (bus_driver_handle_own_service):
12248         Actually include the service reply code in the message.
12249
12250 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12251
12252         * bus/driver.c: (bus_driver_handle_service_exists):
12253         Don't unref the incoming message.
12254
12255 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12256
12257         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12258
12259 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12260
12261         * dbus/dbus-server.c: (dbus_server_listen):
12262         * dbus/dbus-transport.c: (_dbus_transport_open):
12263         ifdef out the calls to the debug transport and server.
12264
12265 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12266
12267         * dbus/dbus-watch.c (dbus_watch_get_flags):
12268         Add note in the docs that ERROR or HANGUP won't be returned
12269         and are assumed always on.
12270
12271         * glib/dbus-gmain.c (add_watch):
12272         Always add IO_ERR | IO_HUP
12273
12274         * dbus/dbus-message.h:
12275         Add semicolon after dbus_message_iter_get_string_array().
12276         Makes qt code build again
12277
12278 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12279
12280         * bus/driver.c: (create_unique_client_name),
12281         (bus_driver_handle_hello):
12282         Don't take a name, just use a numeric id to identify
12283         each client.
12284
12285         * dbus/Makefile.am:
12286         * dbus/dbus-bus.c: (dbus_bus_register_client),
12287         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12288         * dbus/dbus-bus.h:
12289         Add new convenience functions for communicating with the bus.
12290
12291         * dbus/dbus-message.h:
12292
12293         * dbus/dbus-protocol.h:
12294         Fix a typo.
12295
12296 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12297
12298         * dbus/dbus-message.c (dbus_message_append_fields):
12299         Add some more doc comments.
12300
12301 2003-02-01  Havoc Pennington  <hp@pobox.com>
12302
12303         * dbus/dbus-break-loader.c (randomly_modify_length): change
12304         a 4-byte value in the message as if it were a length
12305
12306         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12307         execute bit on saved files
12308
12309 2003-02-01  Havoc Pennington  <hp@pobox.com>
12310
12311         * dbus/dbus-break-loader.c (main): new program to find messages
12312         that break the loader.
12313
12314         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12315         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12316
12317         * dbus/dbus-string.c (_dbus_string_set_byte): new
12318
12319 2003-01-31  Havoc Pennington  <hp@pobox.com>
12320
12321         * dbus/dbus-message.c: refactor the test code to be more general,
12322         in preparation for writing a "randomly permute test cases to
12323         try to break the loader" program.
12324
12325 2003-01-31  Havoc Pennington  <hp@pobox.com>
12326
12327         * doc/dbus-specification.sgml: work on the specification
12328
12329         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12330         the protocol version of the message.
12331
12332         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12333         no longer specifies that.
12334         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12335         1/2/3/4)
12336
12337         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12338         "break" for DBUS_TYPE_NIL, remove @todo
12339
12340 2003-01-31  Havoc Pennington  <hp@pobox.com>
12341
12342         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12343         just set_is_error/get_is_error as this is a commonly-used
12344         function, and write docs.
12345
12346 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12347
12348         * dbus/dbus-address.c: (dbus_address_entry_free):
12349         Free key and value lists.
12350
12351         * dbus/dbus-internals.c: (_dbus_type_to_string):
12352         Add the types we didn't have.
12353
12354         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12355         (_dbus_marshal_validate_arg):
12356         Add NIL types.
12357
12358         * dbus/dbus-message.c: (dbus_message_set_sender):
12359         Remove todo about being able to set sender to NULL.
12360
12361         (dbus_message_set_is_error_reply),
12362         (dbus_message_get_is_error_reply):
12363         * dbus/dbus-message.h:
12364         New functions.
12365
12366         * dbus/dbus-protocol.h:
12367         Add error reply flag.
12368
12369         * test/data/valid-messages/opposite-endian.message:
12370         Add NIL type to test.
12371
12372 2003-01-31  Havoc Pennington  <hp@pobox.com>
12373
12374         * doc/dbus-specification.sgml: fully specify the header.  Add
12375         flags and major protocol version, and change header/body len to
12376         unsigned.
12377
12378         * dbus/dbus-message-builder.c (append_saved_length): append length
12379         as uint32
12380
12381         * dbus/dbus-message.c (dbus_message_create_header): change header
12382         length and body length to unsigned. Add the new fields from the
12383         spec
12384         (_dbus_message_loader_return_buffer): unsigned header/body len
12385
12386 2003-01-30  Havoc Pennington  <hp@pobox.com>
12387
12388         * dbus/dbus-auth.c: rework to use only REJECTED, no
12389         MECHANISMS
12390
12391         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12392         use REJECTED, suggested by Mark McLoughlin
12393
12394 2003-01-30  Havoc Pennington  <hp@pobox.com>
12395
12396         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12397         a better way to report errors here. e.g.  "unix address lacks
12398         path" or something. also "no such file" when the path doesn't
12399         exist, etc.
12400
12401         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12402         leaking list nodes
12403         (dbus_parse_address): add @todo about documenting address format,
12404         and allowing , and ; to be escaped
12405
12406 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12407
12408         * dbus/Makefile.am:
12409         Add dbus-address.[ch]
12410
12411         * dbus/dbus-address.c: (dbus_address_entry_free),
12412         (dbus_address_entries_free), (create_entry),
12413         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12414         (dbus_parse_address), (_dbus_address_test):
12415         * dbus/dbus-address.h:
12416         New files for dealing with address parsing.
12417
12418         * dbus/dbus-connection.c:
12419         Document timeout functions.
12420
12421         * dbus/dbus-message.c:
12422         Document dbus_message_new_from_message.
12423
12424         * dbus/dbus-server-debug.c:
12425         Document.
12426
12427         * dbus/dbus-server.c: (dbus_server_listen):
12428         Parse address and use correct server implementation.
12429
12430         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12431         * dbus/dbus-string.h:
12432         New function with test.
12433
12434         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12435         * dbus/dbus-test.h:
12436         Add address tests.
12437
12438         * dbus/dbus-transport-debug.c:
12439         Document.
12440
12441         * dbus/dbus-transport.c: (_dbus_transport_open):
12442         Parse address and use correct transport implementation.
12443
12444 2003-01-30  Havoc Pennington  <hp@pobox.com>
12445
12446         * dbus/dbus-message.c: use message->byte_order instead of
12447         DBUS_COMPILER_BYTE_ORDER throughout.
12448         (dbus_message_create_header): pad header to align the
12449         start of the body of the message to 8-byte boundary
12450
12451         * dbus/dbus-marshal.h: make all the demarshalers take const
12452         DBusString arguments.
12453
12454         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12455         validate message args here, so we don't have to do slow validation
12456         later, and so we catch bad messages as they are incoming. Also add
12457         better checks on header_len and body_len. Also fill in
12458         message->byte_order
12459
12460         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12461         implemented properly)
12462         (_dbus_string_validate_nul): new function to check all-nul
12463
12464         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12465         get_arg_end_pos and remove all validation
12466         (_dbus_marshal_validate_arg): actually do validation here.
12467
12468 2003-01-29  Havoc Pennington  <hp@pobox.com>
12469
12470         * dbus/dbus-message.c (check_message_handling): fix assertion
12471         failure on set_client_serial
12472
12473 2003-01-28  Havoc Pennington  <hp@pobox.com>
12474
12475         * dbus/dbus-server-debug.c: Add doc section comments
12476
12477         * dbus/dbus-transport-debug.c: add doc section comments
12478
12479 2003-01-28  Havoc Pennington  <hp@redhat.com>
12480
12481         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12482         the reverse order from how I had it
12483         (_dbus_string_base64_encode): reverse encoding order. I was
12484         basically byteswapping everything during encoding.
12485
12486 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12487
12488         * dbus/dbus-connection-internal.h:
12489         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12490         (_dbus_connection_remove_timeout):
12491         Add functions for adding and removing timeouts.
12492
12493         * dbus/dbus-message.c: (dbus_message_new_from_message):
12494         Add new function that takes a message and creates an exact
12495         copy of it, but with the refcount set to 1.
12496         (check_message_handling):
12497         Fix build error.
12498
12499         * dbus/dbus-server-protected.h:
12500         * dbus/dbus-server.c: (_dbus_server_init_base),
12501         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12502         (dbus_server_set_timeout_functions):
12503         (_dbus_server_remove_timeout):
12504         New functions so that a server can add and remove timeouts.
12505
12506         (dbus_server_listen):
12507         Add commented out call to dbus_server_debug_new.
12508
12509         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12510         Actually set the handler, doh.
12511
12512         * dbus/dbus-transport.c: (_dbus_transport_open):
12513         Add commented out call to dbus_transport_debug_client_new.
12514
12515         * dbus/Makefile.am:
12516         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12517
12518 2003-01-28  Havoc Pennington  <hp@pobox.com>
12519
12520         * dbus/dbus-message.c (check_message_handling): function to check
12521         on the loaded message, iterates over it etc.
12522
12523 2003-01-28  Havoc Pennington  <hp@pobox.com>
12524
12525         * test/Makefile.am (dist-hook): fix make distdir
12526
12527         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12528
12529 2003-01-27  Havoc Pennington  <hp@pobox.com>
12530
12531         * dbus/dbus-mempool.c (time_for_size): replace printf with
12532         _dbus_verbose
12533
12534         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12535         empty lines; fix the SAVE_LENGTH stuff to be
12536         START_LENGTH/END_LENGTH so it actually works; couple other
12537         bugfixes
12538
12539         * test/Makefile.am (dist-hook): add dist-hook for .message files
12540
12541         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12542         can be constant or locked.
12543         (_dbus_string_free): allow freeing a const string as
12544         documented/intended
12545
12546         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12547
12548         * dbus/dbus-test-main.c (main): take an argument which is the
12549         directory containing test data
12550
12551         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12552         argument to this and load all the messages in test/data/
12553         checking that they can be loaded or not loaded as appropriate.
12554
12555 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12556
12557         * bus/dispatch.c: (bus_dispatch_message_handler):
12558         Dispatch messages sent to services.
12559
12560         * bus/driver.c: (bus_driver_send_service_deleted),
12561         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12562         (bus_driver_send_service_acquired):
12563         Add helper functions for sending service related messages.
12564
12565         (bus_driver_send_welcome_message):
12566         Send HELLO_REPLY instead of WELCOME.
12567
12568         (bus_driver_handle_list_services):
12569         Send LIST_SERVICES_REPLY instead of SERVICES.
12570
12571         (bus_driver_handle_own_service),
12572         (bus_driver_handle_service_exists):
12573         New message handlers.
12574
12575         (bus_driver_handle_message):
12576         Invoke new message handlers.
12577
12578         (bus_driver_remove_connection):
12579         Don't remove any services here since that's done automatically
12580         by bus_service_remove_owner now.
12581
12582         * bus/driver.h:
12583         New function signatures.
12584
12585         * bus/services.c: (bus_service_add_owner):
12586         Send ServiceAcquired message if we're the only primary owner.
12587
12588         (bus_service_remove_owner):
12589         Send ServiceAcquired/ServiceLost messages.
12590
12591         (bus_service_set_prohibit_replacement),
12592         (bus_service_get_prohibit_replacement):
12593         Functions for setting prohibit replacement.
12594
12595         (bus_service_has_owner):
12596         New function that checks if a connection is in the owner queue of
12597         a certain service.
12598
12599         * bus/services.h:
12600         Add new function signatures.
12601
12602         * dbus/dbus-list.c: (_dbus_list_test):
12603         Add tests for _dbus_list_remove_last and traversing the list backwards.
12604
12605         * dbus/dbus-list.h:
12606         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12607         go any further, so return NULL then.
12608
12609         * dbus/dbus-protocol.h:
12610         Add new messages, service flags and service replies.
12611
12612 2003-01-26  Havoc Pennington  <hp@pobox.com>
12613
12614         * dbus/dbus-message-builder.c: implement, completely untested.
12615
12616         * test/data/*: add data to be used in testing.
12617         ".message" files are our simple loadable text format.
12618         ".message-raw" will be binary dumps of messages.
12619
12620         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12621
12622 2003-01-26  Havoc Pennington  <hp@pobox.com>
12623
12624         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12625
12626         * dbus/dbus-errors.c (dbus_result_to_string): add
12627         file errors
12628
12629         * dbus/dbus-message-builder.c: new file, will contain code to load
12630         up messages from files. Not implemented yet.
12631
12632 2003-01-26  Havoc Pennington  <hp@pobox.com>
12633
12634         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12635         the sender by setting to NULL
12636
12637 2003-01-26  Havoc Pennington  <hp@pobox.com>
12638
12639         The unit tests pass, but otherwise untested.  If it breaks, the
12640         tests should have been better. ;-)
12641
12642         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12643         the connection.
12644
12645         * dbus/dbus-message.c: redo everything so we maintain
12646         message->header as the only copy of the various fields.
12647         This avoids the possibility of out-of-memory in some cases,
12648         for example dbus_message_lock() can't run out of memory anymore,
12649         and avoids extra copying. Figured I may as well go ahead and do
12650         this since it was busted for dbus_message_lock to not return
12651         failure on OOM, and dbus_message_write_header was totally
12652         unchecked for OOM. Also fixed some random other bugs.
12653
12654         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12655         that strings are nul-terminated. Also, end_pos can be equal
12656         to string length just not greater than, I think.
12657         (_dbus_marshal_set_int32): new function
12658         (_dbus_marshal_set_uint32): new function
12659         (_dbus_marshal_set_string): new function
12660
12661         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12662         a warning, init timeout_list to NULL
12663         (dbus_connection_send_message): don't use uninitialized variable
12664         "serial"
12665
12666         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12667
12668 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12669
12670         * bus/driver.c: (bus_driver_handle_hello),
12671         (bus_driver_send_welcome_message):
12672         Plug leaks
12673
12674 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12675
12676         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12677         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12678         (dbus_connection_unref):
12679         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12680         * dbus/dbus-message.c: (dbus_message_unref),
12681         Plug memory leaks.
12682
12683         (dbus_message_get_fields):
12684         Remove debugging printout.
12685
12686         (_dbus_message_loader_return_buffer):
12687         Don't store the header string.
12688
12689         (_dbus_message_test):
12690         Plug leaks.
12691
12692 2003-01-26  Richard Hult  <rhult@codefactory.se>
12693
12694         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12695         the file descriptor list, since it can change under us.
12696
12697 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12698
12699         * glib/dbus-gmain.c: (dbus_connection_prepare),
12700         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12701         (remove_watch), (dbus_connection_hookup_with_g_main):
12702         Rewrite the glib handling to use its own GSource instead of a
12703         GIOChannel so we can catch messages put in the queue while waiting
12704         for a reply.
12705
12706 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12707
12708         * bus/Makefile.am:
12709         * bus/connection.c: (connection_disconnect_handler),
12710         (connection_watch_callback), (bus_connection_setup):
12711         * bus/dispatch.c: (send_one_message),
12712         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12713         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12714         * bus/dispatch.h:
12715         * bus/driver.c: (bus_driver_send_service_deleted),
12716         (bus_driver_send_service_created), (bus_driver_handle_hello),
12717         (bus_driver_send_welcome_message),
12718         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12719         (bus_driver_handle_message):
12720         * bus/driver.h:
12721         Refactor code, put the message dispatching in its own file. Use
12722         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12723         is disconnected.
12724
12725 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12726
12727         * dbus/dbus-internals.h:
12728         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12729
12730         * dbus/dbus-message.c: (dbus_message_get_sender):
12731         * dbus/dbus-message.h:
12732         Implement dbus_message_get_sender.
12733
12734         * dbus/dbus-protocol.h:
12735         Add message and service defines.
12736
12737 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12738
12739         * dbus/dbus-connection.c: (dbus_connection_send_message):
12740         * dbus/dbus-message-internal.h:
12741         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12742         (dbus_message_write_header):
12743         Remove _dbus_messag_unlock and don't set the client serial on a
12744         message if one already exists.
12745
12746 2003-01-24  Havoc Pennington  <hp@pobox.com>
12747
12748         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12749         list_pool
12750
12751         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12752         on OOM
12753
12754 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12755
12756         * dbus/dbus-list.c: (alloc_link), (free_link):
12757         Use a memory pool for the links.
12758
12759 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12760
12761         * bus/connection.c: (bus_connection_foreach):
12762         * bus/connection.h:
12763         Add new bus_connection_foreach function.
12764
12765         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12766         Add function that broadcasts a message to all clients.
12767
12768         (bus_driver_send_service_created), (bus_driver_handle_hello),
12769         (bus_driver_send_welcome_message),
12770         (bus_driver_handle_list_services), (bus_driver_message_handler):
12771         Implement functions that take care of listing services, and notifying
12772         clients when new services are created.
12773
12774         * bus/services.c: (bus_services_list):
12775         * bus/services.h:
12776         Add new function that returns an array of strings with the currently
12777         registered services.
12778
12779         * glib/dbus-glib.h:
12780         * glib/dbus-gmain.c:
12781         Update copyright year.
12782
12783 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12784
12785         * dbus/dbus-connection.c: (dbus_connection_send_message):
12786         Unlock the message in case it was sent earlier.
12787
12788         (dbus_connection_send_message_with_reply_and_block):
12789         Remove the reply message from the list.
12790
12791         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12792         Set array_len and new_pos correctly.
12793
12794         (_dbus_marshal_test):
12795         Remove debug output.
12796
12797         * dbus/dbus-message-internal.h:
12798         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12799         New function that returns the reply serial.
12800
12801         (_dbus_message_unlock):
12802         New function that unlocks a message and resets its header.
12803
12804         (dbus_message_append_string_array),
12805         (dbus_message_get_fields_valist),
12806         (dbus_message_iter_get_field_type),
12807         (dbus_message_iter_get_string_array),
12808         (dbus_message_get_fields),
12809         (dbus_message_append_fields_valist):
12810         Handle string arrays.
12811
12812         (dbus_message_set_sender):
12813         Make this function public since the bus daemon needs it.
12814
12815         (decode_header_data):
12816         Set the reply serial to -1 initially.
12817
12818         * dbus/dbus-message.h:
12819         Add dbus_message_set_sender.
12820
12821 2003-01-24  Havoc Pennington  <hp@pobox.com>
12822
12823         * doc/dbus-specification.sgml: add some stuff
12824
12825 2003-01-22  Havoc Pennington  <hp@pobox.com>
12826
12827         * doc/dbus-specification.sgml: Start to document the protocol.
12828
12829 2003-01-22  Havoc Pennington  <hp@pobox.com>
12830
12831         * dbus/dbus-connection.c
12832         (dbus_connection_send_message_with_reply_and_block): add some @todo
12833
12834         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12835
12836 2003-01-21  Havoc Pennington  <hp@pobox.com>
12837
12838         (patch untested because can't compile)
12839
12840         * bus/driver.c (create_unique_client_name): make this function
12841         never recycle client names. Also, caller should initialize
12842         the DBusString.
12843
12844         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12845
12846 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12847
12848         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12849         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12850         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12851         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12852         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12853         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12854         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12855         * dbus/dbus-marshal.h:
12856         * dbus/dbus-protocol.h:
12857         Add support for marshalling and demarshalling integer, double
12858         and string arrays.
12859
12860 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12861
12862         * bus/Makefile.am:
12863         Add driver.[ch]
12864
12865         * bus/connection.c: (connection_disconnect_handler):
12866         Remove the connection from the bus driver's list.
12867
12868         (connection_watch_callback): Dispatch messages.
12869
12870         (free_connection_data): Free connection name.
12871
12872         (bus_connection_setup): Add connection to the bus driver's list.
12873         (bus_connection_remove_owned_service):
12874         (bus_connection_set_name), (bus_connection_get_name):
12875         Add functions for setting and getting the connection's name.
12876
12877         * bus/connection.h:
12878         Add function headers.
12879
12880         * bus/driver.c: (create_unique_client_name),
12881         (bus_driver_handle_hello_message),
12882         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12883         (bus_driver_add_connection), (bus_driver_remove_connection):
12884         * bus/driver.h:
12885         * bus/main.c:
12886         * bus/services.c: (bus_service_free):
12887         * bus/services.h:
12888         New file that handles communication and registreation with the bus
12889         itself.
12890
12891 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12892
12893         * dbus/dbus-connection.c: (dbus_connection_send_message):
12894         Add a new client_serial parameter.
12895
12896         (dbus_connection_send_message_with_reply):
12897         Remove a @todo since we've implemented the blocking function.
12898
12899         (dbus_connection_send_message_with_reply_and_block):
12900         New function that sends a message and waits for a reply and
12901         then returns the reply.
12902
12903         * dbus/dbus-connection.h:
12904         Add new functions.
12905
12906         * dbus/dbus-errors.c: (dbus_result_to_string):
12907         * dbus/dbus-errors.h:
12908         Add new DBUS_RESULT.
12909
12910         * dbus/dbus-message-internal.h:
12911         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12912         (_dbus_message_set_sender), (dbus_message_write_header),
12913         (dbus_message_new_reply), (decode_header_data),
12914         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12915         * dbus/dbus-message.h:
12916         Add new functions that set the reply serial and sender.
12917         Also marshal and demarshal them correctly and add test.
12918
12919         * dbus/dbus-protocol.h:
12920         Add new DBUS_MESSAGE_TYPE_SENDER.
12921
12922         * glib/dbus-glib.h:
12923         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12924         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12925         (dbus_connection_hookup_with_g_main):
12926         * glib/test-dbus-glib.c: (main):
12927         Rewrite to use GIOChannel and remove the GSource crack.
12928
12929         * test/echo-client.c: (main):
12930         * test/watch.c: (check_messages):
12931         Update for changed APIs
12932
12933 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12934
12935         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12936
12937         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12938         Create a DBusTimeoutList.
12939         (dbus_connection_set_timeout_functions): Add new function to
12940         set timeout callbacks
12941
12942         * dbus/dbus-connection.h: Add public DBusTimeout API.
12943
12944         * dbus/dbus-message.c: (dbus_message_get_service):
12945         * dbus/dbus-message.h:  New function.
12946
12947         * dbus/dbus-server.c: Fix small doc typo.
12948
12949         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12950
12951 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12952
12953         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12954         of the string, just as long as specified.
12955
12956 2003-01-19  Havoc Pennington  <hp@pobox.com>
12957
12958         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12959         new function
12960
12961         * dbus/dbus-server.c (dbus_server_set_max_connections)
12962         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12963         keep track of current number of connections, and add API for
12964         setting a max (but haven't implemented enforcing the max yet)
12965
12966 2003-01-18  Havoc Pennington  <hp@pobox.com>
12967
12968         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12969         reading/writing if read_watch != NULL or write_watch != NULL.
12970
12971         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12972         the message loader code to actually load message->header and
12973         message->body into the newly-created message.
12974
12975         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12976         in OOM case
12977
12978         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12979         (dbus_connection_get_max_message_size)
12980         (dbus_connection_set_max_live_messages_size)
12981         (dbus_connection_get_max_live_messages_size): implement some
12982         resource limitation functions
12983
12984         * dbus/dbus-resources.c: new file implementing some of the
12985         resource limits stuff
12986
12987         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12988         missing docs, add @todo to handle OOM etc.
12989
12990         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12991         docs
12992
12993 2003-01-18  Havoc Pennington  <hp@pobox.com>
12994
12995         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12996         connection if it hasn't been already.
12997
12998         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12999         replace with DisconnectFunction.
13000
13001 2003-01-18  Havoc Pennington  <hp@pobox.com>
13002
13003         Building --disable-verbose-mode --disable-asserts --disable-tests
13004         cuts the library from 112K to 45K or so
13005
13006         * configure.in: check for varargs macro support,
13007         add --enable-verbose-mode, --enable-asserts.
13008
13009         * dbus/dbus-internals.h (_dbus_assert): support
13010         DBUS_DISABLE_ASSERT
13011         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13012
13013 2003-01-18  Havoc Pennington  <hp@pobox.com>
13014
13015         * dbus/dbus-test.c: include config.h so that tests actually run
13016
13017         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13018         so the failure mode when that assumption fails will be plenty
13019         obvious.
13020
13021 2003-01-18  Havoc Pennington  <hp@pobox.com>
13022
13023         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13024
13025         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13026         the distribution
13027
13028         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13029         since we don't want to use those in make check
13030
13031 2003-01-15  Havoc Pennington  <hp@redhat.com>
13032
13033         Release 0.2
13034
13035         * NEWS: update
13036
13037 2003-01-15  Havoc Pennington  <hp@redhat.com>
13038
13039         * test/Makefile.am: fix so that test source code ends up in the
13040         distribution on make distcheck
13041
13042 2003-01-15  Havoc Pennington  <hp@redhat.com>
13043
13044         Release 0.1.
13045
13046         * NEWS: update
13047
13048 2003-01-15  Havoc Pennington  <hp@redhat.com>
13049
13050         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13051         fix build when --disable-tests
13052
13053         * Makefile.am (EXTRA_DIST): put HACKING in here
13054
13055         * HACKING: document procedure for making a tarball release.
13056
13057 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13058
13059         * bus/connection.c: (connection_error_handler),
13060         (bus_connection_setup):
13061         * bus/main.c: (main):
13062         Make sure that the DBusConnectionData struct is NULLed
13063         out to prevent a segfault.
13064
13065         * dbus/dbus-errors.c: (dbus_result_to_string):
13066         * dbus/dbus-errors.h:
13067         * dbus/dbus-message.c: (dbus_message_get_fields),
13068         (dbus_message_get_fields_valist), (_dbus_message_test):
13069         * dbus/dbus-message.h:
13070         Make dbus_message_get_fields return a result code so we can
13071         track invalid fields as well as oom.
13072
13073 2003-01-11  Havoc Pennington  <hp@pobox.com>
13074
13075         * configure.in: change --enable-test/--enable-ansi action-if-given
13076         to enable_foo=$enableval instead of enable_foo=yes
13077
13078 2003-01-08  Havoc Pennington  <hp@pobox.com>
13079
13080         * dbus/dbus-string.c (_dbus_string_align_length): new function
13081
13082         * dbus/dbus-test-main.c: move main() for test app here
13083         * dbus/dbus-test.c
13084         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13085         symbol to run tests, because dbus-test isn't in the main
13086         library
13087
13088         Code review nitpicks.
13089
13090         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13091         for people with narrow emacs ;-). Assert client_serial was filled
13092         in. Assert message->name != NULL.
13093         (dbus_message_append_fields): have "first_field_type" arg separate
13094         from va list, needed for C++ binding that also uses varargs IIRC
13095         and helps with type safety
13096         (dbus_message_new): add @todo about using DBusString to store
13097         service/name internally
13098         (dbus_message_new): don't leak ->service and ->name on OOM later
13099         in the function
13100         (dbus_message_unref): free the service name
13101         (dbus_message_get_fields): same change to varargs
13102         i.e. first_field_type
13103         (_dbus_message_loader_return_buffer): assert that the message data
13104         is aligned (if not it's a bug in our code). Put in verbose griping
13105         about why we set corrupted = TRUE.
13106         (decode_header_data): add FIXME that char* is evil.  Was going to
13107         add FIXME about evil locale-specific string.h strncmp, but just
13108         switched to wacky string-as-uint32 optimization. Move check for
13109         "no room for field name" above get_const_data_len() to avoid
13110         assertion failure in get_const_data_len if we have trailing 2
13111         bytes or the like. Check for service and name fields being
13112         provided twice. Don't leak service/name on error. Require field
13113         names to be aligned to 4 bytes.
13114
13115         * dbus/dbus-marshal.c: move byte swap stuff to header
13116         (_dbus_pack_int32): uscore-prefix
13117         (_dbus_unpack_int32): uscore-prefix
13118         (_dbus_unpack_uint32): export
13119         (_dbus_demarshal_string): add @todo complaining about use of
13120         memcpy()
13121         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13122         handling allowing corrupt data to go unchecked
13123
13124 2003-01-08  Havoc Pennington  <hp@redhat.com>
13125
13126         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13127         to the select() as needed for authentication. (should be using
13128         _dbus_poll() not select, but for another day)
13129
13130         * dbus/dbus.h: include dbus/dbus-protocol.h
13131
13132 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13133
13134         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13135         dbus-connection.h
13136
13137 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13138
13139         * dbus/dbus-internals.c: (_dbus_type_to_string):
13140         New function that returns a string describing a type.
13141
13142         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13143         * dbus/dbus-marshal.h:
13144         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13145         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13146         (dbus_message_iter_get_byte_array):
13147         * dbus/dbus-message.h:
13148         Add new convenience functions for appending and getting message fields.
13149         Also add demarshalling routines for byte arrays.
13150
13151 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13152
13153         * dbus/dbus-connection-internal.h:
13154         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13155         (_dbus_connection_get_next_client_serial),
13156         (dbus_connection_send_message):
13157         * dbus/dbus-internals.h:
13158         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13159         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13160         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13161         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13162         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13163         (_dbus_verbose_bytes), (_dbus_marshal_test):
13164         * dbus/dbus-marshal.h:
13165         * dbus/dbus-message-internal.h:
13166         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13167         (dbus_message_write_header), (_dbus_message_lock),
13168         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13169         (dbus_message_get_name), (dbus_message_append_int32),
13170         (dbus_message_append_uint32), (dbus_message_append_double),
13171         (dbus_message_append_string), (dbus_message_append_byte_array),
13172         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13173         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13174         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13175         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13176         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13177         (decode_header_data), (_dbus_message_loader_return_buffer),
13178         (message_iter_test), (_dbus_message_test):
13179         * dbus/dbus-message.h:
13180         * dbus/dbus-protocol.h:
13181         * dbus/dbus-test.c: (main):
13182         * dbus/dbus-test.h:
13183         * glib/test-dbus-glib.c: (message_handler), (main):
13184         * test/echo-client.c: (main):
13185         * test/watch.c: (check_messages):
13186         Make messages sendable and receivable for real.
13187
13188 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13189
13190         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13191         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13192         * dbus/dbus-message.c: (dbus_message_append_int32),
13193         (dbus_message_append_uint32), (dbus_message_append_double),
13194         (dbus_message_append_string), (dbus_message_append_byte_array):
13195         Handle OOM restoration.
13196
13197 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13198
13199         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13200         (_dbus_demarshal_string), (_dbus_marshal_test):
13201         * dbus/dbus-marshal.h:
13202         * dbus/dbus-message.c: (dbus_message_get_name),
13203         Document these functions.
13204
13205         (dbus_message_append_int32), (dbus_message_append_uint32),
13206         (dbus_message_append_double), (dbus_message_append_string),
13207         (dbus_message_append_byte_array):
13208         * dbus/dbus-message.h:
13209         Add functions for adding message fields of different types.
13210
13211         * dbus/dbus-protocol.h:
13212         Add the different types.
13213
13214 2003-01-05  Havoc Pennington  <hp@pobox.com>
13215
13216         * bus/connection.c: implement routines for handling connections,
13217         first thing is keeping a list of owned services on each connection
13218         and setting up watches etc.
13219
13220         * bus/services.c: implement a mapping from service names to lists
13221         of connections
13222
13223         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13224
13225         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13226         to use static mutexes for global data
13227
13228         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13229         collection of functions to set/get application-specific data
13230         on the DBusConnection.
13231
13232 2003-01-04  Havoc Pennington  <hp@pobox.com>
13233
13234         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13235         (_dbus_poll): new function
13236
13237         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13238         copied from GLib
13239
13240         * bus/loop.c: initial code for the daemon main loop
13241
13242 2003-01-04  Havoc Pennington  <hp@pobox.com>
13243
13244         * test/watch.c (error_handler): make it safe if the error handler
13245         is called multiple times (if we s/error handler/disconnect
13246         handler/ we should just guarantee it's called only once)
13247
13248         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13249         error handler on disconnect (it's quite possible we should
13250         just change the error handler to a "disconnect handler," I'm
13251         not sure we have any other meaningful errors)
13252
13253         * configure.in: check for getpwnam_r
13254
13255         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13256         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13257         mechanism as in SASL spec, using socket credentials
13258
13259         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13260         (_dbus_send_credentials_unix_socket): new function
13261
13262         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13263         dbus_accept()
13264         (_dbus_write): only check errno if <0 returned
13265         (_dbus_write_two): ditto
13266
13267 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13268
13269         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13270         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13271         (_dbus_marshal_test):
13272         * dbus/dbus-marshal.h:
13273         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13274         to _dbus_marshal_utf8_string. Also fix some tests.
13275
13276 2002-12-28  Harri Porten  <porten@kde.org>
13277
13278         * configure.in: added check for C++ compiler and a very cheesy
13279         check for the Qt integration
13280
13281         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13282
13283         * qt/Makefile.am: added
13284
13285         * qt/.cvsignore: added
13286
13287         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13288         latter, added #ifdef QT_THREAD_SUPPORT guard.
13289
13290         * dbus/Makefile.am: added missing headers for make dist
13291
13292 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13293
13294         * dbus/Makefile.am: fixup export-symbols-regex.
13295
13296 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13297
13298         * acinclude.m4: Add this file and put the
13299         PKG_CHECK_MODULE macro in it.
13300
13301 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13302
13303         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13304         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13305         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13306         (_dbus_marshal_test):
13307         Make the demarshalling routines align the pos argument.
13308         Add string marshalling tests and fix the obvious bugs
13309         discovered.
13310
13311 2002-12-26  Havoc Pennington  <hp@pobox.com>
13312
13313         * dbus/dbus-auth.c: fixes fixes fixes
13314
13315         * dbus/dbus-transport-unix.c: wire up support for
13316         encoding/decoding data on the wire
13317
13318         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13319         (_dbus_auth_decode_data): append to target string
13320         instead of nuking it.
13321
13322 2002-12-26  Havoc Pennington  <hp@pobox.com>
13323
13324         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13325         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13326         doh
13327
13328         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13329         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13330         now). Main point is because I wanted unpack_uint32 to implement
13331         _dbus_verbose_bytes
13332         (_dbus_verbose_bytes): new function
13333
13334         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13335
13336         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13337         mechanism to handle a corrupt message stream
13338         (_dbus_message_loader_new): fix preallocation to only prealloc,
13339         not prelengthen
13340
13341         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13342         (_dbus_string_test): enhance tests for copy/move and fix the
13343         functions
13344
13345         * dbus/dbus-transport-unix.c: Hold references in more places to
13346         avoid reentrancy problems
13347
13348         * dbus/dbus-transport.c: ditto
13349
13350         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13351         leak reference count in no-message case
13352
13353         * test/watch.c (do_mainloop): handle adding/removing watches
13354         during iteration over the watches. Also, ref the connection/server
13355         stored on a watch, so we don't try to mangle a destroyed one.
13356
13357         * dbus/dbus-transport-unix.c (do_authentication): perform
13358         authentication
13359
13360         * dbus/dbus-auth.c (get_state): add a state
13361         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13362         (_dbus_auth_get_unused_bytes): append the unused bytes
13363         to the passed in string, rather than prepend
13364
13365         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13366         the auth conversation DBusAuth
13367
13368         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13369         (_dbus_transport_new_for_domain_socket): when creating a
13370         transport, pass in whether it's a client-side or server-side
13371         transport so we know which DBusAuth to create
13372
13373 2002-12-03  Havoc Pennington  <hp@pobox.com>
13374
13375         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13376         _after_ finalizing the derived members
13377         (unix_connection_set): unref watch if we fail to add it
13378
13379         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13380         transport first, so that the connection owned by the
13381         transport will be valid as the transport finalizes.
13382
13383         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13384         if necessary, and remove watches from the connection.
13385
13386         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13387
13388 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13389
13390         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13391         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13392         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13393         (_dbus_marshal_test):
13394         * dbus/dbus-marshal.h:
13395         Add string marshal functions and have the demarshal functions
13396         return the new position.
13397
13398 2002-12-25  Havoc Pennington  <hp@pobox.com>
13399
13400         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13401         it is a simple protocol that just maps directly to SASL.
13402
13403         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13404         initial implementation, not actually used yet.
13405
13406         * dbus/dbus-string.c (_dbus_string_find): new function
13407         (_dbus_string_equal): new function
13408         (_dbus_string_base64_encode): new function
13409         (_dbus_string_base64_decode): new function
13410
13411 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13412
13413         * dbus/Makefile.am:
13414         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13415         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13416         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13417         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13418         * dbus/dbus-marshal.h:
13419         * dbus/dbus-protocol.h:
13420         * dbus/dbus-test.c: (main):
13421         * dbus/dbus-test.h:
13422         Add un-optimized marshalling/demarshalling routines.
13423
13424 2002-12-25  Harri Porten  <porten@kde.org>
13425
13426         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13427
13428 2002-12-24  Zack Rusin  <zack@kde.org>
13429
13430         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13431         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13432         main loop stuff
13433
13434 2002-12-24  Havoc Pennington  <hp@pobox.com>
13435
13436         * glib/dbus-gthread.c: fix include
13437
13438         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13439         I think glib API needs to change, though, as you don't
13440         want to use DBusMessageFunction, you want to use the
13441         DBusMessageHandler object. Probably
13442         dbus_connection_open_with_g_main_loop()
13443         and dbus_connection_setup_g_main_loop() or something like that
13444         (but think of better names...) that just create a connection
13445         that has watch/timeout functions etc. already set up.
13446
13447         * dbus/dbus-connection.c
13448         (dbus_connection_send_message_with_reply): new function just to
13449         show how the message handler helps us deal with replies.
13450
13451         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13452
13453         * dbus/dbus-string.c (_dbus_string_test): free a string that
13454         wasn't
13455
13456         * dbus/dbus-hash.c: use memory pools for the hash entries
13457         (rebuild_table): be more paranoid about overflow, and
13458         shrink table when we can
13459         (_dbus_hash_test): reduce number of sprintfs and write
13460         valid C89. Add tests for case where we grow and then
13461         shrink the hash table.
13462
13463         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13464
13465         * dbus/dbus-connection.c (dbus_connection_register_handler)
13466         (dbus_connection_unregister_handler): new functions
13467
13468         * dbus/dbus-message.c (dbus_message_get_name): new
13469
13470         * dbus/dbus-list.c: fix docs typo
13471
13472         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13473         an object representing a handler for messages.
13474
13475 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13476
13477         * glib/dbus-glib.h:
13478         * glib/dbus-gthread.c: (dbus_gthread_init):
13479         Don't use the gdbus prefix for public functions.
13480
13481 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13482
13483         * Makefile.am:
13484         * configure.in:
13485         Add GLib checks and fixup .pc files
13486
13487         * glib/Makefile.am:
13488         * glib/dbus-glib.h:
13489         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13490         (gdbus_connection_check), (gdbus_connection_dispatch),
13491         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13492         (dbus_connection_gsource_new):
13493         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13494         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13495         * glib/test-dbus-glib.c: (message_handler), (main):
13496         Add GLib support.
13497
13498 2002-12-15  Harri Porten  <porten@kde.org>
13499
13500         * autogen.sh: check for libtoolize before attempting to use it
13501
13502         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13503         struct.
13504
13505         * .cvsignore: ignore more stamp files
13506
13507         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13508
13509         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13510         without make install.
13511
13512 2002-12-15  Havoc Pennington  <hp@pobox.com>
13513
13514         * dbus/dbus-threads.c: add thread stubs that a higher library
13515         layer can fill in. e.g. the GLib wrapper might fill them in with
13516         GThread stuff. We still need to use this thread API to
13517         thread-safe-ize the library.
13518
13519 2002-12-12  Havoc Pennington  <hp@pobox.com>
13520
13521         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13522         below new interfaces and include fewer system headers.
13523
13524         * dbus/dbus-sysdeps.c (_dbus_read): new function
13525         (_dbus_write): new function
13526         (_dbus_write_two): new function
13527         (_dbus_connect_unix_socket): new function
13528         (_dbus_listen_unix_socket): new function
13529
13530         * dbus/dbus-message-internal.h: change interfaces to use
13531         DBusString
13532
13533 2002-12-11  Havoc Pennington  <hp@pobox.com>
13534
13535         * dbus/dbus-types.h: add dbus_unichar
13536
13537         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13538
13539         * dbus/dbus-connection.c (dbus_connection_send_message): return
13540         TRUE on success
13541
13542         * dbus/dbus-transport.c: include dbus-watch.h
13543
13544         * dbus/dbus-connection.c: include dbus-message-internal.h
13545
13546         * HACKING: add file with coding guidelines stuff.
13547
13548         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13549         handling here, for security purposes (as in vsftpd). Not actually
13550         using this class yet.
13551
13552         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13553         system/libc usage here, as in vsftpd, for ease of auditing (and
13554         should also simplify portability). Haven't actually moved all the
13555         system/libc usage into here yet.
13556
13557 2002-11-25  Havoc Pennington  <hp@pobox.com>
13558
13559         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13560         always print the first verbose message.
13561
13562 2002-11-24  Havoc Pennington  <hp@pobox.com>
13563
13564         * test/echo-client.c, test/echo-server.c: cheesy test
13565         clients.
13566
13567         * configure.in (AC_CHECK_FUNCS): check for writev
13568
13569         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13570         function
13571
13572         * dbus/dbus-list.c (_dbus_list_foreach): new function
13573
13574         * dbus/dbus-internals.c (_dbus_verbose): new function
13575
13576         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13577         representing a server that listens for connections.
13578
13579         * dbus/.cvsignore: create
13580
13581         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13582         public API for reporting errors
13583
13584         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13585         public object representing a connection that
13586         sends/receives messages. (Same object used for
13587         both client and server.)
13588
13589         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13590         Basic abstraction for different kinds of stream
13591         that we might read/write messages from.
13592
13593 2002-11-23  Havoc Pennington  <hp@pobox.com>
13594
13595         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13596         _DBUS_INT_MAX
13597
13598         * dbus/dbus-test.c (main): add list test, and include
13599         dbus-test.h as intended
13600
13601         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13602         (_dbus_hash_table_remove_int): return value indicates
13603         whether the entry existed to remove
13604
13605         * dbus/dbus-list.c: add linked list utility class,
13606         with docs and tests
13607
13608         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13609         array sometimes.
13610
13611 2002-11-23  Havoc Pennington  <hp@pobox.com>
13612
13613         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13614         DBUS_END_DECLS to nothing, that should fix this once and for all
13615
13616         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13617
13618         * dbus/dbus-message.c, dbus/dbus-hash.c:
13619         add some missing @brief
13620
13621 2002-11-23  Havoc Pennington  <hp@pobox.com>
13622
13623         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13624         to avoid confusing Doxygen
13625
13626         * dbus/dbus-hash.c: @} not }@
13627
13628         * dbus/dbus-message.c (struct DBusMessage): split out
13629         internals docs
13630
13631 2002-11-23  Havoc Pennington  <hp@pobox.com>
13632
13633         * configure.in: pile on more warning flags if using gcc
13634
13635         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13636         to document static functions
13637
13638         * configure.in: add summary to end of configure so it
13639         looks nice and attractive
13640
13641         * dbus/dbus-hash.c: finish implementation and write unit
13642         tests and docs
13643
13644         * configure.in: add --enable-tests to enable unit tests
13645
13646         * dbus/dbus-test.c: test program to run unit tests
13647         for all files in dbus/*, initially runs a test for
13648         dbus-hash.c
13649
13650         * dbus/dbus-internals.h: file to hold some internal utility stuff
13651
13652 2002-11-22  Havoc Pennington  <hp@redhat.com>
13653
13654         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13655         "ported" away from Tcl
13656
13657         * dbus/dbus-types.h: header for types such as dbus_bool_t
13658
13659 2002-11-22  Havoc Pennington  <hp@redhat.com>
13660
13661         * dbus/dbus.h: fixups for doc warnings
13662
13663         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13664         macros
13665         (QUIET): make it quiet so we can see warnings
13666
13667         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13668
13669 2002-11-22  Havoc Pennington  <hp@redhat.com>
13670
13671         * Makefile.am: include "Doxyfile" target in all-local
13672
13673         * configure.in: generate the Doxyfile
13674
13675         * Doxyfile.in: move Doxyfile here, so we can use
13676         configure to generate a Doxyfile with the right
13677         version number etc.
13678
13679 2002-11-22  Havoc Pennington  <hp@redhat.com>
13680
13681         * dbus/dbus-message.c: move inline docs into .c file
13682
13683         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13684         so all docs are under doc/
13685         (MAN_EXTENSION): generate man pages. Use extension
13686         ".3dbus" which matches ".3qt" on my system,
13687         I guess this is OK, I don't know really.
13688         (FILE_PATTERNS): look for .c files not .h, makes sense
13689         for plain C I think
13690
13691 2002-11-22  Havoc Pennington  <hp@pobox.com>
13692
13693         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13694         because any app can be a server, and any app can be a client,
13695         the bus is a special kind of server.
13696
13697 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13698
13699         * Doxyfile : adding. Still needs Makefile rules to be generated
13700         automatically (just run "doxygen" in the toplevel dir for now to
13701         generate docs)
13702
13703         * dbus/dbus-message.h : Adding sample docs (javadoc since
13704         resembles gtk-doc a little more)
13705
13706         * dbus/dbus.h : Adding sample docs
13707
13708 2002-11-21  Havoc Pennington  <hp@redhat.com>
13709
13710         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13711         so we can allow ourselves to include files directly,
13712         instead of having to use dbus.h
13713
13714         * dbus/dbus.h: fill in
13715
13716         * dbus/dbus-message.h: sketch out a sample header file.
13717         Include griping if you include it directly instead of
13718         via dbus.h
13719
13720         * dbus/dbus-macros.h: new file with macros for extern "C",
13721         TRUE/FALSE, NULL, etc.
13722
13723         * doc/file-boilerplate.c: put include guards in here
13724
13725 2002-11-21  Havoc Pennington  <hp@redhat.com>
13726
13727         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13728
13729         * COPYING: include the GPL as well, and license code
13730         under both AFL and GPL.
13731
13732 2002-11-21  Havoc Pennington  <hp@redhat.com>
13733
13734         * acconfig.h: get rid of this
13735
13736         * autogen.sh (run_configure): add --no-configure option
13737
13738         * configure.in: remove AC_ARG_PROGRAM to make
13739         autoconf complain less. add AC_PREREQ.
13740         add AC_DEFINE third arg.
13741
13742 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13743
13744         * doc/Makefile.am:
13745         Fix references so we can distcheck.
13746
13747 2002-11-21  Havoc Pennington  <hp@redhat.com>
13748
13749         * Initial module creation
13750