* Remove stray files from the stripped bindings
[platform/upstream/dbus.git] / ChangeLog
1 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
4         Remove stray files from the stripped bindings
5
6 2006-07-16  Havoc Pennington  <hp@redhat.com>
7
8         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
9         Improve the error message on reply timeout
10
11 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
12
13         * Remove all bindings
14
15 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
16
17         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
18         and set pending_reply out arg to NULL is connection is disconnected
19         (connection_timeout_and_complete_all_pending_calls_unlocked): New
20         static method for cleaning up pending calls on disconnect
21         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
22         calls queued timeouts on disconnect 
23
24          * dbus/dbus-pending-call.ci (_dbus_pending_call_set_connection):
25         Remove 
26
27 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
28
29         * bus/activation.[ch] (bus_activation_list_services): new function to 
30         get the list of services that can be activated
31
32         * bus/dispatch.c: test coverage for the new bus method
33         ListActivatableNames
34
35         * bus/driver.c: new bus method ListActivatableNames to get the list of
36         services that can be activated
37
38         * doc/dbus-specification.xml: ListActivatableNames method documentation
39
40 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
41         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
42         source files
43
44 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
45         * dbus/dbus-message-factory.c:
46         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
47
48 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
49         * dbus/dbus-connection-internal.h:
50         * dbus/dbus-connection.c:
51         * file dbus/dbus-pending-call.c:
52         * dbus/dbus-pending-call.h:
53         Make DBusPendingCall an opaque type even to D-Bus internals
54
55 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
56
57         * dbus/dbus-connection.h: remove connection_disconnect and replace with
58         connection_close
59
60         * dbus/dbus-connection.c: include dbus-bus.h
61         (_dbus_connection_read_write_dispatch): make static
62
63 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
64
65         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
66         function
67         (dbus_connection_dispatch): On disconnect unref any shared connections
68
69         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
70         for cleaning up shared connections on disconnect
71         (internal_bus_get): get a hard refrence to shared connections when
72         they are created
73         
74         * doc/TODO: Remove items which are no longer relevent or have been fixed
75         Split 1.0 todo items with a 0.90 freeze todo list
76  
77 2006-06-14  Ross Burton  <ross@openedhand.com>
78
79         * glib/dbus-gobject.c:
80         Free a leaking GArray (surely not!) in dbus_g_method_return.
81
82 2006-06-14  Ross Burton  <ross@openedhand.com>
83
84         * tools/Makefile.am:
85         * tools/dbus-monitor.c:
86         Don't use the GLib bindings in dbus-monitor (patch from Ralf
87         Habacker).
88         
89 2006-06-14  Ross Burton  <ross@openedhand.com>
90
91         * tools/dbus-print-message.c:
92         Also print the object path when outputting signals or method calls.
93
94 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
95
96         * qt/src/Makefile.am: install the qdbus.h header.
97         This allows people to actually use the installed code.
98
99 2006-06-12  Ross Burton  <ross@openedhand.com>
100
101         * glib/dbus-gproxy.c:
102         Don't leak a GArray when firing signals (thank Rob Taylor for review).
103
104 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
105
106         * Released 0.62
107
108 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
109
110         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
111         break pedantic builds. Closes bug 6043 (patch approved by
112         Havoc back in February).
113
114 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
115
116         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
117         that took a QDBusMessage parameter.
118         * qt/src/qdbusbus.h: Add a default flag for RequestName.
119         * qt/tools/dbus.cpp: Don't use automatic call because we might
120         be calling an async method: request a reply.
121
122 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
123
124         * test/qt/*: Update the testcases, including testing the new
125         functionality of sending null QByteArray and QString over the
126         bus. Add new headertest test and restore the old
127         qdbusxmlparser test.
128
129 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
130
131         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
132         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
133
134         * qt/examples/Makefile.am:
135         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
136         form.
137
138         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
139         QByteArray() (nulls) over the bus.
140         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
141         the one that has the signature suffix stripped.
142         * qt/src/qdbusreply.h: Make some methods const.
143
144 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
145
146         Patch from Timo Hoenig <thoenig@suse.de>.
147
148         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
149         required during build to EXTRA_DIST.
150         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
151         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
152         * configure.in: Fix "make dist", take care that the Makefile for
153         qt/dbus is being generated.
154
155 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
156
157         * bus/bus.c: Fix eavesdropping on method calls
158
159 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
160
161         * configure.in:
162         * dbus/dbus-userdb-util.c:
163         Add Solaris console owner patch from Artem Kachitchkine
164
165 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
166
167         * qt/Makfile.am:
168         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
169         reorganisation. Thanks to Timo Hoenig for pointing this out.
170
171 2006-06-06  Robert McQueen  <robot101@debian.org>
172
173         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
174           call to dbus_g_type_get_struct.
175
176 2006-06-06  Robert McQueen  <robot101@debian.org>
177
178         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
179           pointers were put into a GPtrArray-based specialised collection, and
180           then freed along with the array. GValues which you add into
181           collections or maps which have the NOCOPY flag set are assumed to not
182           belong to the caller, so rather than the existing pointer-stealing
183           semantics, they are copied instead. Given that the main consumers of
184           this abstraction are the bindings themselves, I don't think this is
185           too bad, but others should watch their choice of take vs set_static.
186
187 2006-06-06  Robert McQueen  <robot101@debian.org>
188
189         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
190           of g_slist_prepend not being used. Fixed copying of slist-based
191           specialised collections, then wrote a test case and found that it was
192           all broken. Went on to fix iterating and appending too. Good thing
193           nobody uses this code yet.
194
195 2006-06-06  Robert McQueen  <robot101@debian.org>
196
197         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
198           the iterators use gvalue_take_ptrarray_value (the GValues themselves
199           are discarded without unsetting, so it makes no difference whether
200           we take or set_static). Remove cases for G_TYPE_POINTER because
201           there really is nothing useful we can do with them in our
202           specialised types - we *need* boxed copy/free functions at the very
203           least.
204
205 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
206
207         * qt/dbus: Add directory. I had forgotten to add this
208         yesterday after the move...
209
210         * qt/examples/Makefile.am:
211         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
212
213         * qt/tools/Makefile.am:
214         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
215         Added feature to get and set properties.
216         Added validation of service, object path and interface names.
217
218         * qt/tools/dbusidl2cpp.cpp: Two new features:
219         1) Allow specifying both the header and the source file names,
220         by separating them with a colon.
221         2) Don't write an interface output if the -p switch wasn't
222         given, but the -a was.
223
224         * qt/src/*: Fix usage of Iterators and ConstIterators.
225         Fix shadowing of variables by other variables (-Wshadow).
226         Fix keyword-cleanliness in headers.
227         Fix ASCII-cast (QLatin1String, QLatin1Char).
228         Fix validation of member names.
229         Add extra checking of introspection data during XML parsing.
230         Various bug fixes.
231
232 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
233
234         * dbus/Makefile.am:
235         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
236         qt/dbus/qdbus.h now.
237
238 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
239
240         * configure.in: Make --disable-qt actually do
241           something. Patch inspired by Zack Rusin.
242
243 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
244
245         * qt/: Update to Subversion r548032.
246         This includes a big reorganisation of the files inside the
247         subdir.
248
249 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
250
251         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
252         clear:  
253         "Failed to connect to socket <host>:<port> <error>" instead of
254         "Failed to connect to socket <host>: <error>:<port>"
255
256         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
257         for a tcp transport. 
258
259 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
260
261         * qt/*: Update the QtDBus bindings up to revision 546310 in
262         Subversion.
263         This adds the dbuscpp2xml tool, that parses a C++ header and
264         outputs a D-BUS Introspection XML.
265
266 2006-05-21  Havoc Pennington  <hp@redhat.com>
267
268         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
269         is not NULL when it shouldn't be. Also a couple of possible fixes
270         for #4637 though I don't understand why the bug happens, to be
271         honest... also the object constructor has an assert name != NULL
272         and the name is only currently NULL for peer-to-peer proxies that 
273         I don't think anyone uses? So it should be asserting.
274         Anyway, for now at least see if we get an earlier assertion failure.
275
276         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
277         apparently broken code to be sure the tests fail and someone 
278         will fix them...
279
280 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
281
282         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
283         and arrays when they had a single element: has_next returns
284         false, even before you read the element. So, instead, check
285         the array length.
286
287 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
288
289         * qt/qdbusmessage.cpp:
290         * qt/qdbustypehelper_p.h:
291         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
292         the list is a const-reference
293
294 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
295
296         * Adding old doc patch that never got applied
297         
298         * dbus/bus.c (dbus_bus_add_match): Add documentation
299
300         * doc/dbus-specification.xml: Add documentation for the match rules
301           and the AddMatch and RemoveMatch methods
302
303 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
304
305         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
306         call (r535506)
307
308         * qt/dbusidl2cpp.cpp:
309         * qt/qdbusabstractadaptor.cpp:
310         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
311         sibling of the QDBusAbstractAdaptor objects instead of the
312         parent. (r535848)
313
314         * qt/dbusidl2cpp.cpp:
315         * qt/qdbusabstractinterface.cpp:
316         * qt/qdbusabstractinterface.h:
317         * qt/qdbusabstractinterface_p.h:
318         * qt/qdbusinterface.cpp: Make properties in interfaces
319         actually work. The code that was generated would not compile,
320         due to moc calls to functions that did not exist. They now
321         shall. (r536571)
322
323 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
324
325         * Makefile.am:
326         * configure.in:
327         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
328         Thanks to Brad Hards for providing the patch
329
330 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
331
332         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
333         call. (r535506)
334
335 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
336
337         * qt/examples/dbus.cpp: Enhance error messages and use
338         QDBusInterfacePtr.
339
340 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
341
342         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
343         and disable the copy operators. (r533772, r534746)
344
345         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
346
347         * qt/qdbusabstractinterface.cpp:
348         * qt/qdbusabstractinterface.h: Change the default call mode to
349         not use the event loop. Add convenience call() methods that
350         take a CallMode parameter. (r534042)
351
352         * qt/qdbusconnection.h: Change the default call mode to not
353         use the event loop. (r534042)
354
355         * qt/qdbusinterface.cpp:
356         * qt/qdbusinterface.h: Add a method to tell us if the
357         interface is valid (since we don't return a null pointer
358         anymore) (r534099)
359
360         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
361         (r534101)
362
363         * qt/qdbusinternalfilters.cpp: Decouple the introspection
364         function in two so taht we get the chance to introspect
365         without having a QDBusMessage (r534102)
366
367         * qt/qdbusbus.h:
368         * qt/qdbusconnection.cpp:
369         * qt/qdbusconnection_p.h:
370         * qt/qdbusintegrator.cpp: Keep a list of our own names to
371         avoid a round-trip to the server when attempting to introspect
372         one of our own objects. Also make sure the filter functions
373         match the empty interface as well. (r534108)
374         Don't keep the connection names. Instead, trust the unique
375         connection name (r534111)
376         Remove event loop usage (r534112)
377
378 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
379
380         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
381         Brad Hards.
382
383 2006-04-28  Robert McQueen  <robot101@debian.org>
384
385         * glib/dbus-gproxy.c: Fix properties so that they can be given in
386         any order, making it easier for people who inherit from this
387         object.
388
389 2006-04-28  Robert McQueen  <robot101@debian.org>
390
391         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
392         of memory from within pointer arrays and lists. Fixes bug #6300.
393
394 2006-04-28  Robert McQueen  <robot101@debian.org>
395
396         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
397         generating struct signatures. Fixes bug #6083.
398
399 2006-04-28  Robert McQueen  <robot101@debian.org>
400
401         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
402         to qdbusconnection_p.moc.
403
404 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
405
406         * README, INSTALL: Doc fixes
407         Patch from Brad Hards <bradh at frogmouth.net>
408
409 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
410
411         * qt/examples/dbus.cpp: Use the new merged-interface mode for
412         the dynamic meta object. No need to guess which interface to
413         call.
414
415 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
416
417         * qt/qdbusconnection_p.h:
418         * qt/qdbusmetaobject.cpp:
419         * qt/qdbusmetaobject_p.h:
420         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
421         for the dynamic meta object. No need to guess which
422         interface to call.
423         * qt/qdbusabstractinterface_p.h:
424         * qt/qdbusconnection.cpp:
425         * qt/qdbusintegrator.cpp:
426         * qt/qdbusinterface.cpp:
427         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
428         Add a QDBusRef that looks and behaves like DCOPRef.
429
430 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
431
432         * dbus/dbus-connection.c: Interfaces are optional in method
433         calls, so don't give up if the interface parameter is NULL.
434         Patch reviewed by Havoc Pennington.
435
436 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
437
438         * qt/qdbusreply.h: Add default constructor and operator=
439           (r532625)
440         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
441           in public headers (r532952)
442         * qt/qdbusabstractinterface.cpp:
443         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
444           make it the default (r532951)
445
446 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
447
448         * dbus/dbus-connection.c: Fix asserts
449         Patch from Tim Moloney <t.moloney at verizon.net>
450
451 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
452
453         * mono/Connection.cs, mono/Message.cs: Check Target type
454         Patch from Aaron Bockover (abockover at novell.com)
455
456 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
457
458         * INSTALL: fine-tune the requirements for the Qt4 binding.
459
460 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
461
462         * tools/dbus-print-message.c: Added support for printing of all 
463           remaining data types. Fixed logic for indentation of compound
464           data types.
465         
466 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
467
468         * INSTALL: fill out content of file providing DBus specific
469           build installations, followed by generic Auto* INSTALL file
470           content
471         
472 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
473
474         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
475           Patch by Stefan Eilers. (r529537)
476
477 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
478
479         * qt/qdbusinternalfilters.cpp: Don't show the parent's
480           contents (r528208)
481
482 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
483
484         * qt/Makefile.am: fix the dependency for
485           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
486           not in qdbusconnection.cpp.
487           Thanks to Jakub Stachowski <stachowski@hypair.net> for
488           spotting this.
489
490 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
491
492         * qt/examples/listnames.cpp:
493         * qt/examples/Makefile.am: Three ways to list the names on the
494           bus.
495
496 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
497
498         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
499           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
500
501 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
502
503         Merge from Subversion:
504         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
505           something that exists (r526315)
506         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
507           slots/signals (r526316)
508         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
509           also return an unknown-method error if the parameters don't
510           match for org.freedesktop.DBus.Properties. (r526842)
511         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
512         * qt/qdbusintegrator.cpp: Restore the proper order of
513           delivery: don't make method returns be delivered on priority
514           (r528150)
515
516 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
517
518         * configure.in qt/Makefile.am: add qt/examples
519         * qt/examples: Add QtDBus example programs:
520           - hello: Hello, World
521           - ping: Simple method-calling program
522           - pong: Simple object-exporting program (not using adaptors)
523           - complexping: Interactive method-calling program 
524                 (also gets and sets properties).
525           - complexpong: Sample program exporting methods, signals and
526                 properties, using adaptors.
527           - dbus: Simple implementation of a generic method-calling
528                 program, similar to 'dbus-send', but with semantics
529                 similar to 'dcop'.
530           - chat: Simplistic chat program, implemented using signals
531                 and the system bus. Looks like IRC.
532
533 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
534
535         * configure.in: Detect QtGui (necessary for one of the
536           example programs). Note: this increases the minimum required
537           version of Qt to 4.1.3.
538
539 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
540
541         * test/qt/*: Sync with KDE Subversion revision 523647.
542         Update the testcases to the new API. Remove testcases for
543         classes that are no longer public or have been removed.
544
545 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
546
547         * qt/*: 
548         * dbus/qdbus.h: Sync with KDE Subversion revision
549         523647. Hopefully, this will be the last of the
550         source-incompatible changes. Documentation has been improved;
551         support for QList<basic-types> has been added; QDBusObject is
552         gone; QDBus(Abstract)Interface is now a QObject with
553         auto-generated meta-object; QDBusIntrospection is marked
554         private, since QMetaObject can be used now; lots of bugfixes.
555
556 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
557
558         Patch from Milosz Derezynski <internalerror at gmail.com>
559         
560         * configure.in:
561         Output the service directory in the configure summary
562
563         * dbus-1.pc.in:
564         Add session_bus_services_dir
565
566 2006-03-10  Ross Burton  <ross@openedhand.com>
567
568         * tools/dbus-print-message.c:
569         Add support for object paths and signatures.
570
571 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
572
573         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
574         config reload.
575         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
576         information caches
577         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
578         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
579         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
580         * dbus/dbus-userdb.h: Add function to flush all user/group information
581         caches.
582
583 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
584
585         * qt/dbusidl2cpp.cpp:
586         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
587         for dcopidl2cpp, found in the KDE installations (or the more
588         modern kalyptus): generate Qt4 C++ code for the input XML
589         introspection. Currently no IDL parsing.
590
591 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
592
593         * test/qt/*: Update the self-tests.
594
595 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
596
597         * qt/*: 
598         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
599         represents the first feature-complete version of the Qt4
600         bindings since I took ove maintainership.
601
602 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
603
604         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
605         dir. This is C++, so we can't use the DBus ones.
606
607 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
608
609         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
610         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
611
612 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
613
614         * dbus/dbus-connection.c: 
615         (_dbus_connection_block_pending_call):
616         Check to see if our data has already been read off the connection
617         by another blocking pending call before we block in poll.
618         (check_for_reply_and_update_dispatch_unlocked):
619         Code taken from _dbus_connection_block_pending_call - checks for
620         an already read reply and updates the dispatch if there is one.
621
622         * test/name-test/test-pending-call-dispatch.c:
623         New test for making sure we don't get stuck polling a 
624         dbus connection which has no data on the socket when
625         blocking out of order on two or more pending calls.
626
627 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
628
629         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
630         make/automake don't detect that we're talking about the same
631         .lo file if I specify the full path to the source files.
632
633 2006-02-26  Havoc Pennington  <hp@redhat.com>
634
635         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
636
637         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
638         session bus variable is unset, suggest "man dbus-launch" and "man
639         dbus-daemon" to figure out how to fix the problem
640
641 2006-02-25  Havoc Pennington  <hp@redhat.com>
642
643         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
644         should make this thing use the new glib options parser
645
646 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
647
648         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
649         .lo files taking moc sources.
650
651 2006-02-25  Havoc Pennington  <hp@redhat.com>
652
653         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
654         and install it as a public header
655
656 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
657
658         * Released 0.61
659
660 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
661         
662         * proxies.py: Fix the callchain
663
664 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
665         
666         * patch from Sjoerd Simons <sjoerd at debian.org>:      
667
668         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
669         dbus/dbus-sysdeps.c
670
671         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
672         call _dbus_group_info_free_allocated which causes infinite loop,
673         correctly call _dbus_group_info_free
674
675 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
676
677         * qt/qdbusinterface_p.h:
678         * qt/qdbusinterface.cpp: Use the standard
679         org.freedesktop.DBus.Method.NoReply annotation for the "async"
680         calls instead of creating one for us.
681
682         * qt/qdbusconnection_p.h:
683         * qt/qdbusintegrator.cpp: Remove debugging code.
684
685         * qt/qdbusintegrator.cpp:
686         * qt/qdbusmessage.cpp:
687         * qt/qdbusmessage_p.h:
688         * qt/qdbusmessage.h: Change the behaviour of automatic
689         reply-sending: now a reply is always sent, unless the caller
690         didn't request one or if the user slot has already sent one.
691
692 2006-02-16  Robert McQueen  <robot101@debian.org>
693
694         * configure.in: Patch from Debian packages by Sjoerd Simons
695         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
696         arguments so it's possible to build both bindings in the
697         same tree.
698
699         * qt/Makefile.am: Fix truncated value so that make dist works.
700
701 2006-02-16  Robert McQueen  <robot101@debian.org>
702
703         * acinclude.m4, configure.in: Patch from Brad Hards
704         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
705         improving quoting, re-ordering a few checks, and a few other
706         aesthetic tidy-ups.
707
708 2006-02-16  Robert McQueen  <robot101@debian.org>
709
710         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
711         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
712         assertion that the next element to read from the iter is fixed in
713         size. This is not the case when you are at the end of the iter,
714         because the next element type is INVALID.
715
716         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
717         a bogus assert which means that you may not initialise a 0-length
718         string unless you provide a non-NULL pointer. This prevented
719         you from marshalling messages containing zero-length arrays in
720         some cases.
721
722         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
723         from Rob to correct bogus asserts when trying to demarshal an
724         array and get_fixed_array got you 0 elements. Append nothing to
725         the GArray in this case.
726
727         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
728         an empty array via the glib bindings. Without all of the above
729         patches, this new test fails.
730
731 2006-02-16  Robert McQueen  <robot101@debian.org>
732
733         * glib/dbus-gmain.c: Make the previous commit compile.
734
735         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
736         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
737         specify sender_keyword="foo", path_keyword="bar" when adding
738         a signal listener, so that you can bind to signals generically
739         but still do something useful in your callback.
740
741         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
742         chars so that they're not cast to chars and made negative. Thanks
743         to Jakub Stachowski for reporting this and testing the fix.
744
745 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
746
747         * dbus/dbus-glib.h:
748         * glib/dbus-gmain.h:
749         (dbus_g_connection_open): new method for openning
750         a connection to an arbitrary address in the glib bindings
751
752         * ChangeLog: checkin last entry which doesn't seem to be commited
753
754 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
755
756         * tools/dbus-launch.c: Fixed sh syntax output
757
758 2006-02-13  Robert McQueen  <robot101@debian.org>
759
760         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
761         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
762         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
763         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
764         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
765         missing piece of the glib bindings jigsaw puzzle. This modifies
766         the existing specialised types to have N type parameters (rather
767         than the current 1 or 2 for arrays and dictionaries respectively).
768         You can then use this to get a glib type to represent any arbitrary
769         D-Bus struct type using dbus_g_type_get_struct. The only
770         implementation of these types is with GValueArrays as before,
771         but it's now possible to store these in arrays, emit them in
772         signals, etc.
773
774 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
775
776         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
777         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
778         <thiago.macieira at trolltech.com>
779
780 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
781
782         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
783         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
784
785 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
786
787         * bus/connection.c (bus_connections_expect_reply): Make
788         pending reply limit not common to all connections (Bug #5416)
789         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
790
791 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
792
793         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
794
795 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
796
797         * gcj/Makefile.am: point to correct jar command (Bug #4529)
798         patch from Doug Goldstein <cardoe at gentoo.org>
799
800 2006-02-09  Joe Shaw  <joeshaw@novell.com>
801
802         * mono/Arguments.cs: Fix a magic number in the mono bindings
803         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
804
805 2006-01-27  Robert McQueen  <robot101@debian.org>
806
807         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
808         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
809         when generating the client-side methods, instead of overloading
810         CSymbol which broke everything horribly. My apologies.
811
812 2006-01-27  Robert McQueen  <robot101@debian.org>
813
814         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
815         by me and Rob Taylor to add a simple_free function to D-Bus map
816         and collection types, which allows those types which can be freed
817         with a GDestroyNotify (such as GHashTables and GArrays, but not
818         GPtrArrays) to be stored as the values in hashtables.
819
820         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
821         Patch by Rob Taylor to add nested dicts to the glib tests to check
822         the above code works, and appears not to leak when called repeatedly.
823
824 2006-01-27  Robert McQueen  <robot101@debian.org>
825
826         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
827         to free a D-Bus allocated string with dbus_free () instead of
828         g_free ().
829
830 2006-01-27  Iain Holmes  <iain@openedhand.com>
831
832         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
833         method from being called multiple times.
834
835 2006-01-19  Robert McQueen  <robot101@debian.org>
836
837         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
838         <rob.taylor@collabora.co.uk> to add support for generating bindings
839         to arrays that are represented as GPtrArrays rather than GArrays (ie
840         size-variable things, such as strings, objects, structs, etc).
841
842 2006-01-05  Robert McQueen  <robot101@debian.org>
843
844         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
845         <ricardo.kekki@movial.fi> to make it possible to inherit from
846         DBusGProxy, by splitting the DBusGProxy struct into a public part and
847         a private part, and moving the setting of the DBusGProxyManager into a
848         connection property, allowing proper GObject construction.
849
850 2006-01-05  Robert McQueen  <robot101@debian.org>
851
852         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
853         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
854         annotations when generating glib client bindings.
855
856 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
857
858         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
859
860         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
861
862 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
863
864         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
865
866 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
867
868         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
869
870 2005-12-19  Ross Burton  <ross@openedhand.com>
871
872         * doc/dbus-tutorial.xml:
873         Document the Glib client-side bindings, and list all possible annotations.
874
875 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
876
877         * dbus/bus.c (dbus_bus_release_name): Add documentation
878
879 2005-12-06  Robert McQueen  <robot101@debian.org>
880
881         * python/service.py: s/sucessful/successful/ so we're allocating to
882         and reading from the same variable. Oops.
883
884 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
885
886         * Released 0.60
887
888 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
889
890         * test/qt/Makefile.am: build from srcdir
891
892         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
893         Note - this code is wrong and needs to be fixed by the Qt binding
894         developers.  The flags should be treated as bitfields and not enums.
895
896         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
897
898 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
899
900         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
901           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
902           in production code
903
904 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
905
906         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
907         method for getting messages off the bus in the absence of a
908         mainloop.  This method is much like 
909         dbus_connection_read_write_dispatch except it does not dispatch
910         the messages to a registered filter function.  Instead it
911         allows a developer to process messages by directly popping
912         them off the bus.
913
914 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
915
916         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
917         the parser to continue instead of returning error
918         (bus_desktop_file_load): Do not free parser data when
919         parse_section_start or parse_key_value fails because it was 
920         already freed by parser_free (patch from Carlos Garcia Campos  
921         <carlosgc at gnome.org>)
922
923 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
924
925         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
926         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
927         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
928         test/test-segfault.c, test/test-utils.c,
929         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
930         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
931         Various cleanup of dead code and compiler warnings (patch from
932         Kjartan Maraas <kmaraas at gnome.org>) 
933
934 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
935
936         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
937         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
938
939 2005-11-27  Robert McQueen  <robot101@debian.org>
940
941         * python/dbus_bindings.pyx: Repair my previous commit which reverted
942         part of the preceding one. Oops. Merge patch by Johan Hedberg
943         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
944         on big-endian platforms.
945
946         * test/python/test-client.py: Add some 16-bit integers to the test
947         values.
948
949 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
950
951         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
952         method return message for property getters
953
954 2005-11-27  Robert McQueen  <robot101@debian.org>
955
956         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
957         with type v of an instance of dbus.Variant(foo, type='x') caused
958         it to be boxed twice before sending over the bus.
959
960         * python/dbus_bindings.pyx, python/service.py,
961         test/python/test-client.py: Update the constants for the new
962         request_name flags, and update comments/test cases now that queueing
963         is the default action.
964
965 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
966
967         * configure.in:
968         - Change version to 0.60 for impending release
969         - upped the sonames because of ABI and API breakage
970
971 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
972
973         * configure.in: Add test/name-test/Makefile to the generated
974         Makefile list
975
976         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
977         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
978         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
979         not to queue an ower if it can't be the primary owner
980
981         * bus/bus.h: Add new internal BusOwner struct
982
983         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
984         to bus_registry_ensure and don't set the prohibit_replacement flag
985         since they are now set per BusOwner and not per name.
986         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
987         that returns the list of connections in a name's connection queue
988         
989         * bus/services.c (struct BusService): remove prohibit_replacement field
990         (struct BusOwner): new struct for keeping track of queued connections
991         and their associated flags for the queue
992         (struct BusRegistry): add a BusOwner memory pool
993         (bus_registry_new): initialize the BusOwner memory pool
994         (bus_registry_unref): free the BusOwner memory pool
995         (_bus_service_find_owner_link): new internal method for
996         searching the queue for a specific connection
997         (bus_owner_set_flags): new method for adding setting the flags on a
998         bus owner
999         (bus_owner_new): new method that creates a BusOwner object from the
1000         pool and sets its flags
1001         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1002         (bus_registry_ensure): Add the flags parameter
1003         (bus_registry_acquire_service): Switch from using raw connections to
1004         using the BusOwner struct
1005         Add new state machine for dealing with the new set of flags
1006         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1007         cancel_ownership, free_ownership_cancel_data, 
1008         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1009         restore_ownership, free_ownership_restore_data, 
1010         add_restore_ownership_to_transaction): Switch to using BusOwner 
1011         instead of raw connections
1012         (bus_service_add_owner): Add flags parameter
1013         Switch to using BusOwner instead of raw connections
1014         Add state machine for dealing with the new set of flags
1015         (bus_service_swap_owner): Swaps the first and second owners in the
1016         queue.  Used to make sure proper signals are sent when a service looses 
1017         or gains primary ownership.  We never insert an owner at the top of the
1018         queue.  Instead we insert it in the second position and then swap.
1019         (bus_service_remove_owner): Remove the owner from the queue sending
1020         out the NameLost and NameOwnerChanged signals if the we were the 
1021         primary owner
1022         (bus_service_get_primary_owners_connection): New method that extracts
1023         the connection from the primary owner
1024         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1025         connection
1026         (bus_service_get_allow_replacement): Changed from the old 
1027         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1028         primary owner and returns if it can be replaced or not
1029         (bus_service_set_prohibit_replacement): removed
1030         (bus_service_has_owner): returns TRUE if and owner with
1031         the specified connection exists in the queue
1032         
1033         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1034         method that only compiles if tests are enabled.  Allows us to get the 
1035         unique name of a connection so we can check it against the queue when
1036         doing regression tests
1037
1038         * bus/activation.c (bus_activation_send_pending_auto_activate),
1039         bus/dispatch.c (bus_dispatch),  
1040         bus/driver.c (bus_driver_handle_get_service_owner, 
1041         bus_driver_handle_get_connection_unix_user, 
1042         bus_driver_handle_get_connection_unix_process_id,
1043         bus_driver_handle_get_connection_selinux_security_context),
1044         bus/signals.c (connection_is_primary_owner): 
1045         use bus_service_get_primary_owners_connection instead of
1046         bus_service_get_primary_owner
1047
1048         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1049         _dbus_listen_unix_socket): Calculate the length of the socket
1050         path and use that instead of using a fixed length which was
1051         causing socket names to contain many trailing Nul bytes.
1052
1053         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1054         (dbus_g_method_get_sender): New method for extracting the sender 
1055         from a DBusGMethodInvocation
1056         (dbus_g_method_return_get_reply): changed name to 
1057         dbus_g_method_get_reply
1058         (dbus_g_method_return_send_reply): changed name to
1059         dbus_g_method_send reply
1060
1061         * doc/dbus-specification.xml: New docs that describe how the new
1062         queueing system works and talks about the changes to the how
1063         we specify socket names
1064
1065         * glib/examples/example-service.c, 
1066         glib/examples/example-signal-emitter.c,
1067         glib/examples/statemachine/statemachine-server.c:
1068         Changed the RequestName flags to the new system
1069
1070         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1071         regression test suite for testing various states of the new
1072         queueing system
1073         
1074 2005-11-15  Robert McQueen  <robot101@debian.org>
1075
1076         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1077         Taylor to add two methods, dbus_g_method_return_get_reply and
1078         dbus_g_method_return_send_reply, to allow you to get the reply
1079         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1080         and send it. The GLib bindings can't marshal a return value of
1081         something like a(s) if the array is empty - ultimately they should be
1082         made to heed the signature of the out arguments as the Python bindings
1083         now can, but this is a workable interim solution which might have
1084         other applications.
1085
1086 2005-11-15  Robert McQueen  <robot101@debian.org>
1087
1088         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1089         method to org.freedesktop.DBus to release a bus name or give up
1090         waiting in the queue for it.
1091
1092         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1093         dbus_bus_release_name method to send the ReleaseName method calls.
1094         Add constants for the return values to dbus/dbus-shared.h.
1095
1096         * doc/dbus-specification.xml: Document the new ReleaseName method
1097         in the specification.
1098
1099         * python/dbus_bindings.pyx: Add a low-level python binding for the
1100         release name method.
1101
1102         * python/exceptions.py, python/service.py: Make freeing BusName
1103         objects release the name. Add a NameExistsException, and fix a
1104         bug with creating UnknownMethodException.
1105
1106         * test/python/test-client.py: Add tests for freeing BusName
1107         objects causing names to be released.
1108
1109 2005-11-14  Robert McQueen  <robot101@debian.org>
1110
1111         * python/service.py: Include the traceback in the error reply when we
1112         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1113
1114 2005-11-14  David Zeuthen  <davidz@redhat.com>
1115
1116         Patch from Timo Hoenig <thoenig@suse.de>.
1117
1118         * bus/bus.c: I've recently investigated why the automatic reload
1119         of configuration files does not work as expected.
1120
1121         Currently, reloading configuration files does only work when
1122         running dbus-daemon with --nodaemon.  If we are running as daemon
1123         we're hitting a dnotify bug once we fork the process.
1124
1125         We're initializing the dnotify fds before calling fork().  Once
1126         the child process forked it does still have the fds (and they
1127         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1128         getting SIGIO as changes are made to the configuration files.
1129
1130         The attached patch moves the initialization of the dnotify fds to
1131         process_config_postinit().  This is safe for all current code
1132         paths and solves the dnotify disfunction.  If we're running
1133         dbus-daemon as daemon the fds for dnotify are now being
1134         initialized after fork() for the child process.
1135
1136         * configure.in: The current configure.in check for dnotify probes
1137         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1138         match for 'xlinux', too. Additionally I have adapted the configure
1139         option's style to match with the others.
1140
1141 2005-11-14  Robert McQueen  <robot101@debian.org>
1142
1143         * python/decorators.py, python/service.py: Add a new argument to the
1144         dbus.service.method decorator called sender_keyword, which if set,
1145         specifies the name of an argument which will be provided the bus
1146         name of the method caller.
1147
1148         * test/python/test-client.py, test/python/test-service.py: Add a
1149         method and test to check the sender_keyword functionality.
1150
1151 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1152
1153         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1154         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1155         Simons <sjoerd at luon.net>)
1156
1157         * AUTHORS: Add Robert McQueen for his work on the Python
1158         Bindings and other parts of D-Bus
1159
1160 2005-11-07  Robert McQueen  <robot101@debian.org>
1161
1162         * python/decorators.py: Change emit_signal function to use the
1163         signature annotation of the signal when marhsalling the arguments from
1164         the service. Fix a bug where the code checking signature length
1165         against argument length referenced the wrong variable.
1166
1167         * python/introspect_parser.py: Avoid adding the type signature of
1168         signal arguments to any methods which occur after them in the
1169         introspection data (!) by making the parser a little more careful
1170         about its current state.
1171
1172         * python/service.py: Remove debug prints from last commit (again :D).
1173
1174         * test/python/test-client.py, test/python/test-service.py: Add test
1175         signals with signature decorators to test the strict marshalling code
1176         gives errors at the right time. Could do with checking the signals
1177         actually get emitted too, given that the test does nothing with
1178         signals at the moment...
1179
1180 2005-11-07  Robert McQueen  <robot101@debian.org>
1181
1182         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1183         instances to stop madness of creating new instances representing
1184         the same bus connection all the time, rendering any tracking of
1185         match rules and bus names quite meaningless. Caught a bug where
1186         the private argument to SessionBus() and friends was being passed
1187         in as use_default_mainloop by mistake. Still some problems with
1188         multiple dbus_binding.Connection instances representing the same
1189         low-level connection (eg when you use both SessionBus() and
1190         StarterBus() in same process), but it's a lot better now than it
1191         was.
1192
1193         * python/dbus_bindings.pyx: Add constants with the return values
1194         for bus_request_name().
1195
1196         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1197         and retrieve the same instances for the same name, so deletion can be
1198         done with refcounting. Also now throws some kind of error if you
1199         don't actually get the name you requested, unlike previously...
1200
1201         * test/python/test-client.py: Add tests for instance caching of buses
1202         and bus name objects.
1203
1204 2005-11-04  Robert McQueen  <robot101@debian.org>
1205
1206         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1207         marshalling of boolean values. Add some booleans to the values in
1208         the test client.
1209
1210         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1211         argument to the dbus.service.method decorator, which allows you to
1212         name arguments to take two callback functions for replying with
1213         return values or an exception.
1214
1215         * test/python/test-client.py, test/python/test-service.py: Add test
1216         case using asynchronous method reply functions, both return values and
1217         errors, and from within both the function itself and from a mainloop
1218         callback.
1219
1220         * python/decorators.py, python/service.py: Perform checking that the
1221         number of method/signal arguments matches the number of types in the
1222         signature at class loading time, not when you first introspect the
1223         class.
1224
1225         * python/service.py: Remove debug print left by the last commit.
1226
1227 2005-11-03  Robert McQueen  <robot101@debian.org>
1228
1229         * python/service.py: Heavy refactoring of method invocation, with
1230         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1231         in favour of a new _message_cb that uses seperate functions for
1232         looking up the method to call, marshalling the return values, and
1233         sending exceptions as errors, and is easier to follow as a
1234         consequence.  Fixes some corner cases about returning things that
1235         don't match your declared out_signature, allows exceptions to define
1236         _dbus_error_name and have it be sent over the bus as the error name,
1237         and paves the way for cool stuff like heeding the message no reply
1238         flag, asynchronous method implementations, informing the method of the
1239         sender, and including backtraces in the error messages.
1240
1241         * test/python/test-client.py: Catch and print exceptions thrown in the
1242         async callback tests, rather than passing them to the low-level
1243         bindings to be ignored in a noisy and frustrating manner.
1244
1245 2005-11-03  Robert McQueen  <robot101@debian.org>
1246
1247         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1248         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1249         tweak others to be consistent.
1250
1251         * test/python/test-client.py: Tweak output of testInheritance.
1252
1253 2005-10-29  Robert McQueen  <robot101@debian.org>
1254
1255         * python/service.py: Major changes to allow multiple inheritance
1256         from classes that define D-Bus interfaces:
1257         
1258          1. Create a new Interface class which is the parent class of
1259             Object, and make the ObjectType metaclass into InterfaceType.
1260         
1261          2. Patch written with Rob Taylor to replace use of method_vtable
1262             with code that walks the class's __MRO__ (method resolution order)
1263             to behave like Python does when invoking methods and allow
1264             overriding as you'd expect. Code is quite tricky because
1265             we have to find two methods, the one to invoke which has the
1266             right name and isn't decorated with the /wrong/ interface,
1267             and the one to pick up the signatures from which is decorated
1268             with the right interface.
1269         
1270             The same caveats apply as to normal multiple inheritance -
1271             this has undefined behaviour if you try and inherit from two
1272             classes that define a method with the same name but are
1273             decorated with different interfaces. You should decorate
1274             your overriding method with the interface you want.
1275         
1276          3. Replace grungy introspection XML generation code in the metaclass
1277             with dictionaries that cope correctly with multiple inheritance
1278             and the overriding of methods. This also uses the signature
1279             decorations to provide correct introspection data, including
1280             the debut appearance of the types of your return values. :D
1281
1282         * test/python/test-client.py, test/python/test-service.py: Add a test
1283         case to try invoking an method that overrides one inherited from a
1284         D-Bus interface class.
1285
1286 2005-10-29  Robert McQueen  <robot101@debian.org>
1287
1288         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1289         Add checking for the end of struct character when marshalling a
1290         struct in MessageIter.append_strict.
1291
1292         * python/examples/example-service.py,
1293         python/examples/gconf-proxy-service.py,
1294         python/examples/gconf-proxy-service2.py: Update to use gobject
1295         mainloop directly rather than appearing to depend on gtk.
1296
1297         * python/test/test-client.py, python/test/test-server.py: Remove
1298         obsolete and broken test scripts for old bindings. We have up to date
1299         and working tests in test/python/.
1300
1301 2005-10-29  Robert McQueen  <robot101@debian.org>
1302
1303         * python/decorators.py: Add optional arguments to the method and
1304         signal decorators to allow you to specify the signature of arguments
1305         and return values. Preserve the doc strings of signal functions in the
1306         decorated version, for pydoc and friends.
1307
1308         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1309         parse_signature_block function with an iterable dbus.Signature()
1310         type. Fix a bug in MessageIter.append_strict where you could append
1311         anything by claiming it was a string.
1312
1313         * python/service.py: Use the out_signature decoration on methods to
1314         marshal return values, meaning you no longer require dbus.Array()
1315         or dbus.Dictionary() to indicate the type when returning empty
1316         arrays or dictionaries. Fix a bug where exceptions which are defined
1317         in __main__ are not turned into error replies.
1318
1319         * test/python/test-client.py, test/python/test-service.py: Add test
1320         for correct marshalling of return values according to out_signature.
1321         Fix a bug in the async call test where the error_handler is missing a
1322         self argument.
1323
1324 2005-10-29  Robert McQueen  <robot101@debian.org>
1325
1326         * glib/Makefile.am, glib/examples/Makefile.am,
1327         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1328         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1329
1330         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1331
1332         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1333         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1334         the command line.
1335
1336 2005-10-27  Ross Burton  <ross@openedhand.com>
1337
1338         * dbus/dbus-marshal-header.c:
1339         Remove dead code.
1340
1341         * glib/dbus-gobject.c:
1342         Stop compiler warning.
1343
1344 2005-10-25  Ross Burton  <ross@openedhand.com>
1345
1346         * dbus/dbus-auth.c:
1347         * dbus/dbus-server-unix.c:
1348         * dbus/dbus-transport-unix.c:
1349         * glib/dbus-gmain.c:
1350         * glib/dbus-gobject.c:
1351         Add some const keywords.
1352
1353 2005-10-25  Ross Burton  <ross@openedhand.com>
1354
1355         * doc/dbus-specification.xml:
1356         Document the NoReply annotation.
1357
1358         * glib/dbus-binding-tool-glib.h:
1359         * glib/dbus-binding-tool-glib.c:
1360         Respect the NoReply annotation.
1361
1362 2005-10-24  Robert McQueen <robot101@debian.org>
1363
1364         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1365         derive from unicode instead of str, and encode/decode UTF-8 when
1366         marshalling/unmarshalling bus messages
1367
1368         * python/introspect_parser.py: encode introspection data as UTF-8
1369         before passing the buffer into libxml2
1370
1371         * test/python/test-client.py: add unicode test strings
1372
1373         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1374         ignore generated python test files
1375
1376 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1377
1378         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1379         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1380         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1381
1382         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1383         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1384         when constructing struct signatures
1385
1386         * python/_dbus.py (Bus): handle private connections using the
1387         private keyword in the constructor. defaults to private=False
1388         (Bus::close): new method to close a connection to the bus
1389
1390         * python/dbus_bindings.pyx (Connection::close): renamed method
1391         was previously called disconnect
1392         (bus_get): now supports getting a private connection
1393
1394         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1395         keyword is set to True.  if it is, execute the method without waiting
1396         for a reply
1397         (ProxyObject::_introspect_execute_queue): new method for executing
1398         all the pending methods that were waiting for the introspect to
1399         finish.  this is called when introspect either succeeds or fails
1400         (ProxyObject::_introspect_error_handler): call queued methods
1401
1402 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1403
1404         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1405         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1406
1407         * python/service.py (Object::_message_cb): handle exceptions correctly
1408         by sending them over the wire to the calling app.  This makes sure
1409         the client returns immediately instead of waiting the 15 seconds to
1410         timeout.
1411
1412         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1413         Add a test to benchmark how long it takes to introspect a service and 
1414         call a method which returns a large element (pretty fast)
1415
1416         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1417         method which pushes a lot of data
1418
1419 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1420
1421         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1422         reclaim memory outside of the loop and use del istead of just setting
1423         the key to None
1424
1425 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1426
1427         * python/service.py (ObjectType::_reflect_on_signal): Always close
1428         signal tag even when there are no arguments
1429
1430 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1431
1432         * configure.in: Set mono, mono-docs and Qt3 to default
1433         to no instead of auto when building.  These bindings do not
1434         have full time maintainers and will not be supported for the
1435         1.0 release.
1436
1437 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1438
1439         patches from Michael Krivoruchko <misha at sun.com>: 
1440         
1441         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1442         _dbus_connection_message_sent, 
1443         _dbus_connection_send_preallocated_unlocked_no_update, 
1444         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1445         is NULL when calling _dbus_verbose
1446
1447         * configure.in: check for functions getpeerucred and getpeereid
1448
1449         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1450         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1451         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1452         Patch was only tested on Solaris 10 x86 so it might be issues
1453         with other platforms (i.e. BSDs and MacOSX)
1454         
1455
1456 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1457
1458         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1459         instead of marshal basic so we can handle recursive types in a variant
1460
1461         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1462         in variants
1463
1464         * test/glib/test-service-glib.c, test-service-glib.xml
1465         (my_object_echo_variant [EchoVariant], 
1466         my_object_process_variant_of_array_of_ints123
1467         [ProcessVariantOfArrayOfInts123]): 
1468         Add two test methods
1469
1470         * python/introspect_parser.py: New module for parsing introspect
1471         data.
1472
1473         * python/dbus_bindings.pyx:
1474         (various places): when throwing errors fix to use errormsg instead 
1475         of message local variable because Pyrex can get confused with other 
1476         message variables (initial patch by Robert McQueen 
1477         <robert.mcqueen at collabora.co.uk>)
1478         (MessageIter::parse_signature_block): new method for getting the next
1479         block in a signiture.
1480         (MessageIter::append_strict): new method for appending values strictly
1481         using the passed in signature instead of guessing at the type
1482         (MessageItter:: append_dict, append_struct, append_array): use 
1483         signatures to marshal children if the signature is available
1484         
1485         * python/exceptions.py (IntrospectionParserException): new exception
1486
1487         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1488         introspected signatures if available, else we fall back to the
1489         old way of doing things.
1490         (ProxyObject::_introspect_reply_handler ): parse introspection data
1491         
1492         * python/service.py (ObjectType::_reflect_on_method): Properly
1493         terminate <method> if there are no args in the reflection data
1494
1495         * test/python/test-client.py: add tests for talking with the GLib
1496         test server.  This gives us better coverage for introspection since
1497         python to python will always generate arguments as variants.  It also
1498         allows us to test the robustness of the GLib bindings and interlanguage
1499         communications.
1500
1501         
1502 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1503
1504         * bus/driver.c (bus_driver_handle_introspect): Add signals
1505         to the introspect data. (patch from Daniel P. Berrange 
1506         <dan at berrange.com>)
1507
1508         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1509         
1510         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1511         _dbus_connection_run_builtin_filters): Changed these to
1512         be unlock_no_update functions and call 
1513         _dbus_connection_send_unlocked_no_update instead of
1514         dbus_connection_send to avoid locking errors.
1515         
1516         * doc/TODO: Removed the make Ping test TODO
1517         
1518 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1519
1520         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1521         We now copy the message from a DBusError and then free 
1522         the error object befor throwing the error
1523
1524         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1525         DBusBindingOutputMode enum which was causing a warning.
1526         #include <time.h> so using time_t is explicitly defined
1527
1528 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1529
1530         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1531         - dbus/dbus-bus.c
1532         (internal_bus_get): new method that take over the heavy lifting
1533         of dbus_bus_get and adds the ability to get a private connection
1534         to the bus
1535         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1536         interface as in previous versions
1537         (dbus_bus_get_private): new method that is a wrapper to 
1538         internal_bus_get to get a private connection to the bus
1539
1540         - dbus/dbus-bus.h
1541         (dbus_bus_get_private): add as a public libdbus interface
1542
1543         - dbus-1.pc.in: output system_bus_default_address and 
1544         sysconfdir variables so apps can use them when compiling
1545
1546 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1547         * dbus/qt: New Qt bindings
1548
1549 2005-09-12  Waldo Bastian  <bastian@kde.org>
1550
1551         * dbus/dbus-marshal-validate.c,
1552         doc/dbus-specification.xml, test/Makefile.am,
1553         test/test-names.c: allow hyphens in bus names.
1554
1555 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1556
1557         * test/data/auth/fallback.auth-script: we don't
1558         retry the EXTERNAL method when we know its going
1559         to fail anymore.
1560
1561 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1562
1563         * dbus/dbus-connection-internal.h: rename
1564         (add|remove|toggle)_(watch|timeout) to unlocked()
1565         
1566         * dbus/dbus-connection.c: ditto.
1567         
1568         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1569         Update some callers for the renaming.
1570
1571 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1572
1573         * dbus/dbus-auth.c: (record_mechanisms): don't
1574         retry the first auth mechanism because we know
1575         we're just going to get rejected again.
1576         
1577         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1578         Fix thinko ... and what a nasty little bugger to
1579         track down you were ...
1580
1581         * dbus/dbus-connection.c:
1582         (_dbus_connection_add_watch),
1583         (_dbus_connection_remove_watch): add note about
1584         these needing the connection to be locked.
1585         (_dbus_connection_get_dispatch_status_unlocked):
1586         set status to DATA_REMAINS when we queue the
1587         disconnected message.
1588         
1589         * bus/dispatch.c:
1590         (bus_dispatch): fix warning.
1591         (check_existent_service_no_auto_start):
1592         Expect ChildSignaled error too.
1593         (check_existent_hello_from_self): fix another
1594         couple of warnings.
1595         
1596 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1597
1598         Patches from James Willcox <snorp@snorp.net>
1599
1600         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1601
1602         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1603         support array "out" parameters.
1604
1605         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1606         for 16-bit int support.
1607
1608 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1609
1610         * Released 0.50
1611
1612         * Patch from Steve Grubb:
1613         - bus/activation.c (bus_activation_service_reload_test): clean up
1614         some indentation
1615         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1616         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1617         buffer overflows in the test suite.  This is non critical because
1618         it can not be exploited and this code is only run when doing a 
1619         make check.
1620
1621         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1622         - configure.in: Don't check and link against kdecore, only qt headers
1623         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1624         - gcj/org/freedesktop/dbus/Makefile.am:
1625         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1626         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1627         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1628         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1629         - tools/Makefile.am: Add platform extentions to binaries 
1630         (i.e. .exe on windows)
1631
1632         * configure.in: 
1633         - Make it so if no suitable version of python is found we only 
1634         disable building python instead of exiting the configure script
1635         - Require version 2.4 of glib for glib bindings
1636         - Up version to 0.50
1637
1638         * python/__init__.py: Sync version with libdbus to (0,50,0)
1639         
1640 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1641
1642         * dbus/dbus-object-tree.c (find_subtree_recurse):
1643         a couple of optimizations (bug #710):
1644         - do a binary search in the tree
1645         - insert a new child at the right place directly, no need for
1646           qsort anymore
1647         - do the "double alloc" thing when allocating children
1648
1649 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1650
1651         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1652
1653         * python/dbus_bindings.pyx: Memory management foo
1654         (global): remove hacky _user_data_references global list
1655         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1656         tuples. Unref user_data
1657         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1658         (Connection::__del__): Remove and replace with __dealloc__ method
1659         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1660         to keep tuple from being deallocated instead of the global var hack
1661         (Connection::register_object_path): Stuff user_data into a tuple.
1662         Use Py_INCREF to keep tuple from being deallocated instead of the 
1663         global var hack
1664         (Connection::register_fallback): Stuff user_data into a tuple.
1665         Use Py_INCREF to keep tuple from being deallocated instead of the 
1666         global var hack
1667         (GIL_safe_pending_call_notification): Don't unref the message
1668         because it gets unreffed when going out of scope.  Py_XDECREF
1669         the user_data
1670         (PendingCall::__del__): Remove and replace with __dealloc__ method
1671         (PendingCall::set_notify): ref the pending call because we will
1672         need it to stick around for when the notify callback gets called
1673         (Message::__del__): Remove and replace with __dealloc__ method
1674
1675         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1676         gthreads_init to match up with the dbus call
1677
1678         * python/glib.py (init_threads): Changed to threads_init to match
1679         up with gobject.threads_init().  init_threads is kept for backwards
1680         compat but will most likely be deprecated in the future
1681
1682         * test/python/test-client.py: 
1683         - revamp to use Python's unittest functionality
1684         - add async call tests
1685         - setup threads in glib and dbus so we make sure locks are working
1686         
1687 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1688
1689         * python/dbus_bindings.pyx 
1690         (_pending_call_notification, cunregister_function_handler, 
1691         cmessage_function_handler): All callback functions have been rearranged 
1692         to workaround a bug in Pyrex when working with the GIL which is Python's 
1693         global lock when dealing with threads.  They have been split into
1694         a wrapper function (which assumes the name of the old function) and
1695         a _GIL_safe_<function name> function which contains the functionality
1696         of the old function.  This ensures that Pyrex does not write code
1697         the lock is released.
1698         
1699
1700 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1701
1702         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1703         GIL global lock when calling back into Python
1704
1705 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1706
1707         * Release 0.36.2
1708
1709         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1710
1711         * bus/policy.c (bus_policy_allow_user): change default "user is
1712         allowed" to be "user has same uid as the bus itself"; any
1713         allow/deny rules will override.
1714
1715         * bus/session.conf.in: don't allow all users, since now by default
1716         the user that ran the bus can connect.
1717
1718 2005-08-26  Colin Walters  <walters@verbum.org>
1719
1720         * tools/dbus-print-message.c (print_message): Flush stdout
1721         after printing a message, so that redirecting to a file, then
1722         hitting Ctrl-C works.
1723
1724 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1725
1726         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1727         (EmptyMessage): new class that subclasses Message.  This is a workaround
1728         to a Pyrex bug that fails to call __del__ when the Message object goes out
1729         of scope.  For some reason subclassing Message fixes this bug
1730         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1731         - s/Message(_create=0)/EmptyMessage everywhere else
1732         
1733         * test/python/test-{server|client}.py: add the python/.libs directory
1734         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1735         get picked up from the system
1736
1737 2005-08-25  Colin Walters  <walters@verbum.org>
1738
1739         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1740         to Ryan Lortie for the suggestion.
1741
1742 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1743
1744         * test/python: Add python regression test
1745
1746         * configure.in: Add test/python/Makefile
1747
1748         * test/Makefile.am: Add the python directory to SUBDIRS
1749
1750 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1751
1752         * Release 0.36.1
1753
1754         * python/_dbus.py: 
1755         (Interface::connect_to_signal): propigate keywords for match on args
1756         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1757
1758         * python/proxies.py (ProxyObject::connect_to_signal):
1759         propigate keywords for match on args
1760
1761         * Makefile.am: point everything to pyexecdir since python borks
1762         on multilib
1763
1764 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1765
1766         * Release 0.36
1767
1768 2005-08-23  Colin Walters  <walters@verbum.org>
1769
1770         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1771
1772 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1773
1774         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1775         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1776         of defining DBusConnection ourselves.
1777
1778 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1779
1780         * python/dbus.pth: New path file to fix up problems when installing
1781         c libraries to lib64 and python files to lib.
1782
1783         * python/Makefile.am: install dbus.pth in the correct spot
1784
1785 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1786         * ChangeLog: clean up my last entry a bit
1787
1788         * doc/introspect.xsl: New stylesheet for converting introspection data
1789         into browser renderable xhtml. Contributed by Lennart Poettering.
1790
1791         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1792         Poettering.
1793
1794         * doc/dbus-tutorial.xml: 
1795         - Add Colin Walter to the Authors section for authoring the GLib
1796         section
1797         - Add descriptions of the new signature and type functionality
1798         in the Python complex type mapping section
1799         - Add a sidenote on the new args matching functionality in 
1800         the Python bindings
1801         - Fixed up some of the examples to use the gobject.MainLoop
1802         instead of gtk.main
1803         
1804         * python/_dbus.py:
1805         (Bus::_create_args_dict): New. Converts a hash of arg matches
1806         to a more useable format
1807         (Bus::add_signal_receiver): add a **keywords parameter for catching
1808         arg match parameters
1809         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1810         arg match parameters
1811         
1812         * python/matchrules.py:
1813         (MatchTree::exec_matches): Check for arg matches
1814         (SignalMatchRule::add_args_match): New method
1815         (SignalMatchRule::execute): Added args_list parameter as an optimization
1816         so we don't have to marshal the args more than once
1817         (SignalMatchRule::match_args_from_list): New method that checks to see
1818         if the rule's arg matches match an argument list.  Only arguments
1819         set in the rule are checked.
1820         (SignalMatchRule::match_args_from_rule): New method that checks to see
1821         if the rule's arg matches match another rule's.  All args have to match
1822         in order for this method to return true.  If either rule has more args
1823         then it is not a match.
1824         (SignalMatchRule::is_match): Add args match
1825         (SignalMatchRule::repr): Add args to the final output if they exist
1826
1827 2005-08-17  Ross Burton  <ross@burtonini.com>
1828
1829         * glib/dbus-gproxy.c:
1830         (dbus_g_proxy_call_no_reply): unref the message once sent.
1831         (dbus_g_proxy_call): protect against NULL proxy.
1832
1833 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1834
1835         * python/__init__.py: Version updated (0, 43, 0)
1836         
1837         * python/dbus_bindings.pyx: 
1838         - Fixed type objects to have self passed into __init__
1839         - Added the Variant type
1840         - Add the ability to specify types or signatures for Array, Variant 
1841         and Dictionary
1842         (Connection::send_with_reply_handlers): return a PendingCall object
1843         (_pending_call_notification): handle the case when an error is returned 
1844         without an error message in the body
1845         (MessageIter::get_boolean): return True or False instead of an integer
1846         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1847         and add checks for objects with embeded signatures or types (Array, 
1848         Variant and Dictionary)
1849         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1850         (MessageIter::append_dict): handle embeded types or signatures
1851         (MessageIter::append_array): handle embeded types or signatures
1852         (MessageIter::append_variant): new method
1853         
1854         * python/proxies.py:
1855         (DeferedMethod): New. Dummy executable object used when queuing calls 
1856         blocking on introspection data
1857         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1858         or shorter timeouts for method calls
1859         (ProxyObject): Add first pass at an introspection state machine
1860         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1861         introspection. 
1862         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1863         the usual mechanisms for sending messages.  This is to avoid a deadlock
1864         where the Intospect call would be queued waiting for the Introspect 
1865         call to finish ;-)
1866         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1867         when introspection returns with no error
1868         (ProxyObject::_introspect_error_handler): New.  This method is called 
1869         when introspection encounters an error
1870         (ProxyObject::__getattr__): Code to handle different introspection 
1871         states.  Queue async calls or block blocking calls if we are 
1872         introspecting.  Pass through as normal if we are not or are done with 
1873         introspecting.
1874         
1875         * python/service.py: Import signal and method from decorators.py
1876
1877         * python/types.py: Add Variant type
1878
1879 2005-08-16  Colin Walters  <walters@verbum.org>
1880
1881         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1882         DBusError message is NULL.
1883
1884 2005-08-09  Havoc Pennington  <hp@redhat.com>
1885
1886         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1887         malloc'd copy of the name parameter
1888
1889 2005-08-09  Havoc Pennington  <hp@redhat.com>
1890
1891         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1892         warning if the reply serial is set to 0
1893
1894 2005-08-04  Colin Walters  <walters@verbum.org>
1895
1896         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1897         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1898         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1899         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1900         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1901         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1902         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1903         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1904         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1905         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1906         
1907         Prefix name with _ to ensure they're not exported.  All callers
1908         updated.
1909
1910         * glib/dbus-gvalue.c (typecode_to_gtype)
1911         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1912         (signature_iter_to_g_type_dict)
1913         (signature_iter_to_g_type_array)
1914         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1915         (dbus_gtypes_from_arg_signature):
1916         Move to dbus-gsignature.c.
1917
1918         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1919         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1920         (dbus_binding_tool_output_glib_client): Ditto.
1921
1922         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1923         and dbus-gsignature.h
1924
1925         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1926         unused variable.
1927
1928 2005-08-03  Colin Walters  <walters@verbum.org>
1929
1930         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1931         catch any incompatible changes accidentally made.
1932
1933 2005-08-03  Havoc Pennington  <hp@redhat.com>
1934
1935         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1936         typo, from Julien Puydt
1937
1938         * bus/connection.c (bus_connection_disconnected): we were always
1939         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1940
1941 2005-08-01  Colin Walters  <walters@verbum.org>
1942
1943         Patch from Joe Markus Clarke:   
1944         
1945         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1946         use-after-free.
1947
1948 2005-08-01  Colin Walters  <walters@verbum.org>
1949         
1950         Patch from Joe Markus Clarke:   
1951         
1952         * tools/dbus-send.c (main): 
1953         
1954         Don't use C99 style initializers (bug #3933).
1955         
1956 2005-08-01  Colin Walters  <walters@verbum.org>
1957
1958         Patch from Joe Markus Clarke:   
1959
1960         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1961         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1962         * glib/dbus-gobject.c (write_interface):
1963
1964         Don't use C99 style initializers (bug #3933).
1965
1966 2005-07-31  Havoc Pennington  <hp@redhat.com>
1967
1968         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1969         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1970
1971 2005-07-30  Havoc Pennington  <hp@redhat.com>
1972
1973         * fix a bunch of Doxygen warnings and mistakes
1974
1975 2005-07-30  Havoc Pennington  <hp@redhat.com>
1976
1977         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1978         DBUS_BUILD_TESTS since it's now used in production code
1979
1980 2005-07-29  Havoc Pennington  <hp@redhat.com>
1981
1982         * test/glib/test-profile.c (write_junk): initialize the junk
1983         buffer so valgrind doesn't have a breakdown
1984
1985 2005-07-29  Havoc Pennington  <hp@redhat.com>
1986
1987         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1988         (match_rule_matches): remove unused arg
1989         (test_matching): add tests for match_rule_matches()
1990
1991         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1992         do arg0='foo' arg5='bar' in the match rules
1993         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1994
1995         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1996
1997 2005-07-29  Ross Burton  <ross@openedhand.com>
1998
1999         * dbus/dbus-connection.c:
2000         Don't create a DBusCondVar which is never used.
2001
2002 2005-07-27  Ross Burton  <ross@openedhand.com>
2003
2004         * dbus/dbus-message.c:
2005         Reduce the size of the maximum cached message to 10K.
2006
2007 2005-07-25  Ross Burton  <ross@openedhand.com>
2008
2009         * glib/dbus-gproxy.c:
2010         Remove matches when all proxies are unregistered.
2011
2012 2005-07-24  Colin Walters  <walters@verbum.org>
2013
2014         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2015         typedata; recursive arrays won't have it.
2016
2017         * test/glib/test-dbus-glib.c:
2018         * test/glib/test-service-glib.c:
2019         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2020         
2021 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2022
2023         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2024         proxies.py, service.py: Cleanup of code after running it through the
2025         pyflakes code checker mostly dealing with undefined names.  
2026         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2027
2028 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2029
2030         * NEWS: Update to 0.35.2
2031
2032 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2033
2034         * python/_dbus.py: Remove import of the dbus.services
2035         module as it no longer exists (patch from Dimitur Kirov)
2036
2037         * python/service.py (Object::__init__): Fixed typo
2038         s/name/bus_name (patch from Dimitur Kirov)
2039
2040         * python/examples/example-signal-emitter.py: import dbus.glib
2041         to get the main loop and use glib mainloop instead of gtk so
2042         X doesn't have to be running.
2043
2044         * python/examples/example-signal-recipient.py: import dbus.glib
2045         to get the main loop and use glib mainloop instead of gtk so
2046         X doesn't have to be running. Import the decorators module
2047         directly.
2048
2049         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2050         didn't pick up on but are needed to build
2051
2052         * configure.in: upped version to 0.35.2
2053
2054         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2055         added Colin Walters' SELinux API rename patch from head 
2056         s/unix sercurity context/selinux security context/
2057
2058 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2059
2060         * python/Makefile.am: dbus_binding.pxd.in should be included 
2061         in EXTRA_DIST not dbus_binding.pxd
2062         fix up $(srcdir) hopefully for the last time
2063
2064         * NEWS: Update to 0.35.1
2065
2066 2005-07-16  Colin Walters  <walters@verbum.org>
2067
2068         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2069         from bus_driver_handle_get_connection_unix_security_context.  Update for
2070         error usage.
2071         (message_handlers): Update for renames.
2072
2073         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2074         _dbus_string_init failure correctly.
2075         (bus_selinux_append_context): Convert SID to context.  Append it
2076         as a byte array.
2077         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2078         hasn't been called.
2079
2080         * bus/selinux.h: Update prototype.
2081
2082         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2083         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2084
2085 2005-07-15  Colin Walters  <walters@verbum.org>
2086
2087         * doc/TODO: Add note about convenience wrappers.
2088
2089 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2090
2091         * NEWS: Update to 0.35
2092
2093 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2094
2095         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2096         so distcheck doesn't fail
2097
2098         * glib/examples/Makefile.am: Add example-service.xml and 
2099         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2100
2101         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2102         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2103
2104         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2105         compiler looks in the right places during distcheck
2106
2107 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2108
2109         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2110         to fail
2111
2112 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2113
2114         * python/examples/example-service.py,
2115         python/examples/example-signal-emitter.py: Fixed up examples
2116         for API changes
2117
2118 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2119
2120         * python/__init__.py: Upped to version (0,42,0) because of
2121         the API change
2122
2123 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2124
2125         * ChangeLog: fix date in last entry
2126
2127         * configure.in, bus/system.conf.in: add the ability to configure 
2128         the system bus user at compiletime with the --with-dbus-user flag
2129         (patch from Kristof Vansant)
2130
2131 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2132
2133         * bus/dispatch.c, test/test-service.c: Add testcase
2134         for sending messages to oneself (TODO item).
2135
2136         * python/service.py (class Object): Swap ordering of bus_name 
2137         and object_path parameters to better support inheritance.
2138
2139         * doc/dbus-tutorial.xml: change Python docs to reflect change
2140         in parameter ordering and fix the inheritance section.
2141
2142         * doc/TODO: remove sending message to oneself TODO item
2143
2144 2005-07-15  Ross Burton  <ross@openedhand.com>
2145
2146         * glib/dbus-gproxy.c:
2147         Fix a leak when calling methods via the proxy.
2148
2149 2005-07-15  Colin Walters  <walters@verbum.org>
2150
2151         * bus/selinux.c (bus_selinux_append_context): Wrap in
2152         HAVE_SELINUX.
2153
2154 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2155
2156         * python/_dbus.py (Bus::remove_signal_receiver):
2157         don't add a callback to the match if none has been passed in
2158         
2159         * python/matchrules.py (SignalMatchTree::remove): if the rule
2160         being matched does not have a callback treat it as a wildcard
2161         fix matching logic
2162
2163         * doc/dbus-tutorial.xml: Add Python tutorial
2164
2165 2005-07-14  Colin Walters  <walters@verbum.org>
2166
2167         * bus/driver.c
2168         (bus_driver_handle_get_connection_unix_security_context): New function.
2169         (message_handlers): Add.
2170
2171         * bus/selinux.c (bus_selinux_append_context): New function; appends
2172         security context to message.
2173
2174         * bus/selinux.h: Prototype.
2175
2176         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2177
2178 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2179
2180         * bus/activation.c: clean up all tabs to be 8 spaces 
2181         (bus_activation_activate_service): make sure we clean up
2182         if activation fails
2183
2184         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2185         (check_shell_fail_service_auto_start): New function
2186         tests to make sure we get fail properly when trying to auto start a service
2187         with a faulty command line
2188         (check_shell_service_success_auto_start): New function tests to make sure
2189         auto started services get the arguments on the command line
2190
2191         * test/test-shell-service.c: Added service for testing auto-starting with 
2192         command line arguments
2193
2194         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2195         test/data/valid-service-files/debug-shell-echo-success.service.in:
2196         Added service files for testing auto-starting with command line arguments
2197
2198         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2199
2200 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2201
2202         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2203         
2204         * dbus/Makefile.am: added new files to build.
2205
2206         * bus/activation.c (bus_activation_activate_service): support
2207         activation commands with parameters.
2208
2209         * test/shell-test.c: added test program for the shell parsing
2210         code.
2211
2212 2005-07-13  David Zeuthen  <davidz@redhat.com>
2213
2214         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2215         64 bit signed and unsigned parameters
2216
2217 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2218
2219         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2220
2221         * python/service.py (class Name): renamed BusName to make it clearer
2222         what the object is for (a name on the bus)
2223
2224         * python/examples/example-service.py,
2225         python/examples/example-signal-emitter.py: change the Name object to
2226         BusName
2227
2228 2005-07-12  Colin Walters  <walters@verbum.org>
2229
2230         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2231
2232         * tools/dbus-launch.c: Include sys/select.h.
2233
2234 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2235         * python/dbus_bindings.pyx.in: removed
2236
2237         * python/dbus_bindings.pyx: Added.
2238         - Fixed some memleaks (patch from 
2239         Sean Meiners <sean.meiners@linspireinc.com>)
2240         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2241         own pxd file (Pyrex definition)
2242         - Broke out glib dependancies into its own pyx module
2243         
2244         * python/dbus_bindings.pdx: Added.
2245         - Defines C class Connection for exporting to other modules
2246
2247         * python/dbus_glib_bindings.pyx: Added.
2248         - New module to handle lowlevel dbus-glib mainloop integration
2249
2250         * python/glib.py: Added.
2251         - Registers the glib mainloop when you import this module
2252
2253         * python/services.py: Removed (renamed to service.py)
2254         
2255         * python/service.py: Added.
2256         - (class Server): renamed Name
2257
2258         * python/__init__.py: Bump ro version (0,41,0)
2259         -don't import the decorators or service module
2260         by default.  These now reside in the dbus.service namespace
2261
2262         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2263         setup function on creation 
2264
2265         * python/examples/example-service.py,
2266         python/examples/example-signal-emitter.py: update examples
2267
2268         * python/examples/gconf-proxy-service.py,
2269         python/examples/gconf-proxy-service2.py: TODO fix these up
2270
2271         * doc/TODO: Addition
2272         - Added a Python Bindings 1.0 section
2273         - added "Add match on args or match on details to match rules"
2274
2275
2276 2005-07-12  Colin Walters  <walters@verbum.org>
2277
2278         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2279         (statemachine-glue.h): 
2280         * glib/examples/Makefile.am (example-service-glue.h) 
2281         (example-signal-emitter-glue.h): 
2282         * glib/Makefile.am (dbus-glib-error-switch.h): 
2283         Add libtool --mode=execute so we use the built library instead
2284         of any installed one.
2285
2286 2005-07-11  Colin Walters  <walters@verbum.org>
2287
2288         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2289         (dbus_g_value_types_init): Remove assertion.
2290         (dbus_g_value_get_g_type, dbus_g_value_open)
2291         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2292         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2293         functions related to DBusGValue.  Now we marshal/demarshal
2294         structures as GValueArray.
2295         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2296         structures.
2297         (signature_iter_to_g_type_array): Don't call
2298         signature_iter_to_g_type_struct.
2299         (signature_iter_to_g_type_struct): Delete.
2300         (dbus_gvalue_to_signature): Delete.
2301         (dbus_gvalue_to_signature): New function with same name as other
2302         one; we can convert structures to signatures.
2303         (demarshal_valuearray): New function.
2304         (get_type_demarshaller): Use it.
2305         (demarshal_recurse): Delete.
2306         (marshal_proxy): New function.
2307         (marshal_map): Warn if we can't determine signature from type.
2308         (marshal_collection_ptrarray): Ditto.
2309         (marshal_collection_array): Ditto.
2310         (get_type_marshaller): Use marshal_valuearray.
2311         (marshal_recurse): Delete.
2312         (_dbus_gvalue_test): Add some tests.
2313
2314         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2315         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2316         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2317         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2318         (dbus_g_value_free): Remove prototypes.
2319
2320         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2321         G_TYPE_VALUE_ARRAY.
2322
2323         * glib/examples/example-service.c:
2324         * glib/examples/example-client.c: Implement GetTuple.
2325
2326         * test/glib/test-dbus-glib.c:
2327         * test/glib/test-service-glib.c:
2328         * test/glib/test-service-glib.xml: Add structure tests.
2329
2330 2005-07-10  Colin Walters  <walters@verbum.org>
2331
2332         * doc/TODO: Knock off some GLib items with this patch.
2333
2334         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2335         (_dbus_gvalue_signals_error): New functions.
2336
2337         * glib/dbus-gvalue-utils.h: Prototype them.
2338
2339         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2340         and change to not output const/retval flags for input args.  All
2341         callers updated.
2342         (invoke_object_method): Refactor to handle return values.  Add
2343         some more comments in various places.  Remove debug g_print.
2344
2345         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2346
2347         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2348         Handle G_TYPE_NONE.
2349         (compute_gsignature): New function; refactored from code from
2350         compute_marshaller and compute_marshaller_name.  Enhance to
2351         handle return values and async ops more cleanly.  Update for
2352         async ops returning NONE instead of BOOLEAN.
2353         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2354         and output appropriate string.
2355         (generate_glue): Handle return value annotation.  Also don't dump
2356         constness flag for input arguments.
2357
2358         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2359         files shared between installed library and utilities.
2360         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2361         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2362         binding tool can access gtype utility functions.
2363
2364         * test/glib/test-service-glib.c: 
2365         * test/glib/test-service-glib.xml: 
2366         * test/glib/test-dbus-glib.c: Add some tests for return values.
2367
2368 2005-07-09  Colin Walters  <walters@verbum.org>
2369
2370         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2371         argument if available, not method.
2372
2373         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2374         (invoke_object_method): First, remove some redundant
2375         GValues (object_value, error_value) in favor of working on
2376         array directly.  Second, rework constness to be less buggy.
2377         Now we iterate directly over the argument metadata instead
2378         of parallel iterating over output signature and metadata.
2379
2380         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2381
2382         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2383         annotation on input args.
2384         
2385 2005-07-09  Colin Walters  <walters@verbum.org>
2386
2387         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2388         Define.
2389
2390         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2391         annotation.
2392
2393         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2394         (method_dir_signature_from_object_info): Handle arg_iterate change.
2395         (write_interface): Ditto.
2396         (lookup_object_info): Don't barf if format_version is > 0.
2397         (invoke_object_method): Handle arg constness.
2398
2399         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2400         (arg_info_new): Create.
2401         (arg_info_unref): Destroy.
2402         (arg_info_get_annotations, arg_info_get_annotation) 
2403         (arg_info_add_annotation): New functions.
2404
2405         * glib/dbus-gidl.h: Prototype them.
2406
2407         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2408         args, disallow them in properties.
2409         (parse_annotation): Handle arg annotations.
2410
2411         * test/glib/test-service-glib.xml: 
2412         * test/glib/test-service-glib.c: Update to make some methods
2413         const.
2414
2415 2005-07-08  Colin Walters  <walters@verbum.org>
2416
2417         * test/glib/test-service-glib.xml: 
2418         * test/glib/test-service-glib.c:
2419         * test/glib/test-dbus-glib.c: Test a{sv}.
2420
2421         * glib/examples/statemachine/statemachine.c:
2422         * glib/examples/statemachine/statemachine-server.c:
2423         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2424         add progress bar, etc.
2425
2426         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2427         needed anymore due to generic array/map marshalling.
2428         (dbus_g_value_types_init): Don't register basic arrays or the
2429         string/string hash.
2430         (dbus_gtype_from_signature_iter): Don't try to recurse into
2431         variants.
2432         (dbus_gtype_to_signature): Check collection/map before type
2433         metadata.
2434         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2435         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2436         generic map creation/append functions instead of hash table
2437         specifically.
2438         (get_type_demarshaller): Handle maps.
2439         (demarshal_collection): Dispatch on collection type to either
2440         demarshal_collection_ptrarray or demarshal_collection_array.
2441         (get_type_marshaller): Handle maps.
2442         (marshal_collection): Dispatch collection type to either
2443         marshal_collection_ptrarray or marshal_collection_array.
2444         (_dbus_gvalue_test): New test.
2445
2446         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2447         (hash_free_from_gtype): Use it to free GValues.
2448         (hashtable_append): New function.
2449         (ptrarray_append): Fix prototype.
2450         (slist_append): Ditto.
2451         (_dbus_gvalue_utils_test): Extend tests.
2452
2453         * glib/dbus-gtype-specialized.c
2454         (dbus_g_type_specialized_init_append): Renamed from
2455         dbus_g_type_specialized_collection_init_append.  Remove const from
2456         value, since we steal it.
2457         (dbus_g_type_specialized_map_append): New function.
2458
2459         * glib/dbus-gtype-specialized.h: Update prototypes.
2460         Add DBusGTypeSpecializedMapAppendFunc.
2461
2462         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2463         _dbus_gvalue_test.
2464         
2465         * glib/dbus-gtest.h: Prototype it.
2466
2467 2005-07-08  Ross Burton  <ross@openedhand.com>
2468
2469         * dbus/dbus-glib.h:
2470         Add DBysGAsyncData for the async bindings.
2471
2472         * glib/dbus-binding-tool-glib.c:
2473         Re-enable the async bindings.
2474
2475         * test/glib/test-dbus-glib.c:
2476         Add a test for the generated async bindings.
2477
2478 2005-07-08  Colin Walters  <walters@verbum.org>
2479
2480         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2481         connection concept.
2482         
2483 2005-07-08  Colin Walters  <walters@verbum.org>
2484         
2485         * tools/Makefile.am: Kill of print-introspect in favor of using
2486         dbus-send --print-reply=literal.
2487
2488         * test/glib/test-service-glib.xml: 
2489         * test/glib/test-service-glib.c (my_object_get_objs): New test
2490         for "ao".
2491
2492         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2493         (main): Test GetObjs.
2494
2495         * glib/examples/statemachine/Makefile.am:
2496         * glib/examples/statemachine/sm-marshal.list:
2497         * glib/examples/statemachine/statemachine-client.c:
2498         * glib/examples/statemachine/statemachine-server.c:
2499         * glib/examples/statemachine/statemachine-server.xml:
2500         * glib/examples/statemachine/statemachine.c:
2501         * glib/examples/statemachine/statemachine.h:
2502         * glib/examples/statemachine/statemachine.xml:
2503
2504         New example.
2505
2506         * glib/examples/example-service.c (main): Move invocation
2507         of dbus_g_object_type_install_info earlier, to emphasize it
2508         should only be done once.
2509
2510         * glib/examples/example-signal-emitter.c (main): Ditto.
2511
2512         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2513
2514         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2515         (dbus_gvalue_marshal): Update prototypes.
2516
2517         * glib/dbus-gvalue.c: Update all marshalling functions to take
2518         const GValue instead of GValue.
2519         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2520         types.
2521         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2522         change.
2523         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2524         Return a newly-allocated string.
2525         (demarshal_proxy, demarshal_object_path, demarshal_object)
2526         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2527         we get the wrong types from message.
2528         (get_type_demarshaller): New function, extracted from
2529         dbus_gvalue_demarshal.
2530         (demarshal_collection): New function, demarshals generic
2531         collection.
2532         (dbus_gvalue_demarshal): Just invoke result of
2533         get_type_demarshaller.  Throw error if we don't have one.
2534         (marshal_garray_basic): Abort on OOM.
2535         (get_type_marshaller): New function, extracted from
2536         dbus_gvalue_marshal.
2537         (collection_marshal_iterator, marshal_collection): New functions;
2538         implements generic marshalling for an iteratable specialized
2539         collection.
2540         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2541
2542         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2543         G_TYPE_STRING.
2544         (ptrarray_value_from_gvalue): Ditto.
2545         (ptrarray_append, ptrarray_free): New functions.
2546         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2547         (slist_append, slist_end_append, slist_free): New functions.
2548         (dbus_g_type_specialized_builtins_init): Add append fuctions
2549         for GPtrArray and GSList.  Register GSList.
2550         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2551
2552         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2553         New.
2554         (dbus_g_type_specialized_collection_init_append)
2555         (dbus_g_type_specialized_collection_append)
2556         (dbus_g_type_specialized_collection_end_append): Prototype.
2557         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2558         end_append_func.
2559
2560         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2561         (dbus_g_type_specialized_collection_append) 
2562         (dbus_g_type_specialized_collection_end_append): New functions.
2563         (dbus_g_type_map_value_iterate): Take const GValue.
2564         (dbus_g_type_collection_value_iterate): Ditto.
2565
2566         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2567         _dbus_gvalue_utils_test.
2568         
2569         * glib/dbus-gtest.h: Prototype it.
2570
2571         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2572         using uninitialized owner_list.
2573         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2574         public API.
2575         (dbus_g_proxy_end_call_internal): Update to use error set
2576         from dbus_gvalue_demarshal instead of setting it here.
2577         (dbus_g_proxy_begin_call): Move return_if_fail here.
2578
2579         * glib/dbus-gobject.c (write_interface): Update for
2580         dbus_gtype_to_signature returning new string.
2581
2582         * configure.in: Add glib/examples/statemachine.
2583
2584 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2585
2586         * configure.in: Add a configure option, --with-console-auth-dir
2587         
2588         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2589         new setting.  Patch from Kay Sievers.
2590
2591 2005-07-06  Colin Walters  <walters@verbum.org>
2592
2593         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2594         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2595         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2596         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2597         Delete in favor of dbus_g_proxy_begin_call and
2598         dbus_g_proxy_cancel_call.
2599         (DBusGProxyCall, DBusGProxyCallNotify): New.
2600         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2601         data, and destroy function.  This replaces
2602         dbus_g_pending_call_set_notify.
2603         (dbus_g_proxy_cancel_call): Prototype.
2604         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2605
2606         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2607         pending_calls map.
2608         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2609         internal proxy for calls to the bus. Remove
2610         pending_nameowner_calls, now the internal proxy keeps track.
2611         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2612         pending_nameowner_calls.
2613         (got_name_owner_cb): Update prototype, and use
2614         dbus_g_proxy_end_call.
2615         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2616         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2617         favor of using internal proxy.
2618         (dbus_g_proxy_manager_unregister): Update to use
2619         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2620         (dbus_g_proxy_init): Initialize pending calls map.
2621         (dbus_g_proxy_constructor): New.
2622         (dbus_g_proxy_class_init): Add get/set property functions,
2623         constructor, and add NAME, PATH, and INTERFACE properties.
2624         (cancel_pending_call): New function.
2625         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2626         cancel them.
2627         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2628         (GPendingNotifyClosure): New structure.
2629         (d_pending_call_notify, d_pending_call_free): Moved here from
2630         dbus-glib.c.
2631         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2632         ordering.
2633         (manager_begin_bus_call): New internal function for talking to
2634         internal bus proxy.
2635         (dbus_g_proxy_new): Construct object using GObjet properties.
2636         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2637         Create closure of same, and insert call into map of pending calls.
2638         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2639         call.  Look up pending call in current set.  Remove it when we've
2640         completed.
2641         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2642         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2643         and destroy function directly.
2644         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2645         (dbus_g_proxy_call): Invoke with NULL callback.
2646         (dbus_g_proxy_cancel_call): New function, replaces
2647         dbus_g_pending_call_cancel.
2648
2649         * glib/dbus-gparser.c (validate_signature): Fix call to
2650         dbus_set_g_error.
2651
2652         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2653         New quark for attaching metadata to GType.
2654         (info_hash): Delete.
2655         (lookup_object_info): Look up using quark.
2656         (dbus_g_object_type_install_info): Check that a type is classed,
2657         not that it's an object.  Also just install type data using quark
2658         instead of using global hash.
2659
2660         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2661         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2662         (GPendingNotifyClosure): Delete.
2663         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2664         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2665
2666         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2667         client method generation until we can fix it...
2668         
2669         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2670         (load_from_service_thread_func): Ditto.
2671
2672         * tools/dbus-names-model.c (struct NamesModel): Hold
2673         DBusGProxyCall.
2674         (have_names_notify): Update prototype, use
2675         dbus_g_proxy_cancel_call.
2676         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2677
2678         * tools/dbus-monitor.c (filter_func): Update for print_message
2679         API change.
2680
2681         * test/glib/test-dbus-glib.c: Add more tests for async
2682         invocations.  Update many begin_call/end_call pairs to just use
2683         dbus_g_proxy_call.
2684
2685         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2686         allows us to dump print-introspect.c.
2687
2688         * tools/dbus-print-message.h (print_message): Add literal argument
2689         to print_message which is intended to allow printing arguments without
2690         metadata like "string=".
2691
2692         * tools/dbus-print-message.c (print_iter): Add literal argument.
2693         (print_message): Allow printing string messages literally.
2694
2695 2005-07-05  Colin Walters  <walters@verbum.org>
2696
2697         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2698         Remove value refcount leak, original patch from Jorn Baayen
2699         <jorn@openedhand.com>.  Also remove useless extra value in favor
2700         of prepending to value array directly.
2701
2702 2005-07-02  Colin Walters  <walters@verbum.org>
2703
2704         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2705
2706 2005-07-01  Colin Walters  <walters@verbum.org>
2707
2708         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2709         
2710         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2711         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2712         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2713         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2714
2715 2005-06-30  Colin Walters  <walters@verbum.org>
2716
2717         * test/glib/test-dbus-glib.c:
2718         * test/glib/test-service-glib.c:
2719         * test/glib/test-service-glib.xml: Update tests for new error
2720         setting bits, also add async tests (patch from Ross Burton).
2721
2722         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2723         DBUS_GLIB_THREADS_LIBS.
2724
2725         * glib/dbus-gproxy.c (get_name_owner)
2726         (dbus_g_pending_call_end_valist): Ditto.
2727
2728         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2729         domain (GQuark) to DBusGErrorInfo.  
2730         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2731         quark in error_metadata.  Take message interface as default
2732         error message interface.
2733         (gerror_to_dbus_error_message): Pass message interface.
2734         (dbus_set_g_error): Resurrected.
2735         (dbus_g_error_info_free): New function.
2736         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2737         of _peek to actually create the object class if it hasn't been
2738         created yet.
2739         (dbus_g_error_domain_register): New function.
2740
2741         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2742
2743         * glib/dbus-gparser.c (validate_signature): Ditto.
2744
2745         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2746         (dbus_g_error_domain_register): Prototype.
2747
2748         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2749         Update tests.
2750
2751 2005-06-29  Colin Walters  <walters@verbum.org>
2752
2753         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2754         DBUS_TYPE_G_OBJECT_PATH.
2755
2756         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2757         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2758         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2759         (dbus_g_object_path_get_g_type): New function.
2760         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2761         to DBUS_TYPE_G_OBJECT_PATH by default.
2762         (demarshal_proxy): Remove unused name variable.
2763         (demarshal_object_path, marshal_object_path): New functions.
2764         (demarshal_proxy_array, marshal_proxy_array): Delete.
2765         
2766         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2767         DBUS_TYPE_G_OBJECT_PATH to char *.
2768         (dbus_g_type_get_lookup_function): Map builtin
2769         DBUS_TYPE_G_OBJECT_PATH.
2770
2771         * test/glib/test-dbus-glib.c
2772         * test/glib/test-service-glib.c (my_object_objpath): 
2773         Adapt tests to new object path marshalling.
2774
2775 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2776
2777         * configure.in: force check for Python >= 2.4
2778
2779 2005-06-29  Colin Walters  <walters@verbum.org>
2780         
2781         Patch from Ross Burton <ross@openedhand.com>
2782         
2783         * glib/dbus-gobject.c (invoke_object_method): Unset object
2784         value in all cases, not only in async case.
2785
2786 2005-06-29  Colin Walters  <walters@verbum.org>
2787
2788         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2789         name_call for keeping track of any outgoing GetNameOwner call.
2790         Also add for_owner and associated.
2791         (struct _DBusGProxyManager): Add owner_names, which is hash table
2792         that maps a base name to a list of names it owns (that we're
2793         interested in).  Add pending_nameowner_calls which is a list of
2794         all outstanding GetNameOwner; avoids us having to iterate over
2795         every proxy.  Add unassociated_proxies which keeps track of name
2796         proxies with no associated name owner.
2797         (dbus_g_proxy_manager_unref): Destroy owner_names.
2798         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2799         name refcounts.
2800         (find_name_in_info, name_owner_foreach)
2801         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2802         (dbus_g_proxy_manager_monitor_name_owner)
2803         (dbus_g_proxy_manager_unmonitor_name_owner)
2804         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2805         New functions; they manipulate the owner_names mapping.
2806         (got_name_owner_cb): New function.
2807         (get_name_owner): New function, extracted from
2808         dbus_g_proxy_new_for_name_owner.
2809         (dbus_g_proxy_manager_register): For now we need to keep track of
2810         all NameOwnerChanged.  Also if the proxy is for a name, if we
2811         don't already know the name owner, queue a new GetNameOwner
2812         request and add it to our list of unassociated proxies.  Otherwise
2813         inc the refcount.
2814         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2815         cancel any pending GetNameOwner call, etc.
2816         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2817         the owner_names mapping to look up the current names for the
2818         signal source, and dispatch to any proxies for that name.
2819         (dbus_g_proxy_new): Initialize new members.
2820         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2821         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2822         (dbus_g_pending_call_end_valist): New function, extracted from
2823         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2824         but want to use the GLib infrastructure.  Also note how many
2825         arguments in reply were over.
2826         (dbus_g_pending_call_end): New function, just call
2827         dbus_g_pending_call_end_valist.
2828         (dbus_g_proxy_end_call_internal): Just call
2829         dbus_g_pending_call_end_valist.
2830
2831         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2832         of builtin marshaller for STRING_STRING_STRING.
2833
2834         * test/glib/test-dbus-glib.c: 
2835         * test/glib/test-service-glib.c:
2836         * test/glib/test-service-glib.xml:
2837         Extend tests to cover name proxies, destruction of owner proxies,
2838         etc.
2839         
2840         * glib/examples/example-signal-recipient.c
2841         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2842         
2843         * tools/dbus-send.c (main): Print D-BUS error name in addition
2844         to message.
2845
2846 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2847
2848         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2849         cmessage_function_handler): Patch from 
2850         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2851         by using the Py_GILState_Ensure/Release to synchronize with the
2852         python runtime.
2853         
2854 2005-06-28  Ray Strode  <rstrode@redhat.com>
2855
2856         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2857         babysitter helper process on last unref, bug #2813.
2858
2859 2005-06-27  Colin Walters  <walters@verbum.org>
2860
2861         * test/glib/test-dbus-glib.c: 
2862         * test/glib/test-service-glib.c:
2863         * test/glib/test-service-glib.xml:
2864         Test hash table signal emitting.
2865
2866         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2867         types to their fundamental basis types, since this is what
2868         marshallers operate on.  Also add an entry for VOID__BOXED.
2869         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2870
2871 2005-06-26  Havoc Pennington  <hp@redhat.com>
2872
2873         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2874         from Don Park
2875
2876 2005-06-26  Colin Walters  <walters@verbum.org>
2877
2878         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2879         (dbus_g_error_set): New public function from its ashes; used by
2880         both service-side method implementation and GLib bindings
2881         internals.
2882         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2883         (_dbus_glib_test): Add some tests.
2884
2885         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2886
2887         * test/glib/test-service-glib.c (my_object_throw_error): Use
2888         dbus_g_error_set.
2889
2890         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2891         errors thrown by dbus_g_error_set.
2892
2893         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2894
2895         * glib/dbus-gparser.c (validate_signature): Ditto.
2896
2897         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2898         (dbus_g_proxy_end_call_internal): Ditto.
2899
2900         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2901         converts DBUS_ERROR_x to DBUS_GERROR_x.
2902         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2903
2904         * doc/TODO: Remove error TODO.
2905
2906         * doc/dbus-tutorial.xml: Update with documentation about error
2907         handling.
2908
2909         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2910         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2911         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2912
2913 2005-06-22  Colin Walters  <walters@verbum.org>
2914         
2915         Patch from Ross Burton <ross@openedhand.com>
2916
2917         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2918
2919 2005-06-20  Colin Walters  <walters@verbum.org>
2920
2921         * configure.in: Add glib/examples.
2922
2923         * glib/Makefile.am: Add examples/
2924
2925         * glib/examples/.cvsignore
2926         * glib/examples/Makefile.am
2927         * glib/examples/example-client.c
2928         * glib/examples/example-service.c
2929         * glib/examples/example-service.xml
2930         * glib/examples/example-signal-emitter.c
2931         * glib/examples/example-signal-emitter.xml
2932         * glib/examples/example-signal-recipient.c:
2933         New files; GLib binding examples, ported from
2934         python/examples.
2935
2936 2005-06-20  Colin Walters  <walters@verbum.org>
2937
2938         * dbus/dbus-glib.h: 
2939         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2940         dbus_g_proxy_call.
2941
2942         * glib/dbus-binding-tool-glib.c: 
2943         * doc/dbus-tutorial.xml: 
2944         * test/glib/test-dbus-glib.c: Update for rename.
2945         
2946 2005-06-20  Colin Walters  <walters@verbum.org>
2947
2948         Patch suggested by Ross Burton <ross@openedhand.com>
2949
2950         * glib/dbus-gobject.c (export_signals): Free signal name.
2951         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2952         memory leak.  Add a bit of documentation.
2953         (dbus_g_method_return_error): Free context, and note we do
2954         so.
2955
2956 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2957
2958         * dbus/dbus-glib.h:
2959         * glib/dbus-gobject.c:
2960         * glib/dbus-gproxy.c:
2961         * glib/dbus-gvalue.c: Predeclare structs as 
2962         typedef struct _Something Something instead of 
2963         typedef struct Something Something, so we can 
2964         redeclare the prototypes. Other GNOME libraries 
2965         do this already.
2966
2967 2005-06-17  Colin Walters  <walters@verbum.org>
2968
2969         * tools/dbus-names-model.c (have_names_notify): Fix call
2970         to dbus_g_proxy_end_call.
2971         
2972 2005-06-17  Colin Walters  <walters@verbum.org>
2973
2974         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2975         spew warnings if we get malformed remote signals.
2976
2977         * glib/dbus-gobject.c (propsig_iterate): New function.
2978         (lookup_object_info): New function, extracted from
2979         lookup_object_and_method.
2980         (introspect_properties, introspect_signals): Delete; these
2981         are merged into write_interface.
2982         (write_interface): Write out signals and properties here;
2983         dump the org.gtk.object stuff and use the interface given
2984         in the introspection data blob.  Also fix up property XML.
2985         (lookup_values): New function.
2986         (introspect_interfaces): Gather a mapping from interface to a
2987         list of its methods, signals, and properties, then write out
2988         each interface.
2989         (lookup_object_and_method): Use lookup_object_info.
2990         (struct DBusGSignalClosure): Add interface.
2991         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2992         we can just use the constant data.
2993         (dbus_g_signal_closure_finalize): Don't free signal name.
2994         (signal_emitter_marshaller): Use interface from signal closure.
2995         (export_signals): Only export signals mentioned in introspection
2996         blob.
2997         (dbus_g_connection_register_g_object): Warn if we have no
2998         introspection data for an object.
2999         (funcsig_equal): Remove unused variable.
3000         (dbus_g_object_register_marshaller): Take varargs instead of
3001         list.
3002         (dbus_g_object_register_marshaller_array): New function,
3003         extracted from old dbus_g_object_register_marshaller.
3004
3005         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3006         signals and property data.
3007         (write_quoted_string): New function, extracted from generate_glue.
3008         (generate_glue): Write signals and properties to introspection
3009         blob.
3010
3011         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3012         exported_signals and exported_properties.
3013         (dbus_g_object_register_marshaller): Update prototype.
3014         (dbus_g_object_register_marshaller_array): Prototype.
3015         
3016         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3017
3018         * test/glib/test-service-glib.c: Add new test signals and method
3019         to emit them.
3020
3021         * test/glib/test-service-glib.xml: Add some test signals.
3022
3023         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3024         and my-object-marshal.h
3025         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3026         my-object-marshal.c.
3027         (my-object-marshal.c, my-object-marshal.h): Implement.
3028
3029         * test/glib/.cvsignore: Update.
3030
3031         * doc/TODO: Remove two GLib TODO items fixed by this
3032         patch.
3033
3034 2005-06-16  Colin Walters  <walters@verbum.org>
3035
3036         * doc/TODO: Update for GLib bindings.
3037         
3038 2005-06-16  Colin Walters  <walters@verbum.org>
3039
3040         * glib/dbus-binding-tool-glib.c:
3041         * glib/dbus-gobject.c:
3042         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3043         from Ross Burton, for his GLib bindings work.
3044
3045 2005-06-16  Colin Walters  <walters@verbum.org>
3046
3047         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3048         to iterate instead of walking to G_TYPE_INVALID.
3049
3050         Patch based on a patch from Ryan Gammon.
3051
3052 2005-06-16  Colin Walters  <walters@verbum.org>
3053
3054         * bus/bus.c (bus_context_new): Set parser to NULL
3055         after we unref it (Patch from Chris Boscolo, #2174).
3056         
3057 2005-06-16  Colin Walters  <walters@verbum.org>
3058
3059         * python/dbus_bindings.pyx.in: Import size_t,
3060         __int64_t, __uint64_t, and __signed.
3061
3062         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3063         Define cmsg struct, output it.
3064         (_dbus_read_credentials_unix_socket):
3065         Use cmsg struct.
3066         
3067         Patch from Joe Markus Clarke for FreeBSD support.
3068         
3069 2005-06-16  Colin Walters  <walters@verbum.org>
3070
3071         * tools/dbus-send.c (append_array): Use strtok.
3072         (append_dict): New function.
3073         (type_from_name): New function, extracted from main.
3074         (main): Handle sending dicts.
3075
3076         * tools/dbus-print-message.c (print_iter): Print dict
3077         entries.
3078         
3079 2005-06-16  Colin Walters  <walters@verbum.org>
3080
3081         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3082         values as the empty string (#2948).
3083         
3084 2005-06-16  Colin Walters  <walters@verbum.org>
3085
3086         * dbus/Makefile.am:
3087         * mono/doc/Makefile.am:
3088         * test/glib/Makefile.am:
3089
3090         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3091
3092 2005-06-16  Colin Walters  <walters@verbum.org>
3093
3094         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3095         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3096
3097         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3098         Increment pointer after swapping fixed array.  Add assertion
3099         for array length.
3100                 
3101 2005-06-15  Colin Walters  <walters@verbum.org>
3102
3103         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3104         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3105         
3106 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3107
3108         * NEWS: Update to 0.34
3109
3110 2005-06-15  David Zeuthen  <davidz@redhat.com>
3111
3112         * configure.in (LT_CURRENT): Revert back to 1 as the library
3113         hasn't changed and we've certainly not committed to protocol
3114         stability yet.  All this does is to break ABI. See commit note
3115         from hp@redhat.com 2005-05-05 for details.
3116         
3117 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3118
3119         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3120         (_dbus_connection_run_builtin_filters): New method
3121         (dbus_connection_dispatch): Run the builtin filters which in turn
3122         runs the peer filter which handles Ping messages.
3123
3124         * doc/TODO: 
3125          - Ping isn't handled: This patch fixes it
3126          
3127          - Add a test case for the Ping message: added TODO item
3128
3129 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3130
3131         * dbus/dbus-message.c:
3132         (dbus_message_has_path): New method
3133         (dbus_message_has_interface): New method
3134         (dbus_message_has_member): New method
3135
3136         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3137         New method
3138
3139         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3140         the keyring directory is private to the user
3141
3142         * doc/TODO:
3143          - The convenience functions in dbus-bus.h should perhaps have
3144          the signatures that they would have if they were autogenerated
3145          stubs. e.g. the acquire service function. We should also evaluate
3146          which of these functions to include, in light of the fact that
3147          GLib/Qt native stubs will probably also exist.: Punted
3148
3149          - add dbus_message_has_path(), maybe has_member/interface:
3150          fixed in this patch
3151
3152          - in dbus-keyring.c, enforce that the keyring dir is not
3153          world readable/writable: Fixed in this patch
3154
3155 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3156
3157         * dbus/dbus-marshal-validate.h: Added a new validation
3158         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3159         out of memory errors when validating signitures
3160
3161         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3162         in places where we previously used DBUS_VALID and a FALSE return 
3163         value to indicate OOM
3164         
3165         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3166         Use a stack to track the number of elements inside containers.  The 
3167         stack values are then used to validate that dict entries have only two
3168         elements within them.
3169         (validate_body_helper): check the reason for failure when validating
3170         varients
3171         
3172         * dbus/dbus-message.c (load_message): use 
3173         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3174         DBUS_VALID and a FALSE return value to indicate OOM
3175
3176         * doc/TODO: remove "- validate dict entry number of fields" as this
3177         patch fixes it
3178
3179 2005-06-14  David Zeuthen  <davidz@redhat.com>
3180
3181         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3182         watches (if applicable) and add new watches
3183
3184         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3185         (main): Setup SIGIO signal handler if using D_NOTIFY
3186
3187         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3188
3189         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3190         (merge_included): Also merge conf_dirs list
3191         (bus_config_parser_unref): Clear conf_dirs list
3192         (include_dir): Add directory to conf_dirs list
3193         (bus_config_parser_get_conf_dirs): New function
3194
3195         * bus/dir-watch.[ch]: New files
3196
3197         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3198
3199         * configure.in: Add checks for D_NOTIFY on Linux
3200
3201 2005-06-14  Colin Walters  <walters@verbum.org>
3202
3203         * glib/dbus-binding-tool-glib.c:
3204         * glib/dbus-gobject.c:
3205         * glib/dbus-gvalue.c: Fix indentation and brace style.
3206         
3207 2005-06-14  Ross Burton <ross@openedhand.com>.
3208
3209         * glib/dbus-glib.h: Make DBusGMethodInvocation
3210         a private structure.  Rearrange prototypes a bit.
3211         
3212         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3213         documentation for first_arg_type.
3214         
3215         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3216         here, add documentation.  Move dbus_g_method_return
3217         and dbus_g_method_return_error into public API
3218         section.
3219
3220 2005-06-14  Colin Walters  <walters@verbum.org>
3221
3222         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3223         Add missing return statements, noticed by Ross Burton.
3224         
3225 2005-06-13  Ross Burton <ross@openedhand.com>.
3226
3227         * glib/dbus-gobject.c: Handle errors on message
3228         demarshalling by sending error message back.
3229         * glib/dbus-gvalue.c: Initialize return variables.
3230
3231 2005-06-13  Colin Walters  <walters@verbum.org>
3232
3233         * glib/Makefile.am: Fix thinko in last patch.
3234
3235 2005-06-13  Colin Walters  <walters@verbum.org>
3236
3237         * glib/Makefile.am: Move dbus-gtype-specialized.c
3238         and dbus-gtype-specialized.h into a _HEADERS variable,
3239         install them.
3240
3241 2005-06-12  Colin Walters  <walters@verbum.org>
3242
3243         Async signals and various bugfixes and testing by
3244         Ross Burton <ross@openedhand.com>.
3245
3246         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3247         (dbus_gvalue_genmarshal_name_from_type)
3248         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3249         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3250         (dbus_g_value_types_init, dbus_gtype_from_signature)
3251         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3252         (dbus_gtypes_from_arg_signature): New function prototypes.
3253         (dbus_gvalue_demarshal): Take context and error arguments.
3254         (dbus_gvalue_demarshal_variant): New function.
3255         (dbus_gvalue_demarshal_message): New function.
3256         (dbus_gvalue_store): Delete.
3257
3258         * glib/dbus-gvalue.c:
3259
3260         File has been almost entirely rewritten; now we special-case
3261         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3262         hash tables correctly, etc.  Full support for recursive values
3263         is not yet complete.
3264
3265         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3266         argument of signal to G_TYPE_POINTER since we now pass a
3267         structure.
3268         (lookup_g_marshaller): Delete in favor of
3269         _dbus_gobject_lookup_marshaller.
3270         (marshal_dbus_message_to_g_marshaller): Use
3271         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3272         to handle remote signal callbacks.
3273         (dbus_g_proxy_new_from_proxy): New function; creates a new
3274         DBusGProxy by copying an existing one.
3275         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3276         (dbus_g_proxy_get_path): New functions.
3277         (dbus_g_proxy_marshal_args_to_message): New function;
3278         factored out of existing code.
3279         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3280         from a varargs array.
3281         (dbus_g_proxy_begin_call_internal): New function.
3282         (dbus_g_proxy_end_call_internal): New function.
3283         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3284         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3285         after collecting args into value array.
3286         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3287         invoke dbus_g_proxy_end_call_internal.
3288         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3289         end_call_internal.
3290         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3291         types.
3292         (array_free_all): New function.
3293         (dbus_g_proxy_add_signal): Take GTypes.
3294
3295         * glib/dbus-gobject.h:
3296         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3297         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3298         Prototype.
3299
3300         * glib/dbus-gobject.c: Add a global marshal_table hash which
3301         stores mappings from type signatures to marshallers.  Change lots
3302         of invocations of dbus_gtype_to_dbus_type to
3303         dbus_gtype_to_signature.
3304         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3305         (introspect_signals): Fix test for query.return_type.
3306         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3307         (invoke_object_method): Many changes.  Handle asynchronous
3308         invocations.  Convert arguments with
3309         dbus_gvalue_demarshal_message.  Handle errors.  Use
3310         DBusSignatureIter instead of strlen on args. Handle all arguments
3311         generically.  Special-case variants.
3312         (dbus_g_method_return, dbus_g_method_return_error): New function.
3313         (DBusGSignalClosure): New structure, closes over signal
3314         information.
3315         (dbus_g_signal_closure_new): New function.
3316         (dbus_g_signal_closure_finalize): New function.
3317         (signal_emitter_marshaller): New function; is special marshaller
3318         which emits signals on bus.
3319         (export_signals): New function; introspects object signals and
3320         connects to them.
3321         (dbus_g_object_type_install_info): Take GType instead of
3322         GObjectClass.
3323         (dbus_g_connection_register_g_object): Invoke export_signals.
3324         (dbus_g_connection_lookup_g_object): New function.
3325         (DBusGFuncSignature) New structure; used for mapping type
3326         signatures to marshallers.
3327         (funcsig_hash): New function; hashes DBusGFuncSignature.
3328         (funcsig_equal): New function; compares DBusGFuncSignature.
3329         (_dbus_gobject_lookup_marshaller): New function.
3330         (dbus_g_object_register_marshaller): New function; used to
3331         register a marshaller at runtime for a particular signature.
3332
3333         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3334
3335         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3336         which notes a server method implementation should be
3337         asynchronous.
3338
3339         * glib/dbus-binding-tool-glib.c
3340         (dbus_binding_tool_output_glib_server): Call
3341         dbus_g_value_types_init.
3342         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3343         variants specially.
3344         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3345         of a lookup function.
3346         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3347         (write_untyped_out_args): New method; write output arguments.
3348         (write_formal_declarations_for_direction): Function for
3349         writing prototypes.
3350         (write_formal_parameters_for_direction): Function for
3351         writing implementations.
3352         (write_typed_args_for_direction): Function for writing
3353         arguments prefixed with GTypes.
3354         (write_async_method_client): Write out async version
3355         of method.
3356
3357         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3358         (dbus_g_type_get_marshal_name): Move mapping from GType
3359         to marshal name into here.
3360         (dbus_g_type_get_c_name): Move into here.
3361         (compute_marshaller): Convert signature to type with
3362         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3363         (compute_marshaller_name): Ditto.
3364         (compute_marshaller): Handle async signal annotations.
3365         (gather_marshallers): Return if we don't have a known
3366         prefix.
3367         (generate_glue): Collect introspection blob here, and
3368         write all of the blob at the end.  This allows an object
3369         with multiple interfaces to work.
3370         Mark async methods in introspection blob.
3371
3372         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3373         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3374         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3375
3376         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3377         avoids people accidentally using DBUS_TYPE_* which should
3378         not be necessary anymore.
3379         Do include dbus-gtype-specialized.h, which are utilities
3380         for GLib container types.
3381         Add various #defines for types such as
3382         DBUS_TYPE_G_BOOLEAN_ARRAY.
3383         (DBusGValueIterator, DBusGValue): Define, not fully used
3384         yet.
3385         (dbus_g_value_get_g_type): Type for recursive value.
3386         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3387         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3388         (dbus_g_value_free): Prototypes.
3389         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3390         (dbus_g_proxy_set_interface): Prototype.
3391         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3392         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3393         types.
3394         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3395         Accessors.
3396         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3397         doing async invocations.
3398         (dbus_g_method_return, dbus_g_method_return_error):
3399         Prototypes.
3400         * doc/dbus-tutorial.xml: Update GLib section.
3401         
3402         * tools/dbus-viewer.c (load_child_nodes): Update
3403         for new invocation type of dbus_g_proxy_end_call.
3404         (load_from_service_thread_func): Ditto.
3405
3406         * tools/print-introspect.c (main): Ditto.
3407
3408         * tools/dbus-names-model.c (have_names_notify)
3409         (names_model_reload, names_model_set_connection)
3410         Use GTypes.
3411
3412         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3413         needed since Python bindings use GLib bindings.
3414
3415         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3416         Add --prefix argument.
3417
3418         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3419         unneeded --ignore-unsupported arg.
3420         
3421         * test/glib/test-service-glib.c: 
3422         * test/glib/test-service-glib.xml:
3423         * test/glib/test-dbus-glib.c: Add many more tests.
3424
3425 2005-06-06  David Zeuthen  <davidz@redhat.com>
3426
3427         * doc/TODO: Add item about need to remove deprecated functions.
3428
3429         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3430
3431         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3432         to repair the ABI which was broken with the last commit.
3433
3434 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3435
3436         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3437         (dbus_connection_disconnect): renamed to dbus_connection_close 
3438         for API symmetry with dbus_connection_open
3439         (_dbus_connection_open_internal): 
3440         s/dbus_connection_disconnect/dbus_connection_close
3441
3442         * dbus/dbus-bus.c (dbus_bus_get):
3443         s/dbus_connection_disconnect/dbus_connection_close
3444
3445         * bus/connection.c (bus_connections_unref, 
3446         bus_connections_setup_connection, bus_connections_expire_incomplete):
3447         s/dbus_connection_disconnect/dbus_connection_close
3448
3449         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3450         kill_client_connection_unchecked, check_hello_connection):
3451         s/dbus_connection_disconnect/dbus_connection_close
3452
3453         * bus/bus.c (new_connection_callback):
3454         s/dbus_connection_disconnect/dbus_connection_close
3455
3456         * tools/dbus-send.c (main):
3457         s/dbus_connection_disconnect/dbus_connection_close
3458
3459         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3460         s/dbus_connection_disconnect/dbus_connection_close
3461         
3462         * test/test-service.c (path_message_func, filter_func):
3463         s/dbus_connection_disconnect/dbus_connection_close
3464         
3465         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3466         
3467 2005-05-25  Colin Walters  <walters@verbum.org>
3468
3469         * dbus/dbus-protocol.h: Move various bus service #defines such
3470           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3471           dbus/dbus-shared.h.
3472         * dbus/dbus-shared.h: Various defines moved here.
3473         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3474
3475 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3476
3477         * python/__init__.py: Python bindings deserve a minor version
3478         update.  Upped to (0, 40, 2)
3479
3480 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3481
3482         * python/decorators.py: add explicitly_pass_message decorator
3483         for passing in the dbus message as keyword for edge case signal
3484         handling
3485
3486         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3487         to conform with what dbus expects for match rules
3488         (SignalMatchRule.execute): add the dbus message as a keyword
3489         if the signal handler has requested it
3490
3491         * python/examples/example/signal-recipient.py: added some more
3492         examples on how to hook up to signals
3493
3494 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3495
3496         * python/decorators.py: import dbus_bindings
3497
3498         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3499         SignalMatchNode): new classes that implement wildcard signal
3500         callback matching using a tree lookup. Heavily modified from a
3501         patch sent by Celso Pinto (fd.o bug #3241)
3502
3503         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3504         use new match classes to handle signals.
3505
3506 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3507         
3508         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3509
3510 2005-05-18  Havoc Pennington  <hp@redhat.com>
3511
3512         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3513         gettext. Not really worth requiring yet perhaps, but any
3514         production quality 1.0 would require it so we should go ahead and
3515         get things set up. We do have a couple token calls to
3516         bindtextdomain in the code already.
3517
3518 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3519
3520         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3521         when using recursive g_main_loops
3522
3523         * python/_dbus.py (class Bus): add the ProxyObjectClass
3524         alias for ProxyObject to make it easier for the Twisted 
3525         networking framework to integrate dbus.
3526
3527         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3528         alias for ProxyMethod to make it easier for the Twisted 
3529         networking framework to integrate dbus. 
3530
3531 2005-05-11  Ross Burton  <ross@openedhand.com>
3532
3533         * glib/dbus-glib-tool.c: Add --prefix argument.
3534         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3535         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3536         Add prefix argument.
3537         (generate_glue): Pass prefix argument down.
3538         (dbus_binding_tool_output_glib_server): Pass prefix to
3539         glib-genmarshal.
3540         
3541 2005-05-11  Colin Walters  <walters@verbum.org>
3542
3543         * tools/dbus-send.c (append_array): New function.
3544         (append_arg): Broken out from main.
3545         (main): Add cheesy hack to send arrays and variants.
3546         (usage): Update.
3547         * tools/dbus-print-message.c (print_iter): Broken out
3548         from main.
3549
3550 2005-05-11  Colin Walters  <walters@verbum.org>
3551
3552         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3553         New function, returns signature string for signature iter.
3554         * dbus/dbus-signature.h: Prototype it.
3555         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3556         New function, returns signature string for message iter.
3557         (dbus_message_iter_get_array_len): New function, returns
3558         length of array.
3559         (dbus_message_iter_get_fixed_array): Fix assertion; this
3560         function should be used when the iter is pointing to the
3561         contents of an array
3562         * dbus/dbus-message.h: Prototypes.
3563         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3564         New function; returns length of an array.
3565         * dbus/dbus-marshal-recursive.h: Prototype it.
3566         
3567 2005-05-11  Colin Walters  <walters@verbum.org>
3568
3569         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3570         compilation error.
3571         
3572 2005-05-08  Havoc Pennington  <hp@redhat.com>
3573
3574         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3575         daemon's pid, not the parent's pid, to the file descriptor.
3576         Reported by Taj Morton.
3577
3578 2005-05-05  Havoc Pennington  <hp@redhat.com>
3579
3580         * configure.in (LT_*): add notes on how the libtool versioning
3581         works to save thinking. Increment soname to indicate protocol
3582         breakage (though really the library interface hasn't changed I
3583         guess)
3584
3585         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3586         verify the GUID received from server matches what we were
3587         expecting, if we had an expectation
3588
3589         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3590         (_dbus_auth_get_guid_from_server): new function
3591         (send_begin): parse the OK args
3592
3593         * doc/dbus-specification.xml: add GUID to the auth protocol
3594
3595 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3596
3597         * Fix my name in previous changelog ;)
3598
3599         * python/proxies.py (ProxyObject.__getattr__): add further patch
3600         from Anthony Baxter to throw an AttributeError when python 
3601         __special__ functions are called instead of marshling them over 
3602         the bus (Bug#1685 comment 3).
3603
3604 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3605
3606         * python/Makefile.am: changed to use pyexecdir for the binding
3607         shared libraries (Bug#2494)
3608
3609         * python/exceptions.py: bring exceptions over from the bindings
3610         so they can be used in applications (Bug#2036)
3611         Make all exceptions derive from DBusException
3612
3613         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3614         of classes so that print obj doesn't throw an exception (Bug #1685)
3615
3616 2005-05-03  Ross Burton  <ross@openedhand.com>
3617
3618         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3619         Return if we get an error during registration.  Set up a
3620         weak reference on object to unregister if object is destroyed.
3621         (unregister_gobject): New function.
3622         
3623 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3624
3625         * python/dbus_bindings.pyx.in: 
3626         - added new type classes for hinting to the marashaler what type 
3627         to send over the wire
3628         - added int16 and uint16 marshalers
3629         - Fixed a bug in the type constants that caused int32 to go out
3630         as uint16 over the wire
3631         * python/dbus.py: split up into different files and renamed _dbus.py
3632         * python/__init__.py, python/_util.py, python/decorators.py, 
3633         python/exceptions.py, python/proxies.py, python/services.py,
3634         python/types.py: new files split off from dbus.py
3635         * python/Makefile.am: Add new files, remove dbus.py and 
3636         install all python files to <python module dir>/dbus
3637         * python/examples/*: Added #!/usr/bin/env python to the top of
3638         every example.  Patch provided by Tatavarty Kalyan
3639
3640 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3641
3642         * NEWS: Update to 0.33
3643
3644 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3645
3646         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3647         method for doing async calls
3648         (_pending_call_notification): New C function for handling pendning call
3649         callbacks
3650         (set_notify): New method for setting pending call notification
3651         
3652         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3653         Async capabilities added to remote method calls
3654         (Sender): class removed
3655         (RemoteService): class removed
3656         (ObjectTree): class removed for now
3657         (RemoteObject): Renamed to ProxyObject
3658         (RemoteMethod): Renamed to ProxyMethod
3659         (method): Decorator added for decorating python methods as dbus methods
3660         (signal): Decorator added for decorating python methods as signal emitters
3661         (ObjectType): Metaclass added for generating introspection data and the
3662         method callback vtable
3663         (Interface): Wrapper class added to wrap objects in a dbus interface
3664         (Object): Uses ObjectType as its metaclass and exports Introspect
3665         of the org.freedesktop.DBus.Introspectable interface
3666         (ValidationException, UnknownMethodException): new exceptions
3667
3668         * python/examples/*: Modified to fit with the new bindings
3669
3670 2005-04-23  Havoc Pennington  <hp@redhat.com>
3671
3672         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3673         reported by Tony Houghton
3674
3675         * test/test-service.c (main): test
3676         dbus_connection_get_object_path_data()
3677
3678         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3679         the exact_match
3680         (_dbus_object_tree_get_user_data_unlocked): new function used by
3681         dbus_connection_get_object_path_data()
3682         (do_register): add assertion test for get_user_data_unlocked
3683         (object_tree_test_iteration): more tests
3684
3685         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3686         new function from Dan Reed to let you get the user data from 
3687         dbus_connection_register_object_path()
3688
3689 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3690
3691         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3692         in numerous places that did not account for the NULL terminator
3693         (signature_from_seed): changed the manual string copy loop to 
3694         just use strcpy instead
3695         make check should now pass
3696
3697 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3698
3699         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3700         so that it allows messages that are not signals to pass in 
3701         NULL as the interface.
3702
3703 2005-04-18  David Zeuthen  <davidz@redhat.com>
3704
3705         * glib/dbus-gmain.c (io_handler_destroy_source): 
3706         (timeout_handler_destroy_source, connection_setup_free): 
3707         Also unref the source to avoid memory leaks.
3708
3709 2005-04-13  David Zeuthen  <davidz@redhat.com>
3710
3711         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3712         more reasonable, yet still totally arbitrary, value :-). 
3713
3714 2005-04-13  David Zeuthen  <davidz@redhat.com>
3715
3716         * doc/TODO: Added an "important for 1.0" item about selinux
3717         allow/deny messages
3718
3719 2005-04-13  David Zeuthen  <davidz@redhat.com>
3720
3721         * bus/selinux.c: Add c-file-style to top of file
3722         (log_audit_callback): Don't free the data here anymore
3723         (bus_selinux_check): Don't take spid and tpid since appending
3724         that to auxdata may OOM.
3725         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3726         to the caller if we are OOM by taking an error object.
3727         (bus_selinux_allows_send): -do-
3728
3729         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3730         and bus_selinux_allows_send
3731
3732         * bus/bus.c (bus_context_check_security_policy): Pass error and
3733         pass on OOM thrown by bus_selinux_allows_send()
3734
3735         * bus/services.c (bus_registry_acquire_service): Pass error and
3736         pass on OOM thrown by bus_selinux_allows_acquire_service()
3737
3738 2005-04-13  Havoc Pennington  <hp@redhat.com>
3739
3740         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3741         message at a time to avoid monopolizing the main loop, bug 
3742         #2953 from Benjamin Otte
3743
3744 2005-04-09  Havoc Pennington  <hp@redhat.com>
3745
3746         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3747         possible overlap, fix from Daniel Reed
3748         (fixup_alignment): fix signedness warnings
3749         (_dbus_string_append_unichar): ditto
3750
3751 2005-04-09  Havoc Pennington  <hp@redhat.com>
3752
3753         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3754
3755         * glib/dbus-glib-tool.c (main): fix warning
3756
3757         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3758
3759         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3760         add a new function that can be used in simple applications that
3761         don't have a main loop and are willing to block
3762
3763 2005-04-05  David Zeuthen  <davidz@redhat.com>
3764
3765         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3766
3767         * glib/dbus-gmain.c:
3768         (io_handler_destroy_source): Remove from list of IO handlers
3769         of the ConnectionSetup object
3770         (timeout_handler_destroy_source): -do- for timeout handlers
3771         (io_handler_source_finalized): Don't remove from list since
3772         we now do that in io_handler_destroy_source(). Renamed from
3773         io_handler_source_destroyed
3774         (timeout_handler_source_destroyed): -do- for timeout handlers
3775         (connection_setup_free): It is now safe to iterate over all
3776         IO and timeout handlers as the _destroy_source removes them
3777         from the list synchronously
3778
3779 2005-03-30  Havoc Pennington  <hp@redhat.com>
3780
3781         * configure.in: change check to gtk 2.4
3782
3783         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3784         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3785         to 2.4
3786
3787 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3788
3789         * News: Update 0.32
3790
3791         * HACKING: Fixed realease instructions.  configure.in should be updated to
3792           the next release by the person who made the last release.
3793
3794 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3795
3796         * python/lvalue_cast_post_process.py - removed.  Patch has been
3797           submitted to Pyrex maintainers that fixes gcc4.0 errors
3798
3799         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3800
3801 2005-03-24  Daniel Reed  <n@ml.org>
3802
3803         * tools/Makefile.am: Make print-introspect and
3804         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3805
3806 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3807
3808         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3809
3810         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3811           had in Red Hat packages for a while but for some reason never 
3812           got merged upstream
3813           (_dbus_is_a_number): New checks if a string
3814           can be converted to a number and does the conversion if it can
3815           (_dbus_user_database_lookup): Add check to see if the given username
3816           is a udi.  This allows udi's to be used instead of usernames in the
3817           config file.
3818           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3819           is a gdi.  This allows gdi's to be used instead of groupnames in the
3820           config file.
3821
3822 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3823
3824         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3825           code so that it compiles with gcc4.0
3826
3827         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3828           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3829           results back to dbus_binding.c
3830
3831 2005-03-20  Colin Walters  <walters@verbum.org>
3832
3833         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3834
3835         * configure.in: Require GTK+ 2.6.
3836         
3837 2005-03-20  Colin Walters  <walters@verbum.org>
3838
3839         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3840
3841 2005-03-17  Tom Parker  <palfrey@tevp.net>
3842
3843         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3844         print DBUS_UID_UNSET; instead print passed username.  Also
3845         be sure to actually use gid looked up in cache.
3846         
3847         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3848         for DBUS_GID_UNSET and groupname.
3849
3850 2005-03-17  Colin Walters  <walters@verbum.org>
3851
3852         * bus/print-introspect.c: Move to tools/.
3853         * bus/run-with-tmp-session-bus.sh: Ditto.
3854         
3855         * glib/Makefile.am (dbus-glib-bindings.h): Move
3856         generation to tools/Makefile.am.
3857
3858         * test/glib/run-test.sh: Update to handle move
3859         of run-with-tmp-session-bus.sh.
3860
3861         * test/glib/test-service-glib.c: Update to handle
3862         move of dbus-glib-bindings.h.
3863
3864         * tools/print-introspect.c: Moved here
3865         from bus/, and ported to GLib bindings.
3866
3867         * tools/run-with-tmp-session-bus.sh: Moved here
3868         from bus/.
3869
3870         * tools/Makefile.am: Generate dbus-glib-bindings.h
3871         and dbus-bus-introspect.xml here.
3872
3873         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3874         Update.
3875
3876 2005-03-17  Colin Walters  <walters@verbum.org>
3877
3878         * bus/driver.c (write_args_for_direction): Use
3879         _dbus_string_get_const_data to retrieve string;
3880         _dbus_string_get_const_data_len doesn't actually return
3881         a NULL-terminated substring.
3882
3883         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3884         (main): Change to use org_freedesktop_DBus_request_name
3885         instead of using g_proxy_begin_call/end_call.
3886
3887 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3888
3889         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3890         generating the finalizer.  Fixes from Ben Maurer.
3891
3892 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3893
3894         * mono/BusDriver.cs: Update method names: ListServices
3895         becomes ListNames; GetOwner becomes GetNameOwner.
3896
3897         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3898         onto the eval stack when removing the delegate.
3899
3900 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3901
3902         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3903         LT_CURRENT.  Set it to the autoconf variable.
3904                                                                                 
3905         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3906         classes that disconnects the signal handler delegate from the
3907         service object.  Fixes a big leak of proxy objects on the
3908         client side of things.  Patch from Ben Maurer
3909         <bmaurer@ximian.com>
3910
3911 2005-03-12  Colin Walters  <walters@verbum.org>
3912
3913         * bus/driver.c (write_args_for_direction): New function,
3914         parses a type signature into arguments and outputs to
3915         XML.
3916         (bus_driver_handle_introspect): Use it instead of
3917         hardcoding XML for certain signatures.
3918         
3919         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3920         dependency on dbus-daemon.
3921
3922         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3923         argument, pass it to dbus_binding_tool_output_glib_client.
3924
3925         * glib/dbus-binding-tool-glib.c
3926         (generate_client_glue): Protect against multiple inclusion.
3927         (dbus_binding_tool_output_glib_client): Add
3928         G_BEGIN_DECLS/G_END_DECLS.
3929
3930         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3931         Change to just take iface prefix directly.
3932         (write_formal_parameters): Clarify error message.
3933         (check_supported_parameters): New function; checks to see type
3934         signatures of method parameters are supported.
3935         (generate_client_glue): Handle ignore_unsupported flag.
3936         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3937         parameter.
3938
3939         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3940         --ignore-unsupported by default until glib bindings
3941         support arrays.
3942
3943 2005-03-11  Colin Walters  <walters@verbum.org>
3944
3945         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3946         install it.
3947
3948         * bus/print-introspect.c: New file; prints introspection
3949         data for a given name and object path.
3950
3951         * bus/run-with-tmp-session-bus.sh: New file, refactored
3952         from test/glib/run-test.sh.  Creates a temporary session
3953         bus and runs another program.
3954
3955         * test/glib/run-test.sh: Refactor to invoke
3956         run-with-tmp-session-bus.sh.
3957
3958         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3959         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3960         macros instead of hardcoding.
3961
3962         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3963
3964 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3965
3966         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3967         this unref; it doesn't match up evenly in some codepaths.
3968         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3969         this evenly matches with the ref near the top of this function.
3970
3971 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3972
3973         * dbus/dbus-object-tree.c
3974         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3975         and we try to unregister a path that's not registered, still go
3976         through the process of unlocking and don't just return.
3977
3978 2005-03-09  Colin Walters  <walters@verbum.org>
3979
3980         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3981         to this are generated for client-side wrappers.  Invokes a
3982         D-BUS method and returns reply values.  
3983
3984         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3985         function; writes signature string for argument direction.
3986         (write_args_for_direction): Change to pass input values directly
3987         instead of via address, and fix indentation.
3988         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3989         make generated wrappers inlineable.
3990
3991         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3992         note about using dbus_type_is_fixed.
3993
3994         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3995         dbus/dbus-signature.c as dbus_type_is_fixed.
3996
3997         All callers updated.
3998
3999         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4000         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4001
4002         * dbus/dbus-signature.h: Prototype.
4003
4004         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4005         error printf code.
4006
4007         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4008         appropriate instead of just freeing it.
4009         (main): Free returned strings using g_free.
4010
4011         * test/glib/Makefile.am (test-service-glib-glue.h)
4012         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4013
4014         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4015         simply maps a simple D-BUS type to GType.
4016         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4017         GType.
4018         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4019         initialize the value with it.
4020         (dbus_gvalue_binding_type_from_type): Unused, delete.
4021         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4022         various types instead of unmarshalling to value data directly.
4023         Remove can_convert boolean.
4024         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4025         returning directly instead of using can_convert boolean.
4026         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4027         Stores a GValue in a pointer to a value of its corresponding C
4028         type.
4029
4030         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4031         add dbus_gvalue_store.
4032
4033 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4034
4035         Fix a bunch of lifecycle and memory management problems
4036         in the mono bindings.
4037
4038         * mono/Arguments.cs (Arguments): Implement IDisposable
4039
4040         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4041         strictly a static class.
4042
4043         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4044         delegates into this file.
4045         (Connection): Implement IDisposable.
4046         (Dispose): Disconnect the connection and set the raw connection
4047         pointer to IntPtr.Zero.
4048         (~Connection): Call Dispose().
4049         (RegisterObjectPath): Added.  Manages the registration of object
4050         paths so we can cleanly disconnect them at dispose/finalize time.
4051         (UnregisterObjectPath): Ditto.
4052         (set_RawConnection): Unregister all of the object paths when
4053         changing the underlying DBusConnection.  Add them back onto the
4054         new connection, if any.
4055
4056         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4057         more unmanaged resources anymore, so it's not necessary.  Move all
4058         the DBusObjectPathVTable stuff out of here.
4059         (Handler): Save references to our delegates so that they don't get
4060         finalized.  Call Connection.RegisterObjectPath() instead of
4061         dbus_connection_register_object_path() directly.
4062         (Message_Called): Dispose the message after we're finished with
4063         it.
4064
4065         * mono/Message.cs (Message): Implement IDisposable.
4066         (Dispose): Dispose the Arguments, and set the RawMessage to
4067         IntPtr.Zero.
4068         (SendWithReplyAndBlock): We own the ref to the reply that comes
4069         back from dbus_connection_send_with_reply_and_block() so add a
4070         comment about that and unref it after we've constructed a managed
4071         MethodReturn class around it.  Fixes a big, big leak.
4072
4073         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4074         method.
4075         (BuildSignalHandler): After we've sent the Signal message, dispose
4076         of it.
4077         (BuildMethod): Dispose of the method call and reply messages after
4078         we've sent the message and extracted the data we want from the
4079         reply.
4080
4081         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4082         anymore.
4083         (Service_FilterCalled): Dispose of the message after we're
4084         finished with it.
4085
4086 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4087
4088         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4089         After we attach our pending call to the connection, unref
4090         it.  Fixes a leak.
4091  
4092         * mono/Connection.cs (set_RawConnection): Disconnect our
4093         filter and match callbacks from the old connection and
4094         reconnect them to the new connection, if any.
4095
4096         * mono/DBusType/Array.cs: "Code" is a static member, so
4097         don't use "this" to refer to it.  Fix for stricter checking
4098         in Mono 1.1.4.
4099  
4100         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4101         object path that we pass into unmanaged code.
4102  
4103         * mono/DBusType/String.cs (Append): Don't leak the string
4104         that we pass into unmanged code.
4105
4106 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4107         * NEWS: Update for 0.31
4108
4109         * configure.in: Release 0.31
4110         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4111
4112         * qt/Makefile.am: fixed build
4113
4114         * dbus/Makefile.am: soname bump for libdbus
4115
4116         * glib/Makefile.am: soname bump for libdbus-glib
4117
4118 2005-03-05  Havoc Pennington  <hp@redhat.com>
4119
4120         * dbus/dbus-sysdeps.c:
4121         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4122         value
4123         (_dbus_generate_random_bytes_buffer): fix return value
4124
4125         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4126         checks actually work, from Tom Parker <fdo@tevp.net>
4127
4128 2005-03-01  Colin Walters  <walters@verbum.org>
4129
4130         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4131         functions copied from dbus-glib-tool.c.
4132         (main): Convert lots of error code to use them.
4133         Also add some testing for introspection bits.
4134
4135 2005-03-01  Colin Walters  <walters@verbum.org>
4136         
4137         * doc/TODO: Remove introspection signature TODO.
4138
4139 2005-02-27  Colin Walters  <walters@verbum.org>
4140
4141         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4142         Change return value to const char * instead of int so we can do
4143         full signatures.
4144         (struct PropertyInfo, struct ArgInfo): Store char *.
4145         (property_info_new, arg_info_new): Update parameters, strdup.
4146         (property_info_unref, arg_info_unref): Free.
4147
4148         * glib/dbus-gidl.h: Update prototypes.
4149
4150         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4151         (validate_signature): New function, just validates signature and
4152         sets GError.
4153         (parse_property, parse_arg): Invoke validate_signature.  Store
4154         signature instead of just type code.
4155
4156         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4157         function to return a primary type for a signature, dropping
4158         information about types in container types.
4159         (dbus_gvalue_genmarshal_name_from_type)
4160         (dbus_gvalue_binding_type_from_type)
4161         (dbus_gvalue_ctype_from_type): Update to take full signature
4162          instead of type code.
4163         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4164
4165         * glib/dbus-gvalue.h: Update prototypes for above.
4166
4167         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4168         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4169         (introspect_properties, introspect_signals, write_interface):
4170         Update to handle signatures, and remove usage of
4171         _dbus_gutils_type_to_string.
4172         (handle_introspect): Print out type codes instead of e.g. "string"
4173         in hardcoded introspection XML; also use x_AS_STRING constants
4174         instead of hardcoding in string.
4175
4176         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4177         to string.  Remove usage of _dbus_gutils_type_to_string.
4178
4179         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4180
4181         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4182         deletion.
4183         
4184         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4185         (compute_marshaller_name, generate_glue): Handle signature change
4186         to string.
4187         (write_formal_parameters, write_args_for_direction): Ditto, and
4188         remove FIXME.
4189
4190         * tools/dbus-tree-view.c (type_to_string): Delete.
4191         (info_set_func_text): Update to print full signatures.
4192
4193         * test/glib/test-service-glib.xml: Change types to new
4194         introspection format.
4195
4196 2005-02-26  Havoc Pennington  <hp@redhat.com>
4197
4198         * doc/TODO: remove the "guid" item
4199
4200         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4201         (with_bus_thread_func): use open_private
4202
4203         * dbus/dbus-connection.c (dbus_connection_open_private): new
4204         function that works like the old dbus_connection_open()
4205         (dbus_connection_open): now returns an existing connection if
4206         possible
4207
4208         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4209         through the GUID to the transport
4210
4211         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4212         GUID in hex-encoded form.
4213
4214         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4215         pass GUID argument in to the transport
4216
4217         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4218         guid argument
4219
4220         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4221
4222         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4223
4224 2005-02-25  Havoc Pennington  <hp@redhat.com>
4225
4226         * doc/dbus-specification.xml: document the GUID thing
4227
4228         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4229         globally unique ID for the server, and put a "guid=hexencoded"
4230         field in the address
4231
4232         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4233
4234         * dbus/dbus-message.c: ditto
4235
4236         * dbus/dbus-dataslot.c: ditto
4237
4238         * dbus/dbus-list.c: ditto
4239
4240         * dbus/dbus-internals.h: wait, just include
4241         dbus-threads-internal.h here
4242         
4243         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4244         use in main library
4245
4246         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4247
4248 2005-02-24  Colin Walters  <walters@verbum.org>
4249
4250         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4251
4252 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4253
4254         * glib/Makefile.am: added dbus-gobject.h to sources list
4255         so distcheck doesn't fail
4256         
4257 2005-02-24  Havoc Pennington  <hp@redhat.com>
4258
4259         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4260         you must disconnect before unref, since locking and other things
4261         are screwed up otherwise. Fix assorted other locking stuff.
4262
4263         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4264         fix compilation
4265
4266         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4267         into a private header and don't export from the library
4268
4269         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4270
4271 2005-02-24  Colin Walters  <walters@verbum.org>
4272         
4273         * dbus/dbus-signature.c: New file; implements various functions
4274         related to type signatures.  Includes an interator for parsing,
4275         validation functions.
4276         (dbus_type_is_basic): Moved here from
4277         dbus-marshal-basic.c:_dbus_type_is_basic.
4278         (dbus_type_is_container): Moved here from
4279         dbus-marshal-basic.c:_dbus_type_is_container.
4280
4281         All callers of _dbus_type_is_container and _dbus_type_is_basic
4282         updated, and include dbus-signature.h.
4283
4284         * dbus/dbus-signature.h: New file; prototypes for the above.
4285
4286         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4287         dbus-signature.h.
4288
4289         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4290         function factored out of _dbus_first_type_in_signature.
4291         (_dbus_first_type_in_signature_c_str): New function; returns first
4292         type code for a type signature character.
4293
4294         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4295         handle function moves.
4296
4297         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4298
4299         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4300         function; skips to next complete type in type signature.
4301         Implemented using previous skip_one_complete_type.  Now
4302         skip_one_complete_type just delegates to
4303         _dbus_type_signature_next.
4304
4305         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4306         to dbus-signature.c
4307         (_dbus_type_is_container): Ditto.
4308
4309         * doc/dbus-specification.xml: Update introspection sample to
4310         use real type signatures.
4311
4312         * dbus/dbus-test.h: Prototype signature test.
4313
4314         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4315         signature tests.
4316
4317         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4318
4319 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4320
4321         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4322         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4323
4324 2005-02-21  Colin Walters  <walters@verbum.org>
4325
4326         * dbus/dbus-test-main.c (main): Take optional specific test
4327         argument.
4328
4329         * dbus/dbus-test.c (run_test): New function, runs a test function
4330         with no data directory.
4331         (run_data_test): Like above, but takes data directory.
4332         (dbus_internal_do_not_use_run_tests): Take
4333         specific test argument.  Replace lots of cut n' paste code
4334         with run_test and run_data_test.
4335
4336         * dbus/dbus-test.h: Update prototype for
4337         dbus_internal_do_not_use_run_tests.
4338
4339 2005-02-20  Havoc Pennington  <hp@redhat.com>
4340
4341         Fix bugs reported by Daniel P. Berrange
4342         
4343         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4344         (protected_change_watch): new function
4345         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4346         (_dbus_server_add_watch): change to work like the
4347         dbus-connection.c equivalents; like those, probably kind of
4348         busted, but should at least mostly work for now
4349         (dbus_server_disconnect): drop the lock if we were already
4350         disconnected, patch from Daniel P. Berrange
4351
4352         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4353         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4354         same stuff
4355
4356         * doc/TODO: todo about unscrewing this mess
4357
4358 2005-02-19  Colin Walters  <walters@verbum.org>
4359
4360         * glib/dbus-binding-tool-glib.c
4361         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4362
4363         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4364         as errno.h and sys/stat.h.
4365         (lose): New function, prints error with
4366         newline and exits.
4367         (lose_gerror): Similar, but takes GError for message.
4368         (main): Add --output argument to specify output file to write to,
4369         instead of always printing to stdout.  In this mode, determine
4370         timestamps on source files to see whether any are newer than the
4371         target file.  If not, exit.  Also convert a number of error
4372         messages to use lose (since it's shorter), and switch to using
4373         g_io_channel_shutdown.
4374
4375 2005-02-19  Havoc Pennington  <hp@redhat.com>
4376
4377         * glib/dbus-gobject.c
4378         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4379
4380         * glib/dbus-glib.c: fix doxygen warnings
4381
4382         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4383         is found on an <arg>
4384
4385 2005-02-17  Colin Walters  <walters@verbum.org>
4386
4387         * glib/dbus-gobject.h: Don't export
4388         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4389         
4390         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4391         (invoke_object_method): Handle it.
4392
4393         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4394         Handle rename.
4395         
4396 2005-02-17  Colin Walters  <walters@verbum.org>
4397
4398         * bus/.cvsignore, doc/.cvsignore
4399         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4400         Update.
4401
4402 2005-02-17  Colin Walters  <walters@verbum.org>
4403         
4404         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4405         Rename to DBUS_SERVICE_DBUS.
4406         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4407         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4408         Change the value from "org.freedesktop.Local"
4409         to "org.freedesktop.DBus.Local".
4410         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4411         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4412         DBUS_INTERFACE_INTROSPECTABLE.
4413         Change the value from "org.freedesktop.Introspectable"
4414         to "org.freedesktop.DBus.Introspectable".
4415         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4416         DBUS_INTERFACE_PROPERTIES.
4417         Change the value from "org.freedesktop.Properties"
4418         to "org.freedesktop.DBus.Properties".
4419         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4420         DBUS_INTERFACE_PEER.
4421         Change the value from "org.freedesktop.Peer"
4422         to "org.freedesktop.DBus.Peer".
4423         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4424         DBUS_INTERFACE_LOCAL.
4425         Change the value from "org.freedesktop.Local"
4426         to "org.freedesktop.DBus.Local".
4427
4428         All other users of those constants have been changed.
4429
4430         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4431
4432         * glib/dbus-gobject.c (handle_introspect): Use constants.
4433
4434         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4435
4436 2005-02-17  Colin Walters  <walters@verbum.org>
4437
4438         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4439         (parse_node, parse_interface, parse_method, parse_signal)
4440         (parse_property, parse_annotation): Lose if we're currently in an
4441         annotation.
4442         (parse_annotation): New function.
4443         (parser_start_element, parser_end_element): Handle annotation.
4444         (parse_method, parse_interface): Remove support for c_name attribute,
4445         switch to annotations.
4446
4447         * glib/dbus-gidl.h (interface_info_get_binding_names)
4448         (method_info_get_binding_names)
4449         (interface_info_get_binding_name, method_info_get_binding_name)
4450         (interface_info_set_binding_name, method_info_set_binding_name):
4451         Remove.
4452         (interface_info_get_annotations, method_info_get_annotations)
4453         (interface_info_get_annotation, method_info_get_annotation)
4454         (interface_info_add_annotation, method_info_add_annotation):
4455         Prototype.
4456
4457         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4458         for "bindings".
4459         (struct MethodInfo): Ditto.
4460         Straightfoward conversion of binding methods into annotation methods
4461         as prototyped.
4462
4463         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4464
4465         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4466
4467         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4468         Use new annotation API.
4469
4470         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4471         annotation element.
4472         
4473         * doc/dbus-specification.xml: Discuss introspection annotations,
4474         include list of well-known annotations.
4475
4476         * test/glib/test-service-glib.xml: Make validate against new DTD.
4477
4478 2005-02-17  Colin Walters  <walters@verbum.org>
4479
4480         This patch is based on initial work from
4481         Paul Kuliniewicz <kuliniew@purdue.edu>.
4482
4483         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4484         initialization of GValue from dbus type to here.
4485         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4486         for the "glib-genmarshal" program from a DBus type.
4487         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4488         into the C name for it we use in the glib bindings.
4489         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4490         glib C type (not GValue).
4491         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4492
4493         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4494         from dbus-gobject.c.
4495
4496         * glib/dbus-gutils.h: Prototype it.
4497
4498         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4499         (marshal_dbus_message_to_g_marshaller): Use new shared function
4500         dbus_glib_marshal_dbus_message_to_gvalue_array.
4501
4502         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4503         Will be changed once we have annotations.
4504
4505         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4506         GStaticRWLock.  Callers updated.
4507         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4508         (string_table_next): New function for iterating over zero-terminated
4509         string value array.
4510         (string_table_lookup): New function; retrieves specific entry in
4511         array.
4512         (get_method_data): New function; look up method data in object data chunk.
4513         (object_error_domain_prefix_from_object_info)
4514         (object_error_code_from_object_info): New functions, but not implemented yet.
4515         (method_interface_from_object_info): New function; retrieve interface name.
4516         (method_name_from_object_info): New function; retrieve method name.
4517         (method_arg_info_from_object_info): New function; retrieve argument data.
4518         (arg_iterate): New function; iterates over serialized argument data.
4519         (method_dir_signature_from_object_info): New function; returns a
4520         GString holding type signature for arguments for just one
4521         direction (input or output).
4522         (method_input_signature_from_object_info)
4523         (method_output_signature_from_object_info): New functions.
4524         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4525         converts dbus message arguments into a GValue array.  Used for both
4526         signal handling and method invocation.
4527         (struct DBusGlibWriteIterfaceData): New utility structure.
4528         (write_interface): New function; generate introspection XML for
4529         an interface.
4530         (introspect_interfaces): New function; gathers all interface->methods,
4531         generates introspection XML for them.
4532         (handle_introspect): Invoke introspect_interfaces.
4533         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4534         (lookup_object_and_method): New function; examines an incoming message
4535         and attempts to match it up (via interface, method name, and argument
4536         signature) with a known object and method.
4537         (gerror_domaincode_to_dbus_error_name): New function; converts a
4538         GError domain and code into a DBus error name.  Needs GError data
4539         added to object introspection to work well.
4540         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4541         GError.
4542         (invoke_object_method): New function to invoke an object method
4543         looked up via lookup_object_and_method.  Parses the incoming
4544         message, turns it into a GValue array, then invokes the marshaller
4545         specified in the DBusGMethodInfo.  Creates a new message with
4546         either return values or error message as appropriate.
4547         (gobject_message_function): Invoke lookup_object_and_method and
4548         invoke_object_method.
4549
4550         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4551         (enum DBusBindingOutputMode): New enum for binding output modes.
4552         (pretty_print): Print binding names.
4553         (dbus_binding_tool_error_quark): GError bits.
4554         (version): Fix typo.
4555         (main): Create GIOChannel for output.  Parse new --mode argument,
4556         possible values are "pretty-print", "glib-server", "glib-client".
4557         Use mode to invoke appropriate function.
4558         
4559         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4560
4561         * glib/dbus-glib-tool.h: New header, just includes GError bits
4562         for now.
4563
4564         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4565         maps binding style to name.
4566         (struct MethodInfo): Ditto.
4567         (get_hash_keys, get_hash_key): Utility function, returns keys for
4568         a GHashTable.
4569         (interface_info_new, method_info_new): Initialize bindings.
4570         (interface_info_unref, method_info_unref): Destroy bindings.
4571         (method_info_get_binding_names, method_info_get_binding_name)
4572         (interface_info_get_binding_names, interface_info_get_binding_name):
4573         Functions for retrieving binding names.
4574         (method_info_set_binding_name, interface_info_set_binding_name):
4575         Functions for setting binding names.
4576
4577         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4578         for glib binding generation.
4579
4580         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4581         and client-side glib glue generation.
4582
4583         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4584         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4585         dbus-glib-tool.h.
4586
4587         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4588         of using GClosureMarshal directly.
4589         (struct DBusGObjectInfo): Add n_infos member.
4590
4591         * test/glib/test-service-glib.xml: New file; contains introspection data
4592         for MyTestObject used in test-service-glib.c.
4593
4594         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4595         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4596         (my_object_uppercase, my_object_many_args): New test methods.
4597         (main): Use dbus_g_object_class_install_info to include generated object
4598         info.
4599
4600         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4601         as well as client-side bindings.
4602
4603         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4604         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4605         using both the dbus_gproxy stuff directly as well as the generated bindings.
4606
4607 2005-02-15  Havoc Pennington  <hp@redhat.com>
4608
4609         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4610         complete a pending call, don't run filters first.
4611
4612         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4613         dbus_pending_call_steal_reply
4614
4615         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4616         _dbus_connection_block_pending_call
4617         (dbus_pending_call_get_reply): change to steal_reply and return a
4618         ref
4619
4620         * dbus/dbus-connection.c
4621         (dbus_connection_send_with_reply_and_block): port to work in terms
4622         of DBusPendingCall
4623         (_dbus_connection_block_pending_call): replace block_for_reply
4624         with this
4625
4626 2005-02-14  Havoc Pennington  <hp@redhat.com>
4627
4628         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4629         properly handle looking up group information by name; fix 
4630         from j@bootlab.org
4631
4632 2005-02-13  Havoc Pennington  <hp@redhat.com>
4633
4634         * dbus/dbus-connection.c (dbus_connection_return_message) 
4635         (dbus_connection_borrow_message): hold dispatch lock while message
4636         is outstanding
4637         (_dbus_connection_block_for_reply): hold dispatch lock while we
4638         block for the reply, so nobody steals our reply
4639         (dbus_connection_pop_message): hold the dispatch lock while we
4640         pluck the message
4641
4642 2005-02-13  Havoc Pennington  <hp@redhat.com>
4643
4644         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4645         (_dbus_connection_release_dispatch)
4646         (_dbus_connection_acquire_io_path)
4647         (_dbus_connection_release_io_path): make the mutex and condvar
4648         control access to the "acquired" flag. Drop the connection lock
4649         while waiting on the condvar. Hopefully these are baby steps in
4650         roughly the right direction.
4651
4652 2005-02-13  Havoc Pennington  <hp@redhat.com>
4653
4654         * dbus/dbus-connection.c: use separate mutexes for the condition
4655         variables; this is some kind of baseline for sanity, but the
4656         condition variables still aren't used correctly afaict
4657
4658 2005-02-13  Havoc Pennington  <hp@redhat.com>
4659
4660         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4661         fix a double-unlock
4662
4663         * dbus/dbus-connection.c
4664         (_dbus_connection_detach_pending_call_unlocked): add this
4665
4666         Initial semi-correct pass through to fix thread locking; there are
4667         still some issues with the condition variable paths I'm pretty
4668         sure
4669         
4670         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4671         lock/unlock calls
4672
4673         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4674         rename to add _unlocked
4675         (struct DBusConnection): move "dispatch_acquired" and
4676         "io_path_acquired" to use only one bit each.
4677         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4678         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4679         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4680         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4681         (_dbus_connection_remove_timeout) 
4682         (_dbus_connection_toggle_timeout): drop lock when calling out to
4683         user functions; done in a hacky/bad way.
4684         (_dbus_connection_send_and_unlock): add a missing unlock
4685         (_dbus_connection_block_for_reply): add a missing unlock
4686
4687         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4688         drop lock in a hacky probably unsafe way to call out to user
4689         function
4690
4691 2005-02-12  Havoc Pennington  <hp@redhat.com>
4692
4693         * tools/dbus-tree-view.c (info_set_func_text): display more
4694         details on args
4695
4696         * bus/driver.c (bus_driver_handle_list_services): list the bus
4697         driver
4698
4699         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4700
4701         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4702         (method_info_get_n_args): new function
4703
4704 2005-02-12  Havoc Pennington  <hp@redhat.com>
4705
4706         * bus/driver.c (bus_driver_handle_introspect): add introspection
4707         for bus driver
4708
4709 2005-02-12  Havoc Pennington  <hp@redhat.com>
4710
4711         * bus/driver.c: put the signature of each bus driver method in the
4712         table of handlers and check it on incoming calls; this isn't
4713         really useful, but going to add introspect support in a minute.
4714
4715 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4716
4717         * mono/Connection.cs: The unpredictability of finalizers in mono
4718         prevents us from deterministically disconnecting the filters from
4719         the Service class's finalizer, so move tracking of filters and
4720         matches here.  Add API for that.
4721
4722         * mono/Service.cs: Remove the code, add code which calls the
4723         methods now on the Connection class.
4724
4725 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4726
4727         * python/dbus.py (class Sender): added to support dbus signals better
4728         (Bus::add_signal_receiver): added expand_args parameter which defaults
4729         to True.  When expand args is True the signal handler will pass the 
4730         message arguments as parameters to the signal handler.  If False
4731         revert to previous behavior where the signal handler must get the
4732         argument list from the message.  This is to help port applications
4733         like HAL that have a tendancy to send variable length argument lists.
4734         self._match_rule_to_receivers is now a dict of dicts.
4735         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4736         removing it from a list
4737         (Bus::_signal_func): change signal handlers so that interface,
4738         signal_name, service, path and message are packed into a Sender
4739         object and that is passed to the handler.  If expand_args is True
4740         extract the args list from the message and append it to the parameter
4741         list
4742         
4743         * python/dbus_bindings.pyx.in (class Signature): added to support 
4744         signiature types
4745         (MessageIter::__init__): changed iteration limit to match D-BUS
4746         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4747         STRUCT and VARIENT type support
4748         (MessageIter::python_value_to_dbus_sig): made recursive to support
4749         recursive types
4750         (MessageIter::append*): added Signature, dict, tuple 
4751         support
4752
4753         * python/examples/example-client.py: added examples of getting tuples
4754         and dicts
4755
4756         * python/examples/example-service.py: added examples of sending tuples
4757         and dicts
4758
4759         * python/examples/example-signal-recipient.py: Fixed to handle new
4760         signal callback format
4761
4762 2005-02-10  Havoc Pennington  <hp@redhat.com>
4763
4764         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4765         (call dbus_g_proxy_add_signal)
4766
4767         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4768         escape the hostname
4769         (_dbus_server_new_for_domain_socket): escape the path
4770
4771         * dbus/dbus-address.c (dbus_address_escape_value): new
4772         (dbus_address_unescape_value): new
4773         (dbus_parse_address): unescape values
4774
4775         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4776
4777         * doc/dbus-specification.xml: explain how to escape values in
4778         addresses
4779
4780 2005-02-10  Havoc Pennington  <hp@redhat.com>
4781
4782         * dbus/dbus-message-factory.c (generate_special): modify test to
4783         avoid using a non-basic dict key
4784
4785         * dbus/dbus-marshal-validate-util.c: add test for the below
4786
4787         * doc/dbus-specification.xml: require that dict keys are a basic
4788         type
4789
4790         * dbus/dbus-marshal-validate.c
4791         (_dbus_validate_signature_with_reason): require that dict key is a
4792         basic type
4793
4794 2005-02-10  Havoc Pennington  <hp@redhat.com>
4795
4796         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4797         change to be _and_unlock instead of _unlocked
4798
4799         * dbus/dbus-connection.c
4800         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4801         have no_update so we can find this bug quickly in future
4802
4803 2005-02-10  Havoc Pennington  <hp@redhat.com>
4804
4805         * dbus/dbus-message-util.c (verify_test_message): tests for string
4806         array
4807
4808         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4809         support for arrays of string/signature/path
4810
4811 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4812
4813         * dbus/dbus-connection.c
4814         (_dbus_connection_queue_received_message_link,
4815         _dbus_connection_message_sent): Add the path to
4816         the verbose output.
4817         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4818         _dbus_connection_send_preallocated_unlocked(), updated the
4819         dispatch status, and unlocks.  Fixes a bug where certain
4820         situations (like a broken pipe) could cause a Disconnect message
4821         to not be sent, tricking the bus into thinking a service was still
4822         there when the process had quit.
4823         (_dbus_connection_send_preallocated): Call
4824         _dbus_connection_send_preallocated_and_unlock().
4825         (_dbus_connection_send_and_unlock): Added.  Calls
4826         _dbus_connection_send_preallocated_and_unlock().
4827         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4828         (dbus_connection_send_with_reply): Update the dispatch status and
4829         unlock.
4830
4831         * mono/Service.cs (~Service): Added.  Removes the filter so that
4832         we don't get unmanaged code calling back into a GCed delegate.
4833         (RemoveFilter); Added.
4834
4835 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4836
4837         * dbus/dbus-message.c (dbus_message_iter_open_container):
4838         - Removed check for iterator type being an array because
4839         get_arg_type does not work with writer iterators
4840         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4841
4842 2005-02-07  Havoc Pennington  <hp@redhat.com>
4843
4844         * doc/dbus-specification.xml: some more language cleanups; add
4845         stuff about how to deal with invalid protocol and extension
4846         points; add _ to allowed chars in auth commands; add EXTENSION_
4847         auth command prefix
4848
4849 2005-02-06  Havoc Pennington  <hp@redhat.com>
4850
4851         * s/expected/required/ in a couple places for clarity
4852
4853 2005-02-07  Colin Walters  <walters@verbum.org>
4854
4855         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4856         sender or proposed_recipient.
4857
4858 2005-02-06  Havoc Pennington  <hp@redhat.com>
4859
4860         * dbus/dbus-message-factory.c (generate_special): more tests
4861
4862         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4863         array length that exceeds the maximum
4864
4865 2005-02-05  Havoc Pennington  <hp@redhat.com>
4866
4867         * dbus/dbus-message-factory.c (generate_special): more test cases,
4868         increasing coverage
4869
4870         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4871         reason why a signature was invalid
4872
4873         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4874         skip the length of the string before we look at it in validation
4875
4876         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4877         equal_substring
4878
4879         * dbus/dbus-message.c (_dbus_message_loader_new): default
4880         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4881
4882 2005-02-05  Havoc Pennington  <hp@redhat.com>
4883
4884         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4885         if the signature of a variant was empty
4886         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4887         struct with no element type)
4888
4889         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4890         mangled messages to break things
4891
4892 2005-02-04  Havoc Pennington  <hp@redhat.com>
4893
4894         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4895         g_quark_try_string() so it actually can return 0
4896         (dbus_g_proxy_connect_signal): ditto
4897
4898 2005-02-04  Havoc Pennington  <hp@redhat.com>
4899
4900         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4901         bogus warning
4902         (tristring_from_message): assert cleanly on null path/interface
4903         (should not be possible though I decided later)
4904         (dbus_g_proxy_dispose): move proxy manager unregistration here
4905         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4906         g_return_if_fail() checks
4907
4908 2005-02-04  Havoc Pennington  <hp@redhat.com>
4909
4910         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4911
4912         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4913         (with some minor changes)
4914
4915         * doc/dbus-specification.xml: add deprecated attribute to
4916         introspection format
4917
4918 2005-01-31  Havoc Pennington  <hp@redhat.com>
4919
4920         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4921         think it's sort of right
4922
4923 2005-01-30  Havoc Pennington  <hp@redhat.com>
4924
4925         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4926
4927 2005-01-30  Havoc Pennington  <hp@redhat.com>
4928
4929         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4930
4931         * autogen.sh: change to autotools 1.9
4932
4933         * glib/dbus-gproxy.c: completely change how signals work
4934         (dbus_g_proxy_add_signal): new function to specify signature of a
4935         signal
4936         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4937         and g_warning if the incoming message has the wrong signature.
4938
4939 2005-01-30  Havoc Pennington  <hp@redhat.com>
4940
4941         * tools/dbus-names-model.c (have_names_notify): fix this
4942
4943         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4944         up the string array handling a bit 
4945
4946 2005-01-30  Havoc Pennington  <hp@redhat.com>
4947
4948         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4949         (dbus_g_pending_call_cancel): new function
4950
4951         * dbus/dbus-glib.h: move GType decls for connection/message here;
4952         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4953         here, just kind of rationalizing how we handle all that
4954
4955         * tools/dbus-names-model.c: new file for a tree model listing the
4956         services on a bus
4957
4958         * tools/dbus-tree-view.c (model_new): use proper typing on the
4959         model rows
4960
4961 2005-01-30  Havoc Pennington  <hp@redhat.com>
4962
4963         * glib/dbus-gmain.c: add a custom GSource back that just checks
4964         whether the message queue has anything in it; otherwise, there are 
4965         cases where we won't see messages in the queue since there was no 
4966         IO visible to the glib main loop
4967
4968         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4969         increase default message timeout to 25 seconds
4970
4971 2005-01-30  Havoc Pennington  <hp@redhat.com>
4972
4973         * test/glib/test-profile.c (no_bus_stop_server): remove the
4974         warning about the g_warning that I just fixed
4975
4976         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4977         custom source, seems to be a lot easier to understand and work
4978         better.
4979
4980 2005-01-30  Havoc Pennington  <hp@redhat.com>
4981
4982         I think this main loop thing is conceptually broken, but here are 
4983         some band aids. I'll maybe rewrite it in a minute.
4984         
4985         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4986         custom GSource, so don't pass it in; confusing
4987         (gsource_server_finalize, gsource_connection_finalize): add
4988         finalize handlers that remove all the watches.  
4989
4990 2005-01-30  Havoc Pennington  <hp@redhat.com>
4991
4992         * glib/dbus-gobject.c (introspect_properties): fix the XML
4993         generated
4994
4995         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4996         which effectively detects the use of freed messages
4997
4998         * glib/dbus-gobject.c (handle_introspect): modify and return the
4999         reply message instead of the incoming message
5000
5001         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5002         gee, maybe it should SEND THE XML instead of just making a string
5003         and freeing it again ;-)
5004
5005         * tools/dbus-print-message.c (print_message): improve printing of
5006         messages
5007
5008         * configure.in: add debug-glib.service to the output
5009
5010 2005-01-30  Havoc Pennington  <hp@redhat.com>
5011
5012         dbus-viewer introspected and displayed the bus driver
5013         
5014         * dbus/dbus-object-tree.c 
5015         (object_tree_test_iteration): add tests for a handler registered on "/"
5016
5017         * dbus/dbus-object-tree.c
5018         (_dbus_decompose_path): fix to handle path "/" properly
5019         (run_decompose_tests): add tests for path decomposition
5020         
5021         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5022         properly
5023
5024         * glib/dbus-gobject.c (handle_introspect): fix quotes
5025
5026         * test/glib/run-test.sh: support launching the bus, then running
5027         dbus-viewer
5028
5029         * test/glib/test-service-glib.c (main): put in a trivial gobject
5030         subclass and register it on the connection
5031
5032         * bus/driver.c (bus_driver_handle_introspect): implement
5033         introspection of the bus driver service
5034
5035         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5036         identifiers, doctype decl
5037
5038         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5039         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5040         returning the service unchanged.
5041         (bus_driver_handle_message): remove old check for reply_serial in
5042         method calls, now the message type deals with that
5043         (bus_driver_handle_message): handle NULL interface
5044
5045         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5046
5047         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5048         -1 for len
5049
5050         * tools/dbus-viewer.c: add support for introspecting a service on
5051         a bus
5052
5053         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5054         (dbus_g_pending_call_unref): add
5055
5056 2005-01-29  Havoc Pennington  <hp@redhat.com>
5057
5058         * tools/dbus-tree-view.c: add support for displaying properties.
5059         (run dbus-viewer with an introspect xml file as arg, then resize
5060         the window so the tree elements show up, not sure what that is)
5061
5062         * glib/dbus-gobject.c (handle_introspect): return
5063         org.freedesktop.Properties and org.freedesktop.Introspectable
5064         interfaces when we are introspected.
5065
5066         * doc/dbus-specification.xml: allow empty interface name when 
5067         Get/Set a property
5068
5069 2005-01-29  Havoc Pennington  <hp@redhat.com>
5070
5071         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5072         though it uses glib, it could be extended for any binding in
5073         principle
5074
5075         * glib/dbus-gobject.c (gobject_message_function): change to the
5076         new way properties work
5077
5078         * dbus/dbus-protocol.h: add the new interfaces
5079
5080         * doc/dbus-specification.xml: document the introspection format,
5081         Introspectable interface, and add an org.freedesktop.Properties
5082         interface.
5083
5084         * glib/dbus-gparser.c: add support for a <property> element
5085
5086         * glib/dbus-gidl.c: add PropertyInfo
5087
5088         * glib/dbus-gobject.c (handle_introspect): put the outermost
5089         <node> outside the signal and property descriptions.
5090         (introspect_properties): export properties as <property> rather
5091         than as method calls
5092
5093 2005-01-28  Havoc Pennington  <hp@redhat.com>
5094
5095         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5096         related to authentication protocol
5097
5098 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5099
5100         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5101                 - BUS_ACTIVATION -> BUS_STARTER
5102                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5103                 - class MessageIter (__init__): Added recursion checking 
5104                 so we throw a nice error instead of just disconnecting from the
5105                 bus.
5106                 (get): Added arg_type parameter for recursion.
5107                 Removed the nil type
5108                 Added signiture type placeholder (not implemented)
5109                 Added struct type placeholder (not implemented)
5110                 Added varient type placeholder (not implemented)
5111                 Commented out dict type for now     
5112                 (get_element_type): renamed from get_array_type
5113                 (get_*): changed to use the dbus_message_iter_get_basic API
5114                 (get_*_array): removed in favor of recursive get_array method
5115                 (get_array): new recursive method which calls get to marshal
5116                 the elements of the array
5117                 (value_to_dbus_sig): New method returns the corrasponding
5118                 dbus signiture to a python value
5119                 (append): Comment out dict handling for now
5120                 Handle lists with the new recursive API
5121                 Comment out None handling for now
5122                 (append_nil): removed
5123                 (append_*): changed to use dbus_message_iter_append_basic API
5124                 (append_*_array): removed in favor of recursive append_array 
5125                 method
5126                 (__str__): Make it easier to print out recursive iterators
5127                 for debugging
5128                 - class Message (__str__): moved type inspection to the
5129                 MessageIter class' __str__ method
5130                 (get_iter): Added an append parameter wich defaults to False
5131                 If True use the new API's to create an append iterator
5132
5133         * python/dbus.py: Update to use new bindings API
5134                 - TYPE_ACTIVATION -> TYPE_STARTER
5135                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5136                 - class ActivationBus -> class StarterBus
5137                 - class RemoteObject (__call__): get an append iterator
5138                 - (_dispatch_dbus_method_call): get an append iterator
5139                 - class Object (emit_signal): get an append iterator
5140
5141         * python/examples/: Fixed up the examples to work with the new API
5142                 
5143 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5144
5145         * configure.in: Bump version up to 0.30.
5146
5147         * HACKING: Add a release item to bump the version number up after 
5148         a release.
5149
5150 2005-01-28  Havoc Pennington  <hp@redhat.com>
5151
5152         * doc/dbus-specification.xml: update to describe 16-bit types and
5153         dict entries
5154
5155         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5156         assertion
5157
5158         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5159         type
5160
5161         * dbus/dbus-marshal-recursive.c: implement
5162
5163 2005-01-27  Havoc Pennington  <hp@redhat.com>
5164
5165         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5166
5167         * configure.in: find the right type for 16 and 32 bit ints as well
5168         as 64
5169
5170         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5171         the 16-bit types so people don't have to stuff them in 32-bit or
5172         byte arrays.
5173
5174 2005-01-27  Havoc Pennington  <hp@redhat.com>
5175
5176         * dbus/dbus-message.c: byteswap the message if you init an
5177         iterator to read/write from it
5178         
5179         * dbus/dbus-marshal-byteswap.c: new file implementing 
5180         _dbus_marshal_byteswap()
5181
5182         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5183
5184 2005-01-26  Havoc Pennington  <hp@redhat.com>
5185         
5186         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5187         build, apparently - nobody noticed?)
5188         
5189 2005-01-26  Havoc Pennington  <hp@redhat.com>
5190
5191         * dbus/dbus-marshal-recursive.h: remove todo comment
5192
5193 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5194
5195         * Land the mono binding changes to conform to the new APIs.
5196
5197         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5198         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5199
5200         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5201         type code as a string.
5202         (InitAppending): Rename dbus_message_append_iter_init() to
5203         dbus_message_iter_init_append().
5204
5205         * mono/BusDriver.cs: Rename ServiceEventHandler to
5206         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5207         Rename ServiceOwnerChanged to NameOwnerChanged.
5208
5209         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5210         underlying C call.
5211
5212         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5213
5214         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5215         dbus_bus_acquire_service() to dbus_bus_request_name().
5216
5217         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5218         of Type.UnderlyingSystemType to get the correct element type for
5219         the array.
5220         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5221         dbus_message_get_{element|arg}_type() instead of
5222         dbus_message_iter_init_array_iterator().
5223         (Append): Replace dbus_message_iter_append_array() with
5224         dbus_message_iter_open_container() and
5225         dbus_message_iter_close_container().
5226
5227         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5228         types have been removed.
5229         
5230         * mono/DBusType/*.cs: Replace calls of
5231         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5232         but specify the type in the DllImport extern declaration.  Ditto
5233         for dbus_message_iter_append_[type]() ->
5234         dbus_message_iter_append_basic().
5235
5236         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5237         NameOwnerChangedHandler.
5238
5239 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5240
5241         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5242                 - get_base_service -> get_unique_name
5243                 - bus_get_base_service -> bus_get_unique_name
5244                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5245                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5246                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5247                 - bus_activate_service -> bus_start_service_by_name
5248                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5249                 - bus_acquire_service -> bus_request_name
5250                 - dbus_bus_acquire_service -> dbus_bus_request_name
5251                 - bus_service_exists -> bus_name_has_owner
5252                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5253
5254         * python/dbus.py: Rename of methods
5255                 - activate_service -> start_service_by_name
5256                 - bus_acquire_service -> bus_request_name
5257                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5258                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5259
5260         
5261 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5262
5263         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5264         signature for the method that can't be found.
5265
5266         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5267         the message has any arguments, we need to call
5268         _dbus_type_reader_get_current_type(), not
5269         _dbus_type_reader_has_next().
5270
5271 2005-01-24  Havoc Pennington  <hp@redhat.com>
5272
5273         * dbus/dbus-message-factory.c: more testing of message validation
5274
5275         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5276         header
5277
5278 2005-01-23  Havoc Pennington  <hp@redhat.com>
5279
5280         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5281         get this all working, not many tests in the framework yet though
5282
5283 2005-01-22  Havoc Pennington  <hp@redhat.com>
5284
5285         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5286         tutorial, based on work from David Wheeler.
5287
5288 2005-01-21  Havoc Pennington  <hp@redhat.com>
5289
5290         * dbus/dbus-bus.c: add more return_if_fail checks
5291
5292         * dbus/dbus-message.c (load_message): have the "no validation"
5293         mode (have to edit the code to toggle the mode for now though)
5294
5295         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5296         skips all validation; I want to use this at least for benchmark
5297         baseline, I'm not sure if it should be a publicly-available switch.
5298
5299 2005-01-21  Havoc Pennington  <hp@redhat.com>
5300
5301         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5302         toplevel doxygen group as the low-level API stuff
5303
5304         * dbus/dbus.h: note that libdbus is the low-level API
5305
5306 2005-01-20  Havoc Pennington  <hp@redhat.com>
5307
5308         * update-dbus-docs.sh: script to update docs on the web site, only
5309         works for me though. neener.
5310
5311 2005-01-20  Havoc Pennington  <hp@redhat.com>
5312
5313         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5314         code can reveal bugs in it
5315
5316 2005-01-20  Havoc Pennington  <hp@redhat.com>
5317
5318         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5319         select() version, patches from Tor Lillqvist
5320
5321 2005-01-20  Havoc Pennington  <hp@redhat.com>
5322
5323         * doc/dbus-tutorial.xml: replace > with &gt;
5324
5325         * bus/services.c (bus_registry_acquire_service): validate the name
5326         and return a better error if it's no good.
5327
5328         * doc/dbus-specification.xml: note NO_AUTO_START change
5329
5330         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5331         from AUTO_START, we're toggling the default
5332
5333         * bus/dispatch.c: adapt the tests to change of auto-start default
5334
5335 2005-01-18  Havoc Pennington  <hp@redhat.com>
5336
5337         * rename dbus-daemon-1 to dbus-daemon throughout
5338
5339 2005-01-18  Havoc Pennington  <hp@redhat.com>
5340
5341         * Throughout, grand renaming to strip out the use of "service",
5342         just say "name" instead (or "bus name" when ambiguous).  Did not
5343         change the internal code of the message bus itself, only the
5344         programmer-facing API and messages.
5345         
5346         * doc/dbus-specification.xml: further update the message bus section
5347         
5348         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5349         in error case
5350
5351 2005-01-17  Havoc Pennington  <hp@redhat.com>
5352
5353         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5354         ever
5355
5356         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5357         "invalid name character" not only non-ASCII
5358
5359         * doc/dbus-specification.xml: further update spec, message bus 
5360         parts are still out-of-date but the marshaling etc. stuff is now
5361         accurate-ish
5362
5363 2005-01-17  Havoc Pennington  <hp@redhat.com>
5364
5365         * doc/dbus-specification.xml: partially update spec
5366
5367 2005-01-17  Havoc Pennington  <hp@redhat.com>
5368
5369         * Throughout, align variant bodies according to the contained
5370         type, rather than always to 8. Should save a fair bit of space in
5371         message headers.
5372         
5373         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5374         fix handling of case where p == end
5375
5376         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5377
5378 2005-01-17  Havoc Pennington  <hp@redhat.com>
5379
5380         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5381
5382         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5383         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5384         are marshaling/unmarshaling a boolean.
5385
5386 2005-01-16  Havoc Pennington  <hp@redhat.com>
5387
5388         This is about it on what can be disabled/deleted from libdbus
5389         easily, back below 150K anyhow. Deeper cuts are more work than 
5390         just turning the code off as I've done here.
5391         
5392         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5393         signed int convenience funcs
5394
5395         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5396         verbose mode
5397
5398         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5399         things out of libdbus
5400
5401         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5402         
5403         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5404         tests-enabled-only, though it should probably be deleted)
5405
5406         * dbus/dbus-message-util.c: same stuff
5407
5408         * dbus/dbus-auth-util.c: same stuff
5409
5410 2005-01-16  Havoc Pennington  <hp@redhat.com>
5411
5412         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5413
5414         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5415         way for stripping down dbus-userdb.c stuff included in libdbus.
5416         Rename _dbus_parse_uid for consistency.
5417
5418 2005-01-16  Havoc Pennington  <hp@redhat.com>
5419
5420         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5421         name the assertion failed in
5422
5423         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5424         (_dbus_return_val_if_fail): assert that the name of the function
5425         containing the check doesn't start with '_', since we only want to 
5426         use checks on public functions
5427         
5428         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5429         checks to assertions
5430
5431         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5432         change checks to asserts for private function
5433
5434         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5435         to asserts for private function
5436
5437         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5438         broken assertion that was breaking make check
5439         (_dbus_type_reader_array_is_empty): remove this rather than fix
5440         it, was only used in assertions
5441
5442 2005-01-16  Havoc Pennington  <hp@redhat.com>
5443
5444         * test/unused-code-gc.py: hacky script to find code that's used
5445         only by the bus (not libdbus) or used only by tests or not used at
5446         all. It has some false alarms, but looks like we can clean up a
5447         lot of size from libdbus.
5448
5449         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5450         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5451         
5452 2005-01-16  Havoc Pennington  <hp@redhat.com>
5453
5454         * Add and fix docs according to Doxygen warnings throughout
5455         source.
5456         
5457         * dbus/dbus-marshal-recursive.c
5458         (_dbus_type_reader_array_is_empty): change this to just call
5459         array_reader_get_array_len() and make it static
5460
5461         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5462         from get_array_type
5463         (dbus_message_iter_init_append): rename from append_iter_init
5464
5465         * dbus/dbus-marshal-recursive.c
5466         (_dbus_type_reader_get_element_type): rename from
5467         _dbus_type_reader_get_array_type
5468
5469 2005-01-15  Havoc Pennington  <hp@redhat.com>
5470
5471         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5472
5473         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5474         when DBUS_DISABLE_ASSERT
5475         (_dbus_marshal_set_basic): be sure we align for the string length
5476
5477         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5478         this look faster
5479
5480         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5481         inline macro version
5482         (_dbus_string_set_byte): provide inline macro version
5483
5484 2005-01-15  Havoc Pennington  <hp@redhat.com>
5485
5486         * Land the new message args API and type system.
5487
5488         This patch is huge, but the public API change is not 
5489         really large. The set of D-BUS types has changed somewhat, 
5490         and the arg "getters" are more geared toward language bindings;
5491         they don't make a copy, etc.
5492
5493         There are also some known issues. See these emails for details
5494         on this huge patch:
5495         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5496         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5497         
5498         * dbus/dbus-marshal-*: all the new stuff
5499
5500         * dbus/dbus-message.c: basically rewritten
5501
5502         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5503         freed blocks to be all non-nul bytes so using freed memory is less
5504         likely to work right
5505
5506         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5507         DBUS_FAIL_MALLOC=N environment variable, so you can do
5508         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5509         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5510         thorough.
5511
5512         * qt/message.cpp: port to the new message args API
5513         (operator<<): use str.utf8() rather than str.unicode()
5514         (pretty sure this is right from the Qt docs?)
5515
5516         * glib/dbus-gvalue.c: port to the new message args API
5517
5518         * bus/dispatch.c, bus/driver.c: port to the new message args API
5519
5520         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5521         "locked" flag to TRUE and align_offset to 0; I guess we never
5522         looked at these anyhow, but seems cleaner.
5523
5524         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5525         move allocation padding macro to this header; use it to implement
5526         (_DBUS_STRING_STATIC): ability to declare a static string.
5527
5528         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5529         change to return TRUE if the interface is not set.
5530
5531         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5532         to dbus-marshal-validate.[hc]
5533
5534         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5535         dbus-internals.c
5536
5537         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5538         to dbus-marshal-*.[hc]
5539
5540         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5541         function here from dbus-marshal.c
5542
5543 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5544
5545         * NEWS: Update for 0.23.
5546
5547         * configure.in: Release 0.23.
5548
5549 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5550
5551         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5552         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5553         behind.
5554
5555         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5556         uninstall"
5557
5558         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5559         is an enum, get the enum's underlying type.  Another mono
5560         1.1.3 fix.
5561
5562 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5563
5564         Patch from Sjoerd Simons <sjoerd@luon.net>
5565
5566         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5567         DESTDIR.  It breaks stuff.
5568
5569 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5570
5571         Patch from Tambet Ingo <tambet@ximian.com>
5572
5573         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5574         calling type.GetElementType().  The code previously depended on
5575         broken Mono behavior, which was fixed in Mono 1.1.3.
5576
5577         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5578         Activator.CreateInstance() so that the class's constructor is
5579         called with the right parameters.
5580
5581 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5582
5583         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5584
5585         * dbus/dbus-connection.c
5586         (_dbus_connection_queue_received_message_link): Call
5587         _dbus_connection_remove_timeout() instead of the _locked()
5588         variant, since it's always called from
5589         _dbus_connection_handle_watch(), which handles the locking.
5590         Removed the _locked() variant since it's no longer used.
5591
5592 2005-01-03  Havoc Pennington  <hp@redhat.com>
5593
5594         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5595         return
5596         
5597 2004-12-26  Havoc Pennington  <hp@redhat.com>
5598
5599         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5600
5601 2005-01-03  Havoc Pennington  <hp@redhat.com>
5602
5603         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5604         floating point
5605
5606         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5607
5608 2005-01-02  Havoc Pennington  <hp@redhat.com>
5609
5610         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5611
5612 2005-01-01  Havoc Pennington  <hp@redhat.com>
5613
5614         * configure.in: add -Wfloat-equal
5615
5616 2005-01-01  Havoc Pennington  <hp@redhat.com>
5617
5618         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5619         for a variety of reasons '==' doesn't do this.
5620
5621 2004-12-31  Havoc Pennington  <hp@redhat.com>
5622
5623         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5624         I keep wishing I had
5625
5626 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5627
5628         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5629
5630 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5631
5632         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5633         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5634         dbus-protocol.h.  Because they are defines and not enums they are not
5635         autogenerated.
5636
5637 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5638
5639         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5640         dbus_bus_activate_service
5641
5642         * python/dbus.py (Bus.activate_service): activate a service on the
5643         bus.
5644
5645 2004-12-24  Havoc Pennington  <hp@redhat.com>
5646
5647         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5648         file format has also changed and I haven't adapted to that yet
5649         
5650         * Makefile.am: load .gcno files from latest gcc
5651
5652 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5653         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5654
5655         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5656         lowlevel binding
5657
5658         * python/dbus.py (get_unix_user): Added binding to 
5659         call dbus_bindings.bus_get_unix_user
5660
5661         * python/extract.py: Modified the proto_pat regex to
5662         handle unsigned long
5663
5664 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5665
5666         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5667         better POSIX compliance.
5668
5669 2004-12-19  Havoc Pennington  <hp@redhat.com>
5670
5671         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5672         (_dbus_string_insert_8_aligned): new functions
5673
5674         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5675
5676 2004-12-18  Havoc Pennington  <hp@redhat.com>
5677
5678         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5679         macro
5680
5681         * dbus/dbus-message.c: fix a comment, and add a still-unused
5682         not-implemented function
5683
5684         * dbus/dbus-marshal.h: fix comment
5685
5686         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5687
5688 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5689
5690         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5691         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5692         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5693         Type.UnderlyingSystemType to get the actual system type
5694         underneath.  This code previously depended on the broken Mono
5695         behavior, which was fixed in 1.1.3.
5696
5697 2004-11-27  Havoc Pennington  <hp@redhat.com>
5698
5699         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5700         are disabled
5701         (_dbus_string_get_const_data): inline when asserts are disabled
5702
5703         * dbus/dbus-message.c: record the _dbus_current_generation of
5704         creation so we can complain if dbus_shutdown() is used improperly.
5705         Do this only if checks are enabled.
5706
5707         * dbus/dbus-connection.c: ditto
5708         
5709 2004-11-26  Havoc Pennington  <hp@redhat.com>
5710
5711         * test/glib/test-profile.c: add with_bus mode to profile echoes
5712         that go through the bus.
5713
5714         * test/glib/run-test.sh: add ability to run test-profile
5715
5716         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5717         config file reload.
5718
5719 2004-11-26  Havoc Pennington  <hp@redhat.com>
5720
5721         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5722         thing was implemented
5723
5724 2004-11-26  Havoc Pennington  <hp@redhat.com>
5725
5726         * test/glib/test-profile.c: tweak a bit, add support for some
5727         made-up minimal malloc overhead with plain sockets, since in 
5728         real life some sort of buffers are unavoidable thus we could 
5729         count them in the theoretical best case
5730
5731 2004-11-26  Havoc Pennington  <hp@redhat.com>
5732
5733         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5734         where I was trying to cache one too many messages
5735
5736 2004-11-26  Havoc Pennington  <hp@redhat.com>
5737
5738         * dbus/dbus-message.c: reimplement message cache as an array which 
5739         makes the cache about twice as fast and saves maybe 1.5% overall
5740
5741 2004-11-26  Havoc Pennington  <hp@redhat.com>
5742
5743         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5744         message cache lock here
5745
5746 2004-11-26  Havoc Pennington  <hp@redhat.com>
5747
5748         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5749         the "char byte_order" next to each other to save 4 bytes
5750         (dbus_message_new_empty_header): reduce preallocation, since the
5751         message cache should achieve a similar effect
5752         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5753         message cache that keeps a few DBusMessage around in a pool,
5754         another 8% speedup or so.
5755
5756         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5757
5758 2004-11-25  Havoc Pennington  <hp@redhat.com>
5759
5760         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5761         to write, without reading or blocking, try it before the poll()
5762         and skip the poll() if nothing remains to write. This is about a
5763         3% speedup in the echo client/server
5764
5765 2004-11-25  Havoc Pennington  <hp@redhat.com>
5766
5767         The primary change here is to always write() once before adding
5768         the write watch, which gives us about a 10% performance increase.
5769         
5770         * dbus/dbus-transport-unix.c: a number of modifications to cope
5771         with removing messages_pending
5772         (check_write_watch): properly handle
5773         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5774         messages_pending stuff
5775         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5776         AUTHENTICATED cases
5777         (unix_handle_watch): after writing, see if the write watch can be
5778         removed
5779         (unix_do_iteration): assert that write_watch/read_watch are
5780         non-NULL rather than testing that they aren't, since they 
5781         aren't allowed to be NULL. check_write_watch() at the end so 
5782         we add the watch if we did not finish writing (e.g. got EAGAIN)
5783
5784         * dbus/dbus-transport-protected.h: remove messages_pending call,
5785         since it resulted in too much inefficient watch adding/removing; 
5786         instead we now require that the transport user does an iteration 
5787         after queueing outgoing messages, and after trying the first
5788         write() we add a write watch if we got EAGAIN or exceeded our 
5789         max bytes to write per iteration setting
5790
5791         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5792         function
5793
5794         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5795         freed and then accessed, valgrind flagged this bug, fix it
5796
5797         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5798         as the last valid field plus 1, where really it is equal to the
5799         last valid field. Corrects some message corruption issues.
5800
5801         * dbus/dbus-mainloop.c: verbosity changes
5802
5803         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5804         instead of aborting in one of the test codepaths
5805
5806         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5807         caused not printing the pid ever again if a verbose was missing
5808         the newline at the end
5809         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5810
5811         * dbus/dbus-connection.c: verbosity changes; 
5812         (dbus_connection_has_messages_to_send): new function
5813         (_dbus_connection_message_sent): no longer call transport->messages_pending
5814         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5815         try to write() immediately, so we can avoid the write watch. This
5816         is the core purpose of this patchset
5817         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5818         dump the outgoing message queue, so nobody will get confused
5819         trying to send them or thinking stuff is pending to be sent
5820
5821         * bus/test.c: verbosity changes
5822
5823         * bus/driver.c: verbosity/assertion changes
5824
5825         * bus/dispatch.c: a bunch of little tweaks to get it working again
5826         because this patchset changes when/where you need to block.
5827
5828 2004-11-23  Havoc Pennington  <hp@redhat.com>
5829
5830         * test/glib/test-profile.c: modify to accept a plain_sockets
5831         argument in which case it will bench plain sockets instead of
5832         libdbus, for comparison purposes.
5833
5834 2004-11-22  Havoc Pennington  <hp@redhat.com>
5835
5836         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5837         threads for more time, so sysprof can get a grip on it.
5838
5839         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5840         pointless variable
5841
5842 2004-11-13  Havoc Pennington  <hp@redhat.com>
5843
5844         * test/glib/test-profile.c: fix this thing up a bit
5845
5846         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5847         preallocation sizes by a fair bit; not sure if this will be an
5848         overall performance win or not, but it does reduce reallocs.
5849
5850         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5851         the test hack that forced constant realloc if asserts are
5852         disabled, so we can profile sanely. Sprinkle in some
5853         _DBUS_UNLIKELY() which are probably pointless, but before I
5854         noticed the real performance problem I put them in.
5855         (_dbus_string_validate_utf8): micro-optimize this thing a little
5856         bit, though callgrind says it didn't help; then special-case
5857         ascii, which did help a lot; then be sure we detect nul bytes as
5858         invalid, which is a bugfix.
5859         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5860         superstition; use memset to nul the padding instead of a manual
5861         loop.
5862         (_dbus_string_get_length): inline this as a
5863         macro; it showed up in the profile because it's used for loop
5864         tests and so forth
5865
5866 2004-11-10  Colin Walters  <walters@verbum.org>
5867
5868         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5869         for extra paranoia.
5870
5871 2004-11-09  Colin Walters  <walters@verbum.org>
5872
5873         * dbus/dbus-string.c (_dbus_string_get_length): New
5874         function, writes DBusString to C buffer.
5875
5876         * dbus/dbus-string.h: Prototype it.
5877
5878         * dbus/dbus-message.c (dbus_message_type_to_string): New
5879         function, converts message type into C string.
5880
5881         * dbus/dbus-message.h: Prototype it.
5882
5883         * bus/selinux.c (bus_selinux_check): Take source pid,
5884         target pid, and audit data.  Pass audit data to
5885         avc_has_perm.
5886         (log_audit_callback): New function, appends extra
5887         audit information.
5888         (bus_selinux_allows_acquire_service): Also take
5889         service name, add it to audit data.
5890         (bus_selinux_allows_send): Also take message
5891         type, interface, method member, error name,
5892         and destination, and add them to audit data.
5893         (log_cb): Initialize func_audit.
5894         
5895         * bus/selinux.h (bus_selinux_allows_acquire_service)
5896         (bus_selinux_allows_send): Update prototypes 
5897
5898         * bus/services.c (bus_registry_acquire_service): Pass
5899         service name to bus_selinux_allows_acquire_service.
5900
5901         * bus/bus.c (bus_context_check_security_policy): Pass
5902         additional audit data.  Move assignment of dest
5903         to its own line.
5904
5905 2004-11-07  Colin Walters  <walters@verbum.org>
5906
5907         * dbus/dbus-transport-unix.c (do_authentication): Always
5908         initialize auth_completed.
5909         
5910 2004-11-07  Colin Walters  <walters@verbum.org>
5911
5912         * bus/bus.c (load_config): Break into three
5913         separate functions: process_config_first_time_only,
5914         process_config_every_time, and process_config_postinit.
5915         (process_config_every_time): Move call of
5916         bus_registry_set_service_context_table into
5917         process_config_postinit.
5918         (process_config_postinit): New function, does
5919         any processing that needs to happen late
5920         in initialization (and also on reload).
5921         (bus_context_new): Instead of calling load_config,
5922         open config parser here and call process_config_first_time_only
5923         and process_config_every_time directly.  Later, after
5924         we have forked but before changing UID,
5925         invoke bus_selinux_full_init, and then call
5926         process_config_postinit.
5927         (bus_context_reload_config): As in bus_context_new,
5928         load parse file inside here, and call process_config_every_time
5929         and process_config_postinit.
5930
5931         * bus/services.h, bus/services.c
5932         (bus_registry_set_service_context_table): Rename
5933         from bus_registry_set_sid_table.  Take string hash from config
5934         parser, and convert them here into SIDs.
5935
5936         * bus/config-parser.c (struct BusConfigParser): Have
5937         config parser only store a mapping of service->context
5938         string.
5939         (merge_service_context_hash): New function.
5940         (merge_included): Merge context string hashes instead
5941         of using bus_selinux_id_table_union.
5942         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5943         simply create a new string hash.
5944         (bus_config_parser_unref): Unref it.
5945         (start_selinux_child): Simply insert strings into hash,
5946         don't call bus_selinux_id_table_copy_over.
5947
5948         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5949         (bus_selinux_id_table_copy_over): Delete.
5950
5951 2004-11-03  Colin Walters  <walters@verbum.org>
5952
5953         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5954         variables.
5955         
5956 2004-11-03  Colin Walters  <walters@verbum.org>
5957
5958         * bus/test-main.c (test_pre_hook): Fix test logic,
5959         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5960
5961 2004-11-02  Colin Walters  <walters@redhat.com>
5962
5963         * bus/selinux.c (bus_selinux_init): Split into two functions,
5964         bus_selinux_pre_init and bus_selinux_post_init.
5965         (bus_selinux_pre_init): Just determine whether SELinux is
5966         enabled.
5967         (bus_selinux_post_init): Do everything else.
5968
5969         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5970         config file, and bus_selinux_post_init after.  This ensures that
5971         we don't lose the policyreload notification thread that
5972         bus_selinux_init created before forking previously.
5973         
5974         * bus/test-main.c (test_pre_hook): Update for split.
5975
5976 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5977
5978         Patch from Johan Fischer <linux@fischaz.com>
5979         
5980         * mono/doc/Makefile.am (install-data-local): Added directory
5981         install for DESTDIR
5982
5983 2004-10-29  Colin Walters  <walters@redhat.com>
5984
5985         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5986         parameter for fd to write pid to.       
5987
5988         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5989         
5990         * bus/bus.c (bus_context_new): Pass print_pid_fd
5991         to _dbus_become_daemon (bug #1720)
5992
5993 2004-10-29  Colin Walters  <walters@redhat.com>
5994
5995         Patch from Ed Catmur <ed@catmur.co.uk>
5996
5997         * mono/doc/Makefile.am (install-data-local): Handle
5998         DESTDIR.
5999
6000 2004-10-29  Colin Walters  <walters@redhat.com>
6001
6002         * bus/.cvsignore, qt/.cvsignore: Update.
6003
6004 2004-10-29  Colin Walters  <walters@redhat.com>
6005
6006         Patch from Kristof Vansant <de_lupus@pandora.be>
6007
6008         * configure.in: Detect Slackware.
6009         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6010         * bus/rc.messagebus.in: New file.
6011
6012 2004-10-29  Colin Walters  <walters@redhat.com>
6013
6014         * tools/dbus-monitor.c (filter_func): Return
6015         DBUS_HANDLER_RESULT_HANDLED in filter function
6016         for now.  See:
6017         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6018
6019 2004-10-29  Colin Walters  <walters@redhat.com>
6020
6021         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6022
6023         * bus/services.c (bus_registry_acquire_service): 
6024         Correctly retrieve service name from DBusString
6025         for printing.
6026
6027 2004-10-29  Colin Walters  <walters@redhat.com>
6028
6029         * dbus/dbus-glib.h: Update documentation to not
6030         refer to internal APIs.
6031
6032 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6033
6034         * mono/Arguments.cs (GetDBusTypeConstructor):
6035         type.UnderlyingSystemType will return "System.Byte" if you do it
6036         on "byte[]", which is not what we want.  So check the type.IsArray
6037         property and use System.Array instead.
6038
6039 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6040
6041         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6042         the DBusUserInfo structure since this is passed into the function.
6043         This would cause a double free when the function that allocated
6044         the structure would try to free it when an error occured.
6045
6046         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6047         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6048         for service activation to avoid 32bit/64bit parallel install issues
6049
6050 2004-10-21  Colin Walters  <walters@verbum.org>
6051
6052         * AUTHORS: Fix my email address, the @gnu.org one
6053         has been bouncing for some time.  Also add J5.
6054         
6055 2004-10-21  Colin Walters  <walters@verbum.org>
6056
6057         * dbus/dbus-transport-unix.c (do_authentication): Return
6058         authentication status to callers.
6059         (unix_handle_watch): If we completed authentication this round,
6060         don't do another read.  Instead wait until the next iteration,
6061         after we've read any pending data in the auth buffer.
6062         (unix_do_iteration): Ditto.
6063         (unix_handle_watch): Updated for new do_authentication prototype.
6064
6065 2004-10-18  Colin Walters  <walters@verbum.org>
6066
6067         * bus/selinux.c (bus_selinux_enabled): Handle
6068         --disable-selinux case.
6069         
6070 2004-10-18  Colin Walters  <walters@verbum.org>
6071
6072         * bus/selinux.h: Add bus_selinux_enabled.
6073         
6074         * bus/selinux.c (bus_selinux_enabled): Implement it.
6075         
6076         * bus/config-parser.c (struct include): Add
6077         if_selinux_enabled member.
6078         (start_busconfig_child): Parse if_selinux_enabled
6079         attribute for include.
6080         (bus_config_parser_content): Handle it.
6081
6082         * bus/session.conf.in, bus/system.conf.in: Add
6083         inclusion of context mapping to default config files;
6084         conditional on SELinux being enabled.
6085         
6086         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6087         
6088         * test/data/invalid-config-files/badselinux-1.conf, 
6089         test/data/invalid-config-files/badselinux-2.conf:
6090         Test files for bad syntax.
6091         
6092 2004-10-17  Colin Walters  <walters@verbum.org>
6093
6094         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6095         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6096         format specifier mismatches.
6097
6098 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6099
6100         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6101         format string.
6102
6103         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6104         pointer (bug #1540, Leonardo Boiko).
6105
6106 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6107
6108         * mono/BusDriver.cs: Changed BusDriver struct to remove
6109         the ServiceCreated and ServiceDeleted events and replace them
6110         with the new ServiceOwnerChanged event.
6111
6112         * mono/example/BusListener.cs: Added a new example program,
6113         which listens for and reports any ServiceOwnerChanged events
6114         on the bus driver.
6115
6116         * mono/example/Makefile.am (DESTDIR): Build changes for the
6117         new BusListener.cs example.
6118
6119 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6120
6121         * bus/signals.c (bus_match_rule_parse): validate the components of
6122         match rules (bug #1439).
6123
6124         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6125
6126 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6127
6128         * doc/dbus-specification.xml: document ServiceOwnerChanged
6129         signal.
6130         
6131         * bus/driver.c, bus/driver.h, bus/services.c: Use
6132         ServiceOwnerChanged signal instead of ServiceCreated and
6133         ServiceDeleted.
6134         
6135         * bus/dispatch.c: update testcase for the new signal.
6136
6137 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6138
6139         Patch from Nat Friedman <nat@novell.com>
6140
6141         * mono/Makefile.am: A number of small build fixes to allow "make
6142         distcheck" to succeed.
6143
6144         * mono/example/Makefile.am: "make distcheck" fixes.
6145
6146         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6147         key in @srcdir@.
6148
6149         * test/Makefile.am: "make distcheck" fixes.
6150
6151 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6152
6153         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6154
6155         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6156
6157         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6158         messages after the first one (bug #1389).
6159         
6160         * bus/dispatch.c (check_double_hello_message): add a test case for
6161         the double hello message bug.
6162         (check_existent_service_activation): fix check of spawning error.
6163         
6164 2004-09-16  David Zeuthen  <david@fubar.dk>
6165
6166         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6167
6168 2004-09-12  David Zeuthen  <david@fubar.dk>
6169
6170         Patch from Kay Sievers <kay.sievers@vrfy.org>
6171
6172         * bus/bus.c (bus_context_new):
6173         * bus/bus.h:
6174         * bus/main.c (usage)
6175         (main):
6176         Add commandline option --nofork to override configuration file
6177         setting.
6178
6179 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6180
6181         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6182         compilers don't like it (bug #974).
6183
6184 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6185
6186         * qt/connection.*: Applied patch by Jérôme Lodewyck
6187         <lodewyck@clipper.ens.fr> to integrate an existing
6188         connection into the Qt eventloop
6189
6190 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6191
6192         * mono/BusDriver.cs: Added.  This is a class for interacting with
6193         the org.freedesktop.DBus service.
6194
6195         * mono/Message.cs: Added a mechanism to expose the message that is
6196         currently being dispatched via the static Message.Current
6197         property.  Added Message.Sender and Message.Destination
6198         properties.
6199
6200         * mono/Handler.cs: Expose the dispatched message via
6201         Message.Current when handling method calls.
6202
6203         * mono/Service.cs: Expose the dispatched message via
6204         Message.Current when handling signal emissions.
6205         
6206         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6207         Connection.BaseService property.
6208
6209 2004-08-28  Havoc Pennington  <hp@redhat.com>
6210
6211         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6212
6213         More fixes from Steve Grubb
6214         
6215         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6216         (_dbus_listen_tcp_socket): fix fd leak
6217
6218         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6219         EINTR to a bit lower in the code
6220
6221 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6222
6223         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6224         TRUE if we are inquiring about the existence of the built-in
6225         org.freedesktop.DBus service.
6226
6227 2004-08-25  John Palmieri  <johnp@redhat.com>
6228         * bus/config-parser.c:
6229         (struct PolicyType): Add POLICY_CONSOLE
6230         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6231         (start_busconfig_child): Sets up console element when
6232         <policy at_console=""> is encountered in a policy file
6233         (append_rule_from_element): Convert console elements to console
6234         rules.
6235
6236         * bus/policy.c: 
6237         (bus_policy_create_client_policy): Add console rules to the client
6238         policy based on if the client is at the console
6239         (bus_policy_append_console_rule): New function for adding a
6240         console rule to a policy
6241         (bus_policy_merge): Handle console rule merging
6242
6243         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6244         where we check for console user files
6245         
6246         * dbus/dbus-sysdeps.c:
6247         (_dbus_file_exists): New function which checks if the given
6248         file exists
6249         (_dbus_user_at_console): New function which does the system
6250         specific process of checking if the user is at the console
6251
6252         * dbus/dbus-userdb.c:
6253         (_dbus_is_console_user): New function converts a UID to user name
6254         and then calls the system specific _dbus_user_at_console to 
6255         see if the user is at the console and therefor a console user
6256
6257 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6258
6259         * bus/config-parser.c (set_limit):
6260         * bus/dbus-daemon-1.1.in:
6261         * test/data/valid-config-files/many-rules.conf: set the
6262         max_match_rules_per_connection limt from the config file. 
6263
6264         * doc/busconfig.dtd: update the DTD.
6265
6266         * bus/driver.c: remove some unused variables.
6267
6268 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6269
6270         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6271         it's been replaced by dbus_g_bus_get
6272
6273 2004-08-23  Colin Walters  <walters@redhat.com>
6274
6275         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6276
6277         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6278
6279         * bus/selinux.c: Create a thread for policy reload notification.
6280         (bus_selinux_get_policy_root): Implement.
6281
6282         * bus/config-parser.c (start_busconfig_child)
6283         (bus_config_parser_content): Support SELinux-root relative
6284         inclusion.
6285
6286         * configure.in <HAVE_SELINUX>: Add -lpthread.
6287         
6288         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6289         (test_post_hook): Move memory checking into here.
6290         (test_pre_hook, test_post_hook): Move SELinux checks in
6291         here, but conditional on a DBUS_TEST_SELINUX environment
6292         variable.  Unfortunately we can't run the SELinux checks
6293         as a normal user, since they won't have any permissions
6294         for /selinux.  So this will have to be tested manually
6295         for now, until we have virtualization for most of
6296         libselinux.
6297         
6298 2004-08-23  Havoc Pennington  <hp@redhat.com>
6299
6300         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6301         drop supplementary groups, suggested by Steve Grubb
6302
6303 2004-08-20  Colin Walters  <walters@redhat.com>
6304
6305         * bus/config-parser.c (start_busconfig_child): Remove some unused
6306         variables.
6307         
6308         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6309         warning.
6310
6311 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6312
6313         * configure.in: If --enable-mono is passed in, if we can't find
6314         mono error out.
6315
6316         * mono/Makefile.am: Use /gacutil to install assemblies into the
6317         GAC and not /root.
6318
6319 2004-08-12  Havoc Pennington  <hp@redhat.com>
6320
6321         * NEWS: update for 0.22
6322
6323         * configure.in: release 0.22
6324
6325 2004-08-11  Colin Walters  <walters@redhat.com>
6326
6327         * tools/dbus-send.c (main, usage): Add --reply-timeout
6328         argument.
6329
6330 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6331
6332         * bus/bus.c (process_config_first_time_only): get rid of an unused
6333         DBusError that was causing a memoy leak (bug #989).
6334
6335         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6336         fix compilation on Solaris/Forte C (bug #974)
6337
6338         * bus/main.c (main): plug two minuscule memleaks.
6339
6340 2004-08-10  Havoc Pennington  <hp@redhat.com>
6341
6342         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6343
6344 2004-08-09  Havoc Pennington  <hp@redhat.com>
6345
6346         * COPYING: switch to Academic Free License version 2.1 instead of
6347         2.0, to resolve complaints about patent termination clause.
6348
6349 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6350
6351         * README: added documentation for the --enable-python 
6352         configure switch.
6353
6354 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6355
6356         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6357         _unref in the SELinux support.
6358
6359         * doc/busconfig.dtd: update DTD for SELinux support.
6360
6361         * bus/config-loader-libxml.c: fix error handler and parser
6362         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6363
6364         * configure.in: remove the warning about libxml2.
6365
6366         * dbus/dbus-bus.c: silence doxygen warning.
6367
6368 2004-07-31  Colin Walters  <walters@redhat.com>
6369
6370         * configure.in: Move #error in SELinux check to its own line.
6371
6372 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6373
6374         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6375         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6376         dbus_error_set.
6377
6378         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6379         broken by the change in the _SET_OOM macros.
6380
6381 2004-07-31  Colin Walters  <walters@redhat.com>
6382
6383         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6384         BUS_SET_OOM.
6385
6386 2004-07-31  Colin Walters  <walters@redhat.com>
6387
6388         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6389         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6390         AC_MSG_CHECKING.
6391
6392 2004-07-24  Havoc Pennington  <hp@redhat.com>
6393
6394         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6395
6396         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6397         functionality
6398
6399         * configure.in: add --enable-selinux
6400         
6401         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6402
6403         * bus/main.c (main): initialize and shut down selinux
6404
6405         * bus/connection.c: store SELinux ID on each connection, to avoid 
6406         repeated getting of the string context and converting it into 
6407         an ID
6408
6409         * bus/bus.c (bus_context_get_policy): new accessor, though it
6410         isn't used
6411         (bus_context_check_security_policy): check whether the security
6412         context of sender connection can send to the security context of
6413         recipient connection
6414
6415         * bus/config-parser.c: add parsing for <selinux> and <associate>
6416         
6417         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6418         implement dbus_connection_get_unix_fd()
6419
6420         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6421         function, used by the selinux stuff
6422         
6423 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6424
6425         * bus/config-loader-libxml.c: complete the implementation of
6426         libxml backend for config file loader. Doesn't work with full OOM
6427         test yet. 
6428         
6429         * configure.in: change error when selecting libxml into a warning.
6430         
6431         * test/data/invalid-config-files: add two non-well-formed XML
6432         files. 
6433         
6434         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6435         
6436         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6437         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6438         be necessary to read all the buffer. (bug #894)
6439
6440         * bus/activation.c (bus_activation_activate_service): fix a
6441         potential assertion failure (bug #896). Small optimization in the
6442         case of auto-activation messages.
6443
6444         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6445         add test case for byte-through-vararg bug (#901). patch by Kimmo
6446         Hämäläinen. 
6447
6448 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6449
6450         * python/dbus.py:
6451         * python/dbus_bindings.pyx.in:
6452         Add dbus.init_gthreads (), allow emit_signal to pass
6453         arguments to the signal.
6454         
6455 2004-07-24  Havoc Pennington  <hp@redhat.com>
6456
6457         * AUTHORS: add some people, not really comprehensively, let me
6458         know if I missed you
6459
6460 2004-07-24  Havoc Pennington  <hp@redhat.com>
6461
6462         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6463         Owen
6464
6465         * test/Makefile.am (DIST_SUBDIRS): here also
6466
6467 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6468
6469         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6470         breaking build on Solaris, reported by Farhad Saberi on the ML.
6471
6472         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6473         va_arg invocation to account for integer promotion in the case of
6474         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6475
6476         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6477         _dbus_list_get_first_link, not _dbus_list_get_first.
6478
6479         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6480
6481         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6482         handler functions so that the asserts in _dbus_object_subtree_unref
6483         do not fail.
6484
6485         * dbus/dbus-transport-unix.c (do_reading):
6486         _dbus_transport_queue_messages return value is of type
6487         dbus_bool_t, not DBusDispatchStatus.
6488         
6489 2004-07-19  David Zeuthen  <david@fubar.dk>
6490
6491         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6492
6493         * bus/dispatch.c:
6494         (check_get_connection_unix_user): Debug says GetProperty; but the
6495         method is called GetConnectionUnixUser
6496         (check_get_connection_unix_process_id): New function
6497         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6498         also call check_get_connection_unix_process_id()
6499         
6500         * bus/driver.c:
6501         (bus_driver_handle_get_connection_unix_process_id): New function,
6502         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6503         interface
6504         
6505         * dbus/dbus-auth.c:
6506         (handle_server_data_external_mech): Set pid from the credentials
6507         obtained from the socket
6508         
6509         * dbus/dbus-connection.c:
6510         (dbus_connection_get_unix_process_id): New function
6511         
6512         * dbus/dbus-connection.h: 
6513         Add prototype for dbus_connection_get_unix_process_id
6514         
6515         * dbus/dbus-transport.c:
6516         (_dbus_transport_get_unix_process_id): New function
6517         
6518         * dbus/dbus-transport.h:
6519         Add prototype for _dbus_transport_get_unix_process_id
6520         
6521 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6522
6523         * dbus/dbus-message.c: Message counter fix, patch by Christian
6524         Hammond <chipx86@gnupdate.org>
6525
6526 2004-07-18  Seth Nickell  <seth@gnome.org>
6527
6528         * python/dbus.py:
6529         * python/dbus_bindings.pyx.in:
6530         * python/tests/test-client.py:
6531
6532         Add dbus.ByteArray and dbus_bindings.ByteArray
6533         types so that byte streams can be passed back.
6534
6535         Give jdahlin the heaps of credit that are so
6536         rightfully his.
6537         
6538 2004-07-12  Seth Nickell  <seth@gnome.org>
6539
6540         * python/dbus.py:
6541
6542         Add message argument to the default object_method_handler
6543         function.
6544         
6545         * python/dbus_bindings.pyx.in:
6546
6547         Automatically return NIL when passed an empty list
6548         (we can't pass back a list since lists are typed
6549         and we don't have any idea what type the the client
6550         intended the list to be... :-( )
6551         
6552 2004-07-10  Seth Nickell  <seth@gnome.org>
6553
6554         * python/examples/Makefile.am:
6555
6556         Fix distcheck breakage caused by new examples.
6557
6558 2004-07-10  Seth Nickell  <seth@gnome.org>
6559
6560         * python/dbus.py:
6561
6562         Add "message" argument to service-side dbus.Object
6563         methods. This will break existing services written
6564         using the python bindings, but will allow extraction
6565         of all the message information (e.g. who its from).
6566
6567         Add improved "object oriented" signal handling/emission.
6568         
6569         * python/examples/example-service.py:
6570
6571         Nix this example.
6572         
6573         * python/examples/example-signal-emitter.py:
6574         * python/examples/example-signal-recipient.py:
6575
6576         Two new examples that show how to emit and receive
6577         signals using the new APIs.
6578         
6579         * python/examples/example-signals.py:
6580         * python/examples/gconf-proxy-service.py:
6581         * python/examples/gconf-proxy-service2.py:
6582
6583         Add "message" argument to service methods.
6584
6585 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6586
6587         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6588         * dbus/bus.c (dbus_bus_get_unix_user)
6589         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6590         method of org.freedesktop.DBus interface.
6591
6592         * bus/dispatch.c: test case
6593
6594 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6595
6596         * python/Makefile.am: switched include directory from glib/ to dbus/
6597         since dbus-glib.h moved
6598  
6599 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6600
6601         * configure.in: prevent building the gcj stuff and libxml loader
6602         since they are broken.
6603
6604 2004-06-20  Havoc Pennington  <hp@redhat.com>
6605
6606         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6607         codes from the dbus error names
6608         
6609         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6610         as dbus/dbus-glib.h and that breakage is now visible due to 
6611         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6612         
6613         * glib/dbus-glib.h: s/gproxy/g_proxy/
6614
6615         * dbus/dbus-shared.h: new header to hold stuff shared with
6616         binding APIs
6617         
6618         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6619         than dbus-errors.h
6620
6621         * glib/dbus-glib.h (dbus_set_g_error): move to
6622         dbus-glib-lowlevel.h
6623
6624         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6625         of stuff to enable this
6626
6627         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6628
6629         * a bunch of other changes with the same basic "separate glib 
6630         bindings from dbus.h" theme
6631         
6632 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6633
6634         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6635
6636         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6637
6638 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6639
6640         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6641         the reply value of the ServiceExists message.
6642
6643 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6644
6645         * python/dbus_bindings.pyx.in: No longer need to parse path
6646         elements and pass them as arrays of strings.  The C API now
6647         accepts plain path strings.
6648         (_build_parsed_path): removed 
6649
6650 2004-06-07  Havoc Pennington  <hp@redhat.com>
6651
6652         * doc/TODO: remove auto-activation item since it's done; sort
6653         items by importance/milestone
6654
6655 2004-06-07  Havoc Pennington  <hp@redhat.com>
6656
6657         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6658         random signature when using REQUIRED_FIELDS (this hack won't work
6659         in the long term)
6660
6661         * dbus/dbus-message.c: change the signature to be a header field,
6662         instead of message->signature special-case string. Incremental
6663         step forward. Then we can fix up code to send the signature in the
6664         message, then fix up code to validate said signature, then fix up
6665         code to not put the typecodes inline, etc.
6666         (load_one_message): don't make up the signature after the fact
6667         (decode_header_data): require signature field for the known
6668         message types
6669
6670         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6671
6672         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6673
6674 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6675
6676         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6677
6678         * mono/Handler.cs: Updated to follow new path argument for
6679         (un-)registering objects.
6680
6681         * mono/example/Makefile.am:
6682         * mono/Makefile.am:
6683         * configure.in: Bumped required version for mono and use new -pkg
6684         syntax for deps
6685
6686 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6687
6688         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6689         registration functions take the path argument as char* instead of
6690         char**.
6691
6692         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6693         split off the path decompostion part of
6694         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6695         warnings. 
6696
6697         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6698         
6699 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6700  
6701         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6702         machine approach.  A state is implemented as a function that
6703         handles incoming events as specified for that state.
6704         
6705         * doc/dbus-specification.xml: Update auth protocol state machine
6706         specification to match implementation.  Remove some leftover
6707         base64 examples.
6708
6709 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6710
6711         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6712         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6713         quiet doxygen.
6714
6715         * Doxyfile.in: remove deprecated options.
6716
6717         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6718         glib/test-thread.h, glib/test-thread-client.c,
6719         glib/test-thread-server.c, glib/test-profile.c,
6720         glib/test-dbus-glib.c: remove these unused files.
6721
6722 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6723
6724         * dbus/dbus-object-tree.c
6725         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6726         non-fallback handlers (bug #684).
6727         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6728         (find_subtree_recurse): report wether the returned subtree is an
6729         exact match or a "fallback" match higher up in the tree.
6730         (object_tree_test_iteration): update test case.
6731
6732 2004-06-01  Seth Nickell  <seth@gnome.org>
6733
6734         * python/dbus_bindings.pyx.in:
6735         * python/tests/test-client.py:
6736
6737         Round off basic type support. Add dicts (yay!), and 
6738         remaining array types.
6739
6740         Make MessageIter more general so it works for dicts too.
6741
6742         Mark all loop variables as C integers.
6743         
6744 2004-05-31  Havoc Pennington  <hp@redhat.com>
6745
6746         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6747         "in" before "out"
6748
6749         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6750
6751         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6752         option that runs the tests, and start filling in some code
6753         including for starters just dumping the interfaces to stdout
6754
6755         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6756
6757         * test/data/valid-introspection-files/lots-of-types.xml: test of
6758         an example introspection file
6759
6760         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6761         "node" (I think...)
6762
6763 2004-05-31  Seth Nickell  <seth@gnome.org>
6764
6765         * python/dbus_bindings.pyx.in:
6766         * python/tests/test-client.py:
6767
6768         Test Suite: 1
6769         Python Bindings: 0
6770
6771         Fix string array memory trashing bug... oops...
6772
6773 2004-05-30  Seth Nickell  <seth@gnome.org>
6774
6775         * python/dbus.py:
6776
6777         Add a nicer-but-less-flexible alternate API for handling 
6778         calls to virtual objects in dbus.ObjectTree.
6779
6780         Screw up the argument order to the dbus.Object constructor
6781         for consistency with dbus.ObjectTree (and to make dbus_methods
6782         optional for future extension)
6783         
6784         * python/examples/Makefile.am:
6785         * python/examples/gconf-proxy-service.py:
6786         * python/examples/gconf-proxy-service2.py:
6787
6788         Alternate implementation of gconf-proxy-service using the
6789         nicer dbus.ObjectTree API.
6790         
6791         * python/examples/example-service.py:
6792         * python/tests/test-server.py
6793
6794         Reverse the argument order to deal with dbus.Object constructor
6795         changes.
6796         
6797 2004-05-30  Seth Nickell  <seth@gnome.org>
6798
6799         * python/examples/example-client.py:
6800         * python/examples/example-service.py:
6801
6802         Take it back. Lists seem to work but they're broken
6803         in the test suite. Make the base examples use
6804         lists (works fine).
6805
6806 2004-05-30  Seth Nickell  <seth@gnome.org>
6807
6808         * python/dbus_bindings.pyx.in:
6809         * python/tests/test-client.py:
6810
6811         Add some more tests and fix errors that crop up.
6812         Unfortunately, currently it seems like marshalling
6813         and unmarshalling of lists is completely broken :-(
6814
6815 2004-05-30  Seth Nickell  <seth@gnome.org>
6816
6817         * python/dbus_bindings.pyx.in:
6818
6819         Add support for ObjectPath type.
6820
6821         * python/dbus.py:
6822
6823         Refactor message handling code to a common function.
6824         
6825         * python/tests/test-client.py:
6826         * python/tests/test-server.py:
6827
6828         Add tests that check to make sure values of all types
6829         can be echoed from a service w/o mangling.
6830         
6831 2004-05-29  Seth Nickell  <seth@gnome.org>
6832
6833         * python/dbus.py:
6834
6835         Add ObjectTree class which allows implementation
6836         of trees of "virtual" objects. Basically the python
6837         wrapper for "register_fallback".
6838         
6839         * python/examples/Makefile.am
6840         * python/examples/gconf-proxy-client.py:
6841         * python/examples/gconf-proxy-service.py:
6842
6843         Implement a simple GConf proxy service that supports
6844         get/set on string and int GConf keys using the ObjectTree.
6845         
6846 2004-05-29  Seth Nickell  <seth@gnome.org>
6847
6848         * python/dbus.py:
6849         * python/examples/example-client.py:
6850         * python/examples/example-service.py:
6851         * python/examples/list-system-services.py:
6852
6853         Add SessionBus, SystemBus and ActivationBus classes
6854         so you don't need to know the special little BUS_TYPE
6855         flag.
6856         
6857 2004-05-29  Havoc Pennington  <hp@redhat.com>
6858
6859         * bus/config-parser.c (process_test_valid_subdir): temporarily
6860         stop testing config parser OOM handling, since expat has issues
6861         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6862
6863         * bus/dbus-daemon-1.1.in: change requested_reply to
6864         send_requested_reply/receive_requested_reply so we can send the
6865         replies, not just receive them.
6866
6867         * bus/config-parser.c: parse the new
6868         send_requested_reply/receive_requested_reply
6869
6870         * bus/policy.c (bus_client_policy_check_can_send): add
6871         requested_reply argument and use it
6872
6873         * bus/bus.c (bus_context_check_security_policy): pass through
6874         requested_reply status to message send check
6875
6876         * bus/system.conf.in: adapt to requested_reply change
6877         
6878 2004-05-28  Havoc Pennington  <hp@redhat.com>
6879
6880         * test/glib/test-service-glib.c (main): remove unused variable
6881
6882         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6883
6884         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6885         from the enum, no longer in use.
6886
6887         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6888         works right.
6889
6890         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6891         whether error_name passed in is a valid error name.
6892
6893 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6894
6895         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6896         OBJECT_PATH and OBJECT_PATH_ARRAY
6897
6898 2004-05-28  Seth Nickell  <seth@gnome.org>
6899
6900         * python/examples/Makefile.am:
6901
6902         Forget to add Makefile.am. Do not pass go.
6903
6904 2004-05-28  Michael Meeks  <michael@ximian.com>
6905
6906         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6907         fix no int64 case.
6908
6909         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6910
6911         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6912         (_dbus_message_iter_get_basic_type_array): impl.
6913         drastically simplify ~all relevant _get methods to use these.
6914         (_dbus_message_iter_append_basic_array),
6915         (dbus_message_iter_append_basic): impl
6916         drastically simplify ~all relevant _append methods to use these.
6917
6918         * dbus/dbus-message-builder.c (parse_basic_type) 
6919         (parse_basic_array, lookup_basic_type): impl.
6920         (_dbus_message_data_load): prune scads of duplicate /
6921         cut & paste coding.
6922
6923         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6924         (_dbus_demarshal_basic_type): implement,
6925         (demarshal_and_validate_len/arg): beef up debug.
6926         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6927
6928 2004-05-27  Seth Nickell  <seth@gnome.org>
6929
6930         * configure.in:
6931         * python/Makefile.am:
6932
6933         Include the example python apps in the tarball.
6934         
6935         * python/examples/list-system-services.py
6936
6937         Add a python new example that fetches the list of services
6938         from the system bus.
6939         
6940 2004-05-27  Seth Nickell  <seth@gnome.org>
6941
6942         * python/dbus.py:
6943         * python/dbus_bindings.pyx.in:
6944
6945         Fix failure to notify that a signal was not handled,
6946         resulted in hung functions.
6947         
6948 2004-05-25  Colin Walters  <walters@redhat.com>
6949
6950         * tools/dbus-monitor.c (main): Monitor all types of messages.
6951
6952 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6953
6954         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6955         which unregisters the object path and disposes the handler.
6956
6957 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6958  
6959         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6960          
6961         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6962         operands to && so we call dbus_message_iter_next () for the last
6963         argument also.
6964
6965 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6966
6967         * dbus/dbus-object-tree.c
6968         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6969         children even if the requested path isn't registered.
6970         (object_tree_test_iteration): test object_tree_list_registered.
6971
6972         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6973         it to 0.
6974         
6975 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6976
6977         * doc/TODO: Remove resolved items.
6978
6979         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6980         field.
6981         
6982         * bus/connection.c (bus_connections_expect_reply): Enforce the
6983         per-connection limit on pending replies.
6984         
6985         Patch from Jon Trowbridge <trow@ximian.com>:
6986  
6987         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6988         up a watch that triggers a config reload when one end of the pipe
6989         becomes readable.
6990         (signal_handler): Instead of doing the config reload in our SIGHUP
6991         handler, just write to the reload pipe and let the associated
6992         watch handle the reload when control returns to the main loop.
6993  
6994         * bus/driver.c (bus_driver_handle_reload_config): Added.
6995         Implements a ReloadConfig method for requesting a configuration
6996         file reload via the bus driver.
6997  
6998 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6999
7000         * HACKING: Updated release instructions concerning the wiki page.
7001
7002 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7003
7004         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7005         filter against auth->allowed_mechs; we only add allowed mechs in
7006         record_mechanisms().
7007  
7008         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7009         ALLOWED_MECHS to auth-script format so we can set the list of
7010         allowed mechanisms.
7011  
7012         * data/auth/client-out-of-mechanisms.auth-script: New test to
7013         check client disconnects when it is out of mechanisms to try.
7014  
7015         * dbus/dbus-auth.c (process_command): Remove check for lines
7016         longer that 1 MB; we only buffer up maximum 16 kB.
7017  
7018         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7019         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7020         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7021         assume there might be unused bytes.
7022  
7023         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7024         client-out-of-mechs, it is handled in process_reject(). Move check
7025         for max failures to send_rejected(), as it's a server-only thing.
7026
7027         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7028         send_auth(), send_data(), send_rejected(), send_error(),
7029         send_ok(), send_begin() and send_cancel().
7030
7031 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7032
7033         Remove base64 encoding, replace with hex encoding. Original patch
7034         from trow@ximian.com, added error handling.
7035
7036         * dbus/dbus-string.c (_dbus_string_base64_encode)
7037         (_dbus_string_base64_decode): Remove.
7038         (_dbus_string_hex_decode): Add end_return argument so we can
7039         distinguish between OOM and invalid hex encoding.
7040         (_dbus_string_test): Remove base64 tests and add test case for
7041         invalid hex.
7042
7043         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7044         Replace base64 with hex.
7045
7046         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7047         for invalid hex encoded data in auth protocol.
7048
7049 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7050
7051         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7052         leak.
7053
7054 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7055
7056         * mono/dbus-sharp.dll.config.in: Added for GAC
7057         * mono/dbus-sharp.snk: Added for GAC
7058         * mono/Assembly.cs.in: Added for GAC
7059         * mono/Makefile.am: Changes for GAC installation        
7060         * configure.in: Added refs for dbus-sharp.dll.config.in and
7061         Assembly.cs.in. More fixes for mono testing
7062         * mono/example/Makefile.am: Changed var to CSC
7063         * Makefile.am: Changed flag name to DBUS_USE_CSC
7064
7065 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7066
7067         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7068         * mono/doc/*: Added documentation framework
7069         * configure.in: Added monodoc check
7070         * README: Added description of mono configure flags
7071
7072 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7073
7074         * doc/dbus-specification.xml: Added a "Required" column to the 
7075         header fields table and changed the "zero or more" verbage in
7076         the above paragraph to read "The header must contain the required 
7077         named header fields and zero or more of the optional named header 
7078         fields".
7079         * test/data/invalid-messages/*.message: Added the required PATH 
7080         named header field to the tests so that they don't fail on 
7081         'Missing path field'
7082
7083 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7084
7085         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7086         the stack by implicitly defining variable and parameter types and
7087         removing the hack of defining C pointers as python objects and later
7088         casting them.
7089
7090 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7091
7092         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7093
7094 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7095
7096         * mono/DBusType/Dict.cs: Handle empty dicts
7097         * mono/DBusType/Array.cs: Handle empty arrays
7098         * mono/Arguments.cs: Handle empty arguments
7099
7100 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7101
7102         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7103         field
7104
7105 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7106
7107         * test/data/valid-messages/standard-*.message: Update message
7108         test scripts to new header field names.
7109
7110 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7111
7112         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7113         overflow to times_we_did_each_thing array which would chop off the
7114         first character of the failure_dir string. Increased the size of
7115         the array to 7 to reflect the number of random mutation functions
7116         we have.
7117
7118 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7119
7120         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7121         unix_server->watch here, it is unreffed in disconnect.
7122         (_dbus_server_new_for_tcp_socket): convert NULL host to
7123         "localhost" here so we don't append NULL to address.
7124         
7125         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7126         various addresses, including tcp with no explicit host.
7127
7128 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7129
7130         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7131         fix incorrect setting of .name_offset in the HeaderField (it was
7132         off by two bytes, positioned right after the name and typecode)
7133
7134         * bus/bus.c (bus_context_new, bus_context_unref): test before
7135         calling dbus_server_free_data_slot and _dbus_user_database_unref
7136         in case of an error.
7137
7138         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7139         by libdbus-gtool.
7140
7141 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7142
7143         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7144         _dbus_poll() instead of select().
7145
7146 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7147
7148         * bus/main.c (signal_handler): Reload the configuration files
7149         on SIGHUP.
7150         (main): Set up our SIGHUP handler.
7151
7152         * bus/bus.c (struct BusContext): Store the config file, user and
7153         fork flag in the BusContext.
7154         (process_config_first_time_only): Added.  Contains the code
7155         (previously in bus_context_new) for setting up the BusContext from
7156         the BusConfigParser that should only be run the first time the
7157         config files are read.
7158         (process_config_every_time): Added.  Contains the code (previously
7159         in bus_context_new) for setting up the BusContext from the
7160         BusConfigParser that should be run every time the config files are
7161         read.
7162         (load_config): Added.  Builds a BusConfigParser from the config
7163         files and passes the resulting structure off to
7164         process_config_first_time_only (assuming this is the first time)
7165         and process_config_every_time.
7166         (bus_context_new): All of the config-related code has been moved
7167         to process_config_first_time_only and process_config_every_time.
7168         Now this function just does the non-config-related initializations
7169         and calls load_config.
7170         (bus_context_reload_config): Added.
7171
7172 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7173
7174         * bus/driver.c (bus_driver_handle_get_service_owner):
7175         implement a GetServiceOwner method.
7176         * doc/dbus-specification.xml: document it.
7177         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7178         
7179         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7180         implement, using the bus GetServiceOwner method.
7181
7182         * test/glib/test-dbus-glib.c:
7183         use dbus_gproxy_new_for_service_owner so that we can receive the
7184         signal. 
7185
7186 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7187
7188         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7189         dbus/dbus-message.c, dbus/dbus-protocol.h
7190         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7191
7192         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7193         dbus/dbus-message.c, dbus/dbus-protocol.h
7194         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7195
7196         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7197         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7198         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7199
7200         * doc/dbus-specification.xml (Header Fields Table):
7201         s/SERVICE/DESTINATION
7202         s/SENDER_SERVICE/SENDER
7203
7204
7205 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7206
7207         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7208         a few seconds.
7209
7210 2004-04-13  Michael Meeks  <michael@ximian.com>
7211
7212         * glib/dbus-gobject.c (handle_introspect): split out
7213         (introspect_properties): this.
7214         (handle_introspect): implement this.
7215
7216         * test/glib/Makefile.am: use the absolute path so the bus
7217         daemon's chdir ("/") doesn't kill us dead.
7218
7219         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7220
7221 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7222
7223         * bus/config-parser.c (struct BusConfigParser): Added
7224         included_files field.
7225         (seen_include): Added.  Checks whether or not a file has already
7226         been included by any parent BusConfigParser.
7227         (bus_config_parser_new): Copy the parent's included_files.
7228         (include_file): Track which files have been included, and fail on
7229         circular inclusions.
7230         (process_test_valid_subdir): Changed printf to report if we are
7231         testing valid or invalid conf files.
7232         (all_are_equiv): Changed printf to be a bit clearer about
7233         what we are actually doing.
7234         (bus_config_parser_test): Test invalid configuration files.
7235
7236 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7237
7238         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7239         argument.  If non-null, the newly-constructed BusConfigParser will
7240         be initialized with the parent's BusLimits instead of the default
7241         values.
7242         (include_file): When including a config file, pass in
7243         the current parser as the parent and then copy the BusLimits
7244         from the included BusConfigParser pack to the current parser.
7245         (process_test_valid_subdir): Renamed from process_test_subdir.
7246         (process_test_equiv_subdir): Added.  Walks through a directory,
7247         descending into each subdirectory and loading the config files
7248         it finds there.  If any subdirectory contains two config files
7249         that don't produce identical BusConfigParser structs, fail.
7250         For now, the BusConfigParser's BusPolicies are not compared.
7251         (bus_config_parser_test): Call both process_test_valid_subdir and
7252         process_test_equiv_subdir.
7253
7254         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7255         argument and pass it along to the call to bus_config_parser_new.
7256         Also made a few small changes to allow this code to compile.
7257
7258         * bus/config-loader-expat.c (bus_config_load): Take a parent
7259         argument and pass it along to the call to bus_config_parser_new.
7260
7261         * bus/bus.c (bus_context_new): Load the config file
7262         with a NULL parent argument.
7263
7264 2004-03-29  Michael Meeks  <michael@ximian.com>
7265
7266         * glib/dbus-gobject.c (introspect_properties): split
7267         out, fix mangled 'while' flow control.
7268         (introspect_signals): implement.
7269         (handle_introspect): update.
7270
7271 2004-03-29  Michael Meeks  <michael@ximian.com>
7272
7273         * glib/dbus-gobject.c (set_object_property): split out / 
7274         re-work, use the property type, and not the message type(!)
7275         (get_object_property): ditto.
7276
7277         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7278         (dbus_gvalue_marshal): make this code re-usable, needed
7279         for signals too, also on both proxy and server side.
7280         Re-write for more efficiency / readability.
7281
7282 2004-03-29  Michael Meeks  <michael@ximian.com>
7283
7284         * dbus/dbus-message.c
7285         (dbus_message_new_error_printf): impl.
7286
7287         * dbus/dbus-connection.c
7288         (dbus_connection_unregister_object_path): fix warning.
7289
7290         * configure.in: fix no-mono-installed situation.
7291
7292 2004-03-27  Havoc Pennington  <hp@redhat.com>
7293
7294         Patch from Timo Teräs:
7295         
7296         * tools/dbus-send.c (main): if --print-reply, assume type is
7297         method call; support boolean type args
7298         
7299         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7300         bunch of memleak and logic bugs
7301         
7302 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7303
7304         * mono/Arguments.cs:
7305         * mono/Introspector.cs:
7306         * mono/Handler.cs:
7307         * mono/InterfaceProxy.cs:
7308         * mono/Message.cs
7309         * mono/ProxyBuilder.cs:
7310         * mono/Service.cs:
7311         Added InterfaceProxy class to avoid building proxies for every
7312         object.
7313
7314         * dbus-message.h:
7315         * dbus-message.c (dbus_message_append_args_valist)
7316         (dbus_message_iter_get_object_path)
7317         (dbus_message_iter_get_object_path_array)
7318         (dbus_message_iter_append_object_path)
7319         (dbus_message_iter_append_object_path_array):
7320         Added object_path iter functions to handle OBJECT_PATH arguments
7321         
7322 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7323
7324         First checkin of mono bindings.
7325         * configure.in:
7326         * Makefile.am:
7327         Build stuff for the bindings
7328         * dbus-sharp.pc.in: Added for pkgconfig
7329         
7330 2004-03-21  Havoc Pennington  <hp@redhat.com>
7331
7332         * test/test-service.c (main): remove debug spew
7333
7334 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7335
7336         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7337         arrays
7338
7339         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7340         (dbus_message_iter_init_array_iterator)
7341         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7342         indicate whether the iterator is empty
7343
7344         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7345         warnings
7346
7347 2004-03-19  Havoc Pennington  <hp@redhat.com>
7348
7349         * NEWS: 0.21 updates
7350
7351         * configure.in: 0.21
7352
7353         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7354         
7355         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7356         you don't need pyrex to make dist
7357
7358         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7359         sources; run moc
7360         
7361 2004-03-18  Richard Hult  <richard@imendio.com>
7362
7363         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7364         (dbus_message_set_auto_activation): Add doxygen docs.
7365
7366 2004-03-16  Richard Hult  <richard@imendio.com>
7367
7368         * bus/activation.c: (bus_activation_service_created),
7369         (bus_activation_send_pending_auto_activation_messages),
7370         (bus_activation_activate_service):
7371         * bus/activation.h:
7372         * bus/dispatch.c: (bus_dispatch),
7373         (check_nonexistent_service_auto_activation),
7374         (check_service_auto_activated),
7375         (check_segfault_service_auto_activation),
7376         (check_existent_service_auto_activation), (bus_dispatch_test):
7377         * bus/driver.c: (bus_driver_handle_activate_service):
7378         * bus/services.c: (bus_registry_acquire_service):
7379         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7380         (dbus_message_get_auto_activation):
7381         * dbus/dbus-message.h:
7382         * dbus/dbus-protocol.h: Implement auto-activation.
7383         
7384         * doc/dbus-specification.xml: Add auto-activation to the spec.
7385
7386 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7387
7388         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7389         fix a bug with CUSTOM types.
7390
7391         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7392         a unit test for this bug (used to fail).
7393
7394 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7395
7396         * bus/activation.c:
7397         (babysitter_watch_callback): notify all pending activations waiting for
7398           the same exec that the activation failed.
7399         (bus_activation_activate_service): shortcut the activation if we 
7400           already waiting for the same executable to start up.
7401
7402 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7403
7404         * bus/activation.c: 
7405         - Added service file reloading. 
7406           Each service files directory is kept in an hash table in 
7407           BusActivation and each BusActivationEntry knows what .service-file it
7408           was read from. So when you try to activate a service the bus will 
7409           check if it's been updated, removed or if new .service-files has 
7410           been installed.
7411         - Test code at the bottom for the service file reloading.
7412         * bus/test-main.c: (main):
7413         * bus/test.h:
7414         - added service reloading test.
7415         * dbus/dbus-sysdeps.c: 
7416         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7417
7418 2004-03-08  Michael Meeks  <michael@ximian.com>
7419
7420         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7421         bail immediately if disconnected, to avoid busy loop.
7422
7423         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7424         cleanup cut/paste/inefficiency.
7425
7426 2004-03-01  David Zeuthen  <david@fubar.dk>
7427
7428         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7429         bug where args were used twice. This bug resulted in a segfault
7430         on a Debian/PPC system when starting the messagebus daemon. Include
7431         dbus-sysdeps.h for DBUS_VA_COPY
7432
7433         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7434
7435         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7436         appropriate va_copy implementation. From GLib
7437         
7438 2004-02-24  Joe Shaw  <joe@ximian.com>
7439
7440         * bus/services.c (bus_registry_acquire_service): We need to pass
7441         in the service name to dbus_set_error() to prevent a crash.
7442
7443 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7444
7445         * AUTHORS: Reveal my True identity.
7446
7447 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7448
7449         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7450         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7451
7452 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7453
7454         * doc/TODO: Added not about better error check of configuration files.
7455
7456 2003-12-02  Richard Hult  <richard@imendio.com>
7457
7458         * Update AFL version to 2.0 throughout the source files to reflect
7459         the update that was done a while ago.
7460
7461 2003-12-02  Richard Hult  <richard@imendio.com>
7462
7463         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7464         wrote_dict_key to FALSE on the iter that the dict is appended to,
7465         just like when appending other types. Fixes a bug where a dict
7466         couldn't be put inside a dict.
7467         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7468         (message_iter_test, _dbus_message_test): Add test case for dict
7469         inside dict.
7470
7471 2003-12-01  David Zeuthen  <david@fubar.dk>
7472
7473         * python/dbus.py: Add the actual message when calling the reciever
7474         of a signal such that parameters can be inspected. Add the method
7475         remove_signal_receiver
7476         
7477 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7478
7479         * bus/*.[ch]:
7480         * dbus/*.[ch]:
7481         * glib/*.[ch]: Made ref functions return the pointer
7482
7483 2003-11-25  Zack Rusin  <zack@kde.org>
7484
7485         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7486
7487         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7488         wrappers,
7489
7490         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7491         the Integrator and to better fit with the server,
7492
7493 2003-11-24  Zack Rusin  <zack@kde.org>
7494
7495         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7496         the integrator handles it now
7497
7498         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7499         since QTimer wasn't really meant to be used the way DBusTimeout is
7500
7501 2003-11-24  Zack Rusin  <zack@kde.org>
7502
7503         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7504         Integrator class which integrates D-BUS with the Qt event loop,
7505
7506         * qt/connection.h, qt/connection.cpp: Move all the code which
7507         was dealing with D-BUS integration to the Integrator class,
7508         and start using Integrator,
7509
7510 2003-11-23  Zack Rusin  <zack@kde.org>
7511
7512         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7513         wrapper
7514
7515         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7516         switching namespaces to DBusQt, reworking the class,
7517
7518         * Makefile.cvs: switching dependencies so that it matches KDE 
7519         schematics,
7520         
7521         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7522         the library
7523
7524 2003-11-19  Havoc Pennington  <hp@redhat.com>
7525
7526         * NEWS: update
7527
7528         * configure.in: bump version to 0.20
7529
7530         * configure.in (have_qt): add yet another place to look for qt
7531         (someone hand trolltech a .pc file...)
7532
7533 2003-11-01  Havoc Pennington  <hp@redhat.com>
7534
7535         * doc/dbus-specification.xml: add state machine docs on the auth
7536         protocol; just a first draft, I'm sure it's wrong.      
7537
7538 2003-10-28  David Zeuthen  <david@fubar.dk>
7539
7540         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7541         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7542         
7543 2003-10-28  Havoc Pennington  <hp@redhat.com>
7544
7545         * dbus/dbus-message.c (get_next_field): delete unused function
7546
7547 2003-10-28  Havoc Pennington  <hp@redhat.com>
7548
7549         * bus/expirelist.c (do_expiration_with_current_time): detect
7550         failure of the expire_func due to OOM
7551
7552         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7553
7554         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7555         NoReply error that's now created by the bus when the service exits
7556
7557 2003-10-28  Havoc Pennington  <hp@redhat.com>
7558
7559         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7560         tests for set_path, set_interface, set_member, etc.
7561
7562         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7563
7564         * dbus/dbus-message.c (set_string_field): always just delete and
7565         re-append the field; accept NULL for deletion
7566         (re_align_fields_recurse): reimplement
7567         
7568 2003-10-26  Havoc Pennington  <hp@redhat.com>
7569
7570         * dbus/dbus-connection.c: fix docs to properly describe the
7571         disconnected message
7572         (_dbus_connection_notify_disconnected): remove this function; 
7573         we can't synchronously add the disconnected message, we have to 
7574         do it after we've queued any remaining real messages
7575         (_dbus_connection_get_dispatch_status_unlocked): queue the
7576         disconnect message only if the transport has finished queueing all
7577         its real messages and is disconnected.
7578         (dbus_connection_disconnect): update the dispatch status here
7579
7580 2003-10-22  Havoc Pennington  <hp@redhat.com>
7581
7582         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7583
7584         * bus/connection.c (bus_transaction_send_from_driver): set the
7585         destination to the connection's base service
7586
7587 2003-10-20  Havoc Pennington  <hp@redhat.com>
7588
7589         hmm, make check is currently not passing.
7590         
7591         * doc/dbus-specification.xml: add requirement that custom type
7592         names follow the same rules as interface names.
7593
7594         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7595         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7596         'map'
7597
7598         * doc/dbus-specification.xml: update type codes to match
7599         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7600         CUSTOM. Add type OBJECT_PATH to the spec.
7601
7602 2003-10-17  Havoc Pennington  <hp@redhat.com>
7603
7604         * bus/driver.c (create_unique_client_name): use "." as separator
7605         in base service names instead of '-'
7606
7607         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7608         byte at the end of the string
7609
7610         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7611         optimization macros since string validation seems to be a slow
7612         point.
7613         
7614         * doc/dbus-specification.xml: restrict valid
7615         service/interface/member/error names. Add test suite code for the
7616         name validation.
7617
7618         * dbus/dbus-string.c: limit service/interface/member/error names 
7619         to [0-9][A-Z][a-z]_
7620
7621         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7622         format arg to verbose spew
7623
7624         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7625         memory, return instead of g_error
7626
7627         * test/test-service.c (path_message_func): support emitting a
7628         signal on request
7629
7630         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7631         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7632         assuming the activation bus was the session bus so that services
7633         started manually will still register.
7634         (init_connections_unlocked): fix so that in OOM situation we get
7635         the same semantics when retrying the function
7636         
7637         * test/test-service.c (main): change to use path registration, to
7638         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7639         than DBUS_BUS_SESSION
7640
7641 2003-10-16  Havoc Pennington  <hp@redhat.com>
7642
7643         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7644
7645         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7646         coverage of the tests
7647         (coverage-report.txt): don't move the .da and .bbg files around
7648
7649 2003-10-16  Havoc Pennington  <hp@redhat.com>
7650
7651         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7652         to put there
7653
7654 2003-10-16  Havoc Pennington  <hp@redhat.com>
7655
7656         * bus/connection.c (bus_pending_reply_expired): either cancel or
7657         execute, not both
7658         (bus_connections_check_reply): use unlink, not remove_link, as we
7659         don't want to free the link; fixes double free mess
7660
7661         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7662         where no reply was received
7663
7664         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7665         fix a refcount leak
7666
7667         * bus/signals.c (match_rule_matches): add special cases for the
7668         bus driver, so you can match on sender/destination for it.
7669
7670         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7671         DBUS_PRINT_BACKTRACE is set
7672
7673         * dbus/dbus-internals.c: add pid to assertion failure messages
7674
7675         * dbus/dbus-connection.c: add message type code to the debug spew
7676
7677         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7678         sender=foo not service=foo
7679
7680         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7681         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7682         DBUS_ACTIVATION_ADDRESS instead
7683
7684         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7685         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7686
7687         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7688         context struct
7689
7690         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7691         (dbus_message_iter_get_object_path_array): new function (half
7692         finished, disabled for the moment)
7693         
7694         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7695         DBUS_MESSAGE_TYPE_ERROR
7696
7697         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7698         avoid redirecting stderr to /dev/null
7699         (babysit): close stdin if not doing the "exit_with_session" thing
7700
7701         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7702         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7703         stdout/stdin, so things don't get confused
7704         
7705         * bus/system.conf.in: fix to allow replies, I modified .conf
7706         instead of .conf.in again.
7707
7708 2003-10-14  David Zeuthen  <david@fubar.dk>
7709
7710         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7711         argtype to arg_type when raising unknown arg type exception.
7712         Changed type list to reflect the changes in dbus-protocol.h so 
7713         the bindings actually work.
7714
7715 2003-10-14  Havoc Pennington  <hp@redhat.com>
7716
7717         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7718         to have a bug keeping it from outputting the .da files sometimes
7719         (string_get_string): don't append garbage nul bytes to the string.
7720
7721 2003-10-15  Seth Nickell  <seth@gnome.org>
7722
7723         * python/Makefile.am:
7724
7725         Include dbus_h_wrapper.h in the dist tarball.
7726
7727 2003-10-14  Havoc Pennington  <hp@redhat.com>
7728
7729         * bus/bus.c (bus_context_check_security_policy): revamp this to
7730         work more sanely with new policy-based requested reply setup
7731
7732         * bus/connection.c (bus_transaction_send_from_driver): set bus
7733         driver messages as no reply
7734
7735         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7736         requested_reply attribute on allow/deny rules
7737
7738         * bus/system.conf: add <allow requested_reply="true"/>
7739
7740         * bus/driver.c (bus_driver_handle_message): fix check for replies
7741         sent to the bus driver, which was backward. How did this ever work
7742         at all though? I think I'm missing something.
7743
7744         * dbus/dbus-message.c (decode_header_data): require error and
7745         method return messages to have a reply serial field to be valid
7746         (_dbus_message_loader_queue_messages): break up this function;
7747         validate that reply serial and plain serial are nonzero; 
7748         clean up the OOM/error handling.
7749         (get_uint_field): don't return -1 from this
7750         (dbus_message_create_header): fix signed/unsigned bug
7751
7752         * bus/connection.c (bus_connections_expect_reply): save serial of
7753         the incoming message, not reply serial
7754
7755 2003-10-14  Havoc Pennington  <hp@redhat.com>
7756
7757         * bus/connection.c: implement pending reply tracking using
7758         BusExpireList
7759
7760         * bus/bus.c (bus_context_check_security_policy): verify that a
7761         reply is pending in order to allow a reply to be sent. Deny 
7762         messages of unknown type.
7763
7764         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7765
7766         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7767         (bus_context_get_reply_timeout): new
7768
7769 2003-10-13  Seth Nickell  <seth@gnome.org>
7770
7771         * python/Makefile.am:
7772
7773         Pass "make distcheck": remove a couple files from DIST_FILES
7774         that weren't included in the final version.
7775
7776 2003-10-12  Havoc Pennington  <hp@pobox.com>
7777
7778         Added test code that 1) starts an actual bus daemon and 2) uses
7779         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7780         more testing possible, but this is the basic framework.
7781         
7782         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7783         empty proxy lists from the proxy list hash
7784
7785         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7786         couple of return_if_fail checks
7787
7788         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7789         to allocate, so everything is cleared to NULL as it should be.
7790
7791         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7792         source as data to dbus_connection_set_timeout_functions() as the 
7793         timeout functions expected
7794
7795         * test/glib/run-test.sh: add a little script to start up a message
7796         bus and run tests using it
7797
7798         * tools/dbus-launch.1: updates
7799
7800         * tools/dbus-launch.c (main): add --config-file option
7801
7802         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7803         that could never be reached.
7804
7805         * dbus/dbus-message.c (dbus_message_new_method_return) 
7806         (dbus_message_new_error, dbus_message_new_signal): set the
7807         no-reply-expected flag on all these. Redundant, but may
7808         as well be consistent.
7809
7810 2003-10-11  Havoc Pennington  <hp@pobox.com>
7811
7812         * test/decode-gcov.c (function_solve_graph): make broken block
7813         graph a nonfatal error since it seems to be broken. Need to debug
7814         this.
7815
7816         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7817         can't just check type > INVALID < LAST anymore
7818
7819         * dbus/dbus-message.c (dbus_message_get_signature): new function
7820         (dbus_message_has_signature): new function
7821         (struct DBusMessage): add signature field (right now it isn't sent
7822         over the wire, just generated on the fly)
7823         (dbus_message_copy): copy the signature, and init strings to
7824         proper length to avoid some reallocs
7825         (dbus_message_iter_init_array_iterator): return void, since it
7826         can't fail
7827         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7828         (_dbus_message_loader_queue_messages): add silly temporary hack to
7829         fill in message->signature on load
7830
7831         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7832         characters, so they are relatively human-readable.
7833
7834 2003-10-11  Havoc Pennington  <hp@pobox.com>
7835
7836         * dbus/dbus-message.c (_dbus_message_test): add more test
7837         coverage, but #if 0 for now since they uncover a bug 
7838         not fixed yet; I think in re_align_field_recurse()
7839         (re_align_field_recurse): add FIXME about broken assertion
7840
7841         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7842
7843         * bus/connection.c: share a couple code bits with expirelist.c
7844
7845         * bus/expirelist.h, bus/expirelist.c: implement a generic
7846         expire-items-after-N-seconds facility, was going to share between
7847         expiring connections and replies, decided not to use for expiring
7848         connections for now.
7849
7850         * COPYING: include AFL 2.0 (still need to change all the file headers)
7851
7852 2003-10-09  Havoc Pennington  <hp@redhat.com>
7853
7854         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7855         gcc 3.3. Not that we do anything about it yet.
7856
7857         * bus/signals.c (bus_match_rule_parse): impose max length on the
7858         match rule text
7859
7860         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7861
7862 2003-10-09  Havoc Pennington  <hp@redhat.com>
7863
7864         Make matching rules theoretically work (add parser).
7865         
7866         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7867         the case where destination is explicitly specified as bus driver
7868         and someone else is eavesdropping.
7869         
7870         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7871         definition of eavesdropping and assertion
7872
7873         * tools/dbus-send.c (main): use dbus_message_type_from_string
7874
7875         * bus/signals.c (bus_match_rule_parse): implement
7876
7877         * dbus/dbus-message.c (dbus_message_type_from_string): new
7878
7879         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7880
7881 2003-10-02  Havoc Pennington  <hp@pobox.com>
7882
7883         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7884         dbus_gproxy_oneway_call
7885
7886         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7887         (dbus_server_setup_with_g_main): fix to allow calling them more
7888         than once on the same args
7889         (dbus_bus_get_with_g_main): new function
7890
7891 2003-10-02  Havoc Pennington  <hp@redhat.com>
7892
7893         * doc/dbus-tutorial.xml: write some stuff
7894
7895 2003-09-29  Havoc Pennington  <hp@pobox.com>
7896
7897         * configure.in: split checks for Doxygen from XML docs, check for
7898         xmlto
7899
7900         * doc/Makefile.am: XML-ify all the docs, and add a blank
7901         dbus-tutorial.xml
7902
7903 2003-09-29  Havoc Pennington  <hp@pobox.com>
7904
7905         * Merge dbus-object-names branch. To see the entire patch 
7906         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7907         it's huuuuge though.
7908         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7909         
7910 2003-09-28  Havoc Pennington  <hp@pobox.com>
7911
7912         * HACKING: update to reflect new server
7913
7914 2003-09-26  Seth Nickell  <seth@gnome.org>
7915
7916         * python/dbus.py:
7917         * python/examples/example-signals.py:
7918
7919         Start implementing some notions of signals. The API
7920         is really terrible, but they sort of work (with the
7921         exception of being able to filter by service, and to
7922         transmit signals *as* a particular service). Need to
7923         figure out how to make messages come from the service
7924         we registered :-(
7925         
7926         * python/dbus_bindings.pyx.in:
7927
7928         Removed duplicate message_handler callbacks.
7929         
7930 2003-09-25  Havoc Pennington  <hp@redhat.com>
7931
7932         * bus/session.conf.in: fix my mess
7933
7934 2003-09-25  Havoc Pennington  <hp@pobox.com>
7935
7936         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7937
7938 2003-09-25  Seth Nickell  <seth@gnome.org>
7939
7940         * python/examples/example-service.py:
7941
7942         Johan notices complete wrong code in example-service, but
7943         completely wrong in a way that works exactly the same (!).
7944         Johan is confused, how could this possibly work? Example
7945         code fails to serve purpose of making things clear.
7946         Seth fixes.
7947
7948 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7949
7950         * doc/dbus-specification.sgml: don't require header fields
7951         to be 4-byte aligned and specify that fields should be
7952         distinguished from padding by the fact that zero is not
7953         a valid field name.
7954         
7955         * doc/TODO: remove re-alignment item and add item to doc
7956         the OBJECT_PATH type.
7957         
7958         * dbus/dbus-message.c:
7959         (HeaderField): rename the original member to value_offset
7960         and introduce a name_offset member to keep track of where
7961         the field actually begins.
7962         (adjust_field_offsets): remove.
7963         (append_int_field), (append_uint_field),
7964         (append_string_field): don't align the start of the header
7965         field to a 4-byte boundary.
7966         (get_next_field): impl finding the next marhsalled field
7967         after a given field.
7968         (re_align_field_recurse): impl re-aligning a number of
7969         already marshalled fields.
7970         (delete_field): impl deleting a field of any type and
7971         re-aligning any following fields.
7972         (delete_int_or_uint_field), (delete_string_field): remove.
7973         (set_int_field), (set_uint_field): no need to re-check
7974         that we have the correct type for the field.
7975         (set_string_field): ditto and impl re-aligning any
7976         following fields.
7977         (decode_header_data): update to take into account that
7978         the fields aren't 4-byte aligned any more and the new
7979         way to distinguish padding from header fields. Also,
7980         don't exit when there is too much header padding.
7981         (process_test_subdir): print the directory.
7982         (_dbus_message_test): add test to make sure a following
7983         field is re-aligned correctly after field deletion.
7984         
7985         * dbus/dbus-string.[ch]:
7986         (_dbus_string_insert_bytes): rename from insert_byte and
7987         allow the insert of multiple bytes.
7988         (_dbus_string_test): test inserting multiple bytes.
7989
7990         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7991         warning note to docs about having to re-align any
7992         marshalled values following the string.
7993         
7994         * dbus/dbus-message-builder.c:
7995         (append_string_field), (_dbus_message_data_load):
7996         don't align the header field.
7997         
7998         * dbus/dbus-auth.c: (process_test_subdir): print the
7999         directory.
8000         
8001         * test/break-loader.c: (randomly_add_one_byte): upd. for
8002         insert_byte change.
8003         
8004         * test/data/invalid-messages/bad-header-field-alignment.message:
8005         new test case.
8006         
8007         * test/data/valid-messages/unknown-header-field.message: shove
8008         a dict in the unknown field.
8009
8010 2003-09-25  Seth Nickell  <seth@gnome.org>
8011
8012         * python/dbus.py:
8013         * python/dbus_bindings.pyx.in:
8014
8015         Handle return values.
8016         
8017         * python/examples/example-client.py:
8018         * python/examples/example-service.py:
8019
8020         Pass back return values from the service to the client.
8021         
8022 2003-09-24  Seth Nickell  <seth@gnome.org>
8023
8024         * python/dbus.py:
8025
8026         Connect Object methods (when you are sharing an object) up... pass
8027         in a list of methods to be shared. Sharing all the methods just
8028         worked out too weird. You can now create nice Services over the
8029         DBus in Python. :-)
8030         
8031         * python/dbus_bindings.pyx.in:
8032
8033         Keep references to user_data tuples passed into C functions so 
8034         Python doesn't garbage collect on us.
8035
8036         Implement MethodReturn and Error subclasses of Message for creating
8037         DBusMessage's of those types.
8038         
8039         * python/examples/example-client.py:
8040         * python/examples/example-service.py:
8041
8042         Simple example code showing both how create DBus services and objects,
8043         and how to use them.
8044
8045 2003-09-23  Havoc Pennington  <hp@pobox.com>
8046
8047         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8048
8049 2003-09-23  Havoc Pennington  <hp@redhat.com>
8050
8051         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8052         (dbus_gproxy_disconnect_signal): implement
8053         (dbus_gproxy_manager_remove_signal_match): implement
8054         (dbus_gproxy_manager_add_signal_match): implement
8055         (dbus_gproxy_oneway_call): implement
8056
8057 2003-09-23  Havoc Pennington  <hp@pobox.com>
8058
8059         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8060         subclass. This means dropping the transparent thread safety of the
8061         proxy; you now need a separate proxy per-thread, or your own
8062         locking on the proxy. Probably right anyway.
8063         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8064
8065 2003-09-22  Havoc Pennington  <hp@redhat.com>
8066
8067         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8068
8069 2003-09-21  Seth Nickell  <seth@gnome.org>
8070
8071         First checkin of the Python bindings.
8072         
8073         * python/.cvsignore:
8074         * python/Makefile.am:
8075         * python/dbus_bindings.pyx.in:
8076         * python/dbus_h_wrapper.h:
8077
8078         Pieces for Pyrex to operate on, building a dbus_bindings.so
8079         python module for low-level access to the DBus APIs.
8080         
8081         * python/dbus.py:
8082
8083         High-level Python module for accessing DBus objects.
8084
8085         * configure.in:
8086         * Makefile.am:
8087
8088         Build stuff for the python bindings.
8089
8090         * acinclude.m4:
8091
8092         Extra macro needed for finding the Python C header files.
8093
8094 2003-09-21  Havoc Pennington  <hp@pobox.com>
8095
8096         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8097         implementing the proxy manager, didn't get very far.
8098
8099         * dbus/dbus-bus.c (dbus_bus_add_match): new
8100         (dbus_bus_remove_match): new
8101
8102         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8103         path_name argument; adjust the other not-yet-implemented 
8104         gproxy constructors to be what I think they should be.
8105
8106 2003-09-21  Havoc Pennington  <hp@pobox.com>
8107
8108         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8109         by default for message bus connections.
8110
8111         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8112         exit_on_disconnect flag is set and we process the disconnected
8113         signal.
8114         (dbus_connection_set_exit_on_disconnect): new function
8115
8116 2003-09-21  Havoc Pennington  <hp@pobox.com>
8117
8118         Get matching rules mostly working in the bus; only actually
8119         parsing the rule text remains. However, the client side of
8120         "signal connections" hasn't been started, this patch is only the
8121         bus side.
8122         
8123         * dbus/dispatch.c: fix for the matching rules changes
8124         
8125         * bus/driver.c (bus_driver_handle_remove_match)
8126         (bus_driver_handle_add_match): send an ack reply from these
8127         method calls
8128
8129         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8130         arguments, reported by Seth Nickell
8131
8132         * bus/config-parser.c (append_rule_from_element): support
8133         eavesdrop=true|false attribute on policies so match rules 
8134         can be prevented from snooping on the system bus.
8135
8136         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8137         and "destination" in attribute names; fix some docs bugs; 
8138         add eavesdrop=true|false attribute
8139
8140         * bus/driver.c (bus_driver_handle_add_match)
8141         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8142         messages
8143
8144         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8145         rid of broadcast service concept, signals are just always broadcast
8146
8147         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8148         mostly implement matching rules stuff (currently only exposed as signal
8149         connections)
8150
8151 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8152
8153         * doc/dbus-specification.sgml: Change the header field name
8154         to be an enum and update the rest of the spec to reference
8155         the fields using the conventinal name.
8156
8157         * dbus/dbus-protocol.h: update to reflect the spec.
8158
8159         * doc/TODO: add item to remove the 4 byte alignment requirement.
8160         
8161         * dbus/dbus-message.c: Remove the code to generalise the
8162         header/body length and serial number header fields as named
8163         header fields so we can reference field names using the 
8164         protocol values.
8165         (append_int_field), (append_uint_field), (append_string_field):
8166         Append the field name as a byte rather than four chars.
8167         (delete_int_or_uint_field), (delete_string_field): reflect the
8168         fact that the field name and typecode now occupy 4 bytes instead
8169         of 8.
8170         (decode_string_field), (decode_header_data): update to reflect
8171         protocol changes and move the field specific encoding from
8172         decode_string_field() back into decode_header_data().
8173         
8174         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8175         Add utility to aid debugging.
8176         
8177         * dbus/dbus-message-builder.c:
8178         (append_string_field), (_dbus_message_data_load): Update to
8179         reflect protocol changes; Change the FIELD_NAME directive
8180         to HEADER_FIELD and allow it to take the field's conventional
8181         name rather than the actual value.
8182         
8183         * test/data/*/*.message: Update to use HEADER_FIELD instead
8184         of FIELD_NAME; Always align the header on an 8 byte boundary
8185         *before* updating the header length.
8186
8187 2003-09-15  Havoc Pennington  <hp@pobox.com>
8188
8189         * dbus/dbus-pending-call.c: add the get/set object data
8190         boilerplate as for DBusConnection, etc. Use generic object data
8191         for the notify callback.
8192
8193         * glib/dbus-gparser.c (parse_node): parse child nodes
8194
8195         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8196         
8197         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8198         contain functions shared between the convenience lib and the
8199         installed lib
8200
8201         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8202         -export-symbols-regex to the GLib library
8203
8204         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8205         fix the locking in here, and add a default handler for
8206         Introspect() that just returns sub-nodes.
8207
8208 2003-09-14  Havoc Pennington  <hp@pobox.com>
8209
8210         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8211         rather than gfoo consistent
8212
8213         * glib/dbus-gproxy.h: delete for now, move contents to
8214         dbus-glib.h, because the include files don't work right since we
8215         aren't in the dbus/ subdir.
8216         
8217         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8218         (dbus_gproxy_end_call): finish
8219         (dbus_gproxy_begin_call): finish
8220
8221         * glib/dbus-gmain.c (dbus_set_g_error): new
8222
8223         * glib/dbus-gobject.c (handle_introspect): include information
8224         about child nodes in the introspection
8225
8226         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8227         function to help in implementation of introspection
8228
8229         * dbus/dbus-object-tree.c
8230         (_dbus_object_tree_list_registered_and_unlock): new function
8231
8232 2003-09-12  Havoc Pennington  <hp@pobox.com>
8233
8234         * glib/dbus-gidl.h: add common base class for all the foo_info
8235         types
8236
8237         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8238         similar to kdcop
8239
8240         * test/Makefile.am: try test srcdir -ef . in addition to test
8241         srcdir = ., one of them should work (yeah lame)
8242         
8243         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8244         library
8245         
8246         * glib/dbus-gparser.h: make description_load routines return
8247         NodeInfo* not Parser*
8248
8249         * Makefile.am (SUBDIRS): build test dir after all library dirs
8250
8251         * configure.in: add GTK+ detection
8252
8253 2003-09-07  Havoc Pennington  <hp@pobox.com>
8254
8255         * Make Doxygen contented.
8256
8257 2003-09-07  Havoc Pennington  <hp@pobox.com>
8258
8259         * doc/dbus-specification.sgml: more updates
8260
8261 2003-09-06  Havoc Pennington  <hp@pobox.com>
8262
8263         * doc/dbus-specification.sgml: partial updates
8264
8265         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8266         zillionth time; hopefully I edited the right file this time.
8267
8268         * bus/config-parser.c (append_rule_from_element): support
8269         send_type, send_path, receive_type, receive_path
8270
8271         * bus/policy.c: add message type and path to the list of things
8272         that can be "firewalled"
8273
8274 2003-09-06  Havoc Pennington  <hp@pobox.com>
8275
8276         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8277         (dbus_connection_register_object_path): make this not handle
8278         messages to paths below the given path
8279
8280 2003-09-03  Havoc Pennington  <hp@pobox.com>
8281
8282         * test/glib/Makefile.am: add this with random glib-linked test
8283         programs
8284
8285         * glib/Makefile.am: remove the random test programs from here,
8286         leave only the unit tests
8287
8288         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8289         uscore/javacaps conversion, and fix     
8290         (get_object_property, set_object_property): change to .NET
8291         convention for mapping props to methods, set_FooBar/get_FooBar, 
8292         since one language has such a convention we may as well copy it. 
8293         Plus real methods in either getFooBar or get_foo_bar style won't 
8294         collide with this convention.
8295
8296 2003-09-01  Havoc Pennington  <hp@pobox.com>
8297
8298         * glib/dbus-gparser.c: implement
8299
8300         * glib/dbus-gobject.c: start implementing skeletons support
8301
8302         * configure.in: when disabling checks/assert, also define
8303         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8304
8305 2003-09-01  Havoc Pennington  <hp@pobox.com>
8306
8307         * glib/Makefile.am: rearrange a bunch of files and get "make
8308         check" framework set up
8309
8310 2003-08-31  Havoc Pennington  <hp@pobox.com>
8311
8312         * fix build with --disable-tests
8313
8314 2003-08-30  Havoc Pennington  <hp@pobox.com>
8315
8316         * dbus/dbus-connection.c: purge DBusMessageHandler
8317
8318         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8319         use callbacks everywhere
8320
8321 2003-08-30  Havoc Pennington  <hp@pobox.com>
8322
8323         * test/data/valid-config-files/system.d/test.conf: change to 
8324         root for the user so warnings don't get printed
8325
8326         * dbus/dbus-message.c: add dbus_message_get_path,
8327         dbus_message_set_path
8328         
8329         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8330         dispatching to a path
8331
8332         * dbus/dbus-string.c (_dbus_string_validate_path): add
8333
8334         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8335         (_dbus_marshal_object_path): implement
8336
8337         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8338         to contain the path to the target object
8339         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8340         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8341
8342 2003-08-30  Havoc Pennington  <hp@pobox.com>
8343
8344         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8345
8346 2003-08-29  Havoc Pennington  <hp@pobox.com>
8347
8348         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8349         registered
8350         (struct DBusObjectSubtree): shrink this
8351         a lot, since we may have a lot of them
8352         (_dbus_object_tree_free_all_unlocked): implement
8353         (_dbus_object_tree_dispatch_and_unlock): implement
8354
8355 2003-08-29  Havoc Pennington  <hp@pobox.com>
8356
8357         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8358
8359 2003-08-28  Havoc Pennington  <hp@pobox.com>
8360
8361         purge DBusObjectID
8362         
8363         * dbus/dbus-connection.c: port to no ObjectID, create a
8364         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8365
8366         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8367         everything except UnregisterFunction and MessageFunction
8368         
8369         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8370         add DBUS_TYPE_OBJECT_PATH
8371         
8372         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8373         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8374         path-based object IDs
8375
8376 2003-08-25  Havoc Pennington  <hp@pobox.com>
8377
8378         Just noticed that dbus_message_test is hosed, I wonder when I
8379         broke that. I thought make check was passing earlier...
8380         
8381         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8382         container tree, will replace most of dbus-object-registry
8383
8384         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8385         screwup
8386
8387 2003-08-19  Havoc Pennington  <hp@pobox.com>
8388
8389         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8390         (dbus_message_is_error): fix this function
8391
8392         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8393         match
8394
8395         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8396         reflect clarified man page
8397         (bus_client_policy_check_can_send): ditto
8398         
8399         * bus/session.conf.in: fixup
8400
8401         * bus/system.conf.in: fixup
8402
8403 2003-08-18  Havoc Pennington  <hp@redhat.com>
8404
8405         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8406
8407         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8408         dumb bug created earlier (wrong order of args to
8409         decode_header_data())
8410         
8411         * tools/dbus-send.c: port
8412
8413         * tools/dbus-print-message.c (print_message): port
8414
8415         * test/data/*messages: port all messages over
8416         
8417         * dbus/dbus-message-builder.c: support including 
8418         message type
8419         
8420         * bus/driver.c: port over
8421         
8422         * bus/dispatch.c: port over to new stuff
8423
8424         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8425         rename disconnect signal to "Disconnected"
8426
8427 2003-08-17  Havoc Pennington  <hp@pobox.com>
8428
8429         This doesn't compile yet, but syncing up so I can hack on it from
8430         work. What are branches for if not broken code? ;-)
8431         
8432         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8433         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8434         DBUS_HEADER_FIELD_ERROR_NAME
8435         
8436         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8437         for the interface+member pairs
8438         (string_hash): change to use g_str_hash algorithm
8439         (find_direct_function, find_string_function): refactor these to
8440         share most code.
8441         
8442         * dbus/dbus-message.c: port all of this over to support 
8443         interface/member fields instead of name field
8444
8445         * dbus/dbus-object-registry.c: port over
8446         
8447         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8448         from _dbus_string_validate_name
8449
8450         * bus/dbus-daemon-1.1: change file format for the 
8451         <deny>/<allow> stuff to match new message naming scheme
8452
8453         * bus/policy.c: port over
8454
8455         * bus/config-parser.c: parse new format
8456         
8457 2003-08-16  Havoc Pennington  <hp@pobox.com>
8458
8459         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8460         broken assertion
8461
8462         * glib/dbus-gproxy.c: some hacking
8463
8464 2003-08-15  Havoc Pennington  <hp@redhat.com>
8465
8466         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8467
8468         * dbus/dbus-connection.c
8469         (dbus_connection_send_with_reply_and_block): factor out internals;
8470         change to convert any error replies to DBusError instead of 
8471         returning them as a message
8472
8473 2003-08-15  Havoc Pennington  <hp@pobox.com>
8474
8475         * dbus/dbus-connection.c, 
8476         dbus/dbus-pending-call.c: Finish the pending call stuff
8477
8478 2003-08-14  Havoc Pennington  <hp@redhat.com>
8479
8480         * dbus/dbus-pending-call.c: start on new object that will replace
8481         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8482         replies
8483
8484         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8485         with remote interfaces
8486
8487         * dbus/dbus-gidl.c: do the boring boilerplate in here
8488         
8489 2003-08-12  Havoc Pennington  <hp@pobox.com>
8490
8491         * bus/dispatch.c (bus_dispatch): make this return proper 
8492         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8493
8494         * dbus/dbus-errors.c (dbus_set_error): use
8495         _dbus_string_append_printf_valist
8496
8497         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8498         (_dbus_string_append_printf): new
8499
8500         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8501         UNKNOWN_METHOD
8502
8503         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8504         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8505         message is unhandled.
8506
8507 2003-08-11  Havoc Pennington  <hp@pobox.com>
8508
8509         * bus/test.c (client_disconnect_handler): change to return
8510         HANDLED (would have been REMOVE_MESSAGE)
8511
8512         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8513         HANDLED/NOT_YET_HANDLED instead of
8514         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8515         should be used.
8516
8517 2003-08-10  Havoc Pennington  <hp@pobox.com>
8518
8519         * tools/dbus-send.c (main): add --type argument, for now
8520         supporting only method_call and signal types.
8521
8522         * tools/dbus-print-message.c: print message type
8523
8524         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8525         init connection->objects
8526
8527         * doc/dbus-specification.sgml: fix sgml
8528
8529         * bus/*.c: port over to object-instance API changes
8530
8531         * test/test-service.c: ditto
8532         
8533         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8534         name, we will have to fix up the rest of the code to also handle
8535         this
8536         (dbus_message_new): generic message-creation call
8537         (set_string_field): allow appending name field
8538
8539 2003-08-06  Havoc Pennington  <hp@pobox.com>
8540
8541         * dbus/dbus-object-registry.c: implement signal connection 
8542         and dispatch
8543
8544         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8545
8546         * dbus/dbus-internals.c (_dbus_memdup): new function
8547
8548 2003-08-02  Havoc Pennington  <hp@pobox.com>
8549
8550         * dbus/dbus-message.c (dbus_message_get_no_reply)
8551         (dbus_message_set_no_reply): add these and remove
8552         set_is_error/get_is_error
8553
8554         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8555         remove the ERROR flag, since there's now an ERROR type
8556
8557 2003-08-01  Havoc Pennington  <hp@pobox.com>
8558
8559         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8560         implement
8561
8562         * dbus/dbus-message.c (dbus_message_get_type): new function
8563
8564         * doc/dbus-specification.sgml: add "type" byte to messages
8565
8566 2003-08-01  Havoc Pennington  <hp@pobox.com>
8567
8568         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8569         a message type enum to distinguish kinds of message
8570         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8571         that need not be replied to
8572
8573 2003-08-01  Havoc Pennington  <hp@pobox.com>
8574
8575         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8576         (unpack_8_octets): fix no-64-bit-int bug
8577
8578         * dbus/dbus-object-registry.c (validate_id): validate the 
8579         connection ID bits, not just the instance ID.
8580
8581         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8582         the connection-global 33 bits of the object ID
8583
8584         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8585         object ID in the new way
8586
8587         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8588         define server/client/instance bits.
8589
8590 2003-07-30  Havoc Pennington  <hp@pobox.com>
8591
8592         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8593         build
8594
8595 2003-07-13  Havoc Pennington  <hp@pobox.com>
8596
8597         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8598         fields to DBusObjectVTable and DBusObjectInfo
8599
8600 2003-07-12  Havoc Pennington  <hp@pobox.com>
8601
8602         * dbus/dbus-object-registry.c: implement unit test,
8603         fix bugs discovered in process
8604
8605         * dbus/dbus-connection.c: remove handler_table and
8606         register_handler(), add DBusObjectRegistry usage
8607
8608         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8609         (dbus_object_id_set_null): new functions
8610
8611 2003-07-08  Havoc Pennington  <hp@pobox.com>
8612
8613         * dbus/dbus-object.c: implement some of this
8614
8615         * dbus/dbus-object-registry.c
8616         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8617         param
8618         (_dbus_object_registry_new): handle OOM
8619
8620 2003-07-08  Havoc Pennington  <hp@pobox.com>
8621
8622         * dbus/dbus-object.h: sketch out an API for registering objects
8623         with a connection, that allows us to use as little as 24 bytes
8624         per object and lets application code represent an object in 
8625         any conceivable way.
8626
8627         * dbus/dbus-object-registry.c: implement the hard bits of the
8628         DBusConnection aspect of object API. Not yet wired up.
8629         
8630 2003-07-06  Havoc Pennington  <hp@pobox.com>
8631
8632         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8633         (_dbus_marshal_object_id): new
8634         (_dbus_demarshal_object_id): new
8635         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8636         consolidate identical switch cases. Don't conditionalize handling
8637         of DBUS_TYPE_UINT64, need to handle the type always.
8638         (_dbus_marshal_validate_arg): consolidate identical cases, and
8639         handle DBUS_TYPE_OBJECT_ID
8640
8641         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8642
8643         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8644
8645 2003-09-28  Havoc Pennington  <hp@pobox.com>
8646
8647         * real 0.13 release
8648
8649 2003-09-28  Havoc Pennington  <hp@pobox.com>
8650
8651         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8652         to work with Debian db2html
8653
8654 2003-09-28  Havoc Pennington  <hp@pobox.com>
8655
8656         * configure.in: 0.13
8657
8658         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8659         stylesheet-images for benefit of Debian
8660         
8661         Change back to using filesystem-linked sockets for the system
8662         bus, so only root can create the default system bus address.
8663         
8664         * bus/system.conf.in: change to use
8665         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8666
8667         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8668         from here.
8669
8670         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8671         here, and AC_DEFINE DBUS_SYSTEM_PATH
8672
8673 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8674
8675         * doc/TODO:
8676         * doc/busconfig.dtd:
8677         Add busconfig DTD.
8678         
8679 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8680
8681         * doc/dbus-specification.sgml:
8682         Add activation reply values.
8683         
8684 2003-08-05  Havoc Pennington  <hp@redhat.com>
8685
8686         * configure.in: 0.12
8687
8688 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8689
8690         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8691         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8692         (add_watch), (remove_watch), (create_source):
8693         Refcount fds, fixes some reentrancy issues.
8694         
8695 2003-07-30  Havoc Pennington  <hp@redhat.com>
8696
8697         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8698         bus address to be abstract if we have abstract sockets
8699
8700         * NEWS: update
8701
8702 2003-07-28  Havoc Pennington  <hp@redhat.com>
8703
8704         * bus/messagebus.in: fix to avoid processname/servicename 
8705         confusion, from Michael Kearey
8706         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8707         
8708 2003-07-23  Havoc Pennington  <hp@pobox.com>
8709
8710         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8711         fix from Andy Hanton to remove broken "+1"
8712
8713 2003-07-16  Havoc Pennington  <hp@pobox.com>
8714
8715         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8716         babysitter process, as suggested by Thomas Leonard, so 
8717         an "eval `dbus-launch --exit-with-session`" will actually 
8718         return
8719
8720 2003-07-16  Havoc Pennington  <hp@pobox.com>
8721
8722         * configure.in: print out EXPANDED_* variables in the summary at
8723         the end; clean up the code that computes EXPANDED_ variables and
8724         get the ones using exec_prefix right. Should make things work
8725         when you build without --prefix
8726
8727 2003-06-29  Havoc Pennington  <hp@pobox.com>
8728
8729         * mono/Test.cs (class Test): fire up a main loop and run it
8730
8731         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8732         done once, the app has to do it
8733
8734 2003-06-26  Havoc Pennington  <hp@pobox.com>
8735
8736         * mono/Connection.cs: set up connection with the glib main loop
8737
8738 2003-07-01  Havoc Pennington  <hp@redhat.com>
8739
8740         * doc/dbus-specification.sgml: clarify the format of a type code,
8741         change suggested by Jim Blandy
8742
8743 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8744
8745         * doc/Makefile.am:
8746         * tools/Makefile.am: Don't assume srcdir == builddir.
8747
8748         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8749         the allocated block.
8750         (_dbus_memory_test): New function.
8751         * dbus/dbus-test.h: Add _dbus_memory_test ().
8752         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8753
8754         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8755         of %c%c%c%c.
8756         (dbus_message_new): Remove obsolete @todo.
8757
8758         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8759         (_dbus_marshal_set_uint64): Fix comment.
8760
8761         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8762         hardcode FIELD_REPLY_SERIAL.
8763
8764         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8765         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8766
8767         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8768         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8769
8770 2003-06-24  Havoc Pennington  <hp@pobox.com>
8771
8772         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8773
8774 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8775
8776         * configure.in:
8777         * gcj/.cvsignore:
8778         * gcj/Hello.java:
8779         * gcj/Makefile.am:
8780         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8781         * gcj/org/.cvsignore:
8782         * gcj/org/Makefile.am:
8783         * gcj/org/freedesktop/.cvsignore:
8784         * gcj/org/freedesktop/Makefile.am:
8785         * gcj/org/freedesktop/dbus/.cvsignore:
8786         * gcj/org/freedesktop/dbus/Makefile.am:
8787         * gcj/org/freedesktop/dbus/Message.java: (Message),
8788         (Message.Message):
8789         * gcj/org/freedesktop/dbus/natMessage.cc:
8790         Fix the build system.
8791
8792 2003-06-22  Havoc Pennington  <hp@pobox.com>
8793
8794         * mono/Connection.cs: add more bindings
8795
8796         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8797         more than once.
8798
8799 2003-06-22  Havoc Pennington  <hp@pobox.com>
8800
8801         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8802         Start wrapping more stuff.
8803
8804 2003-06-22  Havoc Pennington  <hp@pobox.com>
8805
8806         * mono/Message.cs: implement Message.Wrap() that ensures we only
8807         have a single C# wrapper per DBusMessage, assuming it works which
8808         it probably doesn't.
8809
8810         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8811         (dbus_message_free_data_slot): new
8812         (dbus_message_set_data): new
8813         (dbus_message_get_data): new
8814
8815 2003-06-22  Havoc Pennington  <hp@pobox.com>
8816
8817         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8818         (_dbus_data_slot_allocator_alloc): rework these to keep a
8819         reference count on each slot and automatically manage a global
8820         slot ID variable passed in by address
8821
8822         * bus/bus.c: convert to new dataslot API
8823
8824         * dbus/dbus-bus.c: convert to new dataslot API
8825
8826         * dbus/dbus-connection.c: convert to new dataslot API
8827
8828         * dbus/dbus-server.c: convert to new dataslot API
8829
8830         * glib/dbus-gmain.c: ditto
8831
8832         * bus/test.c: ditto
8833
8834         * bus/connection.c: ditto
8835
8836 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8837
8838         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8839         after the gcj checks so that the correct configuration tags
8840         will be added to libtool.
8841
8842         * dbus-glib-1.pc.in: No need to specify any includes since
8843         dbus-1.pc.in has those.
8844
8845 2003-06-22  Havoc Pennington  <hp@pobox.com>
8846
8847         * mono/*, gcj/*, configure.in, Makefile.am:
8848         Check in makefiles and subdirs for mono and gcj bindings.
8849         Neither binding actually exists, just trying to get through
8850         all the build and other boring bits.
8851
8852 2003-06-21  Philip Blundell  <philb@gnu.org>
8853
8854         * tools/dbus-monitor.1: Updated.
8855
8856         * tools/dbus-send.1: Likewise.
8857
8858 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8859
8860         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8861         for hangup and error after checking read so we won't discard
8862         pending data if both hangup and read are set.
8863
8864 2003-06-19  Philip Blundell  <philb@gnu.org>
8865
8866         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8867
8868         * tools/dbus-send.c: Accept both --system and --session.
8869
8870         * tools/dbus-monitor.c: Same here.
8871
8872 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8873
8874         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8875         from C++ (Patch by Miloslav Trmac).
8876
8877 2003-06-15  Joe Shaw  <joe@assbarn.com>
8878
8879         * configure.in: Check for socklen_t.
8880
8881         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8882
8883         * test/test-segfault.c: Add #include <sys/time.h>
8884
8885         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8886         dbus-launch needs it.
8887
8888 2003-06-09  Havoc Pennington  <hp@redhat.com>
8889
8890         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8891         SUN_LEN, it breaks abstract socket usage
8892
8893         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8894         starts of lines.
8895
8896 2003-06-04  Havoc Pennington  <hp@pobox.com>
8897
8898         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8899         using unix:abstract=/foo, and when listening in a tmpdir
8900         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8901
8902         * dbus/dbus-transport.c (_dbus_transport_open): support
8903         unix:abstract=/foo
8904
8905         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8906         support abstract sockets
8907
8908         * dbus/dbus-transport-unix.c
8909         (_dbus_transport_new_for_domain_socket): support abstract sockets
8910
8911         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8912         toggle as an argument, implement abstract namespace support
8913         (_dbus_listen_unix_socket): ditto
8914
8915         * configure.in: add --enable-abstract-sockets and implement
8916         a configure check for autodetection of the right value.
8917
8918 2003-06-01  Havoc Pennington  <hp@pobox.com>
8919
8920         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8921         in /tmp (though on Linux this will end up being useless,
8922         when we add abstract namespace support)
8923
8924         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8925         subst'ing it
8926
8927 2003-05-28  Colin Walters  <walters@verbum.org>
8928
8929         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8930
8931 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8932
8933         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8934
8935 2003-05-17  Colin Walters  <walters@gnu.org>
8936
8937         * tools/dbus-send.c: Don't exit with an error code if --help was
8938         passed.  Default to using the session bus instead of the system
8939         one.
8940
8941         * tools/dbus-launch.c: Ditto.
8942
8943         * tools/dbus-monitor.c: Ditto.
8944
8945         * tools/dbus-send.1: Update with new arguments.
8946
8947         * tools/dbus-launch.c: Emit code to export variables.  New
8948         arguments -s and -c to specify shell syntax, and a bit of code to
8949         autodetect syntax.  Also, allow specifying a program to run.
8950
8951         * tools/dbus-launch.1: Update with new arguments.
8952
8953         * tools/dbus-send.1: Ditto.
8954
8955         * tools/dbus-monitor.1: Ditto.
8956
8957 2003-05-17  Havoc Pennington  <hp@pobox.com>
8958
8959         * bus/config-parser.c (merge_included): merge in policies from
8960         child configuration file.
8961
8962         * bus/policy.c (bus_policy_merge): function to merge two policies
8963         together
8964
8965 2003-05-16  Havoc Pennington  <hp@redhat.com>
8966
8967         * dbus/dbus-connection.c: disable verbose lock spew
8968
8969         * tools/dbus-send.c: add --print-reply command line option
8970
8971         * tools/dbus-print-message.h (print_message): new util function
8972         shared by dbus-send and dbus-monitor
8973
8974         * tools/dbus-monitor.c (handler_func): exit on disconnect
8975
8976         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8977         disconnected, don't try to use the read_watch
8978
8979         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8980         so we can find this bug more easily
8981
8982 2003-05-16  Havoc Pennington  <hp@redhat.com>
8983
8984         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8985         NULL as DBusHashTable is annoyingly likely to do.
8986
8987 2003-05-16  Colin Walters  <walters@verbum.org>
8988
8989         * tools/dbus-monitor.c: Add --session argument and usage()
8990         function.
8991
8992         * tools/dbus-monitor.1: Update with new --session arg.
8993
8994         * bus/Makefile.am (install-data-hook): Create
8995         $(libdir)/dbus-1.0/services so that the session bus is happy.
8996
8997 2003-05-15  Havoc Pennington  <hp@redhat.com>
8998
8999         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9000         on non-x86. ifdef's are evil.
9001
9002 2003-05-15  Havoc Pennington  <hp@redhat.com>
9003
9004         * configure.in: 0.11
9005
9006         * NEWS: update
9007
9008         * bus/Makefile.am (initddir): apparently we are supposed to put
9009         init scripts in /etc/rc.d/init.d not /etc/init.d
9010
9011         * bus/Makefile.am: remove the "you must --enable-tests to make
9012         check" as it broke distcheck
9013
9014         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9015
9016 2003-05-13  James Willcox  <jwillcox@gnome.org>
9017
9018         * configure.in:
9019         * bus/activation.c: (bus_activation_service_created),
9020         (bus_activation_activate_service):
9021         * bus/driver.c: (bus_driver_send_service_deleted),
9022         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9023         (bus_driver_send_service_acquired),
9024         (bus_driver_send_welcome_message),
9025         (bus_driver_handle_list_services):
9026         * bus/session.conf.in:
9027         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9028         (dbus_bus_service_exists), (dbus_bus_activate_service):
9029         * dbus/dbus-bus.h:
9030
9031         Add some convenience API which lets you activate a service, and did a
9032         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9033         and dbus_message_get_args()
9034
9035 2003-05-11  Havoc Pennington  <hp@pobox.com>
9036
9037         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9038         calling _dbus_marshal_validate_arg() for every byte in a byte
9039         array, etc.
9040
9041         * dbus/dbus-message-handler.c: use atomic reference counting to
9042         reduce number of locks slightly; the global lock in here sucks
9043
9044         * dbus/dbus-connection.c
9045         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9046         update_dispatch_status that can be called with lock held; then use
9047         in a couple places to reduce locking/unlocking
9048         (dbus_connection_send): hold the lock over the whole function
9049         instead of acquiring it twice.
9050
9051         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9052
9053         * bus/connection.c (bus_connections_setup_connection): fix access
9054         to already-freed memory.
9055
9056         * dbus/dbus-connection.c: keep a little cache of linked list
9057         nodes, to avoid using the global linked list alloc lock in the
9058         normal send-message case. Instead we just use the connection lock
9059         that we already have to take.
9060
9061         * dbus/dbus-list.c (_dbus_list_find_last): new function
9062
9063         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9064         change to use a struct for the atomic type; fix docs,
9065         they return value before increment, not after increment.
9066
9067         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9068         (_dbus_string_append_8_aligned): new functions to try to
9069         microoptimize this operation.
9070         (reallocate_for_length): break this out of set_length(), to
9071         improve profile info, and also so we can consider inlining the
9072         set_length() part.
9073
9074         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9075         strings with some preallocation, cuts down on our calls to realloc
9076         a fair bit. Though if we can get the "move entire string to empty
9077         string" optimization below to kick in here, it would be better.
9078
9079         * dbus/dbus-string.c (_dbus_string_move): just call
9080         _dbus_string_move_len
9081         (_dbus_string_move_len): add a special case for moving
9082         an entire string into an empty string; we can just
9083         swap the string data instead of doing any reallocs.
9084         (_dbus_string_init_preallocated): new function
9085
9086 2003-05-11  Havoc Pennington  <hp@pobox.com>
9087
9088         Write a "test-profile" that does echo client-server with threads;
9089         profile reveals lock contention, memcpy/realloc of buffers, and
9090         UTF-8 validation as hot spots. 20% of lock contention eliminated
9091         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9092         contention is global mempool locks for GList and DBusList.
9093
9094         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9095         x86 implementation
9096
9097         * dbus/dbus-connection.c (struct DBusConnection): use
9098         dbus_atomic_t for the reference count
9099
9100         * dbus/dbus-message.c (struct DBusMessage): declare
9101         dbus_atomic_t values as volatile
9102
9103         * configure.in: code to detect ability to use atomic integer
9104         operations in assembly, from GLib patch
9105
9106         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9107         time, tired of it being wrong in threads and forked processes
9108
9109         * glib/test-profile.c: a little program to bounce messages back
9110         and forth between threads and eat CPU
9111
9112         * dbus/dbus-connection.c: add debug spew macros for debugging
9113         thread locks; include config.h at top; fix deadlock in
9114         dbus_connection_flush()
9115
9116 2003-05-08  Havoc Pennington  <hp@pobox.com>
9117
9118         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9119         data from getting written, and there wasn't a good reason to
9120         use _exit really.
9121
9122         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9123         dbus_verbose lines in test coverage
9124         (main): add list of functions sorted by # of untested blocks
9125         to the coverage report
9126
9127         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9128
9129         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9130
9131         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9132         extend test coverage
9133
9134         * test/data/auth/cancel.auth-script: test canceling an
9135         authentication
9136
9137         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9138         aren't used. in CVS history if we end up needing them.
9139
9140 2003-05-04  Havoc Pennington  <hp@pobox.com>
9141
9142         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9143         unit test
9144
9145         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9146         function, which assumed length was in # of strings, not bytes
9147
9148         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9149         missing coverage
9150
9151         * dbus/dbus-connection.c
9152         (_dbus_connection_queue_received_message): disable function for
9153         now, we are only using it in test mode
9154
9155         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9156         remove a mistaken FIXME
9157
9158 2003-05-04  Havoc Pennington  <hp@pobox.com>
9159
9160         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9161         unlock mutex on successful return, patch from Anders Gustafsson
9162
9163 2003-05-04  Havoc Pennington  <hp@pobox.com>
9164
9165         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9166         Anders Gustafsson
9167
9168 2003-05-04  Havoc Pennington  <hp@pobox.com>
9169
9170         * tools/dbus-launch.c: implement
9171
9172         * bus/main.c (main), bus/bus.c (bus_context_new):
9173         implement --print-pid and --fork
9174
9175 2003-05-03  Havoc Pennington  <hp@redhat.com>
9176
9177         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9178         the address had no value, and add to test suite. Fix and
9179         regression test from Miloslav Trmac
9180
9181 2003-05-03  Havoc Pennington  <hp@pobox.com>
9182
9183         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9184         watch is invalid when handled
9185
9186         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9187         dbus-launch utility to launch the bus from a shell script.  Didn't
9188         actually implement dbus-launch yet, it's just a placeholder still.
9189
9190 2003-05-03  Havoc Pennington  <hp@pobox.com>
9191
9192         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9193         daemon; also documents daemon config file, so replaces
9194         doc/config-file.txt. Corrected some stuff from config-file.txt in
9195         the process of moving it.
9196
9197 2003-05-03  Havoc Pennington  <hp@pobox.com>
9198
9199         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9200         add some man pages
9201
9202 2003-05-03  Colin Walters  <walters@verbum.org>
9203
9204         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9205         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9206
9207         * Makefile.am: Update to use new .pc versioning scheme.
9208
9209 2003-05-02  Havoc Pennington  <hp@redhat.com>
9210
9211         * bus/system.conf.in: allow send/receive to/from message bus
9212         service
9213
9214 2003-04-30  Havoc Pennington  <hp@redhat.com>
9215
9216         * configure.in: print a note when building with unit tests and
9217         without assertions
9218
9219 2003-04-30  Havoc Pennington  <hp@redhat.com>
9220
9221         * Makefile.am: add a check-local that complains if you didn't
9222         configure with --enable-tests
9223
9224 2003-04-29  Havoc Pennington  <hp@redhat.com>
9225
9226         * glib/dbus-gmain.c: docs cleanups
9227
9228         * dbus/dbus-types.h: add docs on int64 types
9229
9230         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9231         public API docs section
9232
9233 2003-04-29  Havoc Pennington  <hp@redhat.com>
9234
9235         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9236         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9237         parallel install API version, not with the D-BUS package version.
9238
9239         * HACKING: move some of README over here
9240
9241         * README: updates, and document API/ABI policy
9242
9243         * configure.in: reindentation
9244
9245 2003-04-29  Havoc Pennington  <hp@redhat.com>
9246
9247         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9248         to use this library" to be sure people have the right
9249         expectations.
9250
9251 2003-04-28  Havoc Pennington  <hp@redhat.com>
9252
9253         * configure.in: add --enable-docs which by default is auto yes if
9254         doxygen and db2html found, no otherwise; but can be forced on/off
9255
9256         * doc/Makefile.am: conditionalize whether to build docs on
9257         --enable-docs
9258
9259 2003-04-28  Havoc Pennington  <hp@redhat.com>
9260
9261         * configure.in: 0.10
9262
9263         * NEWS: update
9264
9265         * bus/system.conf.in: add <includedir>system.d</includedir>
9266
9267         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9268         username was provided but not uid
9269
9270         * bus/config-parser.c (struct BusConfigParser): keep track of
9271         whether the parser is toplevel or was included; change some
9272         of the error handling if it's included.
9273
9274 2003-04-27  Havoc Pennington  <hp@pobox.com>
9275
9276         Unbreak my code...
9277
9278         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9279         report correct status if we finish processing authentication
9280         inside this function.
9281
9282         * bus/activation.c (try_send_activation_failure): use
9283         bus_transaction_send_error_reply
9284
9285         * bus/connection.c (bus_connection_get_groups): return an error
9286         explaining the problem
9287
9288         * bus/bus.c (bus_context_check_security_policy): implement
9289         restriction here that inactive connections can only send the
9290         hello message. Also, allow bus driver to send anything to
9291         any recipient.
9292
9293         * bus/connection.c (bus_connection_complete): create the
9294         BusClientPolicy here instead of on-demand.
9295         (bus_connection_get_policy): don't return an error
9296
9297         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9298         sender field in message being replied to
9299
9300         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9301         causing it to return FALSE always
9302
9303         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9304         we checked sender rather than destination
9305
9306 2003-04-25  Havoc Pennington  <hp@redhat.com>
9307
9308         test suite is slightly hosed at the moment, will fix soon
9309
9310         * bus/connection.c (bus_connections_expire_incomplete): fix to
9311         properly disable the timeout when required
9312         (bus_connection_set_name): check whether we can remove incomplete
9313         connections timeout after we complete each connection.
9314
9315         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9316         probably still broken.
9317
9318         * bus/services.c (bus_registry_acquire_service): implement max
9319         number of services owned, and honor allow/deny rules on which
9320         services a connection can own.
9321
9322         * bus/connection.c (bus_connection_get_policy): report errors here
9323
9324         * bus/activation.c: implement limit on number of pending
9325         activations
9326
9327 2003-04-25  Havoc Pennington  <hp@redhat.com>
9328
9329         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9330         where we used >= 0 instead of != DBUS_UID_UNSET.
9331
9332 2003-04-25  Havoc Pennington  <hp@redhat.com>
9333
9334         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9335         were toggled without add/remove, fix from Anders Gustafsson
9336
9337 2003-04-24  Havoc Pennington  <hp@redhat.com>
9338
9339         * test/data/valid-config-files/basic.conf: add <limit> tags to
9340         this test
9341
9342         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9343         <limit> tag in configuration file.
9344
9345 2003-04-24  Havoc Pennington  <hp@redhat.com>
9346
9347         * bus/dispatch.c: somehow missed some name_is
9348
9349         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9350         (_dbus_timeout_set_interval): new
9351
9352         * bus/connection.c (bus_connections_setup_connection): record time
9353         when each connection is first set up, and expire them after the
9354         auth timeout passes.
9355
9356 2003-04-24  Havoc Pennington  <hp@redhat.com>
9357
9358         * dbus/dbus-message.c (dbus_message_name_is): rename
9359         (dbus_message_service_is): rename
9360         (dbus_message_sender_is): rename
9361         (dbus_message_get_service): rename
9362
9363 2003-04-24  Havoc Pennington  <hp@redhat.com>
9364
9365         * configure.in: add --enable-checks
9366
9367         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9368
9369         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9370         to use thread locks.
9371         (_dbus_connection_handler_destroyed_locked): move some private
9372         functions into proper docs group
9373
9374         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9375         _dbus_return_val_if_fail
9376
9377         Throughout: use dbus_return_if_fail
9378
9379 2003-04-23  James Willcox  <jwillcox@gnome.org>
9380
9381         * glib/dbus-glib.h:
9382         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9383         (dbus_connection_setup_with_g_main),
9384         (dbus_server_setup_with_g_main):
9385         * glib/test-dbus-glib.c: (main):
9386         * glib/test-thread-client.c: (main):
9387         * glib/test-thread-server.c: (new_connection_callback), (main):
9388         * tools/dbus-monitor.c: (main):
9389
9390         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9391         and dbus_server_setup_with_g_main().
9392
9393 2003-04-20  Havoc Pennington  <hp@pobox.com>
9394
9395         * doc/dbus-specification.sgml: document the restrictions on
9396         message and service names
9397
9398 2003-04-22  Havoc Pennington  <hp@redhat.com>
9399
9400         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9401         support, and do some code cleanups to share more code and
9402         speed up array marshal/demarshal.
9403
9404         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9405
9406         * configure.in: generate dbus-arch-deps.h
9407
9408         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9409         64-bit typecodes
9410
9411 2003-04-22  Havoc Pennington  <hp@redhat.com>
9412
9413         * test/data/valid-messages/opposite-endian.message: fix test
9414         to use proper type for rply field
9415
9416         * test/data/invalid-messages: add tests for below validation
9417
9418         * dbus/dbus-message.c (decode_header_data): validate field types,
9419         and validate that named fields are valid names
9420         (decode_name_field): consider messages in the
9421         org.freedesktop.Local. namespace to be invalid.
9422
9423         * dbus/dbus-string.c (_dbus_string_validate_name): new
9424
9425 2003-04-19  Havoc Pennington  <hp@pobox.com>
9426
9427         * bus/driver.c (bus_driver_handle_hello): check limits and
9428         return an error if they are exceeded.
9429
9430         * bus/connection.c: maintain separate lists of active and inactive
9431         connections, and a count of each. Maintain count of completed
9432         connections per user. Implement code to check connection limits.
9433
9434         * dbus/dbus-list.c (_dbus_list_unlink): export
9435
9436         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9437         number of bytes in the message queue for a connection
9438
9439 2003-04-18  Havoc Pennington  <hp@pobox.com>
9440
9441         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9442
9443         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9444         memleaks
9445
9446         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9447         on realloc be sure to update the pointer in the keyring
9448
9449         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9450         offset to avoid writing to unallocated memory
9451
9452         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9453         try the next mechanism, so we properly handle OOM
9454
9455         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9456         on OOM.
9457         (_dbus_keyring_new): fix OOM bug
9458         (_dbus_keyring_new_homedir): always set error; impose a maximum
9459         number of keys we'll load from the file, mostly to speed up the
9460         test suite and make its OOM checks more useful, but also for
9461         general sanity.
9462
9463         * dbus/dbus-auth.c (process_error_server): reject authentication
9464         if we get an error from the client
9465         (process_cancel): on cancel, send REJECTED, per the spec
9466         (process_error_client): send CANCEL if we get an error from the
9467         server.
9468
9469 2003-04-18  Havoc Pennington  <hp@pobox.com>
9470
9471         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9472         debug spew
9473
9474         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9475         handling problem
9476
9477         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9478         about DBUS_TEST_HOMEDIR once
9479
9480         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9481         the environment
9482
9483         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9484         config file so we test the right thing
9485
9486         Throughout: assorted docs improvements
9487
9488 2003-04-18  Havoc Pennington  <hp@pobox.com>
9489
9490         * glib/dbus-gmain.c: adapt to watch changes
9491
9492         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9493
9494         * dbus/dbus-server.h: remove dbus_server_handle_watch
9495
9496         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9497
9498         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9499         like DBusTimeout, so we don't need dbus_connection_handle_watch
9500         etc.
9501
9502 2003-04-17  Havoc Pennington  <hp@redhat.com>
9503
9504         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9505         database usage so it all goes via the DBusUserDatabase cache.
9506
9507 2003-04-17  Havoc Pennington  <hp@redhat.com>
9508
9509         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9510         there was an OOM watch we skipped, we always return TRUE so we
9511         iterate again to have a look at it again. Fixes test suite hang.
9512         Code rearrangement also lets us lose some memset and only iterate
9513         over callbacks once.
9514
9515         * bus/driver.c (bus_driver_handle_message): sense of test for
9516         reply was backward
9517
9518 2003-04-16  Havoc Pennington  <hp@pobox.com>
9519
9520         * doc/dbus-specification.sgml: make spec say serials are unsigned
9521
9522         * dbus/dbus-message.h: change message serials to unsigned
9523
9524         * dbus/dbus-connection.c: adapt to message serials being unsigned
9525
9526 2003-04-15  Havoc Pennington  <hp@pobox.com>
9527
9528         * bus/bus.c: create and keep around a shared DBusUserDatabase
9529         object.
9530
9531         * bus/connection.c (bus_connection_get_groups): don't cache
9532         groups for user in the connection object, since user database
9533         object now does that.
9534
9535 2003-04-16  Havoc Pennington  <hp@redhat.com>
9536
9537         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9538         list of size counters
9539         (_dbus_message_loader_putback_message_link): put back a popped link
9540
9541         * dbus/dbus-connection.c
9542         (dbus_connection_set_max_live_messages_size): rename
9543         max_received_size
9544         (dbus_connection_get_outgoing_size): get size of outgoing
9545         queue
9546         (_dbus_connection_set_connection_counter): remove this cruft
9547
9548 2003-04-14  Havoc Pennington  <hp@redhat.com>
9549
9550         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9551         caching, but at some point we might want to be able to use a
9552         different database.
9553
9554         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9555         SHA1 conf file to test the sha1 auth mechanism, since the regular
9556         test always uses EXTERNAL when available.
9557
9558         * configure.in,
9559         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9560         add conf file that requires use of sha1 auth
9561
9562 2003-04-13  Havoc Pennington  <hp@pobox.com>
9563
9564         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9565         from Philip Blundell to send messages and monitor them.
9566
9567 2003-04-13  Havoc Pennington  <hp@pobox.com>
9568
9569         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9570         callbacks
9571
9572         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9573         users
9574
9575         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9576         fix to only recover unused bytes if we're already authenticated
9577         (_dbus_transport_get_is_authenticated): fix to still mark us
9578         authenticated if there are unused bytes.
9579
9580         * bus/dispatch.c: implement security policy checking
9581
9582         * bus/connection.c (bus_transaction_send_from_driver): new
9583
9584         * bus/bus.c (bus_context_check_security_policy): new
9585
9586         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9587         now we just set the DBusError and it gets converted to an error
9588         reply.
9589
9590         * bus/connection.c (allow_user_function): enable code using actual
9591         data from the config file
9592
9593         * bus/policy.c (list_allows_user): handle wildcard rules for
9594         user/group connection perms
9595
9596 2003-04-13  Havoc Pennington  <hp@pobox.com>
9597
9598         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9599
9600         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9601
9602         * bus/policy.c (bus_policy_append_mandatory_rule)
9603         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9604         (bus_policy_append_group_rule): new functions
9605
9606 2003-04-12  Havoc Pennington  <hp@pobox.com>
9607
9608         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9609
9610         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9611         the pid/gid/uid, just for paranoia.
9612
9613         * test/break-loader.c (randomly_do_n_things): find a byte
9614         containing a type code, and randomly change it to a different
9615         type code.
9616
9617 2003-04-12  Havoc Pennington  <hp@pobox.com>
9618
9619         * bus/policy.h: change BusPolicy to be the thing from the config
9620         file, and rename old BusPolicy to BusClientPolicy
9621
9622         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9623         match change in how policy works
9624
9625         * dbus/dbus-internals.h: mark assert_not_reached as
9626         __attribute((noreturn))__
9627
9628 2003-04-11  Havoc Pennington  <hp@redhat.com>
9629
9630         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9631         the broadcast service. Use boolean return for ServiceExists.
9632
9633 2003-04-11  Havoc Pennington  <hp@redhat.com>
9634
9635         * configure.in: add another directory to look for qt in.
9636
9637 2003-04-11  Havoc Pennington  <hp@redhat.com>
9638
9639         * AUTHORS: add Colin Walters
9640
9641 2003-04-11  Havoc Pennington  <hp@redhat.com>
9642
9643         * NEWS: update
9644
9645         * configure.in: 0.9
9646
9647 2003-04-11  Havoc Pennington  <hp@redhat.com>
9648
9649         * bus/messagebus.in: remove pid file when stopping the
9650         message bus, since the bus won't have privileges to remove it
9651         itself.
9652
9653 2003-04-11  Havoc Pennington  <hp@redhat.com>
9654
9655         * bus/bus.c (bus_context_new): move credentials change after
9656         creating pidfile
9657
9658 2003-04-11  Havoc Pennington  <hp@pobox.com>
9659
9660         * test/decode-gcov.c: add "below average functions" to the
9661         coverage report, and change how some of the code works.
9662
9663         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9664         not in the coverage stats.
9665
9666         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9667         couple places so running the test suite doesn't result in megaspam.
9668
9669 2003-04-11  Havoc Pennington  <hp@pobox.com>
9670
9671         * bus/dispatch.c (check_existent_service_activation): accept a no
9672         memory error in a place we didn't before
9673
9674         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9675         in case the first one failed," since the test suite is less
9676         broken now.
9677
9678 2003-04-10  Havoc Pennington  <hp@pobox.com>
9679
9680         * bus/dispatch.c (check_segfault_service_activation): add test
9681         for launching an executable that just crashes.
9682
9683         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9684         don't leave a million cores. We'll see how portable this is.
9685
9686 2003-04-10  Havoc Pennington  <hp@pobox.com>
9687
9688         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9689         the possible parent failures before we fork, so that we don't
9690         fail to create a babysitter after creating the child.
9691
9692         * bus/activation.c (bus_activation_activate_service): kill child
9693         if we don't successfully complete the activation.
9694
9695 2003-04-10  Havoc Pennington  <hp@redhat.com>
9696
9697         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9698         the connection if it's disconnected
9699
9700         * bus/activation.c (bus_activation_service_created): use new
9701         transaction features to roll back removal of pending activation if
9702         we don't successfully create the service after all. Don't remove
9703         pending activation if the function fails.
9704
9705         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9706         (_dbus_list_insert_after_link): new code to facilitate
9707         services.c fixes
9708
9709         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9710         new functionality, so we can preallocate the ability to insert
9711         into a hash table.
9712
9713         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9714         allowing us to put custom hooks in a transaction to be used for
9715         cancelling said transaction
9716
9717         * doc/dbus-specification.sgml: add some discussion of secondary
9718         service owners, and disallow zero-length service names
9719
9720         * bus/services.c (bus_registry_acquire_service): new function,
9721         splits out part of bus_driver_handle_acquire_service() and fixes
9722         a bug where we didn't remove the service doing the acquiring
9723         from the secondary queue if we failed to remove the current owner
9724         from the front of the queue.
9725
9726 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9727
9728         * doc/dbus-specification.sgml:
9729         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9730
9731 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9732
9733         * bus/.cvsignore:
9734         * glib/.cvsignore:
9735         * test/.cvsignore:
9736         Added files to cvsignore
9737
9738         * dbus/dbus-message.h:
9739         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9740         Make get_named() take two out argument and return a boolean.
9741         (dbus_message_iter_get_args_valist):
9742         Update usage of get_named().
9743         (dbus_message_iter_append_byte):
9744         Fix typo
9745         (dbus_message_iter_append_named)
9746         Fix typo
9747         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9748         More tests.
9749
9750 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9751
9752         * dbus/dbus-marshal.[ch]:
9753         Add array_type_pos argument to _dbus_marshal_validate_arg.
9754         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9755
9756         * dbus/dbus-message.[ch]:
9757         Multi-dimensional arrays have full type specification in the
9758         outermost array. Iter code re-arranged to handle this.
9759         Added some more iter tests.
9760
9761         * doc/dbus-specification.sgml:
9762         Add me to authors.
9763         Remove old FIXME.
9764         Update new array encoding description.
9765         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9766
9767         * test/data/invalid-messages/array-with-mixed-types.message:
9768         * test/data/valid-messages/array-of-array-of-uint32.message:
9769         Change to the new array format.
9770
9771         * test/data/invalid-messages/too-short-dict.message:
9772         Fix bug in test.
9773
9774         * test/data/valid-messages/recursive-types.message:
9775         Fix up and extend test.
9776
9777 2003-04-10  Havoc Pennington  <hp@pobox.com>
9778
9779         * bus/dispatch.c: lots of fixes
9780
9781         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9782         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9783         that was crack, broke the test service.
9784
9785         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9786         handling to avoid piling up errors if we get a failure on the
9787         first address.
9788
9789         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9790         pid in assertion failures.
9791
9792         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9793         to some fixed size of file descriptor array. Don't return TRUE
9794         anytime a timeout exists, that led to lots of busy loop silliness
9795         in the tests.
9796
9797 2003-04-09  Havoc Pennington  <hp@redhat.com>
9798
9799         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9800         I'd checked this in earlier but hadn't.
9801
9802 2003-04-09  Havoc Pennington  <hp@redhat.com>
9803
9804         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9805         the activation test (man this is getting old!)
9806
9807 2003-04-09  Havoc Pennington  <hp@redhat.com>
9808
9809         * test/test-utils.c: use dispatch status function to fix this up
9810
9811         * bus/connection.c (connection_watch_callback): don't dispatch
9812         from here
9813         (connection_timeout_callback): don't dispatch from here
9814         (bus_connections_setup_connection): set the dispatch status function
9815         (bus_connection_disconnected): unset it
9816
9817         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9818         used to add a connection to be dispatched
9819         (_dbus_loop_iterate): do the dispatching at the end of each
9820         iteration
9821
9822         * dbus/dbus-connection.c
9823         (dbus_connection_set_dispatch_status_function): new function
9824         allowing us to fix up main loop usage
9825         (_dbus_connection_last_unref): free all the various function
9826         user data
9827         (dbus_connection_dispatch): call the DispatchStatusFunction
9828         whenever this function returns
9829         (dbus_connection_handle_watch): call DispatchStatusFunction
9830         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9831         (reply_handler_timeout): call DispatchStatusFunction
9832         (dbus_connection_flush): call DispatchStatusFunction
9833
9834 2003-04-09  Havoc Pennington  <hp@redhat.com>
9835
9836         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9837         a memory leak
9838
9839         * bus/dispatch.c (check_service_activated): fix bug in test
9840
9841         * dbus/dbus-mainloop.c (check_timeout): fix this up
9842
9843         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9844         verbose output so we can sort out output from different processes,
9845         e.g. in the activation case.
9846
9847 2003-04-08  Colin Walters  <walters@gnu.org>
9848
9849         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9850         the pid file.
9851         (bus_context_new): Set it.
9852         (bus_context_unref): Use it to delete the pid file.
9853
9854 2003-04-08  Havoc Pennington  <hp@redhat.com>
9855
9856         * test/data/invalid-messages/array-with-mixed-types.message:
9857         regression test that fails for the moment
9858
9859         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9860         tests for convenience
9861
9862         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9863         array of nil, it broke things.
9864
9865         * test/data/invalid-messages/array-of-nil.message: regression test
9866
9867         * test/data/valid-messages/array-of-array-of-uint32.message:
9868         happened to write this so added it to suite
9869
9870 2003-04-08  Havoc Pennington  <hp@redhat.com>
9871
9872         * bus/driver.c (bus_driver_handle_acquire_service): init
9873         retval/reply before checking name
9874
9875         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9876         recursion depth argument
9877
9878         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9879         in the public struct for future extension
9880
9881         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9882         typo
9883
9884         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9885         message
9886
9887         * doc/dbus-specification.sgml: fix typo
9888
9889 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9890
9891         Implemented recursive types, named types and new-style iters
9892
9893         * bus/driver.c:
9894         * glib/test-thread-client.c: (thread_func):
9895         * glib/test-thread-server.c: (handle_test_message):
9896         * test/test-service.c: (handle_echo):
9897         Update to new api
9898
9899         * dbus/Makefile.am:
9900         * dbus/dbus-dict.c:
9901         * dbus/dbus-dict.h:
9902         * dbus/dbus.h
9903         Remove DBusDict
9904
9905         * dbus/dbus-internals.c: (_dbus_type_to_string):
9906         Update for new types.
9907
9908         * dbus/dbus-marshal.[ch]:
9909         Implement recursive types and the new marshalling format.
9910         Remove hardcoded dict marshalling.
9911         Marshal named types.
9912
9913         * dbus/dbus-message-builder.c:
9914         Add BYTE_ARRAY.
9915         Remove references to old types
9916
9917         * dbus/dbus-message.[ch]:
9918         New non-refcounted iter API that supports recursive iters.
9919         Use iters for appending, including support for recursive
9920         iters.
9921         Add byte and named type support.
9922         Update everything to new marshalling formats.
9923         Add tests for new API.
9924
9925         * dbus/dbus-protocol.h:
9926         Remove old array types.
9927         Add types: BYTE, ARRAY, DICT, NAMED
9928
9929         * dbus/dbus-string.c:
9930         * dbus/dbus-sysdeps.c:
9931         Make parse_double locale safe.
9932
9933         * dbus/dbus-test-main.c:
9934         Call setlocale.
9935
9936         * dbus/dbus-test.c:
9937         Kill dict test
9938
9939         * doc/dbus-specification.sgml:
9940         Update spec
9941
9942         * test/data/incomplete-messages/missing-body.message:
9943         * test/data/invalid-messages/bad-boolean.message:
9944         * test/data/invalid-messages/bad-boolean-array.message:
9945         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9946         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9947         * test/data/invalid-messages/too-short-dict.message:
9948         * test/data/valid-messages/dict-simple.message:
9949         * test/data/valid-messages/dict.message:
9950         * test/data/valid-messages/emptiness.message:
9951         * test/data/valid-messages/lots-of-arguments.message:
9952         * test/data/valid-messages/no-padding.message:
9953         * test/data/valid-messages/recursive-types.message:
9954         Add missing NAME fields
9955         Fix up dicts & arrays
9956
9957         * test/data/invalid-messages/dict-with-nil-value.message:
9958         Removed, this is not invalid anymore.
9959
9960         * test/data/valid-messages/recursive-types.message:
9961         Add new test for deeply recursive types.
9962
9963 2003-04-07  Havoc Pennington  <hp@pobox.com>
9964
9965         * bus/driver.c (bus_driver_handle_acquire_service): return an
9966         error if you try to acquire a service that starts with ':'
9967
9968 2003-04-07  Havoc Pennington  <hp@redhat.com>
9969
9970         * doc/dbus-specification.sgml: require that base service names
9971         start with ':' and that the base service is created/deleted
9972         as first and last things a connection does on the bus
9973
9974         * bus/dispatch.c (check_existent_service_activation): lots more
9975         work on the activation test; it doesn't fully pass yet...
9976
9977         * test/test-service.c (main): fix so we don't memleak the
9978         connection to the message bus
9979         (filter_func): accept a message asking us to exit
9980
9981 2003-04-06  Havoc Pennington  <hp@pobox.com>
9982
9983         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9984         from Colin Walters
9985
9986         * configure.in: fixes to Qt detection from Colin Walters
9987
9988         * doc/Makefile.am: Only remove generated docbook dirs if they
9989         exist, from Colin Walters
9990
9991         * dbus/dbus-bus.c: change how we set well-known connections to
9992         NULL, so that it works if a single connection is stored in
9993         two well-known array slots.
9994
9995         * test/Makefile.am: remove a lot of stuff that isn't immediately
9996         useful, it's in CVS history if we want it.
9997
9998         * test/test-service.c: use dbus-mainloop instead of that
9999         watch.[hc] crack
10000
10001 2003-04-06  Havoc Pennington  <hp@pobox.com>
10002
10003         * dbus/Makefile.am: split lists of sources into stuff that goes in
10004         the library, util functions that go in the lib and are also used
10005         elsewhere, and util functions that are used in tests/daemon but
10006         don't go in the lib.
10007
10008         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10009         here so it can be used in test binaries also
10010
10011 2003-04-06  Havoc Pennington  <hp@pobox.com>
10012
10013         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10014         here in the parent process, so we can return an error if it
10015         fails. Also, move some of the code into the child so the parent
10016         is less hosed if we fail midway through.
10017
10018         * bus/bus.c (bus_context_new): move pidfile detection further up
10019         in the function, before we start overwriting sockets and such.
10020
10021         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10022
10023         * configure.in: add --with-system-pid-file and --with-system-socket
10024
10025 2003-04-06  Colin Walters  <walters@verbum.org>
10026
10027         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10028
10029         * bus/system.conf.in: Declare a pidfile.
10030
10031         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10032         create one (if appropriate).
10033
10034         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10035         (struct BusConfigParser) [pidfile]: New.
10036         (element_type_to_name, merge_included, start_busconfig_child)
10037         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10038         (bus_config_parser_unref): Free it.
10039         (bus_config_parser_get_pidfile): New function.
10040
10041         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10042
10043         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10044
10045         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10046
10047         * dbus/dbus-sysdeps.h: Prototype it.
10048
10049 2003-04-06  Havoc Pennington  <hp@pobox.com>
10050
10051         * bus/bus.c (bus_context_new): print the address in here, rather
10052         than in main(), because we need to do it before forking the daemon
10053
10054         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10055         on the service nonexistent error
10056
10057         * bus/driver.c (bus_driver_handle_acquire_service): set the
10058         sender on the AcquireService reply
10059
10060         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10061         server also listen on a UNIX socket so services can connect to it.
10062
10063 2003-04-06  Havoc Pennington  <hp@pobox.com>
10064
10065         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10066         so it detects deadlocks and also we actually init threads when
10067         debugging.
10068
10069 2003-04-06  Havoc Pennington  <hp@pobox.com>
10070
10071         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10072         save the domain socket name, and unlink it when we disconnect the
10073         server. Means that at least when we exit normally, we won't leave
10074         a bunch of junk in /tmp
10075
10076         * dbus/dbus-transport-unix.c
10077         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10078         memory management). (I was making a real change here but then
10079         didn't)
10080
10081 2003-04-06  Havoc Pennington  <hp@pobox.com>
10082
10083         * bus/bus.c (bus_context_new): fix wrong handling of
10084         server_data_slot_unref() in the error case.
10085
10086         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10087         "(condition) != 0" to _dbus_real_assert so that
10088         "_dbus_assert (pointer)" doesn't cause a warning
10089
10090         * bus/main.c (main): accept --print-address option to print out
10091         the message bus address
10092
10093         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10094
10095         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10096         "tmpdir" option to unix: address on client side
10097
10098         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10099         to unix: address
10100
10101         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10102         we can use to create sockets in the test suite.
10103
10104         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10105         cleanly. To be used for testing.
10106
10107         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10108
10109         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10110
10111         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10112         handle trying to call this when there's no servers active
10113
10114 2003-04-05  Havoc Pennington  <hp@pobox.com>
10115
10116         * NEWS: update
10117
10118         * configure.in: 0.8
10119
10120 2003-04-05  Havoc Pennington  <hp@pobox.com>
10121
10122         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10123         crash on startup. Need to get "try starting the daemon"
10124         in the test suite I guess. ;-)
10125
10126         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10127         tracked the number of open connections; it's better done in
10128         application-specific code as you want it to span all servers etc.
10129
10130 2003-04-05  Havoc Pennington  <hp@pobox.com>
10131
10132         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10133         patch from Colin Walters
10134
10135 2003-04-05  Havoc Pennington  <hp@pobox.com>
10136
10137         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10138         reality; in fact multiple mechanisms are allowed.
10139
10140         * dbus/dbus-internals.c (_dbus_real_assert)
10141         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10142         _dbus_assert_not_reached() into functions, so that they don't show
10143         up in basic block counts for test coverage, and don't use up as
10144         much disk space. Does mean slower execution speed though, so
10145         assumes --disable-asserts is the normal production case.
10146
10147 2003-04-05  Havoc Pennington  <hp@pobox.com>
10148
10149         * test/Makefile.am (dist-hook): also dist *.in files
10150
10151         * NEWS: update
10152
10153         * configure.in: 0.7
10154
10155 2003-04-05  Havoc Pennington  <hp@pobox.com>
10156
10157         * dbus/dbus-string.c: docs warning
10158
10159         * dbus/dbus-spawn.c: missing docs
10160
10161         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10162
10163 2003-04-05  Havoc Pennington  <hp@pobox.com>
10164
10165         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10166         magic from GLib
10167
10168         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10169         to -1 once we've reaped the babysitter
10170         (_dbus_babysitter_handle_watch): do as much work as we can, not
10171         just one go of it
10172
10173         * bus/activation.c: add code using DBusBabysitter so that we
10174         handle it when a service fails to start up properly.
10175         (bus_activation_service_created): don't remove the activation
10176         entries as we go, just let them get removed when we free the pending
10177         activation. Unref reply messages after sending them.
10178
10179 2003-04-05  Havoc Pennington  <hp@pobox.com>
10180
10181         * test/decode-gcov.c (main): print per-directory stats in the report
10182
10183         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10184
10185 2003-04-05  Havoc Pennington  <hp@pobox.com>
10186
10187         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10188
10189         * test/decode-gcov.c: hack up a little program to suck data
10190         out of gcov files. Yes this is sort of silly.
10191
10192         * configure.in: define something in config.h and do an
10193         AM_CONDITIONAL when gcov is enabled
10194
10195 2003-04-04  Havoc Pennington  <hp@redhat.com>
10196
10197         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10198         return a "babysitter" object that is used to monitor the status of
10199         the spawned process and reap it when required.
10200
10201         * test/test-segfault.c, test/test-exit.c,
10202         test/test-sleep-forever.c: binaries that do various lame things,
10203         used in the test suite.
10204
10205         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10206
10207 2003-04-03  Havoc Pennington  <hp@pobox.com>
10208
10209         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10210         in preparation for modifying it, dbus-sysdeps is getting
10211         a bit unmanageable.
10212
10213 2003-04-03  Havoc Pennington  <hp@redhat.com>
10214
10215         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10216         have multiple ones
10217
10218         * bus/*.[hc]: adapt to mainloop change
10219
10220 2003-04-03  Havoc Pennington  <hp@redhat.com>
10221
10222         * bus/activation.c (load_directory): fix up memleaks
10223         (bus_activation_entry_free): free the entry
10224
10225         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10226         we get one from the message bus; fix memleaks.
10227
10228         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10229
10230 2003-04-03  Havoc Pennington  <hp@pobox.com>
10231
10232         * bus/config-parser.c (bus_config_parser_unref): free
10233         list of mechanisms, bug discovered by test suite enhancements
10234         (putting system.conf and session.conf into suite)
10235
10236         * test/Makefile.am, test/test-service.c: add placeholder for a
10237         test service that we'll activate as part of test suite. Doesn't
10238         do anything yet.
10239
10240         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10241         setting NULL value, and use system malloc not dbus_malloc()
10242         when we have unavoidable memleakage.
10243
10244         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10245         didn't work, and support DBUS_BUS_ACTIVATION.
10246
10247         * bus/activation.c (child_setup): pass our well-known bus type to
10248         the child
10249
10250         * bus/config-parser.c: support <type> to specify well-known type
10251
10252         * doc/dbus-specification.sgml: document the env variables to
10253         locate well-known buses and find service activator
10254
10255 2003-04-02  Havoc Pennington  <hp@redhat.com>
10256
10257         * test/Makefile.am (all-local): add a rule to copy tests to
10258         builddir, so we can have generated tests. Use this to remove the
10259         silly hack for testing system.conf and session.conf. Will use this
10260         shortly to generate .service files pointing to test binaries.
10261
10262 2003-04-02  Havoc Pennington  <hp@redhat.com>
10263
10264         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10265         current alloc and needed new length, not max of the doubled
10266         allocation and needed new length. Also, when building tests,
10267         don't do the double-allocation stuff, just realloc every time.
10268
10269 2003-04-02  Havoc Pennington  <hp@redhat.com>
10270
10271         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10272         in error messages
10273         (_dbus_string_get_dirname): new
10274         (_dbus_sysdeps_test): new
10275         (_dbus_directory_open): include dirnames in error messages
10276
10277         * bus/config-parser.c: interpret <include> and <includedir> and
10278         <servicedir> relative to config file location if the given
10279         filename is not absolute.
10280
10281         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10282
10283 2003-04-02  Havoc Pennington  <hp@redhat.com>
10284
10285         * bus/connection.c (bus_transaction_send_error_reply): set sender
10286         service for the error, and unref the reply on success
10287
10288         * bus/activation.c: convert to use BusTransaction so OOM can be
10289         handled correctly
10290         (bus_activation_service_created): set sender of the message
10291
10292 2003-04-01  Havoc Pennington  <hp@redhat.com>
10293
10294         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10295         <includedir> (at least mostly)
10296
10297         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10298         first, then the user ID
10299
10300 2003-04-01  Havoc Pennington  <hp@pobox.com>
10301
10302         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10303         function
10304
10305         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10306
10307         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10308
10309         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10310         socket 0777, and unlink any existing socket.
10311
10312         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10313         the configuration file so specifies; set up auth mechanism
10314         restrictions
10315
10316         * bus/config-parser.c (bus_config_parser_content): add support
10317         for <fork> option and fill in code for <auth>
10318
10319         * bus/system.conf.in: add <fork/> to default configuration,
10320         and limit auth mechanisms to EXTERNAL
10321
10322         * doc/config-file.txt (Elements): add <fork>
10323
10324         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10325         (_dbus_change_identity): new function
10326
10327 2003-03-31  Havoc Pennington  <hp@redhat.com>
10328
10329         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10330         (_dbus_listen_unix_socket): fix off-by-one error in null
10331         termination spotted by Nalin
10332
10333 2003-03-31  Havoc Pennington  <hp@redhat.com>
10334
10335         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10336         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10337         having a real home directory available.
10338
10339 2003-03-31  Havoc Pennington  <hp@redhat.com>
10340
10341         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10342
10343         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10344
10345         * configure.in: add support for specifying a style of init script
10346         to install
10347
10348 2003-03-31  Havoc Pennington  <hp@redhat.com>
10349
10350         Fix some annoying DBusString API and fix all affected code.
10351
10352         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10353         max_length argument
10354         (_dbus_string_get_data): change to return string instead of using
10355         an out param
10356         (_dbus_string_get_const_data): ditto
10357         (_dbus_string_get_data_len): ditto
10358         (_dbus_string_get_const_data_len): ditto
10359
10360 2003-03-31  Havoc Pennington  <hp@redhat.com>
10361
10362         * bus/main.c (main): fix up the command line arguments to be nicer
10363
10364 2003-03-31  Havoc Pennington  <hp@redhat.com>
10365
10366         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10367         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10368         final location that lands in the config file
10369
10370         * bus/config-loader-expat.c (bus_config_load): fix type of
10371         XML_Parser variable
10372
10373         * doc/TODO: remove TODO item for dbus_bus_get()
10374
10375         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10376
10377 2003-03-31  Havoc Pennington  <hp@pobox.com>
10378
10379         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10380         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10381         argument since they are always client side
10382
10383         * dbus/dbus-server.c (dbus_server_get_address): new function
10384
10385         * bus/main.c (main): take the configuration file as an argument.
10386
10387         * test/data/valid-config-files/debug-allow-all.conf: new file to
10388         use with dispatch.c tests for example
10389
10390         * bus/test-main.c (main): require test data dir
10391
10392         * bus/bus.c (bus_context_new): change this to take a
10393         configuration file name as argument
10394
10395         * doc/config-file.txt (Elements): add <servicedir>
10396
10397         * bus/system.conf, bus/session.conf: new files
10398
10399         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10400         well-known socket if none set
10401
10402         * configure.in: create system.conf and session.conf
10403
10404 2003-03-30  Havoc Pennington  <hp@pobox.com>
10405
10406         * bus/config-parser.c: hacking
10407
10408         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10409         to shut down, since it could cause weirdness with the DBusList
10410         lock
10411
10412         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10413         link-oriented stack routines
10414         (alloc_link): free the mempool if the first alloc from it fails
10415
10416         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10417
10418         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10419         from GLib
10420         (_dbus_string_skip_white): new
10421
10422         * doc/config-file.txt (Elements): add <includedir>
10423
10424 2003-03-28  Havoc Pennington  <hp@pobox.com>
10425
10426         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10427         (_dbus_string_copy_data): new functions
10428
10429 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10430
10431         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10432         * dbus/dbus-bus.h:
10433         Add dbus_bus_get.
10434
10435         * dbus/dbus-memory.c:
10436         Fix a doc comment.
10437
10438 2003-03-28  Havoc Pennington  <hp@pobox.com>
10439
10440         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10441         I think it may have just been superstition. Not sure.
10442
10443         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10444         failures that were not being handled.
10445
10446         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10447
10448         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10449         row that will fail on out-of-memory.
10450
10451         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10452         function for testing out-of-memory handling.
10453
10454         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10455         allocation functions, they do map exactly to the expat ones.
10456
10457 2003-03-27  Havoc Pennington  <hp@redhat.com>
10458
10459         * bus/config-loader-libxml.c (bus_config_load): add another error
10460         check
10461
10462 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10463
10464         * doc/TODO:
10465         Add note about automatic service activation.
10466
10467         * doc/dbus-specification.sgml:
10468         Rename the specification and clarify a few things.
10469
10470 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10471
10472         * Doxyfile.in:
10473         * dbus/dbus-address.c:
10474         * dbus/dbus-dict.c:
10475         * dbus/dbus-marshal.c:
10476         * dbus/dbus-server-debug-pipe.c:
10477         * dbus/dbus-transport-unix.c:
10478         Fix documentation warnings.
10479
10480 2003-03-26  Havoc Pennington  <hp@pobox.com>
10481
10482         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10483         after every test so it's quick and easy to see which leaked, and
10484         so we test multiple dbus_shutdown() calls
10485
10486         * configure.in: change configure.in XML stuff to also support
10487         expat
10488
10489         * config-loader-libxml.c: some hacking
10490
10491         * config-loader-expat.c: some hacking
10492
10493         * config-parser.c: some hacking, plus tests
10494
10495 2003-03-25  Havoc Pennington  <hp@redhat.com>
10496
10497         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10498
10499         * configure.in: add --with-xml option to specify XML library,
10500         right now only libxml is supported.
10501
10502         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10503         nonworking code between home and work, still just stubs
10504
10505 2003-03-24  Havoc Pennington  <hp@redhat.com>
10506
10507         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10508         file
10509
10510         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10511         NULL argument for "message" if the error is a well-known one,
10512         fill in a generic message in this case.
10513
10514         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10515         favor of DBusError
10516
10517         * bus/test.c (bus_test_flush_bus): add
10518
10519         * bus/policy.c (bus_policy_test): test code stub
10520
10521 2003-03-24  Havoc Pennington  <hp@pobox.com>
10522
10523         * bus/connection.c (bus_connections_setup_connection): set up
10524         the "can this user connect" function, but it always returns
10525         TRUE until we have a config file parser so we can have a config
10526         file that allows connections.
10527
10528 2003-03-23  Havoc Pennington  <hp@pobox.com>
10529
10530         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10531         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10532         the mutex, so we can check for proper memory management
10533         and OOM handling.
10534
10535         * dbus/dbus-dataslot.c: remove the mutex from
10536         DBusDataSlotAllocator and lock it manually when using it,
10537         to simplify fitting it into the global slots framework.
10538
10539         * dbus/dbus-threads.c (init_static_locks): rework how we're
10540         handling global locks so they are easily shut down.
10541
10542         * bus/policy.c (bus_policy_append_rule): fix
10543
10544         * bus/test-main.c (main): check for memleaks
10545
10546         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10547         test suite check for memleaks
10548
10549         * dbus/dbus-memory.c: add support in test mode for tracking
10550         number of outstanding blocks
10551
10552 2003-03-23  Havoc Pennington  <hp@pobox.com>
10553
10554         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10555         policies code
10556
10557         * dbus/dbus-hash.h: add ULONG hash keys
10558
10559         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10560         (_dbus_get_group_id): new function
10561
10562 2003-03-20  Havoc Pennington  <hp@redhat.com>
10563
10564         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10565         new function
10566         (dbus_connection_get_unix_user): new function
10567
10568 2003-03-20  Havoc Pennington  <hp@pobox.com>
10569
10570         * bus/connection.c (bus_connection_send_oom_error): assert that
10571         message has a sender
10572         (connection_execute_transaction): ditto
10573         (bus_connection_preallocate_oom_error): fix to set the sender, and
10574         set recipient to the destination service, not the bus driver
10575
10576         * bus/policy.c: hacking
10577
10578         * dbus/dbus-message.c (dbus_message_service_is): new function
10579         (dbus_message_sender_is): new
10580
10581 2003-03-19  Havoc Pennington  <hp@redhat.com>
10582
10583         * bus/policy.c: start sketching code for policy restrictions on
10584         what connections can do.
10585
10586 2003-03-18  Havoc Pennington  <hp@redhat.com>
10587
10588         * doc/TODO: some notes on high-level todo items. Little nitpick
10589         stuff is all in @todo, so no need to add it here.
10590
10591         * doc/config-file.txt: some notes on how config file might look
10592
10593 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10594
10595         * configure.in: 0.6
10596
10597         * NEWS: Update.
10598
10599 2003-03-17  Havoc Pennington  <hp@redhat.com>
10600
10601         * dbus/dbus-internals.h: add gcc attributes so that
10602         our printf-style functions warn on bad arguments to
10603         format
10604
10605         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10606         format bug
10607
10608         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10609         printf format bug
10610
10611 2003-03-17  Havoc Pennington  <hp@redhat.com>
10612
10613         * bus/test-main.c (main): make it print something as it runs
10614         so make check doesn't look stuck
10615
10616         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10617         from CVS, now obsolete
10618
10619 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10620
10621         * bus/dispatch.c: (bus_dispatch):
10622         Refetch the service name since it may have been reallocated
10623         when dbus_message_set_sender was called.
10624
10625         * dbus/dbus-sysdeps.c: (_dbus_accept):
10626         Add address and address length variables and use them to stop
10627         valgrind from complaining.
10628
10629 2003-03-17  Havoc Pennington  <hp@pobox.com>
10630
10631         All tests pass, no memleaks, no valgrind complaints.
10632
10633         * bus/test.c: refcount handler_slot
10634
10635         * bus/connection.c (bus_connections_new): refcount
10636         connection_data_slot
10637
10638         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10639         bytes so that auth scripts pass.
10640
10641         * bus/dispatch.c: init message_handler_slot so it gets allocated
10642         properly
10643
10644         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10645
10646         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10647         dealloc server_pipe_hash when no longer used for benefit of
10648         leak checking
10649
10650         * dbus/dbus-auth.c (process_command): memleak fix
10651
10652         * bus/dispatch.c (check_hello_message): memleak fix
10653
10654 2003-03-16  Havoc Pennington  <hp@pobox.com>
10655
10656         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10657
10658 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10659
10660         * bus/activation.c (bus_activation_activate_service): Append
10661         the pending activation entry to the list of pending activations.
10662
10663 2003-03-16  Havoc Pennington  <hp@pobox.com>
10664
10665         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10666         connections
10667
10668         * dbus/dbus-address.c (create_entry): fix OOM handling when
10669         failing to alloc entry->method
10670
10671 2003-03-16  Havoc Pennington  <hp@pobox.com>
10672
10673         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10674         the watch
10675
10676         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10677         add some missing dbus_set_result
10678
10679         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10680         alloc the DBusMessageHandler
10681
10682         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10683         the transport here, since we call this from the finalizer; it
10684         resulted in a double-finalize.
10685
10686         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10687         where we tried to use transport->connection that was NULL,
10688         happened when transport was disconnected early on due to OOM
10689
10690         * bus/*.c: adapt to handle OOM for watches/timeouts
10691
10692         * dbus/dbus-transport-unix.c: port to handle OOM during
10693         watch handling
10694
10695         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10696         reference to unused bytes instead of a copy
10697
10698         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10699         out of memory
10700
10701         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10702         FALSE on OOM
10703
10704         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10705         of memory
10706
10707 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10708
10709         * doc/dbus-specification.sgml:
10710         Document reply message for ActivateService.
10711
10712 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10713
10714         * bus/activation.c: (bus_pending_activation_entry_free),
10715         (bus_pending_activation_free), (bus_activation_new),
10716         (bus_activation_unref), (bus_activation_service_created),
10717         (bus_activation_activate_service):
10718         * bus/activation.h:
10719         * bus/bus.c: (bus_context_new):
10720         * bus/desktop-file.c: (new_section):
10721         * bus/driver.c: (bus_driver_send_service_deleted),
10722         (bus_driver_handle_activate_service):
10723         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10724         * bus/services.h:
10725         * dbus/dbus-connection.c:
10726         (dbus_connection_send_with_reply_and_block):
10727         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10728         * dbus/dbus-protocol.h:
10729         Make activation work better. Now pending activations will be queued
10730         and the daemon won't try to activate services that are already registered.
10731
10732 2003-03-16  Havoc Pennington  <hp@pobox.com>
10733
10734         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10735         connection data
10736
10737         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10738         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10739
10740 2003-03-16  Havoc Pennington  <hp@pobox.com>
10741
10742         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10743         this. always run the test suite before commit...
10744
10745         * bus/*: adapt to DBusConnection API changes
10746
10747         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10748         requires renaming stuff to avoid dbus_connection_dispatch name
10749         conflict.
10750
10751         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10752         function
10753
10754         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10755         separate from _dbus_message_loader_return_buffer()
10756
10757         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10758         this, because it's now always broken to use; the number of
10759         messages in queue vs. the number still buffered by the message
10760         loader is undefined/meaningless. Should use
10761         dbus_connection_get_dispatch_state().
10762         (dbus_connection_dispatch): rename from
10763         dbus_connection_dispatch_message
10764
10765 2003-03-16  Havoc Pennington  <hp@pobox.com>
10766
10767         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10768         implementation
10769
10770 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10771
10772         * dbus/dbus-connection.c:
10773         (dbus_connection_send_with_reply_and_block):
10774         Decrease connection->n_incoming when removing an entry
10775         from the list.
10776         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10777         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10778         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10779         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10780         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10781         (dbus_dict_get_byte_array):
10782         Handle NULL arrays and strings. Also add support for byte arrays.
10783
10784         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10785         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10786         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10787         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10788         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10789         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10790         * dbus/dbus-marshal.h:
10791         Add support for marshalling and demarshalling empty arrays and strings.
10792
10793         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10794         (dbus_message_append_string_array),
10795         (dbus_message_iter_get_boolean),
10796         (dbus_message_iter_get_boolean_array),
10797         (dbus_message_iter_get_int32_array),
10798         (dbus_message_iter_get_uint32_array),
10799         (dbus_message_iter_get_double_array),
10800         (dbus_message_iter_get_byte_array),
10801         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10802         (check_message_handling):
10803         Add support for getting empty arrays and dicts.
10804
10805         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10806         Don't do any validation at all for now, that's better than just checking
10807         for ASCII.
10808
10809         * test/data/valid-messages/emptiness.message:
10810         New test message with lots of empty arrays.
10811
10812 2003-03-16  Havoc Pennington  <hp@pobox.com>
10813
10814         * dbus/dbus-connection.c
10815         (_dbus_connection_queue_received_message_link): new function that
10816         can't fail due to OOM
10817
10818         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10819         new function pops a message together with a list link
10820         containing it.
10821
10822         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10823         message queuing functions to avoid needing to alloc memory
10824
10825 2003-03-16  Havoc Pennington  <hp@pobox.com>
10826
10827         Oops - test code was only testing failure of around 30 of the
10828         mallocs in the test path, but it turns out there are 500+
10829         mallocs. I believe this was due to misguided linking setup such
10830         that there was one copy of dbus_malloc etc. in the daemon and one
10831         in the shared lib, and only daemon mallocs were tested. In any
10832         case, the test case now tests all 500+ mallocs, and doesn't pass
10833         yet, though there are lots of fixes in this patch.
10834
10835         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10836         this so that it doesn't need to allocate memory, since it
10837         has no way of indicating failure due to OOM (and would be
10838         annoying if it did).
10839
10840         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10841
10842         * bus/Makefile.am: rearrange to create two self-contained
10843         libraries, to avoid having libraries with overlapping symbols.
10844         that was resulting in weirdness, e.g. I'm pretty sure there
10845         were two copies of global static variables.
10846
10847         * dbus/dbus-internals.c: move the malloc debug stuff to
10848         dbus-memory.c
10849
10850         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10851         empty.
10852
10853         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10854
10855         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10856         on failure.
10857
10858         * bus/dispatch.c (bus_dispatch_add_connection): free
10859         message_handler_slot when no longer using it, so
10860         memory leak checkers are happy for the test suite.
10861
10862         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10863
10864         * bus/bus.c (new_connection_callback): disconnect in here if
10865         bus_connections_setup_connection fails.
10866
10867         * bus/connection.c (bus_connections_unref): fix to free the
10868         connections
10869         (bus_connections_setup_connection): if this fails, don't
10870         disconnect the connection, just be sure there are no side
10871         effects.
10872
10873         * dbus/dbus-string.c (undo_alignment): unbreak this
10874
10875         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10876         leaking
10877         (_dbus_auth_new): fix the order in which we free strings
10878         on OOM failure
10879
10880         * bus/connection.c (bus_connection_disconnected): fix to
10881         not send ServiceDeleted multiple times in case of memory
10882         allocation failure
10883
10884         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10885         get the base service name
10886         (dbus_bus_register_client): don't return base service name,
10887         instead store it on the DBusConnection and have an accessor
10888         function for it.
10889         (dbus_bus_register_client): rename dbus_bus_register()
10890
10891         * bus/dispatch.c (check_hello_message): verify that other
10892         connections on the bus also got the correct results, not
10893         just the one sending hello
10894
10895 2003-03-15  Havoc Pennington  <hp@pobox.com>
10896
10897         Make it pass the Hello handling test including all OOM codepaths.
10898         Now to do other messages...
10899
10900         * bus/services.c (bus_service_remove_owner): fix crash when
10901         removing owner from an empty list of owners
10902         (bus_registry_ensure): don't leave service in the list of
10903         a connection's owned services if we fail to put the service
10904         in the hash table.
10905
10906         * bus/connection.c (bus_connection_preallocate_oom_error): set
10907         error flag on the OOM error.
10908
10909         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10910         handle _dbus_transport_set_connection failure
10911
10912         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10913         to create watches up front and simply enable/disable them as
10914         needed.
10915         (unix_connection_set): this can now fail on OOM
10916
10917         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10918         of enabling/disabling a watch or timeout.
10919
10920         * bus/loop.c (bus_loop_iterate): don't touch disabled
10921         watches/timeouts
10922
10923         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10924
10925 2003-03-15  Havoc Pennington  <hp@pobox.com>
10926
10927         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10928         write useful test code, after all that futzing around ;-)
10929
10930         Test does not yet pass because we can't handle OOM in
10931         _dbus_transport_messages_pending (basically,
10932         dbus_connection_preallocate_send() does not prealloc the write
10933         watch). To fix this, I think we need to add new stuff to
10934         set_watch_functions, namely a SetEnabled function so we can alloc
10935         the watch earlier, then enable it later.
10936
10937         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10938         dbus-memory.c to the convenience lib
10939
10940         * bus/test.c: rename some static functions to keep them clearly
10941         distinct from stuff in connection.c. Handle client disconnection.
10942
10943 2003-03-14  Havoc Pennington  <hp@pobox.com>
10944
10945         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10946         transport, tests more of the real codepath. Set up clients
10947         with bus_setup_debug_client.
10948
10949         * bus/test.c (bus_setup_debug_client): function to set up debug
10950         "clients" on the main loop
10951
10952         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10953         support
10954
10955         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10956         server type
10957
10958         * dbus/dbus-server-debug.c: support a debug server based on pipes
10959
10960         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10961         (_dbus_close): new function
10962
10963         * configure.in: check for socketpair
10964
10965 2003-03-14  Havoc Pennington  <hp@redhat.com>
10966
10967         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10968         cheesy hack
10969
10970         * dbus/dbus-transport-debug.c: rework this a good bit to be
10971         less complicated. hopefully still works.
10972
10973         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10974         manually
10975
10976         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10977         after running it
10978
10979         * dbus/dbus-message.c (dbus_message_copy): rename from
10980         dbus_message_new_from_message, fix it up to copy
10981         all the message fields, add test case
10982
10983         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10984         not quite passing yet
10985
10986 2003-03-14  Havoc Pennington  <hp@pobox.com>
10987
10988         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10989         until no work remains" in test code. (the large diff here
10990         is just code movement, no actual changes)
10991
10992         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10993         1, no point waiting around for test code.
10994         (_dbus_server_debug_accept_transport): unref the timeout
10995         after adding it (right?)
10996
10997         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10998
10999 2003-03-13  Havoc Pennington  <hp@redhat.com>
11000
11001         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11002         out of memory
11003
11004         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11005         of memory
11006
11007         * dbus/dbus-connection.h: Make AddWatchFunction and
11008         AddTimeoutFunction return a bool so they can fail on out-of-memory
11009
11010         * bus/bus.c (bus_context_new): set up timeout handlers
11011
11012         * bus/connection.c (bus_connections_setup_connection): set up
11013         timeout handlers
11014
11015         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11016         can fail
11017
11018         * bus/bus.c (bus_context_new): adapt to changes
11019
11020         * bus/connection.c: adapt to changes
11021
11022         * test/watch.c: adapt to DBusWatch changes
11023
11024         * bus/dispatch.c (bus_dispatch_test): started adding this but
11025         didn't finish
11026
11027 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11028
11029         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11030
11031 2003-03-13  Havoc Pennington  <hp@pobox.com>
11032
11033         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11034         set up a test framework as for the library
11035
11036 2003-03-12  Havoc Pennington  <hp@pobox.com>
11037
11038         Throughout: purge global variables, introduce BusActivation,
11039         BusConnections, BusRegistry, etc. objects instead.
11040
11041         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11042         message bus object
11043
11044         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11045         going to redo this a bit differently I think
11046
11047 2003-03-12  Havoc Pennington  <hp@redhat.com>
11048
11049         Mega-patch that gets the message bus daemon initially handling
11050         out-of-memory. Work still needed. Also lots of random
11051         moving stuff to DBusError instead of ResultCode.
11052
11053         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11054
11055         * dbus/dbus-connection.c
11056         (dbus_connection_send_with_reply_and_block): use DBusError
11057
11058         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11059         DBusResultCode
11060
11061         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11062         code here, as the only failure possible is OOM.
11063
11064         * bus/connection.c (bus_connection_disconnect):
11065         rename bus_connection_disconnected as it's a notification only
11066
11067         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11068         "name" on get_args failure, should be done by get_args;
11069         don't disconnect client for bad args, just return an error.
11070         (bus_driver_handle_service_exists): ditto
11071
11072         * bus/services.c (bus_services_list): NULL-terminate returned array
11073
11074         * bus/driver.c (bus_driver_send_service_lost)
11075         (bus_driver_send_service_acquired): send messages from driver to a
11076         specific client to the client's unique name, not to the broadcast
11077         service.
11078
11079         * dbus/dbus-message.c (decode_header_data): reject messages that
11080         contain no name field
11081         (_dbus_message_get_client_serial): rename to
11082         dbus_message_get_serial and make public
11083         (_dbus_message_set_serial): rename from set_client_serial
11084         (_dbus_message_set_reply_serial): make public
11085         (_dbus_message_get_reply_serial): make public
11086
11087         * bus/connection.c (bus_connection_foreach): allow stopping
11088         iteration by returning FALSE from foreach function.
11089
11090         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11091         (dbus_connection_free_preallocated_send)
11092         (dbus_connection_preallocate_send): new API for sending a message
11093         without possibility of malloc failure.
11094         (dbus_connection_send_message): rename to just
11095         dbus_connection_send (and same for whole function family)
11096
11097         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11098
11099         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11100
11101         * bus/activation.c: handle/return errors
11102
11103         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11104
11105         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11106         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11107         (_dbus_result_from_errno): move to this file
11108
11109 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11110
11111         * dbus/dbus-marshal.c:
11112         (_dbus_marshal_set_string):
11113         Take a length argument so we can marshal the correct string
11114         length.
11115
11116         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11117         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11118         (_dbus_marshal_test):
11119         * dbus/dbus-marshal.h:
11120         Add support for marshalling and demarshalling dicts.
11121
11122         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11123         Add support for TYPE DICT.
11124
11125         * dbus/dbus-message.c: (set_string_field):
11126         Adjust header padding.
11127
11128         (dbus_message_append_args_valist), (dbus_message_append_dict),
11129         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11130         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11131         (check_message_handling), (check_have_valid_message):
11132         * dbus/dbus-message.h:
11133         Add functions for setting and getting dicts.
11134
11135         * dbus/dbus-protocol.h:
11136         Add DBUS_TYPE_DICT.
11137
11138         * dbus/dbus.h:
11139         Add dbus-dict.h
11140
11141         * doc/dbus-specification.sgml:
11142         Add information about how dicts are marshalled.
11143
11144         * test/data/invalid-messages/dict-with-nil-value.message:
11145         * test/data/invalid-messages/too-short-dict.message:
11146         * test/data/valid-messages/dict-simple.message:
11147         * test/data/valid-messages/dict.message:
11148         Add sample messages containing dicts.
11149
11150 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11151
11152         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11153
11154 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11155
11156         * dbus/Makefile.am:
11157         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11158         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11159         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11160         (dbus_dict_set_double), (dbus_dict_set_string),
11161         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11162         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11163         (dbus_dict_set_string_array), (_dbus_dict_test):
11164         * dbus/dbus-dict.h:
11165         Fix according to comments from Havoc.
11166
11167 2003-03-06  Michael Meeks  <michael@server.home>
11168
11169         * configure.in: if we don't have kde-config, disable have_qt.
11170
11171 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11172
11173         * dbus/Makefile.am:
11174         Add dbus-dict.[ch]
11175
11176         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11177         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11178         (dbus_dict_remove), (dbus_dict_get_value_type),
11179         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11180         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11181         (dbus_dict_put_double), (dbus_dict_put_string),
11182         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11183         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11184         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11185         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11186         (dbus_dict_get_double), (dbus_dict_get_string),
11187         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11188         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11189         (dbus_dict_get_string_array), (_dbus_dict_test):
11190         * dbus/dbus-dict.h:
11191         Add DBusDict implementation
11192
11193         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11194         * dbus/dbus-test.h:
11195         Add _dbus_dict_test
11196
11197 2003-03-04  Havoc Pennington  <hp@pobox.com>
11198
11199         * test/data/auth/*: adapt to changes
11200
11201         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11202         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11203         userid
11204
11205         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11206         more stuff from being in a context name, to make the protocol
11207         simpler to deal with
11208
11209         * dbus/dbus-errors.c (dbus_error_has_name): new function
11210         (dbus_error_is_set): new function
11211
11212         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11213         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11214
11215         * dbus/dbus-connection.c (dbus_connection_flush): also read
11216         messages during a flush operation
11217
11218         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11219
11220 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11221
11222         * configure.in: Check for gethostbyname on Solaris.
11223
11224         * dbus/dbus-transport.c: (_dbus_transport_open):
11225         Remove duplicate "tcp" entry.
11226
11227         * doc/dbus-specification.sgml:
11228         Clarify some things.
11229
11230 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11231
11232         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11233         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11234         (_dbus_keyring_test):
11235         * dbus/dbus-md5.c: (_dbus_md5_compute):
11236         * dbus/dbus-sha.c: (_dbus_sha_compute):
11237         Plug memory leaks.
11238
11239 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11240
11241         * README: Add some things.
11242
11243 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11244
11245         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11246         after case DBUS_TYPE_BOOELAN.
11247
11248 2003-03-02  Havoc Pennington  <hp@pobox.com>
11249
11250         * test/break-loader.c (randomly_set_extreme_ints): add test that
11251         sets really huge and small integers
11252
11253         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11254         that length of boolean array fits in the string, and that
11255         string has room for boolean value in single-bool case.
11256
11257         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11258         optional value to "ALIGN" command which is what to fill the
11259         alignment with.
11260
11261         * test/data/valid-messages/no-padding.message: add regression
11262         test for the message padding problem
11263
11264 2003-03-02  Havoc Pennington  <hp@pobox.com>
11265
11266         * dbus/dbus-message.c (decode_header_data): fix to always init
11267         message_padding, from Benjamin Dauvergne
11268
11269 2003-03-02  Havoc Pennington  <hp@pobox.com>
11270
11271         * configure.in: 0.5
11272
11273         * NEWS: Update.
11274
11275 2003-03-01  Joe Shaw  <joe@assbarn.com>
11276
11277         * configure.in: Check for "struct cmsgcred" and try to access its
11278         members for BSD-like unices.
11279
11280         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11281         _dbus_read_credentials_unix_socket().
11282         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11283         read() for reading the credential byte off the unix socket.  Use
11284         struct cmsgcred on systems that support it.
11285
11286 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11287
11288         * glib/Makefile.am:
11289         * configure.in:
11290         Make gthreads-2.0 dependency optional. Don't build thread test if
11291         its not found.
11292
11293 2003-02-27  Havoc Pennington  <hp@pobox.com>
11294
11295         * dbus/dbus-connection.c
11296         (dbus_connection_send_message_with_reply_and_block): fix doh!
11297         doh! doh! bug that resulted in never removing a reply from the
11298         queue, no wonder we called get_reply_serial so much ;-)
11299
11300         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11301         and client serial instead of demarshaling them every time
11302
11303 2003-02-27  Havoc Pennington  <hp@pobox.com>
11304
11305         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11306         more inlined, using dbus-string-private.h, speeds things up
11307         substantially
11308
11309         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11310         when freeing the string
11311         (_dbus_string_steal_data): fix for align offset
11312         (undo_alignment): new function
11313
11314 2003-02-26  Havoc Pennington  <hp@redhat.com>
11315
11316         All kinds of audit fixes from Owen, plus initial attempt to
11317         handle unaligned memory returned from malloc.
11318
11319         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11320         leave room for align_offset and nul byte
11321         (fixup_alignment): function to track an align_offset and
11322         ensure real->str is aligned
11323         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11324         to allow a nul byte plus align offset
11325         (_dbus_string_lock): fix overflow issue
11326         (_dbus_string_init_const_len): add assertions on sanity of len,
11327         assign allocated to be ALLOCATION_PADDING larger than len
11328         (set_length): fixup the overflow handling
11329         (_dbus_string_get_data_len): fix overflow in assertion
11330         (open_gap): detect overflow in size of gap to be opened
11331         (_dbus_string_lengthen): add overflow check
11332         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11333         (_dbus_string_append): add overflow check
11334         (_dbus_string_append_unichar): overflow
11335         (_dbus_string_delete): fix overflow in assertion
11336         (_dbus_string_copy_len): overflow in assertion
11337         (_dbus_string_replace_len): overflows in assertions
11338         (_dbus_string_find): change to implement in terms of
11339         _dbus_string_find_to
11340         (_dbus_string_find_to): assorted fixage
11341         (_dbus_string_equal_c_str): assert c_str != NULL,
11342         fix logic so the function works
11343         (_dbus_string_ends_with_c_str): fix overflow thingy
11344         (_dbus_string_base64_encode): overflow fix
11345         (_dbus_string_validate_ascii): overflow
11346         (_dbus_string_validate_nul): overflow
11347
11348 2003-02-26  Havoc Pennington  <hp@redhat.com>
11349
11350         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11351
11352 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11353
11354         * configure.in:
11355         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11356
11357         * dbus/dbus-connection.c:
11358         * dbus/dbus-connection.h:
11359         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11360         Add dbus_connection_set_wakeup_main_function and use it when queueing
11361         incoming and outgoing messages.
11362
11363
11364         * dbus/dbus-dataslot.c:
11365         Threadsafe usage of DBusDataSlotAllocator
11366
11367         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11368         dbus_new can fail.
11369
11370         * dbus/dbus-server-unix.c:
11371         Add todo comment
11372
11373         * glib/dbus-gmain.c:
11374         Implement the new wakeup functions for glib.
11375
11376         * glib/Makefile.am:
11377         * glib/test-thread-client.c:
11378         * glib/test-thread-server.c:
11379         * glib/test-thread.h:
11380         Initial cut at some thread test code. Not really done yet.
11381
11382 2003-02-26  Havoc Pennington  <hp@pobox.com>
11383
11384         * dbus/dbus-connection.c
11385         (dbus_connection_send_message_with_reply_and_block): fix crash
11386         where we ref'd the outgoing message instead of the returned reply
11387
11388         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11389         at the end of this function, so if we didn't need to read for
11390         authentication, we reinstall it for receiving messages
11391
11392         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11393         a NULL sender for peer-to-peer case
11394
11395         * dbus/dbus-transport-unix.c (check_read_watch): handle
11396         !authenticated case correctly
11397
11398         * glib/dbus-gmain.c: add support for DBusServer
11399
11400         * dbus/dbus-server.c: add data slot support
11401
11402         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11403         return values and handle errors
11404
11405         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11406         DBusConnection
11407
11408         * Doxyfile.in (INPUT): add glib subdir
11409
11410         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11411         setup_with_g_main instead of hookup_with_g_main; write docs
11412
11413 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11414
11415         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11416         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11417         * dbus/dbus-message.c: (dbus_message_append_boolean),
11418         (dbus_message_append_boolean_array),
11419         (dbus_message_get_args_valist), (_dbus_message_test):
11420         * dbus/dbus-message.h:
11421         * doc/dbus-specification.sgml:
11422         Various fixes as pointed out by Havoc.
11423
11424         * test/data/invalid-messages/bad-boolean-array.message:
11425         * test/data/invalid-messages/bad-boolean.message:
11426         Add invalid boolean value test cases.
11427
11428 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11429
11430         * dbus/dbus-internals.c: (_dbus_type_to_string):
11431         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11432         (_dbus_marshal_validate_arg):
11433         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11434         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11435         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11436         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11437         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11438         (dbus_message_iter_get_double),
11439         (dbus_message_iter_get_boolean_array), (message_iter_test):
11440         * dbus/dbus-message.h:
11441         * dbus/dbus-protocol.h:
11442         * doc/dbus-specification.sgml:
11443         * test/data/valid-messages/lots-of-arguments.message:
11444         Add support for boolean and boolean array types.
11445
11446 2003-02-23  Havoc Pennington  <hp@pobox.com>
11447
11448         * dbus/dbus-keyring.c: finish most of this implementation and
11449         simple unit test
11450
11451         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11452         these barf if the error isn't cleared to NULL
11453
11454         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11455         (_dbus_create_directory): new function
11456
11457         * dbus/dbus-errors.c (dbus_set_error): fix warning
11458
11459         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11460         (_dbus_string_hex_decode): new function
11461         (test_hex_roundtrip): test code
11462
11463         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11464
11465         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11466
11467         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11468         the save-to-temp/rename trick to atomically write the new file
11469         (_dbus_string_parse_uint): new function
11470
11471 2003-02-22  Havoc Pennington  <hp@pobox.com>
11472
11473         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11474
11475 2003-02-22  Havoc Pennington  <hp@pobox.com>
11476
11477         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11478         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11479
11480         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11481
11482         * dbus/test/data/sha-1: add US government test suite for SHA-1
11483
11484 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11485
11486         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11487         Make string arrays NULL-terminated.
11488
11489         * dbus/dbus-memory.c: (dbus_free_string_array):
11490         * dbus/dbus-memory.h:
11491         New function for freeing NULL-terminated string arrays.
11492
11493         * dbus/dbus-message-builder.c: (append_quoted_string),
11494         (_dbus_message_data_load):
11495         Add support for array types.
11496
11497         * dbus/dbus-message.c: (check_message_handling):
11498         Add more types as test cases.
11499
11500         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11501         (_dbus_string_parse_double):
11502         Add the start offset to the end offset.
11503
11504         * test/data/valid-messages/lots-of-arguments.message:
11505         New test message with lots of arguments.
11506
11507 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11508
11509         * dbus/dbus-message.c: (dbus_message_append_nil),
11510         (dbus_message_append_int32), (dbus_message_append_uint32),
11511         (dbus_message_append_double), (dbus_message_append_string),
11512         (dbus_message_append_int32_array),
11513         (dbus_message_append_uint32_array),
11514         (dbus_message_append_double_array),
11515         (dbus_message_append_byte_array),
11516         (dbus_message_append_string_array):
11517         Fix all out-of-memory handling in these functions.
11518
11519 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11520
11521         * dbus/dbus-message.c: (dbus_message_append_nil):
11522         Fix a silly.
11523
11524 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11525
11526         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11527         (dbus_message_append_nil), (dbus_message_append_int32_array),
11528         (dbus_message_append_uint32_array),
11529         (dbus_message_append_double_array),
11530         (dbus_message_append_byte_array),
11531         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11532         (dbus_message_iter_get_int32_array),
11533         (dbus_message_iter_get_uint32_array),
11534         (dbus_message_iter_get_double_array),
11535         (dbus_message_iter_get_byte_array),
11536         (dbus_message_iter_get_string_array):
11537
11538         * dbus/dbus-message.h:
11539         Add functions for appending and getting arrays.
11540
11541 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11542
11543         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11544         element size at least 8 bytes, fixes mempool tests on
11545         64-bit machines.
11546
11547 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11548
11549         * dbus/dbus-transport-unix.c (unix_do_iteration):
11550         Unlock the connection mutex during a blocking select call.
11551         Add todo about how we need a way to wake up the select.
11552
11553         * dbus/dbus-connection-internal.h:
11554         * dbus/dbus-connection.c:
11555         Add _dbus_connection_lock and _dbus_connection_unlock.
11556
11557 2003-02-19  Havoc Pennington  <hp@pobox.com>
11558
11559         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11560         Doxyfile.in, not Doxyfile
11561
11562         * dbus/dbus-keyring.c: do some hacking on this
11563
11564         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11565
11566         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11567         dbus_error_init
11568         (dbus_set_error): remove dbus_error_init, check for message ==
11569         NULL *before* we sprintf into it, and add @todo about including
11570         system headers in this file
11571
11572         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11573
11574         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11575
11576         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11577         get various bits of user information based on either username
11578         or user ID
11579         (_dbus_homedir_from_username): new function
11580
11581 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11582
11583         * configure.in:
11584         Add check for nonposix getpwnam_r
11585
11586         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11587         Align the pool element size to a sizeof (void *) boundary.
11588
11589         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11590         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11591         General Solaris fixes.
11592
11593         * test/data/valid-messages/simplest-manual.message:
11594         Explicitly state that we want little-endian packing.
11595
11596 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11597
11598         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11599
11600         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11601         Added to create a transport connecting using a tcp/ip socket.
11602
11603         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11604         to a tcp socket at given host and port.
11605         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11606         hostname and port.
11607
11608         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11609
11610         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11611         Added to create a server listening on a TCP/IP socket.
11612
11613 2003-02-19  Havoc Pennington  <hp@pobox.com>
11614
11615         Throughout: mop up all the Doxygen warnings and undocumented
11616         stuff.
11617
11618         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11619         to search any paths.
11620
11621         * dbus/dbus-threads.c: move global mutex initializers to
11622         dbus-internals.h, multiple prototypes was confusing doxygen
11623         besides being kind of ugly
11624
11625         * Doxyfile (PREDEFINED): have Doxygen define
11626         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11627         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11628         (do not abuse the feature! it's for stuff like the autogenerated
11629         macros in dbus-md5.c, not just for things you don't feel like
11630         documenting...)
11631
11632 2003-02-18  Havoc Pennington  <hp@pobox.com>
11633
11634         * dbus/dbus-string.c (_dbus_string_zero): new function
11635
11636         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11637         wrap it in some dbus-friendly API
11638
11639         * dbus/dbus-types.h: add 16-bit types
11640
11641 2003-02-18  Joe Shaw  <joe@assbarn.com>
11642
11643         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11644         credentials from our currently running process.
11645         (get_word): Fix a buglet where we were copying the entire length
11646         instead of relative to our position.
11647
11648         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11649         keys on the stack... it's 640k of data.
11650
11651         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11652         read the credentials byte off the socket, even if we don't have
11653         SO_PEERCRED.
11654         (_dbus_poll): Implement poll() using select() for systems which
11655         don't have it.
11656
11657         * glib/test-dbus-glib.c (main): Print out an error if no
11658         parameters are given.
11659
11660         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11661         can fallback to a secondary auth mechanism if the first fails.
11662
11663 2003-02-18  Havoc Pennington  <hp@pobox.com>
11664
11665         * AUTHORS: add Alex
11666
11667 2003-02-17  Havoc Pennington  <hp@pobox.com>
11668
11669         * doc/dbus-specification.sgml: lots of cosmetic
11670         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11671         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11672         s/server/bus/ (except in authentication section). Add a section
11673         "Message Bus Message Routing"
11674
11675 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11676
11677         Release 0.4
11678
11679         * NEWS: Update
11680
11681 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11682
11683         * doc/dbus-specification.sgml:
11684         Specification updates.
11685
11686 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11687
11688         * bus/activation.c: (bus_activation_init), (child_setup),
11689         (bus_activation_activate_service):
11690         * bus/activation.h:
11691         * bus/main.c: (main):
11692         Set DBUS_ADDRESS environment variable.
11693
11694         * dbus/dbus-errors.c: (dbus_set_error):
11695         Don't use va_copy since that's a C99 feature.
11696
11697         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11698         (_dbus_spawn_async):
11699         * dbus/dbus-sysdeps.h:
11700         Add child_setup_func to _dbus_spawn_async.
11701
11702         * doc/dbus-specification.sgml:
11703         Update specification.
11704
11705         * test/spawn-test.c: (setup_func), (main):
11706         Fix test.
11707
11708 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11709
11710         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11711         Added todo.
11712
11713 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11714
11715         * doc/.cvsignore:
11716         * doc/Makefile.am:
11717         * doc/dbus-test-plan.sgml:
11718         Add test plan document.
11719
11720         * test/Makefile.am:
11721         Fix distcheck.
11722
11723 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11724
11725         * dbus/dbus-message.c: (decode_header_data),
11726         (_dbus_message_loader_return_buffer):
11727         Set the header padding amount when loading a message.
11728
11729 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11730
11731         * bus/dispatch.c: (send_one_message):
11732         Only send broadcast messages to registered connections.
11733
11734         * dbus/dbus-message.c: (dbus_message_name_is):
11735         * dbus/dbus-message.h:
11736         New convenience function.
11737
11738         * dbus/dbus-transport-debug.c: (do_reading):
11739         Only dispatch one message per run.
11740
11741         * test/Makefile.am:
11742         * test/bus-test.c: (new_connection_callback), (die),
11743         (test_hello_client1_handler), (test_hello_client2_handler),
11744         (test_hello_replies), (main):
11745
11746         * test/bus-test-loop.[ch]:
11747         Add these.
11748
11749 2003-02-16  Havoc Pennington  <hp@pobox.com>
11750
11751         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11752         backward conditional
11753
11754 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11755
11756         * dbus/dbus-connection.c:
11757         Implement sent_message_with_reply. (with_reply_and block is still
11758         busted).
11759         Made dispatch_message not lose message if OOM.
11760
11761         * dbus/dbus-errors.h:
11762         Add NoReply error (for reply timeouts).
11763
11764 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11765
11766         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11767         Actually free keys and values when destroying hashtable.
11768
11769 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11770
11771         * dbus/dbus-auth.c: (client_try_next_mechanism):
11772         Plug a leak.
11773
11774         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11775         Return TRUE if there's no thread implementation around.
11776
11777         * glib/dbus-gmain.c: (free_source),
11778         (dbus_connection_hookup_with_g_main):
11779         Make sure to remove the GSource when the connection is finalized.
11780
11781 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11782
11783         * bus/dispatch.c: (bus_dispatch_message_handler):
11784         * dbus/dbus-errors.h:
11785         Return an error if someone tries to send a message to a service
11786         that doesn't exist.
11787
11788 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11789
11790         * bus/activation.c: (load_directory), (bus_activation_init),
11791         (bus_activation_activate_service):
11792         * bus/activation.h:
11793         * bus/driver.c:
11794         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11795         More work on the activation handling.
11796
11797         * dbus/dbus-errors.h:
11798         Add some error messages
11799
11800         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11801         * dbus/dbus-message.h:
11802         New function that creates an error message.
11803
11804         * dbus/dbus-protocol.h:
11805         Add ACTIVATE_SERVER message.
11806
11807         * dbus/dbus-server-unix.c: (unix_handle_watch),
11808         (_dbus_server_new_for_domain_socket):
11809         Call _dbus_fd_set_close_on_exec.
11810
11811         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11812         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11813         (_dbus_fd_set_close_on_exec):
11814         * dbus/dbus-sysdeps.h:
11815         Add _dbus_fd_set_close_on exec function. Also add function that checks
11816         that all open fds are set to close-on-exec and warns otherwise.
11817
11818         * dbus/dbus-transport-unix.c:
11819         (_dbus_transport_new_for_domain_socket):
11820         Call _dbus_fd_set_close_on_exec.
11821
11822 2003-02-16  Havoc Pennington  <hp@pobox.com>
11823
11824         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11825         allow people to avoid setting SIGPIPE to SIG_IGN
11826         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11827         we've been asked not to
11828
11829 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11830
11831         * dbus/dbus-list.c: (_dbus_list_append_link),
11832         (_dbus_list_prepend_link):
11833         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11834         (dbus_realloc):
11835         Warning fixes.
11836
11837 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11838
11839         * bus/Makefile.am:
11840         * bus/activation.c: (bus_activation_entry_free),
11841         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11842         * bus/activation.h:
11843         * bus/main.c: (main):
11844         Add simple activation support, doesn't work yet though.
11845
11846 2003-02-15   Zack Rusin  <zack@kde.org>
11847
11848         * qt/dbus-qthread.cpp:  small casting fix
11849
11850 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11851
11852         * dbus/dbus-errors.c: (dbus_set_error):
11853         * dbus/dbus-errors.h:
11854         Add a few errors and make dbus_set_error void.
11855
11856         * dbus/dbus-sysdeps.c:
11857         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11858         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11859         * dbus/dbus-sysdeps.h:
11860         Add _dbus_spawn_async.
11861
11862         * test/spawn-test.c: (main):
11863         Test for _dbus_spawn_async.
11864
11865 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11866
11867         * dbus/dbus-internals.h:
11868         Fix build without tests.
11869
11870         * dbus/dbus-list.c: (alloc_link):
11871         Fix a segfault when a malloc fails.
11872
11873         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11874         (dbus_malloc0), (dbus_realloc):
11875         Add support for malloc debugging.
11876
11877 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11878
11879         * dbus/dbus-threads.c:
11880         * dbus/dbus-threads.h:
11881         Add condvars. Remove static mutext from API.
11882         Implement static mutexes by initializing them from threads_init.
11883
11884         * glib/dbus-gthread.c:
11885         * qt/dbus-qthread.cpp:
11886         Update with the thread api changes.
11887
11888
11889         * dbus/dbus-list.c:
11890         * dbus/dbus-list.h:
11891         Turn StaticMutex into normal mutex + init function.
11892         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11893         _dbus_list_append_link, _dbus_list_prepend_link
11894
11895
11896         * dbus/dbus-sysdeps.c:
11897         * dbus/dbus-sysdeps.h:
11898         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11899         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11900
11901         * dbus/dbus-protocol.h:
11902         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11903
11904         * dbus/dbus-message.c:
11905         Make ref/unref atomic.
11906         Fix some docs.
11907
11908         * dbus/dbus-connection-internal.h:
11909         * dbus/dbus-connection.c:
11910         * dbus/dbus-connection.h:
11911         Make threadsafe.
11912         Change _peek to _borrow,_return & _steal_borrowed.
11913         Change disconnect callback to event.
11914         Make dbus_connection_dispatch_messages reentrant.
11915
11916         * dbus/dbus-transport.c:
11917         Don't ref the connection on calls to the transport
11918         implementation.
11919
11920         * dbus/dbus-message-handler.c:
11921         Make threadsafe.
11922
11923         * glib/dbus-gmain.c:
11924         Don't use peek_message anymore
11925
11926         * test/Makefile.am:
11927         * test/debug-thread.c:
11928         * test/debug-thread.h:
11929         Simple thread implementation that asserts() on deadlocks in
11930         single-threaded code.
11931
11932         * test/bus-test.c:
11933         (main) Call debug_threads_init.
11934
11935         * test/watch.c:
11936         Use disconnect message instead of disconnect callback.
11937
11938         * bus/connection.c:
11939         * bus/connection.h:
11940         Don't call dbus_connection_set_disconnect_function. Instead export
11941         bus_connection_disconnect.
11942
11943         * bus/dispatch.c:
11944         Call bus_connection_disconnect when we get a disconnected message.
11945
11946 2003-02-15  Havoc Pennington  <hp@pobox.com>
11947
11948         * dbus/dbus-message.c (dbus_message_new): fool around with the
11949         docs
11950
11951 2003-02-14  Havoc Pennington  <hp@pobox.com>
11952
11953         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11954
11955         * dbus/dbus-memory.c: fail if the debug functions indicate we
11956         should
11957
11958         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11959         (_dbus_decrement_fail_alloc_counter): debug functions to
11960         simulate memory allocation failures
11961
11962 2003-02-14  Havoc Pennington  <hp@pobox.com>
11963
11964         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11965         to DBusError
11966
11967 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11968
11969         * bus/driver.c: (bus_driver_handle_hello):
11970         * bus/driver.h:
11971         * bus/services.c: (bus_service_lookup):
11972         Reorder message sending so we get a more sane order.
11973
11974         * test/bus-test.c: (message_handler):
11975         Fix tyop.
11976
11977 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11978
11979         * bus/driver.c: (bus_driver_send_service_deleted),
11980         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11981         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11982         (bus_driver_send_welcome_message),
11983         (bus_driver_handle_list_services),
11984         (bus_driver_handle_acquire_service),
11985         (bus_driver_handle_service_exists):
11986         * dbus/dbus-bus.c: (dbus_bus_register_client),
11987         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11988         * dbus/dbus-errors.c: (dbus_result_to_string):
11989         * dbus/dbus-errors.h:
11990         * dbus/dbus-message.c: (dbus_message_append_args),
11991         (dbus_message_append_args_valist), (dbus_message_get_args),
11992         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11993         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11994         (dbus_message_iter_get_byte_array),
11995         (dbus_message_iter_get_string_array), (message_iter_test),
11996         (check_message_handling), (_dbus_message_test):
11997         * dbus/dbus-message.h:
11998         * test/bus-test.c: (main):
11999         Change fields to arguments in messages, so that they won't be
12000         confused with header fields.
12001
12002         * glib/test-dbus-glib.c: (main):
12003         Remove append_fields from hello message.
12004
12005 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12006
12007         * dbus/dbus-errors.c:
12008         * dbus/dbus-message.c:
12009         * dbus/dbus-string.c:
12010         Documentation fixes.
12011
12012 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12013
12014         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12015         (remove_timeout):
12016         Implement support for timeouts in dbus-glib.
12017
12018 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12019
12020         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12021         * dbus/dbus-message.c: (process_test_subdir):
12022         * test/break-loader.c: (find_breaks_based_on):
12023         Plug some memory leaks.
12024
12025 2003-02-13  Richard Hult  <rhult@codefactory.se>
12026
12027         * bus/main.c: Fix build.
12028
12029         * dbus/dbus-errors.h:
12030         * dbus/dbus-errors.c: Fix copyright for Anders.
12031
12032 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12033
12034         * bus/Makefile.am:
12035         Add utils.[ch]
12036
12037         * bus/connection.c: (bus_connection_foreach):
12038         Fix a warning.
12039
12040         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12041         (unescape_string), (new_section), (parse_section_start),
12042         (parse_key_value), (report_error), (bus_desktop_file_load),
12043         (bus_desktop_file_get_string):
12044         * bus/desktop-file.h:
12045         Use DBusError for error reporting.
12046
12047         * bus/dispatch.c: (send_one_message),
12048         (bus_dispatch_message_handler):
12049         * bus/driver.c: (bus_driver_send_service_deleted),
12050         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12051         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12052         (bus_driver_send_welcome_message),
12053         (bus_driver_handle_list_services),
12054         (bus_driver_handle_acquire_service),
12055         (bus_driver_handle_service_exists):
12056         * bus/loop.c: (bus_loop_run):
12057         * bus/main.c:
12058         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12059
12060         * bus/utils.c: (bus_wait_for_memory):
12061         * bus/utils.h:
12062         New files with general utility functions.
12063
12064         * dbus/dbus-internals.h:
12065         Remove _DBUS_HANDLE_OOM.
12066
12067 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12068
12069         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12070         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12071         * dbus/dbus-errors.h:
12072         Add DBusError structure.
12073
12074 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12075
12076         * test/data/valid-messages/standard-acquire-service.message:
12077         * test/data/valid-messages/standard-hello.message:
12078         * test/data/valid-messages/standard-list-services.message:
12079         * test/data/valid-messages/standard-service-exists.message:
12080         Add some standard messages.
12081
12082 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12083
12084         * bus/driver.c: (bus_driver_send_welcome_message),
12085         (bus_driver_handle_list_services),
12086         (bus_driver_handle_acquire_service),
12087         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12088         Update for API changes in libdbus.
12089
12090         * dbus/dbus-message.c: (dbus_message_new_reply):
12091         * dbus/dbus-message.h:
12092         Remove the name argument. The spec states that replies shouldn't
12093         have a name.
12094
12095 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12096
12097         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12098         (report_error), (bus_desktop_file_load), (lookup_section),
12099         (lookup_line), (bus_desktop_file_get_raw),
12100         (bus_desktop_file_get_string):
12101         * bus/desktop-file.h:
12102         Some fixes, and new functions for getting a key value from a section.
12103
12104 2003-02-13  Havoc Pennington  <hp@pobox.com>
12105
12106         * test/data/auth/fail-after-n-attempts.auth-script: new test
12107
12108         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12109         reject the client.
12110
12111 2003-02-13  Havoc Pennington  <hp@pobox.com>
12112
12113         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12114         dbus_credentials_match were backward
12115
12116         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12117         NO_CREDENTIALS and ROOT_CREDENTIALS
12118
12119         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12120         into here. Never process more commands after we've reached an
12121         end state; store further data as unused bytes.
12122
12123         * test/data/auth/*: add more auth tests
12124
12125         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12126         command to match exact string and EXPECT_UNUSED to match unused
12127         bytes
12128
12129         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12130
12131 2003-02-12  Havoc Pennington  <hp@pobox.com>
12132
12133         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12134         \r off of popped lines
12135
12136         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12137         scripts
12138
12139         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12140         SEND, append \r\n
12141
12142 2003-02-12  Havoc Pennington  <hp@pobox.com>
12143
12144         * dbus/Makefile.am: remove break-loader from the build, since it
12145         moved.
12146
12147         * configure.in: add --enable-gcov to turn on coverage profiling
12148         flags and disable optimization
12149
12150 2003-02-10  Havoc Pennington  <hp@pobox.com>
12151
12152         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12153         initial cut at test framework for DBusAuth from laptop.
12154         Doesn't quite work yet but it compiles and I need to get
12155         it off the 266mhz laptop. ;-)
12156
12157         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12158         fix a memleak in error case
12159
12160 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12161
12162         * bus/Makefile.am:
12163         * bus/desktop-file.c:
12164         * bus/desktop-file.h:
12165         Add a desktop file parser.
12166
12167 2003-02-11  Zack Rusin  <zack@kde.org>
12168
12169         * qt/message.[h|cpp]: sample implementation
12170         of the KDE wrapper for DBusMessage
12171
12172 2003-02-09  Zack Rusin  <zack@kde.org>
12173
12174         * test/bus-test.c: make_it_compile
12175         * doc/dbus-specification.sgml: minimal semantic fix
12176
12177 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12178
12179         Release 0.3
12180
12181         * NEWS: Update
12182
12183 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12184
12185         * dbus/Makefile.am:
12186         * dbus/dbus-break-loader.c:
12187         * test/Makefile.am:
12188         * test/break-loader.c:
12189         Move dbus-break-loader to test/ and rename it to break-loader.
12190
12191 2003-02-02  Havoc Pennington  <hp@pobox.com>
12192
12193         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12194         for code to manage cookies in your home directory
12195
12196         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12197
12198         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12199         to authenticate, then disconnect the client.
12200
12201 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12202
12203         * dbus/dbus-message.c (dbus_message_append_fields):
12204         Correct docs.
12205
12206 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12207
12208         * doc/dbus-specification.sgml:
12209         Update address format section.
12210
12211 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12212
12213         * test/Makefile.am:
12214         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12215         (message_handler), (new_connection_callback), (loop_quit),
12216         (loop_run), (main):
12217         Add bus test.
12218
12219 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12220
12221         * bus/driver.c: (bus_driver_handle_service_exists):
12222         Simplify the code a bit.
12223
12224         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12225         Fix a silly.
12226
12227 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12228
12229         * bus/Makefile.am:
12230         Add libdbus-daemon.la and link to it.
12231
12232 2003-02-01  James Willcox  <jwillcox@gnome.org>
12233
12234         * bus/driver.c: (bus_driver_handle_own_service):
12235         Actually include the service reply code in the message.
12236
12237 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12238
12239         * bus/driver.c: (bus_driver_handle_service_exists):
12240         Don't unref the incoming message.
12241
12242 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12243
12244         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12245
12246 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12247
12248         * dbus/dbus-server.c: (dbus_server_listen):
12249         * dbus/dbus-transport.c: (_dbus_transport_open):
12250         ifdef out the calls to the debug transport and server.
12251
12252 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12253
12254         * dbus/dbus-watch.c (dbus_watch_get_flags):
12255         Add note in the docs that ERROR or HANGUP won't be returned
12256         and are assumed always on.
12257
12258         * glib/dbus-gmain.c (add_watch):
12259         Always add IO_ERR | IO_HUP
12260
12261         * dbus/dbus-message.h:
12262         Add semicolon after dbus_message_iter_get_string_array().
12263         Makes qt code build again
12264
12265 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12266
12267         * bus/driver.c: (create_unique_client_name),
12268         (bus_driver_handle_hello):
12269         Don't take a name, just use a numeric id to identify
12270         each client.
12271
12272         * dbus/Makefile.am:
12273         * dbus/dbus-bus.c: (dbus_bus_register_client),
12274         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12275         * dbus/dbus-bus.h:
12276         Add new convenience functions for communicating with the bus.
12277
12278         * dbus/dbus-message.h:
12279
12280         * dbus/dbus-protocol.h:
12281         Fix a typo.
12282
12283 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12284
12285         * dbus/dbus-message.c (dbus_message_append_fields):
12286         Add some more doc comments.
12287
12288 2003-02-01  Havoc Pennington  <hp@pobox.com>
12289
12290         * dbus/dbus-break-loader.c (randomly_modify_length): change
12291         a 4-byte value in the message as if it were a length
12292
12293         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12294         execute bit on saved files
12295
12296 2003-02-01  Havoc Pennington  <hp@pobox.com>
12297
12298         * dbus/dbus-break-loader.c (main): new program to find messages
12299         that break the loader.
12300
12301         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12302         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12303
12304         * dbus/dbus-string.c (_dbus_string_set_byte): new
12305
12306 2003-01-31  Havoc Pennington  <hp@pobox.com>
12307
12308         * dbus/dbus-message.c: refactor the test code to be more general,
12309         in preparation for writing a "randomly permute test cases to
12310         try to break the loader" program.
12311
12312 2003-01-31  Havoc Pennington  <hp@pobox.com>
12313
12314         * doc/dbus-specification.sgml: work on the specification
12315
12316         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12317         the protocol version of the message.
12318
12319         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12320         no longer specifies that.
12321         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12322         1/2/3/4)
12323
12324         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12325         "break" for DBUS_TYPE_NIL, remove @todo
12326
12327 2003-01-31  Havoc Pennington  <hp@pobox.com>
12328
12329         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12330         just set_is_error/get_is_error as this is a commonly-used
12331         function, and write docs.
12332
12333 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12334
12335         * dbus/dbus-address.c: (dbus_address_entry_free):
12336         Free key and value lists.
12337
12338         * dbus/dbus-internals.c: (_dbus_type_to_string):
12339         Add the types we didn't have.
12340
12341         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12342         (_dbus_marshal_validate_arg):
12343         Add NIL types.
12344
12345         * dbus/dbus-message.c: (dbus_message_set_sender):
12346         Remove todo about being able to set sender to NULL.
12347
12348         (dbus_message_set_is_error_reply),
12349         (dbus_message_get_is_error_reply):
12350         * dbus/dbus-message.h:
12351         New functions.
12352
12353         * dbus/dbus-protocol.h:
12354         Add error reply flag.
12355
12356         * test/data/valid-messages/opposite-endian.message:
12357         Add NIL type to test.
12358
12359 2003-01-31  Havoc Pennington  <hp@pobox.com>
12360
12361         * doc/dbus-specification.sgml: fully specify the header.  Add
12362         flags and major protocol version, and change header/body len to
12363         unsigned.
12364
12365         * dbus/dbus-message-builder.c (append_saved_length): append length
12366         as uint32
12367
12368         * dbus/dbus-message.c (dbus_message_create_header): change header
12369         length and body length to unsigned. Add the new fields from the
12370         spec
12371         (_dbus_message_loader_return_buffer): unsigned header/body len
12372
12373 2003-01-30  Havoc Pennington  <hp@pobox.com>
12374
12375         * dbus/dbus-auth.c: rework to use only REJECTED, no
12376         MECHANISMS
12377
12378         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12379         use REJECTED, suggested by Mark McLoughlin
12380
12381 2003-01-30  Havoc Pennington  <hp@pobox.com>
12382
12383         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12384         a better way to report errors here. e.g.  "unix address lacks
12385         path" or something. also "no such file" when the path doesn't
12386         exist, etc.
12387
12388         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12389         leaking list nodes
12390         (dbus_parse_address): add @todo about documenting address format,
12391         and allowing , and ; to be escaped
12392
12393 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12394
12395         * dbus/Makefile.am:
12396         Add dbus-address.[ch]
12397
12398         * dbus/dbus-address.c: (dbus_address_entry_free),
12399         (dbus_address_entries_free), (create_entry),
12400         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12401         (dbus_parse_address), (_dbus_address_test):
12402         * dbus/dbus-address.h:
12403         New files for dealing with address parsing.
12404
12405         * dbus/dbus-connection.c:
12406         Document timeout functions.
12407
12408         * dbus/dbus-message.c:
12409         Document dbus_message_new_from_message.
12410
12411         * dbus/dbus-server-debug.c:
12412         Document.
12413
12414         * dbus/dbus-server.c: (dbus_server_listen):
12415         Parse address and use correct server implementation.
12416
12417         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12418         * dbus/dbus-string.h:
12419         New function with test.
12420
12421         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12422         * dbus/dbus-test.h:
12423         Add address tests.
12424
12425         * dbus/dbus-transport-debug.c:
12426         Document.
12427
12428         * dbus/dbus-transport.c: (_dbus_transport_open):
12429         Parse address and use correct transport implementation.
12430
12431 2003-01-30  Havoc Pennington  <hp@pobox.com>
12432
12433         * dbus/dbus-message.c: use message->byte_order instead of
12434         DBUS_COMPILER_BYTE_ORDER throughout.
12435         (dbus_message_create_header): pad header to align the
12436         start of the body of the message to 8-byte boundary
12437
12438         * dbus/dbus-marshal.h: make all the demarshalers take const
12439         DBusString arguments.
12440
12441         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12442         validate message args here, so we don't have to do slow validation
12443         later, and so we catch bad messages as they are incoming. Also add
12444         better checks on header_len and body_len. Also fill in
12445         message->byte_order
12446
12447         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12448         implemented properly)
12449         (_dbus_string_validate_nul): new function to check all-nul
12450
12451         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12452         get_arg_end_pos and remove all validation
12453         (_dbus_marshal_validate_arg): actually do validation here.
12454
12455 2003-01-29  Havoc Pennington  <hp@pobox.com>
12456
12457         * dbus/dbus-message.c (check_message_handling): fix assertion
12458         failure on set_client_serial
12459
12460 2003-01-28  Havoc Pennington  <hp@pobox.com>
12461
12462         * dbus/dbus-server-debug.c: Add doc section comments
12463
12464         * dbus/dbus-transport-debug.c: add doc section comments
12465
12466 2003-01-28  Havoc Pennington  <hp@redhat.com>
12467
12468         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12469         the reverse order from how I had it
12470         (_dbus_string_base64_encode): reverse encoding order. I was
12471         basically byteswapping everything during encoding.
12472
12473 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12474
12475         * dbus/dbus-connection-internal.h:
12476         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12477         (_dbus_connection_remove_timeout):
12478         Add functions for adding and removing timeouts.
12479
12480         * dbus/dbus-message.c: (dbus_message_new_from_message):
12481         Add new function that takes a message and creates an exact
12482         copy of it, but with the refcount set to 1.
12483         (check_message_handling):
12484         Fix build error.
12485
12486         * dbus/dbus-server-protected.h:
12487         * dbus/dbus-server.c: (_dbus_server_init_base),
12488         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12489         (dbus_server_set_timeout_functions):
12490         (_dbus_server_remove_timeout):
12491         New functions so that a server can add and remove timeouts.
12492
12493         (dbus_server_listen):
12494         Add commented out call to dbus_server_debug_new.
12495
12496         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12497         Actually set the handler, doh.
12498
12499         * dbus/dbus-transport.c: (_dbus_transport_open):
12500         Add commented out call to dbus_transport_debug_client_new.
12501
12502         * dbus/Makefile.am:
12503         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12504
12505 2003-01-28  Havoc Pennington  <hp@pobox.com>
12506
12507         * dbus/dbus-message.c (check_message_handling): function to check
12508         on the loaded message, iterates over it etc.
12509
12510 2003-01-28  Havoc Pennington  <hp@pobox.com>
12511
12512         * test/Makefile.am (dist-hook): fix make distdir
12513
12514         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12515
12516 2003-01-27  Havoc Pennington  <hp@pobox.com>
12517
12518         * dbus/dbus-mempool.c (time_for_size): replace printf with
12519         _dbus_verbose
12520
12521         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12522         empty lines; fix the SAVE_LENGTH stuff to be
12523         START_LENGTH/END_LENGTH so it actually works; couple other
12524         bugfixes
12525
12526         * test/Makefile.am (dist-hook): add dist-hook for .message files
12527
12528         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12529         can be constant or locked.
12530         (_dbus_string_free): allow freeing a const string as
12531         documented/intended
12532
12533         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12534
12535         * dbus/dbus-test-main.c (main): take an argument which is the
12536         directory containing test data
12537
12538         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12539         argument to this and load all the messages in test/data/
12540         checking that they can be loaded or not loaded as appropriate.
12541
12542 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12543
12544         * bus/dispatch.c: (bus_dispatch_message_handler):
12545         Dispatch messages sent to services.
12546
12547         * bus/driver.c: (bus_driver_send_service_deleted),
12548         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12549         (bus_driver_send_service_acquired):
12550         Add helper functions for sending service related messages.
12551
12552         (bus_driver_send_welcome_message):
12553         Send HELLO_REPLY instead of WELCOME.
12554
12555         (bus_driver_handle_list_services):
12556         Send LIST_SERVICES_REPLY instead of SERVICES.
12557
12558         (bus_driver_handle_own_service),
12559         (bus_driver_handle_service_exists):
12560         New message handlers.
12561
12562         (bus_driver_handle_message):
12563         Invoke new message handlers.
12564
12565         (bus_driver_remove_connection):
12566         Don't remove any services here since that's done automatically
12567         by bus_service_remove_owner now.
12568
12569         * bus/driver.h:
12570         New function signatures.
12571
12572         * bus/services.c: (bus_service_add_owner):
12573         Send ServiceAcquired message if we're the only primary owner.
12574
12575         (bus_service_remove_owner):
12576         Send ServiceAcquired/ServiceLost messages.
12577
12578         (bus_service_set_prohibit_replacement),
12579         (bus_service_get_prohibit_replacement):
12580         Functions for setting prohibit replacement.
12581
12582         (bus_service_has_owner):
12583         New function that checks if a connection is in the owner queue of
12584         a certain service.
12585
12586         * bus/services.h:
12587         Add new function signatures.
12588
12589         * dbus/dbus-list.c: (_dbus_list_test):
12590         Add tests for _dbus_list_remove_last and traversing the list backwards.
12591
12592         * dbus/dbus-list.h:
12593         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12594         go any further, so return NULL then.
12595
12596         * dbus/dbus-protocol.h:
12597         Add new messages, service flags and service replies.
12598
12599 2003-01-26  Havoc Pennington  <hp@pobox.com>
12600
12601         * dbus/dbus-message-builder.c: implement, completely untested.
12602
12603         * test/data/*: add data to be used in testing.
12604         ".message" files are our simple loadable text format.
12605         ".message-raw" will be binary dumps of messages.
12606
12607         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12608
12609 2003-01-26  Havoc Pennington  <hp@pobox.com>
12610
12611         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12612
12613         * dbus/dbus-errors.c (dbus_result_to_string): add
12614         file errors
12615
12616         * dbus/dbus-message-builder.c: new file, will contain code to load
12617         up messages from files. Not implemented yet.
12618
12619 2003-01-26  Havoc Pennington  <hp@pobox.com>
12620
12621         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12622         the sender by setting to NULL
12623
12624 2003-01-26  Havoc Pennington  <hp@pobox.com>
12625
12626         The unit tests pass, but otherwise untested.  If it breaks, the
12627         tests should have been better. ;-)
12628
12629         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12630         the connection.
12631
12632         * dbus/dbus-message.c: redo everything so we maintain
12633         message->header as the only copy of the various fields.
12634         This avoids the possibility of out-of-memory in some cases,
12635         for example dbus_message_lock() can't run out of memory anymore,
12636         and avoids extra copying. Figured I may as well go ahead and do
12637         this since it was busted for dbus_message_lock to not return
12638         failure on OOM, and dbus_message_write_header was totally
12639         unchecked for OOM. Also fixed some random other bugs.
12640
12641         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12642         that strings are nul-terminated. Also, end_pos can be equal
12643         to string length just not greater than, I think.
12644         (_dbus_marshal_set_int32): new function
12645         (_dbus_marshal_set_uint32): new function
12646         (_dbus_marshal_set_string): new function
12647
12648         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12649         a warning, init timeout_list to NULL
12650         (dbus_connection_send_message): don't use uninitialized variable
12651         "serial"
12652
12653         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12654
12655 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12656
12657         * bus/driver.c: (bus_driver_handle_hello),
12658         (bus_driver_send_welcome_message):
12659         Plug leaks
12660
12661 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12662
12663         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12664         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12665         (dbus_connection_unref):
12666         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12667         * dbus/dbus-message.c: (dbus_message_unref),
12668         Plug memory leaks.
12669
12670         (dbus_message_get_fields):
12671         Remove debugging printout.
12672
12673         (_dbus_message_loader_return_buffer):
12674         Don't store the header string.
12675
12676         (_dbus_message_test):
12677         Plug leaks.
12678
12679 2003-01-26  Richard Hult  <rhult@codefactory.se>
12680
12681         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12682         the file descriptor list, since it can change under us.
12683
12684 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12685
12686         * glib/dbus-gmain.c: (dbus_connection_prepare),
12687         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12688         (remove_watch), (dbus_connection_hookup_with_g_main):
12689         Rewrite the glib handling to use its own GSource instead of a
12690         GIOChannel so we can catch messages put in the queue while waiting
12691         for a reply.
12692
12693 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12694
12695         * bus/Makefile.am:
12696         * bus/connection.c: (connection_disconnect_handler),
12697         (connection_watch_callback), (bus_connection_setup):
12698         * bus/dispatch.c: (send_one_message),
12699         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12700         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12701         * bus/dispatch.h:
12702         * bus/driver.c: (bus_driver_send_service_deleted),
12703         (bus_driver_send_service_created), (bus_driver_handle_hello),
12704         (bus_driver_send_welcome_message),
12705         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12706         (bus_driver_handle_message):
12707         * bus/driver.h:
12708         Refactor code, put the message dispatching in its own file. Use
12709         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12710         is disconnected.
12711
12712 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12713
12714         * dbus/dbus-internals.h:
12715         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12716
12717         * dbus/dbus-message.c: (dbus_message_get_sender):
12718         * dbus/dbus-message.h:
12719         Implement dbus_message_get_sender.
12720
12721         * dbus/dbus-protocol.h:
12722         Add message and service defines.
12723
12724 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12725
12726         * dbus/dbus-connection.c: (dbus_connection_send_message):
12727         * dbus/dbus-message-internal.h:
12728         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12729         (dbus_message_write_header):
12730         Remove _dbus_messag_unlock and don't set the client serial on a
12731         message if one already exists.
12732
12733 2003-01-24  Havoc Pennington  <hp@pobox.com>
12734
12735         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12736         list_pool
12737
12738         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12739         on OOM
12740
12741 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12742
12743         * dbus/dbus-list.c: (alloc_link), (free_link):
12744         Use a memory pool for the links.
12745
12746 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12747
12748         * bus/connection.c: (bus_connection_foreach):
12749         * bus/connection.h:
12750         Add new bus_connection_foreach function.
12751
12752         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12753         Add function that broadcasts a message to all clients.
12754
12755         (bus_driver_send_service_created), (bus_driver_handle_hello),
12756         (bus_driver_send_welcome_message),
12757         (bus_driver_handle_list_services), (bus_driver_message_handler):
12758         Implement functions that take care of listing services, and notifying
12759         clients when new services are created.
12760
12761         * bus/services.c: (bus_services_list):
12762         * bus/services.h:
12763         Add new function that returns an array of strings with the currently
12764         registered services.
12765
12766         * glib/dbus-glib.h:
12767         * glib/dbus-gmain.c:
12768         Update copyright year.
12769
12770 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12771
12772         * dbus/dbus-connection.c: (dbus_connection_send_message):
12773         Unlock the message in case it was sent earlier.
12774
12775         (dbus_connection_send_message_with_reply_and_block):
12776         Remove the reply message from the list.
12777
12778         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12779         Set array_len and new_pos correctly.
12780
12781         (_dbus_marshal_test):
12782         Remove debug output.
12783
12784         * dbus/dbus-message-internal.h:
12785         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12786         New function that returns the reply serial.
12787
12788         (_dbus_message_unlock):
12789         New function that unlocks a message and resets its header.
12790
12791         (dbus_message_append_string_array),
12792         (dbus_message_get_fields_valist),
12793         (dbus_message_iter_get_field_type),
12794         (dbus_message_iter_get_string_array),
12795         (dbus_message_get_fields),
12796         (dbus_message_append_fields_valist):
12797         Handle string arrays.
12798
12799         (dbus_message_set_sender):
12800         Make this function public since the bus daemon needs it.
12801
12802         (decode_header_data):
12803         Set the reply serial to -1 initially.
12804
12805         * dbus/dbus-message.h:
12806         Add dbus_message_set_sender.
12807
12808 2003-01-24  Havoc Pennington  <hp@pobox.com>
12809
12810         * doc/dbus-specification.sgml: add some stuff
12811
12812 2003-01-22  Havoc Pennington  <hp@pobox.com>
12813
12814         * doc/dbus-specification.sgml: Start to document the protocol.
12815
12816 2003-01-22  Havoc Pennington  <hp@pobox.com>
12817
12818         * dbus/dbus-connection.c
12819         (dbus_connection_send_message_with_reply_and_block): add some @todo
12820
12821         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12822
12823 2003-01-21  Havoc Pennington  <hp@pobox.com>
12824
12825         (patch untested because can't compile)
12826
12827         * bus/driver.c (create_unique_client_name): make this function
12828         never recycle client names. Also, caller should initialize
12829         the DBusString.
12830
12831         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12832
12833 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12834
12835         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12836         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12837         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12838         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12839         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12840         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12841         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12842         * dbus/dbus-marshal.h:
12843         * dbus/dbus-protocol.h:
12844         Add support for marshalling and demarshalling integer, double
12845         and string arrays.
12846
12847 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12848
12849         * bus/Makefile.am:
12850         Add driver.[ch]
12851
12852         * bus/connection.c: (connection_disconnect_handler):
12853         Remove the connection from the bus driver's list.
12854
12855         (connection_watch_callback): Dispatch messages.
12856
12857         (free_connection_data): Free connection name.
12858
12859         (bus_connection_setup): Add connection to the bus driver's list.
12860         (bus_connection_remove_owned_service):
12861         (bus_connection_set_name), (bus_connection_get_name):
12862         Add functions for setting and getting the connection's name.
12863
12864         * bus/connection.h:
12865         Add function headers.
12866
12867         * bus/driver.c: (create_unique_client_name),
12868         (bus_driver_handle_hello_message),
12869         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12870         (bus_driver_add_connection), (bus_driver_remove_connection):
12871         * bus/driver.h:
12872         * bus/main.c:
12873         * bus/services.c: (bus_service_free):
12874         * bus/services.h:
12875         New file that handles communication and registreation with the bus
12876         itself.
12877
12878 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12879
12880         * dbus/dbus-connection.c: (dbus_connection_send_message):
12881         Add a new client_serial parameter.
12882
12883         (dbus_connection_send_message_with_reply):
12884         Remove a @todo since we've implemented the blocking function.
12885
12886         (dbus_connection_send_message_with_reply_and_block):
12887         New function that sends a message and waits for a reply and
12888         then returns the reply.
12889
12890         * dbus/dbus-connection.h:
12891         Add new functions.
12892
12893         * dbus/dbus-errors.c: (dbus_result_to_string):
12894         * dbus/dbus-errors.h:
12895         Add new DBUS_RESULT.
12896
12897         * dbus/dbus-message-internal.h:
12898         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12899         (_dbus_message_set_sender), (dbus_message_write_header),
12900         (dbus_message_new_reply), (decode_header_data),
12901         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12902         * dbus/dbus-message.h:
12903         Add new functions that set the reply serial and sender.
12904         Also marshal and demarshal them correctly and add test.
12905
12906         * dbus/dbus-protocol.h:
12907         Add new DBUS_MESSAGE_TYPE_SENDER.
12908
12909         * glib/dbus-glib.h:
12910         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12911         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12912         (dbus_connection_hookup_with_g_main):
12913         * glib/test-dbus-glib.c: (main):
12914         Rewrite to use GIOChannel and remove the GSource crack.
12915
12916         * test/echo-client.c: (main):
12917         * test/watch.c: (check_messages):
12918         Update for changed APIs
12919
12920 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12921
12922         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12923
12924         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12925         Create a DBusTimeoutList.
12926         (dbus_connection_set_timeout_functions): Add new function to
12927         set timeout callbacks
12928
12929         * dbus/dbus-connection.h: Add public DBusTimeout API.
12930
12931         * dbus/dbus-message.c: (dbus_message_get_service):
12932         * dbus/dbus-message.h:  New function.
12933
12934         * dbus/dbus-server.c: Fix small doc typo.
12935
12936         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12937
12938 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12939
12940         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12941         of the string, just as long as specified.
12942
12943 2003-01-19  Havoc Pennington  <hp@pobox.com>
12944
12945         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12946         new function
12947
12948         * dbus/dbus-server.c (dbus_server_set_max_connections)
12949         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12950         keep track of current number of connections, and add API for
12951         setting a max (but haven't implemented enforcing the max yet)
12952
12953 2003-01-18  Havoc Pennington  <hp@pobox.com>
12954
12955         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12956         reading/writing if read_watch != NULL or write_watch != NULL.
12957
12958         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12959         the message loader code to actually load message->header and
12960         message->body into the newly-created message.
12961
12962         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12963         in OOM case
12964
12965         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12966         (dbus_connection_get_max_message_size)
12967         (dbus_connection_set_max_live_messages_size)
12968         (dbus_connection_get_max_live_messages_size): implement some
12969         resource limitation functions
12970
12971         * dbus/dbus-resources.c: new file implementing some of the
12972         resource limits stuff
12973
12974         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12975         missing docs, add @todo to handle OOM etc.
12976
12977         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12978         docs
12979
12980 2003-01-18  Havoc Pennington  <hp@pobox.com>
12981
12982         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12983         connection if it hasn't been already.
12984
12985         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12986         replace with DisconnectFunction.
12987
12988 2003-01-18  Havoc Pennington  <hp@pobox.com>
12989
12990         Building --disable-verbose-mode --disable-asserts --disable-tests
12991         cuts the library from 112K to 45K or so
12992
12993         * configure.in: check for varargs macro support,
12994         add --enable-verbose-mode, --enable-asserts.
12995
12996         * dbus/dbus-internals.h (_dbus_assert): support
12997         DBUS_DISABLE_ASSERT
12998         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12999
13000 2003-01-18  Havoc Pennington  <hp@pobox.com>
13001
13002         * dbus/dbus-test.c: include config.h so that tests actually run
13003
13004         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13005         so the failure mode when that assumption fails will be plenty
13006         obvious.
13007
13008 2003-01-18  Havoc Pennington  <hp@pobox.com>
13009
13010         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13011
13012         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13013         the distribution
13014
13015         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13016         since we don't want to use those in make check
13017
13018 2003-01-15  Havoc Pennington  <hp@redhat.com>
13019
13020         Release 0.2
13021
13022         * NEWS: update
13023
13024 2003-01-15  Havoc Pennington  <hp@redhat.com>
13025
13026         * test/Makefile.am: fix so that test source code ends up in the
13027         distribution on make distcheck
13028
13029 2003-01-15  Havoc Pennington  <hp@redhat.com>
13030
13031         Release 0.1.
13032
13033         * NEWS: update
13034
13035 2003-01-15  Havoc Pennington  <hp@redhat.com>
13036
13037         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13038         fix build when --disable-tests
13039
13040         * Makefile.am (EXTRA_DIST): put HACKING in here
13041
13042         * HACKING: document procedure for making a tarball release.
13043
13044 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13045
13046         * bus/connection.c: (connection_error_handler),
13047         (bus_connection_setup):
13048         * bus/main.c: (main):
13049         Make sure that the DBusConnectionData struct is NULLed
13050         out to prevent a segfault.
13051
13052         * dbus/dbus-errors.c: (dbus_result_to_string):
13053         * dbus/dbus-errors.h:
13054         * dbus/dbus-message.c: (dbus_message_get_fields),
13055         (dbus_message_get_fields_valist), (_dbus_message_test):
13056         * dbus/dbus-message.h:
13057         Make dbus_message_get_fields return a result code so we can
13058         track invalid fields as well as oom.
13059
13060 2003-01-11  Havoc Pennington  <hp@pobox.com>
13061
13062         * configure.in: change --enable-test/--enable-ansi action-if-given
13063         to enable_foo=$enableval instead of enable_foo=yes
13064
13065 2003-01-08  Havoc Pennington  <hp@pobox.com>
13066
13067         * dbus/dbus-string.c (_dbus_string_align_length): new function
13068
13069         * dbus/dbus-test-main.c: move main() for test app here
13070         * dbus/dbus-test.c
13071         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13072         symbol to run tests, because dbus-test isn't in the main
13073         library
13074
13075         Code review nitpicks.
13076
13077         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13078         for people with narrow emacs ;-). Assert client_serial was filled
13079         in. Assert message->name != NULL.
13080         (dbus_message_append_fields): have "first_field_type" arg separate
13081         from va list, needed for C++ binding that also uses varargs IIRC
13082         and helps with type safety
13083         (dbus_message_new): add @todo about using DBusString to store
13084         service/name internally
13085         (dbus_message_new): don't leak ->service and ->name on OOM later
13086         in the function
13087         (dbus_message_unref): free the service name
13088         (dbus_message_get_fields): same change to varargs
13089         i.e. first_field_type
13090         (_dbus_message_loader_return_buffer): assert that the message data
13091         is aligned (if not it's a bug in our code). Put in verbose griping
13092         about why we set corrupted = TRUE.
13093         (decode_header_data): add FIXME that char* is evil.  Was going to
13094         add FIXME about evil locale-specific string.h strncmp, but just
13095         switched to wacky string-as-uint32 optimization. Move check for
13096         "no room for field name" above get_const_data_len() to avoid
13097         assertion failure in get_const_data_len if we have trailing 2
13098         bytes or the like. Check for service and name fields being
13099         provided twice. Don't leak service/name on error. Require field
13100         names to be aligned to 4 bytes.
13101
13102         * dbus/dbus-marshal.c: move byte swap stuff to header
13103         (_dbus_pack_int32): uscore-prefix
13104         (_dbus_unpack_int32): uscore-prefix
13105         (_dbus_unpack_uint32): export
13106         (_dbus_demarshal_string): add @todo complaining about use of
13107         memcpy()
13108         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13109         handling allowing corrupt data to go unchecked
13110
13111 2003-01-08  Havoc Pennington  <hp@redhat.com>
13112
13113         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13114         to the select() as needed for authentication. (should be using
13115         _dbus_poll() not select, but for another day)
13116
13117         * dbus/dbus.h: include dbus/dbus-protocol.h
13118
13119 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13120
13121         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13122         dbus-connection.h
13123
13124 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13125
13126         * dbus/dbus-internals.c: (_dbus_type_to_string):
13127         New function that returns a string describing a type.
13128
13129         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13130         * dbus/dbus-marshal.h:
13131         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13132         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13133         (dbus_message_iter_get_byte_array):
13134         * dbus/dbus-message.h:
13135         Add new convenience functions for appending and getting message fields.
13136         Also add demarshalling routines for byte arrays.
13137
13138 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13139
13140         * dbus/dbus-connection-internal.h:
13141         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13142         (_dbus_connection_get_next_client_serial),
13143         (dbus_connection_send_message):
13144         * dbus/dbus-internals.h:
13145         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13146         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13147         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13148         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13149         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13150         (_dbus_verbose_bytes), (_dbus_marshal_test):
13151         * dbus/dbus-marshal.h:
13152         * dbus/dbus-message-internal.h:
13153         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13154         (dbus_message_write_header), (_dbus_message_lock),
13155         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13156         (dbus_message_get_name), (dbus_message_append_int32),
13157         (dbus_message_append_uint32), (dbus_message_append_double),
13158         (dbus_message_append_string), (dbus_message_append_byte_array),
13159         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13160         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13161         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13162         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13163         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13164         (decode_header_data), (_dbus_message_loader_return_buffer),
13165         (message_iter_test), (_dbus_message_test):
13166         * dbus/dbus-message.h:
13167         * dbus/dbus-protocol.h:
13168         * dbus/dbus-test.c: (main):
13169         * dbus/dbus-test.h:
13170         * glib/test-dbus-glib.c: (message_handler), (main):
13171         * test/echo-client.c: (main):
13172         * test/watch.c: (check_messages):
13173         Make messages sendable and receivable for real.
13174
13175 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13176
13177         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13178         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13179         * dbus/dbus-message.c: (dbus_message_append_int32),
13180         (dbus_message_append_uint32), (dbus_message_append_double),
13181         (dbus_message_append_string), (dbus_message_append_byte_array):
13182         Handle OOM restoration.
13183
13184 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13185
13186         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13187         (_dbus_demarshal_string), (_dbus_marshal_test):
13188         * dbus/dbus-marshal.h:
13189         * dbus/dbus-message.c: (dbus_message_get_name),
13190         Document these functions.
13191
13192         (dbus_message_append_int32), (dbus_message_append_uint32),
13193         (dbus_message_append_double), (dbus_message_append_string),
13194         (dbus_message_append_byte_array):
13195         * dbus/dbus-message.h:
13196         Add functions for adding message fields of different types.
13197
13198         * dbus/dbus-protocol.h:
13199         Add the different types.
13200
13201 2003-01-05  Havoc Pennington  <hp@pobox.com>
13202
13203         * bus/connection.c: implement routines for handling connections,
13204         first thing is keeping a list of owned services on each connection
13205         and setting up watches etc.
13206
13207         * bus/services.c: implement a mapping from service names to lists
13208         of connections
13209
13210         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13211
13212         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13213         to use static mutexes for global data
13214
13215         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13216         collection of functions to set/get application-specific data
13217         on the DBusConnection.
13218
13219 2003-01-04  Havoc Pennington  <hp@pobox.com>
13220
13221         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13222         (_dbus_poll): new function
13223
13224         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13225         copied from GLib
13226
13227         * bus/loop.c: initial code for the daemon main loop
13228
13229 2003-01-04  Havoc Pennington  <hp@pobox.com>
13230
13231         * test/watch.c (error_handler): make it safe if the error handler
13232         is called multiple times (if we s/error handler/disconnect
13233         handler/ we should just guarantee it's called only once)
13234
13235         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13236         error handler on disconnect (it's quite possible we should
13237         just change the error handler to a "disconnect handler," I'm
13238         not sure we have any other meaningful errors)
13239
13240         * configure.in: check for getpwnam_r
13241
13242         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13243         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13244         mechanism as in SASL spec, using socket credentials
13245
13246         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13247         (_dbus_send_credentials_unix_socket): new function
13248
13249         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13250         dbus_accept()
13251         (_dbus_write): only check errno if <0 returned
13252         (_dbus_write_two): ditto
13253
13254 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13255
13256         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13257         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13258         (_dbus_marshal_test):
13259         * dbus/dbus-marshal.h:
13260         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13261         to _dbus_marshal_utf8_string. Also fix some tests.
13262
13263 2002-12-28  Harri Porten  <porten@kde.org>
13264
13265         * configure.in: added check for C++ compiler and a very cheesy
13266         check for the Qt integration
13267
13268         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13269
13270         * qt/Makefile.am: added
13271
13272         * qt/.cvsignore: added
13273
13274         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13275         latter, added #ifdef QT_THREAD_SUPPORT guard.
13276
13277         * dbus/Makefile.am: added missing headers for make dist
13278
13279 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13280
13281         * dbus/Makefile.am: fixup export-symbols-regex.
13282
13283 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13284
13285         * acinclude.m4: Add this file and put the
13286         PKG_CHECK_MODULE macro in it.
13287
13288 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13289
13290         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13291         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13292         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13293         (_dbus_marshal_test):
13294         Make the demarshalling routines align the pos argument.
13295         Add string marshalling tests and fix the obvious bugs
13296         discovered.
13297
13298 2002-12-26  Havoc Pennington  <hp@pobox.com>
13299
13300         * dbus/dbus-auth.c: fixes fixes fixes
13301
13302         * dbus/dbus-transport-unix.c: wire up support for
13303         encoding/decoding data on the wire
13304
13305         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13306         (_dbus_auth_decode_data): append to target string
13307         instead of nuking it.
13308
13309 2002-12-26  Havoc Pennington  <hp@pobox.com>
13310
13311         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13312         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13313         doh
13314
13315         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13316         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13317         now). Main point is because I wanted unpack_uint32 to implement
13318         _dbus_verbose_bytes
13319         (_dbus_verbose_bytes): new function
13320
13321         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13322
13323         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13324         mechanism to handle a corrupt message stream
13325         (_dbus_message_loader_new): fix preallocation to only prealloc,
13326         not prelengthen
13327
13328         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13329         (_dbus_string_test): enhance tests for copy/move and fix the
13330         functions
13331
13332         * dbus/dbus-transport-unix.c: Hold references in more places to
13333         avoid reentrancy problems
13334
13335         * dbus/dbus-transport.c: ditto
13336
13337         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13338         leak reference count in no-message case
13339
13340         * test/watch.c (do_mainloop): handle adding/removing watches
13341         during iteration over the watches. Also, ref the connection/server
13342         stored on a watch, so we don't try to mangle a destroyed one.
13343
13344         * dbus/dbus-transport-unix.c (do_authentication): perform
13345         authentication
13346
13347         * dbus/dbus-auth.c (get_state): add a state
13348         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13349         (_dbus_auth_get_unused_bytes): append the unused bytes
13350         to the passed in string, rather than prepend
13351
13352         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13353         the auth conversation DBusAuth
13354
13355         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13356         (_dbus_transport_new_for_domain_socket): when creating a
13357         transport, pass in whether it's a client-side or server-side
13358         transport so we know which DBusAuth to create
13359
13360 2002-12-03  Havoc Pennington  <hp@pobox.com>
13361
13362         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13363         _after_ finalizing the derived members
13364         (unix_connection_set): unref watch if we fail to add it
13365
13366         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13367         transport first, so that the connection owned by the
13368         transport will be valid as the transport finalizes.
13369
13370         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13371         if necessary, and remove watches from the connection.
13372
13373         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13374
13375 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13376
13377         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13378         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13379         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13380         (_dbus_marshal_test):
13381         * dbus/dbus-marshal.h:
13382         Add string marshal functions and have the demarshal functions
13383         return the new position.
13384
13385 2002-12-25  Havoc Pennington  <hp@pobox.com>
13386
13387         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13388         it is a simple protocol that just maps directly to SASL.
13389
13390         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13391         initial implementation, not actually used yet.
13392
13393         * dbus/dbus-string.c (_dbus_string_find): new function
13394         (_dbus_string_equal): new function
13395         (_dbus_string_base64_encode): new function
13396         (_dbus_string_base64_decode): new function
13397
13398 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13399
13400         * dbus/Makefile.am:
13401         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13402         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13403         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13404         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13405         * dbus/dbus-marshal.h:
13406         * dbus/dbus-protocol.h:
13407         * dbus/dbus-test.c: (main):
13408         * dbus/dbus-test.h:
13409         Add un-optimized marshalling/demarshalling routines.
13410
13411 2002-12-25  Harri Porten  <porten@kde.org>
13412
13413         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13414
13415 2002-12-24  Zack Rusin  <zack@kde.org>
13416
13417         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13418         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13419         main loop stuff
13420
13421 2002-12-24  Havoc Pennington  <hp@pobox.com>
13422
13423         * glib/dbus-gthread.c: fix include
13424
13425         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13426         I think glib API needs to change, though, as you don't
13427         want to use DBusMessageFunction, you want to use the
13428         DBusMessageHandler object. Probably
13429         dbus_connection_open_with_g_main_loop()
13430         and dbus_connection_setup_g_main_loop() or something like that
13431         (but think of better names...) that just create a connection
13432         that has watch/timeout functions etc. already set up.
13433
13434         * dbus/dbus-connection.c
13435         (dbus_connection_send_message_with_reply): new function just to
13436         show how the message handler helps us deal with replies.
13437
13438         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13439
13440         * dbus/dbus-string.c (_dbus_string_test): free a string that
13441         wasn't
13442
13443         * dbus/dbus-hash.c: use memory pools for the hash entries
13444         (rebuild_table): be more paranoid about overflow, and
13445         shrink table when we can
13446         (_dbus_hash_test): reduce number of sprintfs and write
13447         valid C89. Add tests for case where we grow and then
13448         shrink the hash table.
13449
13450         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13451
13452         * dbus/dbus-connection.c (dbus_connection_register_handler)
13453         (dbus_connection_unregister_handler): new functions
13454
13455         * dbus/dbus-message.c (dbus_message_get_name): new
13456
13457         * dbus/dbus-list.c: fix docs typo
13458
13459         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13460         an object representing a handler for messages.
13461
13462 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13463
13464         * glib/dbus-glib.h:
13465         * glib/dbus-gthread.c: (dbus_gthread_init):
13466         Don't use the gdbus prefix for public functions.
13467
13468 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13469
13470         * Makefile.am:
13471         * configure.in:
13472         Add GLib checks and fixup .pc files
13473
13474         * glib/Makefile.am:
13475         * glib/dbus-glib.h:
13476         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13477         (gdbus_connection_check), (gdbus_connection_dispatch),
13478         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13479         (dbus_connection_gsource_new):
13480         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13481         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13482         * glib/test-dbus-glib.c: (message_handler), (main):
13483         Add GLib support.
13484
13485 2002-12-15  Harri Porten  <porten@kde.org>
13486
13487         * autogen.sh: check for libtoolize before attempting to use it
13488
13489         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13490         struct.
13491
13492         * .cvsignore: ignore more stamp files
13493
13494         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13495
13496         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13497         without make install.
13498
13499 2002-12-15  Havoc Pennington  <hp@pobox.com>
13500
13501         * dbus/dbus-threads.c: add thread stubs that a higher library
13502         layer can fill in. e.g. the GLib wrapper might fill them in with
13503         GThread stuff. We still need to use this thread API to
13504         thread-safe-ize the library.
13505
13506 2002-12-12  Havoc Pennington  <hp@pobox.com>
13507
13508         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13509         below new interfaces and include fewer system headers.
13510
13511         * dbus/dbus-sysdeps.c (_dbus_read): new function
13512         (_dbus_write): new function
13513         (_dbus_write_two): new function
13514         (_dbus_connect_unix_socket): new function
13515         (_dbus_listen_unix_socket): new function
13516
13517         * dbus/dbus-message-internal.h: change interfaces to use
13518         DBusString
13519
13520 2002-12-11  Havoc Pennington  <hp@pobox.com>
13521
13522         * dbus/dbus-types.h: add dbus_unichar
13523
13524         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13525
13526         * dbus/dbus-connection.c (dbus_connection_send_message): return
13527         TRUE on success
13528
13529         * dbus/dbus-transport.c: include dbus-watch.h
13530
13531         * dbus/dbus-connection.c: include dbus-message-internal.h
13532
13533         * HACKING: add file with coding guidelines stuff.
13534
13535         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13536         handling here, for security purposes (as in vsftpd). Not actually
13537         using this class yet.
13538
13539         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13540         system/libc usage here, as in vsftpd, for ease of auditing (and
13541         should also simplify portability). Haven't actually moved all the
13542         system/libc usage into here yet.
13543
13544 2002-11-25  Havoc Pennington  <hp@pobox.com>
13545
13546         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13547         always print the first verbose message.
13548
13549 2002-11-24  Havoc Pennington  <hp@pobox.com>
13550
13551         * test/echo-client.c, test/echo-server.c: cheesy test
13552         clients.
13553
13554         * configure.in (AC_CHECK_FUNCS): check for writev
13555
13556         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13557         function
13558
13559         * dbus/dbus-list.c (_dbus_list_foreach): new function
13560
13561         * dbus/dbus-internals.c (_dbus_verbose): new function
13562
13563         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13564         representing a server that listens for connections.
13565
13566         * dbus/.cvsignore: create
13567
13568         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13569         public API for reporting errors
13570
13571         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13572         public object representing a connection that
13573         sends/receives messages. (Same object used for
13574         both client and server.)
13575
13576         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13577         Basic abstraction for different kinds of stream
13578         that we might read/write messages from.
13579
13580 2002-11-23  Havoc Pennington  <hp@pobox.com>
13581
13582         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13583         _DBUS_INT_MAX
13584
13585         * dbus/dbus-test.c (main): add list test, and include
13586         dbus-test.h as intended
13587
13588         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13589         (_dbus_hash_table_remove_int): return value indicates
13590         whether the entry existed to remove
13591
13592         * dbus/dbus-list.c: add linked list utility class,
13593         with docs and tests
13594
13595         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13596         array sometimes.
13597
13598 2002-11-23  Havoc Pennington  <hp@pobox.com>
13599
13600         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13601         DBUS_END_DECLS to nothing, that should fix this once and for all
13602
13603         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13604
13605         * dbus/dbus-message.c, dbus/dbus-hash.c:
13606         add some missing @brief
13607
13608 2002-11-23  Havoc Pennington  <hp@pobox.com>
13609
13610         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13611         to avoid confusing Doxygen
13612
13613         * dbus/dbus-hash.c: @} not }@
13614
13615         * dbus/dbus-message.c (struct DBusMessage): split out
13616         internals docs
13617
13618 2002-11-23  Havoc Pennington  <hp@pobox.com>
13619
13620         * configure.in: pile on more warning flags if using gcc
13621
13622         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13623         to document static functions
13624
13625         * configure.in: add summary to end of configure so it
13626         looks nice and attractive
13627
13628         * dbus/dbus-hash.c: finish implementation and write unit
13629         tests and docs
13630
13631         * configure.in: add --enable-tests to enable unit tests
13632
13633         * dbus/dbus-test.c: test program to run unit tests
13634         for all files in dbus/*, initially runs a test for
13635         dbus-hash.c
13636
13637         * dbus/dbus-internals.h: file to hold some internal utility stuff
13638
13639 2002-11-22  Havoc Pennington  <hp@redhat.com>
13640
13641         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13642         "ported" away from Tcl
13643
13644         * dbus/dbus-types.h: header for types such as dbus_bool_t
13645
13646 2002-11-22  Havoc Pennington  <hp@redhat.com>
13647
13648         * dbus/dbus.h: fixups for doc warnings
13649
13650         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13651         macros
13652         (QUIET): make it quiet so we can see warnings
13653
13654         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13655
13656 2002-11-22  Havoc Pennington  <hp@redhat.com>
13657
13658         * Makefile.am: include "Doxyfile" target in all-local
13659
13660         * configure.in: generate the Doxyfile
13661
13662         * Doxyfile.in: move Doxyfile here, so we can use
13663         configure to generate a Doxyfile with the right
13664         version number etc.
13665
13666 2002-11-22  Havoc Pennington  <hp@redhat.com>
13667
13668         * dbus/dbus-message.c: move inline docs into .c file
13669
13670         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13671         so all docs are under doc/
13672         (MAN_EXTENSION): generate man pages. Use extension
13673         ".3dbus" which matches ".3qt" on my system,
13674         I guess this is OK, I don't know really.
13675         (FILE_PATTERNS): look for .c files not .h, makes sense
13676         for plain C I think
13677
13678 2002-11-22  Havoc Pennington  <hp@pobox.com>
13679
13680         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13681         because any app can be a server, and any app can be a client,
13682         the bus is a special kind of server.
13683
13684 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13685
13686         * Doxyfile : adding. Still needs Makefile rules to be generated
13687         automatically (just run "doxygen" in the toplevel dir for now to
13688         generate docs)
13689
13690         * dbus/dbus-message.h : Adding sample docs (javadoc since
13691         resembles gtk-doc a little more)
13692
13693         * dbus/dbus.h : Adding sample docs
13694
13695 2002-11-21  Havoc Pennington  <hp@redhat.com>
13696
13697         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13698         so we can allow ourselves to include files directly,
13699         instead of having to use dbus.h
13700
13701         * dbus/dbus.h: fill in
13702
13703         * dbus/dbus-message.h: sketch out a sample header file.
13704         Include griping if you include it directly instead of
13705         via dbus.h
13706
13707         * dbus/dbus-macros.h: new file with macros for extern "C",
13708         TRUE/FALSE, NULL, etc.
13709
13710         * doc/file-boilerplate.c: put include guards in here
13711
13712 2002-11-21  Havoc Pennington  <hp@redhat.com>
13713
13714         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13715
13716         * COPYING: include the GPL as well, and license code
13717         under both AFL and GPL.
13718
13719 2002-11-21  Havoc Pennington  <hp@redhat.com>
13720
13721         * acconfig.h: get rid of this
13722
13723         * autogen.sh (run_configure): add --no-configure option
13724
13725         * configure.in: remove AC_ARG_PROGRAM to make
13726         autoconf complain less. add AC_PREREQ.
13727         add AC_DEFINE third arg.
13728
13729 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13730
13731         * doc/Makefile.am:
13732         Fix references so we can distcheck.
13733
13734 2002-11-21  Havoc Pennington  <hp@redhat.com>
13735
13736         * Initial module creation
13737