- Released 0.91
[platform/upstream/dbus.git] / ChangeLog
1 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
2
3         * Released 0.91
4
5 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
6
7         * dbus/dbus-connection.c:
8         (_dbus_connection_attach_pending_call_unlocked):
9         (connection_timeout_and_complete_all_pending_calls_unlocked):
10         Make sure we set timeout_added on pending calls to FALSE when
11         we remove the timeout from the connection
12
13 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
14
15         * Removed some extra bindings stuff lingering around (thanks timo)
16         * dbus-pendingcall.c (_dbus_pending_call_new): 
17         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
18         when we tried to take a lock on an already locked connection
19
20 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
21
22         * Released 0.90
23
24 2006-07-17  Havoc Pennington  <hp@redhat.com>
25
26         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
27         ints, reported by Owen Taylor
28
29 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
30
31         * doc/TODO:
32         * dbus/dbus-bus.c:
33         * dbus-errors.c:
34         * dbus/dbus-marshal-validate.c:
35           Removed TODO items which were fixed or are no longer relevent
36
37 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
38
39         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
40         Remove stray files from the stripped bindings
41
42 2006-07-16  Havoc Pennington  <hp@redhat.com>
43
44         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
45         Improve the error message on reply timeout
46
47 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
48
49         * Remove all bindings
50
51 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
52
53         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
54         and set pending_reply out arg to NULL is connection is disconnected
55         (connection_timeout_and_complete_all_pending_calls_unlocked): New
56         static method for cleaning up pending calls on disconnect
57         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
58         calls queued timeouts on disconnect 
59
60          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
61         Remove 
62
63 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
64
65         * bus/activation.[ch] (bus_activation_list_services): new function to 
66         get the list of services that can be activated
67
68         * bus/dispatch.c: test coverage for the new bus method
69         ListActivatableNames
70
71         * bus/driver.c: new bus method ListActivatableNames to get the list of
72         services that can be activated
73
74         * doc/dbus-specification.xml: ListActivatableNames method documentation
75
76 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
77         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
78         source files
79
80 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
81         * dbus/dbus-message-factory.c:
82         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
83
84 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
85         * dbus/dbus-connection-internal.h:
86         * dbus/dbus-connection.c:
87         * file dbus/dbus-pending-call.c:
88         * dbus/dbus-pending-call.h:
89         Make DBusPendingCall an opaque type even to D-Bus internals
90
91 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
92
93         * dbus/dbus-connection.h: remove connection_disconnect and replace with
94         connection_close
95
96         * dbus/dbus-connection.c: include dbus-bus.h
97         (_dbus_connection_read_write_dispatch): make static
98
99 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
100
101         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
102         function
103         (dbus_connection_dispatch): On disconnect unref any shared connections
104
105         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
106         for cleaning up shared connections on disconnect
107         (internal_bus_get): get a hard refrence to shared connections when
108         they are created
109         
110         * doc/TODO: Remove items which are no longer relevent or have been fixed
111         Split 1.0 todo items with a 0.90 freeze todo list
112  
113 2006-06-14  Ross Burton  <ross@openedhand.com>
114
115         * glib/dbus-gobject.c:
116         Free a leaking GArray (surely not!) in dbus_g_method_return.
117
118 2006-06-14  Ross Burton  <ross@openedhand.com>
119
120         * tools/Makefile.am:
121         * tools/dbus-monitor.c:
122         Don't use the GLib bindings in dbus-monitor (patch from Ralf
123         Habacker).
124         
125 2006-06-14  Ross Burton  <ross@openedhand.com>
126
127         * tools/dbus-print-message.c:
128         Also print the object path when outputting signals or method calls.
129
130 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
131
132         * qt/src/Makefile.am: install the qdbus.h header.
133         This allows people to actually use the installed code.
134
135 2006-06-12  Ross Burton  <ross@openedhand.com>
136
137         * glib/dbus-gproxy.c:
138         Don't leak a GArray when firing signals (thank Rob Taylor for review).
139
140 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
141
142         * Released 0.62
143
144 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
145
146         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
147         break pedantic builds. Closes bug 6043 (patch approved by
148         Havoc back in February).
149
150 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
151
152         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
153         that took a QDBusMessage parameter.
154         * qt/src/qdbusbus.h: Add a default flag for RequestName.
155         * qt/tools/dbus.cpp: Don't use automatic call because we might
156         be calling an async method: request a reply.
157
158 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
159
160         * test/qt/*: Update the testcases, including testing the new
161         functionality of sending null QByteArray and QString over the
162         bus. Add new headertest test and restore the old
163         qdbusxmlparser test.
164
165 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
166
167         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
168         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
169
170         * qt/examples/Makefile.am:
171         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
172         form.
173
174         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
175         QByteArray() (nulls) over the bus.
176         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
177         the one that has the signature suffix stripped.
178         * qt/src/qdbusreply.h: Make some methods const.
179
180 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
181
182         Patch from Timo Hoenig <thoenig@suse.de>.
183
184         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
185         required during build to EXTRA_DIST.
186         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
187         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
188         * configure.in: Fix "make dist", take care that the Makefile for
189         qt/dbus is being generated.
190
191 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
192
193         * bus/bus.c: Fix eavesdropping on method calls
194
195 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
196
197         * configure.in:
198         * dbus/dbus-userdb-util.c:
199         Add Solaris console owner patch from Artem Kachitchkine
200
201 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
202
203         * qt/Makfile.am:
204         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
205         reorganisation. Thanks to Timo Hoenig for pointing this out.
206
207 2006-06-06  Robert McQueen  <robot101@debian.org>
208
209         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
210           call to dbus_g_type_get_struct.
211
212 2006-06-06  Robert McQueen  <robot101@debian.org>
213
214         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
215           pointers were put into a GPtrArray-based specialised collection, and
216           then freed along with the array. GValues which you add into
217           collections or maps which have the NOCOPY flag set are assumed to not
218           belong to the caller, so rather than the existing pointer-stealing
219           semantics, they are copied instead. Given that the main consumers of
220           this abstraction are the bindings themselves, I don't think this is
221           too bad, but others should watch their choice of take vs set_static.
222
223 2006-06-06  Robert McQueen  <robot101@debian.org>
224
225         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
226           of g_slist_prepend not being used. Fixed copying of slist-based
227           specialised collections, then wrote a test case and found that it was
228           all broken. Went on to fix iterating and appending too. Good thing
229           nobody uses this code yet.
230
231 2006-06-06  Robert McQueen  <robot101@debian.org>
232
233         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
234           the iterators use gvalue_take_ptrarray_value (the GValues themselves
235           are discarded without unsetting, so it makes no difference whether
236           we take or set_static). Remove cases for G_TYPE_POINTER because
237           there really is nothing useful we can do with them in our
238           specialised types - we *need* boxed copy/free functions at the very
239           least.
240
241 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
242
243         * qt/dbus: Add directory. I had forgotten to add this
244         yesterday after the move...
245
246         * qt/examples/Makefile.am:
247         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
248
249         * qt/tools/Makefile.am:
250         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
251         Added feature to get and set properties.
252         Added validation of service, object path and interface names.
253
254         * qt/tools/dbusidl2cpp.cpp: Two new features:
255         1) Allow specifying both the header and the source file names,
256         by separating them with a colon.
257         2) Don't write an interface output if the -p switch wasn't
258         given, but the -a was.
259
260         * qt/src/*: Fix usage of Iterators and ConstIterators.
261         Fix shadowing of variables by other variables (-Wshadow).
262         Fix keyword-cleanliness in headers.
263         Fix ASCII-cast (QLatin1String, QLatin1Char).
264         Fix validation of member names.
265         Add extra checking of introspection data during XML parsing.
266         Various bug fixes.
267
268 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
269
270         * dbus/Makefile.am:
271         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
272         qt/dbus/qdbus.h now.
273
274 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
275
276         * configure.in: Make --disable-qt actually do
277           something. Patch inspired by Zack Rusin.
278
279 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
280
281         * qt/: Update to Subversion r548032.
282         This includes a big reorganisation of the files inside the
283         subdir.
284
285 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
286
287         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
288         clear:  
289         "Failed to connect to socket <host>:<port> <error>" instead of
290         "Failed to connect to socket <host>: <error>:<port>"
291
292         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
293         for a tcp transport. 
294
295 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
296
297         * qt/*: Update the QtDBus bindings up to revision 546310 in
298         Subversion.
299         This adds the dbuscpp2xml tool, that parses a C++ header and
300         outputs a D-BUS Introspection XML.
301
302 2006-05-21  Havoc Pennington  <hp@redhat.com>
303
304         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
305         is not NULL when it shouldn't be. Also a couple of possible fixes
306         for #4637 though I don't understand why the bug happens, to be
307         honest... also the object constructor has an assert name != NULL
308         and the name is only currently NULL for peer-to-peer proxies that 
309         I don't think anyone uses? So it should be asserting.
310         Anyway, for now at least see if we get an earlier assertion failure.
311
312         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
313         apparently broken code to be sure the tests fail and someone 
314         will fix them...
315
316 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
317
318         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
319         and arrays when they had a single element: has_next returns
320         false, even before you read the element. So, instead, check
321         the array length.
322
323 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
324
325         * qt/qdbusmessage.cpp:
326         * qt/qdbustypehelper_p.h:
327         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
328         the list is a const-reference
329
330 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
331
332         * Adding old doc patch that never got applied
333         
334         * dbus/bus.c (dbus_bus_add_match): Add documentation
335
336         * doc/dbus-specification.xml: Add documentation for the match rules
337           and the AddMatch and RemoveMatch methods
338
339 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
340
341         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
342         call (r535506)
343
344         * qt/dbusidl2cpp.cpp:
345         * qt/qdbusabstractadaptor.cpp:
346         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
347         sibling of the QDBusAbstractAdaptor objects instead of the
348         parent. (r535848)
349
350         * qt/dbusidl2cpp.cpp:
351         * qt/qdbusabstractinterface.cpp:
352         * qt/qdbusabstractinterface.h:
353         * qt/qdbusabstractinterface_p.h:
354         * qt/qdbusinterface.cpp: Make properties in interfaces
355         actually work. The code that was generated would not compile,
356         due to moc calls to functions that did not exist. They now
357         shall. (r536571)
358
359 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
360
361         * Makefile.am:
362         * configure.in:
363         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
364         Thanks to Brad Hards for providing the patch
365
366 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
367
368         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
369         call. (r535506)
370
371 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
372
373         * qt/examples/dbus.cpp: Enhance error messages and use
374         QDBusInterfacePtr.
375
376 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
377
378         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
379         and disable the copy operators. (r533772, r534746)
380
381         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
382
383         * qt/qdbusabstractinterface.cpp:
384         * qt/qdbusabstractinterface.h: Change the default call mode to
385         not use the event loop. Add convenience call() methods that
386         take a CallMode parameter. (r534042)
387
388         * qt/qdbusconnection.h: Change the default call mode to not
389         use the event loop. (r534042)
390
391         * qt/qdbusinterface.cpp:
392         * qt/qdbusinterface.h: Add a method to tell us if the
393         interface is valid (since we don't return a null pointer
394         anymore) (r534099)
395
396         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
397         (r534101)
398
399         * qt/qdbusinternalfilters.cpp: Decouple the introspection
400         function in two so taht we get the chance to introspect
401         without having a QDBusMessage (r534102)
402
403         * qt/qdbusbus.h:
404         * qt/qdbusconnection.cpp:
405         * qt/qdbusconnection_p.h:
406         * qt/qdbusintegrator.cpp: Keep a list of our own names to
407         avoid a round-trip to the server when attempting to introspect
408         one of our own objects. Also make sure the filter functions
409         match the empty interface as well. (r534108)
410         Don't keep the connection names. Instead, trust the unique
411         connection name (r534111)
412         Remove event loop usage (r534112)
413
414 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
415
416         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
417         Brad Hards.
418
419 2006-04-28  Robert McQueen  <robot101@debian.org>
420
421         * glib/dbus-gproxy.c: Fix properties so that they can be given in
422         any order, making it easier for people who inherit from this
423         object.
424
425 2006-04-28  Robert McQueen  <robot101@debian.org>
426
427         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
428         of memory from within pointer arrays and lists. Fixes bug #6300.
429
430 2006-04-28  Robert McQueen  <robot101@debian.org>
431
432         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
433         generating struct signatures. Fixes bug #6083.
434
435 2006-04-28  Robert McQueen  <robot101@debian.org>
436
437         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
438         to qdbusconnection_p.moc.
439
440 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
441
442         * README, INSTALL: Doc fixes
443         Patch from Brad Hards <bradh at frogmouth.net>
444
445 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
446
447         * qt/examples/dbus.cpp: Use the new merged-interface mode for
448         the dynamic meta object. No need to guess which interface to
449         call.
450
451 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
452
453         * qt/qdbusconnection_p.h:
454         * qt/qdbusmetaobject.cpp:
455         * qt/qdbusmetaobject_p.h:
456         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
457         for the dynamic meta object. No need to guess which
458         interface to call.
459         * qt/qdbusabstractinterface_p.h:
460         * qt/qdbusconnection.cpp:
461         * qt/qdbusintegrator.cpp:
462         * qt/qdbusinterface.cpp:
463         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
464         Add a QDBusRef that looks and behaves like DCOPRef.
465
466 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
467
468         * dbus/dbus-connection.c: Interfaces are optional in method
469         calls, so don't give up if the interface parameter is NULL.
470         Patch reviewed by Havoc Pennington.
471
472 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
473
474         * qt/qdbusreply.h: Add default constructor and operator=
475           (r532625)
476         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
477           in public headers (r532952)
478         * qt/qdbusabstractinterface.cpp:
479         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
480           make it the default (r532951)
481
482 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
483
484         * dbus/dbus-connection.c: Fix asserts
485         Patch from Tim Moloney <t.moloney at verizon.net>
486
487 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
488
489         * mono/Connection.cs, mono/Message.cs: Check Target type
490         Patch from Aaron Bockover (abockover at novell.com)
491
492 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
493
494         * INSTALL: fine-tune the requirements for the Qt4 binding.
495
496 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
497
498         * tools/dbus-print-message.c: Added support for printing of all 
499           remaining data types. Fixed logic for indentation of compound
500           data types.
501         
502 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
503
504         * INSTALL: fill out content of file providing DBus specific
505           build installations, followed by generic Auto* INSTALL file
506           content
507         
508 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
509
510         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
511           Patch by Stefan Eilers. (r529537)
512
513 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
514
515         * qt/qdbusinternalfilters.cpp: Don't show the parent's
516           contents (r528208)
517
518 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
519
520         * qt/Makefile.am: fix the dependency for
521           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
522           not in qdbusconnection.cpp.
523           Thanks to Jakub Stachowski <stachowski@hypair.net> for
524           spotting this.
525
526 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
527
528         * qt/examples/listnames.cpp:
529         * qt/examples/Makefile.am: Three ways to list the names on the
530           bus.
531
532 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
533
534         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
535           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
536
537 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
538
539         Merge from Subversion:
540         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
541           something that exists (r526315)
542         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
543           slots/signals (r526316)
544         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
545           also return an unknown-method error if the parameters don't
546           match for org.freedesktop.DBus.Properties. (r526842)
547         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
548         * qt/qdbusintegrator.cpp: Restore the proper order of
549           delivery: don't make method returns be delivered on priority
550           (r528150)
551
552 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
553
554         * configure.in qt/Makefile.am: add qt/examples
555         * qt/examples: Add QtDBus example programs:
556           - hello: Hello, World
557           - ping: Simple method-calling program
558           - pong: Simple object-exporting program (not using adaptors)
559           - complexping: Interactive method-calling program 
560                 (also gets and sets properties).
561           - complexpong: Sample program exporting methods, signals and
562                 properties, using adaptors.
563           - dbus: Simple implementation of a generic method-calling
564                 program, similar to 'dbus-send', but with semantics
565                 similar to 'dcop'.
566           - chat: Simplistic chat program, implemented using signals
567                 and the system bus. Looks like IRC.
568
569 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
570
571         * configure.in: Detect QtGui (necessary for one of the
572           example programs). Note: this increases the minimum required
573           version of Qt to 4.1.3.
574
575 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
576
577         * test/qt/*: Sync with KDE Subversion revision 523647.
578         Update the testcases to the new API. Remove testcases for
579         classes that are no longer public or have been removed.
580
581 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
582
583         * qt/*: 
584         * dbus/qdbus.h: Sync with KDE Subversion revision
585         523647. Hopefully, this will be the last of the
586         source-incompatible changes. Documentation has been improved;
587         support for QList<basic-types> has been added; QDBusObject is
588         gone; QDBus(Abstract)Interface is now a QObject with
589         auto-generated meta-object; QDBusIntrospection is marked
590         private, since QMetaObject can be used now; lots of bugfixes.
591
592 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
593
594         Patch from Milosz Derezynski <internalerror at gmail.com>
595         
596         * configure.in:
597         Output the service directory in the configure summary
598
599         * dbus-1.pc.in:
600         Add session_bus_services_dir
601
602 2006-03-10  Ross Burton  <ross@openedhand.com>
603
604         * tools/dbus-print-message.c:
605         Add support for object paths and signatures.
606
607 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
608
609         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
610         config reload.
611         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
612         information caches
613         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
614         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
615         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
616         * dbus/dbus-userdb.h: Add function to flush all user/group information
617         caches.
618
619 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
620
621         * qt/dbusidl2cpp.cpp:
622         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
623         for dcopidl2cpp, found in the KDE installations (or the more
624         modern kalyptus): generate Qt4 C++ code for the input XML
625         introspection. Currently no IDL parsing.
626
627 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
628
629         * test/qt/*: Update the self-tests.
630
631 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
632
633         * qt/*: 
634         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
635         represents the first feature-complete version of the Qt4
636         bindings since I took ove maintainership.
637
638 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
639
640         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
641         dir. This is C++, so we can't use the DBus ones.
642
643 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
644
645         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
646         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
647
648 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
649
650         * dbus/dbus-connection.c: 
651         (_dbus_connection_block_pending_call):
652         Check to see if our data has already been read off the connection
653         by another blocking pending call before we block in poll.
654         (check_for_reply_and_update_dispatch_unlocked):
655         Code taken from _dbus_connection_block_pending_call - checks for
656         an already read reply and updates the dispatch if there is one.
657
658         * test/name-test/test-pending-call-dispatch.c:
659         New test for making sure we don't get stuck polling a 
660         dbus connection which has no data on the socket when
661         blocking out of order on two or more pending calls.
662
663 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
664
665         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
666         make/automake don't detect that we're talking about the same
667         .lo file if I specify the full path to the source files.
668
669 2006-02-26  Havoc Pennington  <hp@redhat.com>
670
671         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
672
673         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
674         session bus variable is unset, suggest "man dbus-launch" and "man
675         dbus-daemon" to figure out how to fix the problem
676
677 2006-02-25  Havoc Pennington  <hp@redhat.com>
678
679         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
680         should make this thing use the new glib options parser
681
682 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
683
684         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
685         .lo files taking moc sources.
686
687 2006-02-25  Havoc Pennington  <hp@redhat.com>
688
689         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
690         and install it as a public header
691
692 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
693
694         * Released 0.61
695
696 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
697         
698         * proxies.py: Fix the callchain
699
700 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
701         
702         * patch from Sjoerd Simons <sjoerd at debian.org>:      
703
704         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
705         dbus/dbus-sysdeps.c
706
707         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
708         call _dbus_group_info_free_allocated which causes infinite loop,
709         correctly call _dbus_group_info_free
710
711 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
712
713         * qt/qdbusinterface_p.h:
714         * qt/qdbusinterface.cpp: Use the standard
715         org.freedesktop.DBus.Method.NoReply annotation for the "async"
716         calls instead of creating one for us.
717
718         * qt/qdbusconnection_p.h:
719         * qt/qdbusintegrator.cpp: Remove debugging code.
720
721         * qt/qdbusintegrator.cpp:
722         * qt/qdbusmessage.cpp:
723         * qt/qdbusmessage_p.h:
724         * qt/qdbusmessage.h: Change the behaviour of automatic
725         reply-sending: now a reply is always sent, unless the caller
726         didn't request one or if the user slot has already sent one.
727
728 2006-02-16  Robert McQueen  <robot101@debian.org>
729
730         * configure.in: Patch from Debian packages by Sjoerd Simons
731         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
732         arguments so it's possible to build both bindings in the
733         same tree.
734
735         * qt/Makefile.am: Fix truncated value so that make dist works.
736
737 2006-02-16  Robert McQueen  <robot101@debian.org>
738
739         * acinclude.m4, configure.in: Patch from Brad Hards
740         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
741         improving quoting, re-ordering a few checks, and a few other
742         aesthetic tidy-ups.
743
744 2006-02-16  Robert McQueen  <robot101@debian.org>
745
746         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
747         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
748         assertion that the next element to read from the iter is fixed in
749         size. This is not the case when you are at the end of the iter,
750         because the next element type is INVALID.
751
752         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
753         a bogus assert which means that you may not initialise a 0-length
754         string unless you provide a non-NULL pointer. This prevented
755         you from marshalling messages containing zero-length arrays in
756         some cases.
757
758         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
759         from Rob to correct bogus asserts when trying to demarshal an
760         array and get_fixed_array got you 0 elements. Append nothing to
761         the GArray in this case.
762
763         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
764         an empty array via the glib bindings. Without all of the above
765         patches, this new test fails.
766
767 2006-02-16  Robert McQueen  <robot101@debian.org>
768
769         * glib/dbus-gmain.c: Make the previous commit compile.
770
771         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
772         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
773         specify sender_keyword="foo", path_keyword="bar" when adding
774         a signal listener, so that you can bind to signals generically
775         but still do something useful in your callback.
776
777         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
778         chars so that they're not cast to chars and made negative. Thanks
779         to Jakub Stachowski for reporting this and testing the fix.
780
781 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
782
783         * dbus/dbus-glib.h:
784         * glib/dbus-gmain.h:
785         (dbus_g_connection_open): new method for openning
786         a connection to an arbitrary address in the glib bindings
787
788         * ChangeLog: checkin last entry which doesn't seem to be commited
789
790 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
791
792         * tools/dbus-launch.c: Fixed sh syntax output
793
794 2006-02-13  Robert McQueen  <robot101@debian.org>
795
796         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
797         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
798         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
799         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
800         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
801         missing piece of the glib bindings jigsaw puzzle. This modifies
802         the existing specialised types to have N type parameters (rather
803         than the current 1 or 2 for arrays and dictionaries respectively).
804         You can then use this to get a glib type to represent any arbitrary
805         D-Bus struct type using dbus_g_type_get_struct. The only
806         implementation of these types is with GValueArrays as before,
807         but it's now possible to store these in arrays, emit them in
808         signals, etc.
809
810 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
811
812         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
813         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
814         <thiago.macieira at trolltech.com>
815
816 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
817
818         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
819         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
820
821 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
822
823         * bus/connection.c (bus_connections_expect_reply): Make
824         pending reply limit not common to all connections (Bug #5416)
825         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
826
827 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
828
829         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
830
831 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
832
833         * gcj/Makefile.am: point to correct jar command (Bug #4529)
834         patch from Doug Goldstein <cardoe at gentoo.org>
835
836 2006-02-09  Joe Shaw  <joeshaw@novell.com>
837
838         * mono/Arguments.cs: Fix a magic number in the mono bindings
839         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
840
841 2006-01-27  Robert McQueen  <robot101@debian.org>
842
843         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
844         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
845         when generating the client-side methods, instead of overloading
846         CSymbol which broke everything horribly. My apologies.
847
848 2006-01-27  Robert McQueen  <robot101@debian.org>
849
850         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
851         by me and Rob Taylor to add a simple_free function to D-Bus map
852         and collection types, which allows those types which can be freed
853         with a GDestroyNotify (such as GHashTables and GArrays, but not
854         GPtrArrays) to be stored as the values in hashtables.
855
856         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
857         Patch by Rob Taylor to add nested dicts to the glib tests to check
858         the above code works, and appears not to leak when called repeatedly.
859
860 2006-01-27  Robert McQueen  <robot101@debian.org>
861
862         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
863         to free a D-Bus allocated string with dbus_free () instead of
864         g_free ().
865
866 2006-01-27  Iain Holmes  <iain@openedhand.com>
867
868         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
869         method from being called multiple times.
870
871 2006-01-19  Robert McQueen  <robot101@debian.org>
872
873         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
874         <rob.taylor@collabora.co.uk> to add support for generating bindings
875         to arrays that are represented as GPtrArrays rather than GArrays (ie
876         size-variable things, such as strings, objects, structs, etc).
877
878 2006-01-05  Robert McQueen  <robot101@debian.org>
879
880         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
881         <ricardo.kekki@movial.fi> to make it possible to inherit from
882         DBusGProxy, by splitting the DBusGProxy struct into a public part and
883         a private part, and moving the setting of the DBusGProxyManager into a
884         connection property, allowing proper GObject construction.
885
886 2006-01-05  Robert McQueen  <robot101@debian.org>
887
888         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
889         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
890         annotations when generating glib client bindings.
891
892 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
893
894         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
895
896         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
897
898 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
899
900         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
901
902 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
903
904         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
905
906 2005-12-19  Ross Burton  <ross@openedhand.com>
907
908         * doc/dbus-tutorial.xml:
909         Document the Glib client-side bindings, and list all possible annotations.
910
911 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
912
913         * dbus/bus.c (dbus_bus_release_name): Add documentation
914
915 2005-12-06  Robert McQueen  <robot101@debian.org>
916
917         * python/service.py: s/sucessful/successful/ so we're allocating to
918         and reading from the same variable. Oops.
919
920 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
921
922         * Released 0.60
923
924 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
925
926         * test/qt/Makefile.am: build from srcdir
927
928         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
929         Note - this code is wrong and needs to be fixed by the Qt binding
930         developers.  The flags should be treated as bitfields and not enums.
931
932         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
933
934 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
935
936         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
937           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
938           in production code
939
940 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
941
942         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
943         method for getting messages off the bus in the absence of a
944         mainloop.  This method is much like 
945         dbus_connection_read_write_dispatch except it does not dispatch
946         the messages to a registered filter function.  Instead it
947         allows a developer to process messages by directly popping
948         them off the bus.
949
950 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
951
952         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
953         the parser to continue instead of returning error
954         (bus_desktop_file_load): Do not free parser data when
955         parse_section_start or parse_key_value fails because it was 
956         already freed by parser_free (patch from Carlos Garcia Campos  
957         <carlosgc at gnome.org>)
958
959 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
960
961         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
962         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
963         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
964         test/test-segfault.c, test/test-utils.c,
965         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
966         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
967         Various cleanup of dead code and compiler warnings (patch from
968         Kjartan Maraas <kmaraas at gnome.org>) 
969
970 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
971
972         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
973         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
974
975 2005-11-27  Robert McQueen  <robot101@debian.org>
976
977         * python/dbus_bindings.pyx: Repair my previous commit which reverted
978         part of the preceding one. Oops. Merge patch by Johan Hedberg
979         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
980         on big-endian platforms.
981
982         * test/python/test-client.py: Add some 16-bit integers to the test
983         values.
984
985 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
986
987         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
988         method return message for property getters
989
990 2005-11-27  Robert McQueen  <robot101@debian.org>
991
992         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
993         with type v of an instance of dbus.Variant(foo, type='x') caused
994         it to be boxed twice before sending over the bus.
995
996         * python/dbus_bindings.pyx, python/service.py,
997         test/python/test-client.py: Update the constants for the new
998         request_name flags, and update comments/test cases now that queueing
999         is the default action.
1000
1001 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1002
1003         * configure.in:
1004         - Change version to 0.60 for impending release
1005         - upped the sonames because of ABI and API breakage
1006
1007 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1008
1009         * configure.in: Add test/name-test/Makefile to the generated
1010         Makefile list
1011
1012         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1013         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1014         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1015         not to queue an ower if it can't be the primary owner
1016
1017         * bus/bus.h: Add new internal BusOwner struct
1018
1019         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1020         to bus_registry_ensure and don't set the prohibit_replacement flag
1021         since they are now set per BusOwner and not per name.
1022         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1023         that returns the list of connections in a name's connection queue
1024         
1025         * bus/services.c (struct BusService): remove prohibit_replacement field
1026         (struct BusOwner): new struct for keeping track of queued connections
1027         and their associated flags for the queue
1028         (struct BusRegistry): add a BusOwner memory pool
1029         (bus_registry_new): initialize the BusOwner memory pool
1030         (bus_registry_unref): free the BusOwner memory pool
1031         (_bus_service_find_owner_link): new internal method for
1032         searching the queue for a specific connection
1033         (bus_owner_set_flags): new method for adding setting the flags on a
1034         bus owner
1035         (bus_owner_new): new method that creates a BusOwner object from the
1036         pool and sets its flags
1037         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1038         (bus_registry_ensure): Add the flags parameter
1039         (bus_registry_acquire_service): Switch from using raw connections to
1040         using the BusOwner struct
1041         Add new state machine for dealing with the new set of flags
1042         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1043         cancel_ownership, free_ownership_cancel_data, 
1044         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1045         restore_ownership, free_ownership_restore_data, 
1046         add_restore_ownership_to_transaction): Switch to using BusOwner 
1047         instead of raw connections
1048         (bus_service_add_owner): Add flags parameter
1049         Switch to using BusOwner instead of raw connections
1050         Add state machine for dealing with the new set of flags
1051         (bus_service_swap_owner): Swaps the first and second owners in the
1052         queue.  Used to make sure proper signals are sent when a service looses 
1053         or gains primary ownership.  We never insert an owner at the top of the
1054         queue.  Instead we insert it in the second position and then swap.
1055         (bus_service_remove_owner): Remove the owner from the queue sending
1056         out the NameLost and NameOwnerChanged signals if the we were the 
1057         primary owner
1058         (bus_service_get_primary_owners_connection): New method that extracts
1059         the connection from the primary owner
1060         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1061         connection
1062         (bus_service_get_allow_replacement): Changed from the old 
1063         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1064         primary owner and returns if it can be replaced or not
1065         (bus_service_set_prohibit_replacement): removed
1066         (bus_service_has_owner): returns TRUE if and owner with
1067         the specified connection exists in the queue
1068         
1069         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1070         method that only compiles if tests are enabled.  Allows us to get the 
1071         unique name of a connection so we can check it against the queue when
1072         doing regression tests
1073
1074         * bus/activation.c (bus_activation_send_pending_auto_activate),
1075         bus/dispatch.c (bus_dispatch),  
1076         bus/driver.c (bus_driver_handle_get_service_owner, 
1077         bus_driver_handle_get_connection_unix_user, 
1078         bus_driver_handle_get_connection_unix_process_id,
1079         bus_driver_handle_get_connection_selinux_security_context),
1080         bus/signals.c (connection_is_primary_owner): 
1081         use bus_service_get_primary_owners_connection instead of
1082         bus_service_get_primary_owner
1083
1084         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1085         _dbus_listen_unix_socket): Calculate the length of the socket
1086         path and use that instead of using a fixed length which was
1087         causing socket names to contain many trailing Nul bytes.
1088
1089         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1090         (dbus_g_method_get_sender): New method for extracting the sender 
1091         from a DBusGMethodInvocation
1092         (dbus_g_method_return_get_reply): changed name to 
1093         dbus_g_method_get_reply
1094         (dbus_g_method_return_send_reply): changed name to
1095         dbus_g_method_send reply
1096
1097         * doc/dbus-specification.xml: New docs that describe how the new
1098         queueing system works and talks about the changes to the how
1099         we specify socket names
1100
1101         * glib/examples/example-service.c, 
1102         glib/examples/example-signal-emitter.c,
1103         glib/examples/statemachine/statemachine-server.c:
1104         Changed the RequestName flags to the new system
1105
1106         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1107         regression test suite for testing various states of the new
1108         queueing system
1109         
1110 2005-11-15  Robert McQueen  <robot101@debian.org>
1111
1112         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1113         Taylor to add two methods, dbus_g_method_return_get_reply and
1114         dbus_g_method_return_send_reply, to allow you to get the reply
1115         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1116         and send it. The GLib bindings can't marshal a return value of
1117         something like a(s) if the array is empty - ultimately they should be
1118         made to heed the signature of the out arguments as the Python bindings
1119         now can, but this is a workable interim solution which might have
1120         other applications.
1121
1122 2005-11-15  Robert McQueen  <robot101@debian.org>
1123
1124         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1125         method to org.freedesktop.DBus to release a bus name or give up
1126         waiting in the queue for it.
1127
1128         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1129         dbus_bus_release_name method to send the ReleaseName method calls.
1130         Add constants for the return values to dbus/dbus-shared.h.
1131
1132         * doc/dbus-specification.xml: Document the new ReleaseName method
1133         in the specification.
1134
1135         * python/dbus_bindings.pyx: Add a low-level python binding for the
1136         release name method.
1137
1138         * python/exceptions.py, python/service.py: Make freeing BusName
1139         objects release the name. Add a NameExistsException, and fix a
1140         bug with creating UnknownMethodException.
1141
1142         * test/python/test-client.py: Add tests for freeing BusName
1143         objects causing names to be released.
1144
1145 2005-11-14  Robert McQueen  <robot101@debian.org>
1146
1147         * python/service.py: Include the traceback in the error reply when we
1148         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1149
1150 2005-11-14  David Zeuthen  <davidz@redhat.com>
1151
1152         Patch from Timo Hoenig <thoenig@suse.de>.
1153
1154         * bus/bus.c: I've recently investigated why the automatic reload
1155         of configuration files does not work as expected.
1156
1157         Currently, reloading configuration files does only work when
1158         running dbus-daemon with --nodaemon.  If we are running as daemon
1159         we're hitting a dnotify bug once we fork the process.
1160
1161         We're initializing the dnotify fds before calling fork().  Once
1162         the child process forked it does still have the fds (and they
1163         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1164         getting SIGIO as changes are made to the configuration files.
1165
1166         The attached patch moves the initialization of the dnotify fds to
1167         process_config_postinit().  This is safe for all current code
1168         paths and solves the dnotify disfunction.  If we're running
1169         dbus-daemon as daemon the fds for dnotify are now being
1170         initialized after fork() for the child process.
1171
1172         * configure.in: The current configure.in check for dnotify probes
1173         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1174         match for 'xlinux', too. Additionally I have adapted the configure
1175         option's style to match with the others.
1176
1177 2005-11-14  Robert McQueen  <robot101@debian.org>
1178
1179         * python/decorators.py, python/service.py: Add a new argument to the
1180         dbus.service.method decorator called sender_keyword, which if set,
1181         specifies the name of an argument which will be provided the bus
1182         name of the method caller.
1183
1184         * test/python/test-client.py, test/python/test-service.py: Add a
1185         method and test to check the sender_keyword functionality.
1186
1187 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1188
1189         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1190         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1191         Simons <sjoerd at luon.net>)
1192
1193         * AUTHORS: Add Robert McQueen for his work on the Python
1194         Bindings and other parts of D-Bus
1195
1196 2005-11-07  Robert McQueen  <robot101@debian.org>
1197
1198         * python/decorators.py: Change emit_signal function to use the
1199         signature annotation of the signal when marhsalling the arguments from
1200         the service. Fix a bug where the code checking signature length
1201         against argument length referenced the wrong variable.
1202
1203         * python/introspect_parser.py: Avoid adding the type signature of
1204         signal arguments to any methods which occur after them in the
1205         introspection data (!) by making the parser a little more careful
1206         about its current state.
1207
1208         * python/service.py: Remove debug prints from last commit (again :D).
1209
1210         * test/python/test-client.py, test/python/test-service.py: Add test
1211         signals with signature decorators to test the strict marshalling code
1212         gives errors at the right time. Could do with checking the signals
1213         actually get emitted too, given that the test does nothing with
1214         signals at the moment...
1215
1216 2005-11-07  Robert McQueen  <robot101@debian.org>
1217
1218         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1219         instances to stop madness of creating new instances representing
1220         the same bus connection all the time, rendering any tracking of
1221         match rules and bus names quite meaningless. Caught a bug where
1222         the private argument to SessionBus() and friends was being passed
1223         in as use_default_mainloop by mistake. Still some problems with
1224         multiple dbus_binding.Connection instances representing the same
1225         low-level connection (eg when you use both SessionBus() and
1226         StarterBus() in same process), but it's a lot better now than it
1227         was.
1228
1229         * python/dbus_bindings.pyx: Add constants with the return values
1230         for bus_request_name().
1231
1232         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1233         and retrieve the same instances for the same name, so deletion can be
1234         done with refcounting. Also now throws some kind of error if you
1235         don't actually get the name you requested, unlike previously...
1236
1237         * test/python/test-client.py: Add tests for instance caching of buses
1238         and bus name objects.
1239
1240 2005-11-04  Robert McQueen  <robot101@debian.org>
1241
1242         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1243         marshalling of boolean values. Add some booleans to the values in
1244         the test client.
1245
1246         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1247         argument to the dbus.service.method decorator, which allows you to
1248         name arguments to take two callback functions for replying with
1249         return values or an exception.
1250
1251         * test/python/test-client.py, test/python/test-service.py: Add test
1252         case using asynchronous method reply functions, both return values and
1253         errors, and from within both the function itself and from a mainloop
1254         callback.
1255
1256         * python/decorators.py, python/service.py: Perform checking that the
1257         number of method/signal arguments matches the number of types in the
1258         signature at class loading time, not when you first introspect the
1259         class.
1260
1261         * python/service.py: Remove debug print left by the last commit.
1262
1263 2005-11-03  Robert McQueen  <robot101@debian.org>
1264
1265         * python/service.py: Heavy refactoring of method invocation, with
1266         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1267         in favour of a new _message_cb that uses seperate functions for
1268         looking up the method to call, marshalling the return values, and
1269         sending exceptions as errors, and is easier to follow as a
1270         consequence.  Fixes some corner cases about returning things that
1271         don't match your declared out_signature, allows exceptions to define
1272         _dbus_error_name and have it be sent over the bus as the error name,
1273         and paves the way for cool stuff like heeding the message no reply
1274         flag, asynchronous method implementations, informing the method of the
1275         sender, and including backtraces in the error messages.
1276
1277         * test/python/test-client.py: Catch and print exceptions thrown in the
1278         async callback tests, rather than passing them to the low-level
1279         bindings to be ignored in a noisy and frustrating manner.
1280
1281 2005-11-03  Robert McQueen  <robot101@debian.org>
1282
1283         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1284         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1285         tweak others to be consistent.
1286
1287         * test/python/test-client.py: Tweak output of testInheritance.
1288
1289 2005-10-29  Robert McQueen  <robot101@debian.org>
1290
1291         * python/service.py: Major changes to allow multiple inheritance
1292         from classes that define D-Bus interfaces:
1293         
1294          1. Create a new Interface class which is the parent class of
1295             Object, and make the ObjectType metaclass into InterfaceType.
1296         
1297          2. Patch written with Rob Taylor to replace use of method_vtable
1298             with code that walks the class's __MRO__ (method resolution order)
1299             to behave like Python does when invoking methods and allow
1300             overriding as you'd expect. Code is quite tricky because
1301             we have to find two methods, the one to invoke which has the
1302             right name and isn't decorated with the /wrong/ interface,
1303             and the one to pick up the signatures from which is decorated
1304             with the right interface.
1305         
1306             The same caveats apply as to normal multiple inheritance -
1307             this has undefined behaviour if you try and inherit from two
1308             classes that define a method with the same name but are
1309             decorated with different interfaces. You should decorate
1310             your overriding method with the interface you want.
1311         
1312          3. Replace grungy introspection XML generation code in the metaclass
1313             with dictionaries that cope correctly with multiple inheritance
1314             and the overriding of methods. This also uses the signature
1315             decorations to provide correct introspection data, including
1316             the debut appearance of the types of your return values. :D
1317
1318         * test/python/test-client.py, test/python/test-service.py: Add a test
1319         case to try invoking an method that overrides one inherited from a
1320         D-Bus interface class.
1321
1322 2005-10-29  Robert McQueen  <robot101@debian.org>
1323
1324         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1325         Add checking for the end of struct character when marshalling a
1326         struct in MessageIter.append_strict.
1327
1328         * python/examples/example-service.py,
1329         python/examples/gconf-proxy-service.py,
1330         python/examples/gconf-proxy-service2.py: Update to use gobject
1331         mainloop directly rather than appearing to depend on gtk.
1332
1333         * python/test/test-client.py, python/test/test-server.py: Remove
1334         obsolete and broken test scripts for old bindings. We have up to date
1335         and working tests in test/python/.
1336
1337 2005-10-29  Robert McQueen  <robot101@debian.org>
1338
1339         * python/decorators.py: Add optional arguments to the method and
1340         signal decorators to allow you to specify the signature of arguments
1341         and return values. Preserve the doc strings of signal functions in the
1342         decorated version, for pydoc and friends.
1343
1344         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1345         parse_signature_block function with an iterable dbus.Signature()
1346         type. Fix a bug in MessageIter.append_strict where you could append
1347         anything by claiming it was a string.
1348
1349         * python/service.py: Use the out_signature decoration on methods to
1350         marshal return values, meaning you no longer require dbus.Array()
1351         or dbus.Dictionary() to indicate the type when returning empty
1352         arrays or dictionaries. Fix a bug where exceptions which are defined
1353         in __main__ are not turned into error replies.
1354
1355         * test/python/test-client.py, test/python/test-service.py: Add test
1356         for correct marshalling of return values according to out_signature.
1357         Fix a bug in the async call test where the error_handler is missing a
1358         self argument.
1359
1360 2005-10-29  Robert McQueen  <robot101@debian.org>
1361
1362         * glib/Makefile.am, glib/examples/Makefile.am,
1363         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1364         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1365
1366         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1367
1368         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1369         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1370         the command line.
1371
1372 2005-10-27  Ross Burton  <ross@openedhand.com>
1373
1374         * dbus/dbus-marshal-header.c:
1375         Remove dead code.
1376
1377         * glib/dbus-gobject.c:
1378         Stop compiler warning.
1379
1380 2005-10-25  Ross Burton  <ross@openedhand.com>
1381
1382         * dbus/dbus-auth.c:
1383         * dbus/dbus-server-unix.c:
1384         * dbus/dbus-transport-unix.c:
1385         * glib/dbus-gmain.c:
1386         * glib/dbus-gobject.c:
1387         Add some const keywords.
1388
1389 2005-10-25  Ross Burton  <ross@openedhand.com>
1390
1391         * doc/dbus-specification.xml:
1392         Document the NoReply annotation.
1393
1394         * glib/dbus-binding-tool-glib.h:
1395         * glib/dbus-binding-tool-glib.c:
1396         Respect the NoReply annotation.
1397
1398 2005-10-24  Robert McQueen <robot101@debian.org>
1399
1400         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1401         derive from unicode instead of str, and encode/decode UTF-8 when
1402         marshalling/unmarshalling bus messages
1403
1404         * python/introspect_parser.py: encode introspection data as UTF-8
1405         before passing the buffer into libxml2
1406
1407         * test/python/test-client.py: add unicode test strings
1408
1409         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1410         ignore generated python test files
1411
1412 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1413
1414         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1415         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1416         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1417
1418         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1419         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1420         when constructing struct signatures
1421
1422         * python/_dbus.py (Bus): handle private connections using the
1423         private keyword in the constructor. defaults to private=False
1424         (Bus::close): new method to close a connection to the bus
1425
1426         * python/dbus_bindings.pyx (Connection::close): renamed method
1427         was previously called disconnect
1428         (bus_get): now supports getting a private connection
1429
1430         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1431         keyword is set to True.  if it is, execute the method without waiting
1432         for a reply
1433         (ProxyObject::_introspect_execute_queue): new method for executing
1434         all the pending methods that were waiting for the introspect to
1435         finish.  this is called when introspect either succeeds or fails
1436         (ProxyObject::_introspect_error_handler): call queued methods
1437
1438 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1439
1440         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1441         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1442
1443         * python/service.py (Object::_message_cb): handle exceptions correctly
1444         by sending them over the wire to the calling app.  This makes sure
1445         the client returns immediately instead of waiting the 15 seconds to
1446         timeout.
1447
1448         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1449         Add a test to benchmark how long it takes to introspect a service and 
1450         call a method which returns a large element (pretty fast)
1451
1452         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1453         method which pushes a lot of data
1454
1455 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1456
1457         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1458         reclaim memory outside of the loop and use del istead of just setting
1459         the key to None
1460
1461 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1462
1463         * python/service.py (ObjectType::_reflect_on_signal): Always close
1464         signal tag even when there are no arguments
1465
1466 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1467
1468         * configure.in: Set mono, mono-docs and Qt3 to default
1469         to no instead of auto when building.  These bindings do not
1470         have full time maintainers and will not be supported for the
1471         1.0 release.
1472
1473 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1474
1475         patches from Michael Krivoruchko <misha at sun.com>: 
1476         
1477         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1478         _dbus_connection_message_sent, 
1479         _dbus_connection_send_preallocated_unlocked_no_update, 
1480         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1481         is NULL when calling _dbus_verbose
1482
1483         * configure.in: check for functions getpeerucred and getpeereid
1484
1485         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1486         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1487         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1488         Patch was only tested on Solaris 10 x86 so it might be issues
1489         with other platforms (i.e. BSDs and MacOSX)
1490         
1491
1492 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1493
1494         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1495         instead of marshal basic so we can handle recursive types in a variant
1496
1497         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1498         in variants
1499
1500         * test/glib/test-service-glib.c, test-service-glib.xml
1501         (my_object_echo_variant [EchoVariant], 
1502         my_object_process_variant_of_array_of_ints123
1503         [ProcessVariantOfArrayOfInts123]): 
1504         Add two test methods
1505
1506         * python/introspect_parser.py: New module for parsing introspect
1507         data.
1508
1509         * python/dbus_bindings.pyx:
1510         (various places): when throwing errors fix to use errormsg instead 
1511         of message local variable because Pyrex can get confused with other 
1512         message variables (initial patch by Robert McQueen 
1513         <robert.mcqueen at collabora.co.uk>)
1514         (MessageIter::parse_signature_block): new method for getting the next
1515         block in a signiture.
1516         (MessageIter::append_strict): new method for appending values strictly
1517         using the passed in signature instead of guessing at the type
1518         (MessageItter:: append_dict, append_struct, append_array): use 
1519         signatures to marshal children if the signature is available
1520         
1521         * python/exceptions.py (IntrospectionParserException): new exception
1522
1523         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1524         introspected signatures if available, else we fall back to the
1525         old way of doing things.
1526         (ProxyObject::_introspect_reply_handler ): parse introspection data
1527         
1528         * python/service.py (ObjectType::_reflect_on_method): Properly
1529         terminate <method> if there are no args in the reflection data
1530
1531         * test/python/test-client.py: add tests for talking with the GLib
1532         test server.  This gives us better coverage for introspection since
1533         python to python will always generate arguments as variants.  It also
1534         allows us to test the robustness of the GLib bindings and interlanguage
1535         communications.
1536
1537         
1538 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1539
1540         * bus/driver.c (bus_driver_handle_introspect): Add signals
1541         to the introspect data. (patch from Daniel P. Berrange 
1542         <dan at berrange.com>)
1543
1544         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1545         
1546         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1547         _dbus_connection_run_builtin_filters): Changed these to
1548         be unlock_no_update functions and call 
1549         _dbus_connection_send_unlocked_no_update instead of
1550         dbus_connection_send to avoid locking errors.
1551         
1552         * doc/TODO: Removed the make Ping test TODO
1553         
1554 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1555
1556         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1557         We now copy the message from a DBusError and then free 
1558         the error object befor throwing the error
1559
1560         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1561         DBusBindingOutputMode enum which was causing a warning.
1562         #include <time.h> so using time_t is explicitly defined
1563
1564 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1565
1566         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1567         - dbus/dbus-bus.c
1568         (internal_bus_get): new method that take over the heavy lifting
1569         of dbus_bus_get and adds the ability to get a private connection
1570         to the bus
1571         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1572         interface as in previous versions
1573         (dbus_bus_get_private): new method that is a wrapper to 
1574         internal_bus_get to get a private connection to the bus
1575
1576         - dbus/dbus-bus.h
1577         (dbus_bus_get_private): add as a public libdbus interface
1578
1579         - dbus-1.pc.in: output system_bus_default_address and 
1580         sysconfdir variables so apps can use them when compiling
1581
1582 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1583         * dbus/qt: New Qt bindings
1584
1585 2005-09-12  Waldo Bastian  <bastian@kde.org>
1586
1587         * dbus/dbus-marshal-validate.c,
1588         doc/dbus-specification.xml, test/Makefile.am,
1589         test/test-names.c: allow hyphens in bus names.
1590
1591 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1592
1593         * test/data/auth/fallback.auth-script: we don't
1594         retry the EXTERNAL method when we know its going
1595         to fail anymore.
1596
1597 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1598
1599         * dbus/dbus-connection-internal.h: rename
1600         (add|remove|toggle)_(watch|timeout) to unlocked()
1601         
1602         * dbus/dbus-connection.c: ditto.
1603         
1604         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1605         Update some callers for the renaming.
1606
1607 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1608
1609         * dbus/dbus-auth.c: (record_mechanisms): don't
1610         retry the first auth mechanism because we know
1611         we're just going to get rejected again.
1612         
1613         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1614         Fix thinko ... and what a nasty little bugger to
1615         track down you were ...
1616
1617         * dbus/dbus-connection.c:
1618         (_dbus_connection_add_watch),
1619         (_dbus_connection_remove_watch): add note about
1620         these needing the connection to be locked.
1621         (_dbus_connection_get_dispatch_status_unlocked):
1622         set status to DATA_REMAINS when we queue the
1623         disconnected message.
1624         
1625         * bus/dispatch.c:
1626         (bus_dispatch): fix warning.
1627         (check_existent_service_no_auto_start):
1628         Expect ChildSignaled error too.
1629         (check_existent_hello_from_self): fix another
1630         couple of warnings.
1631         
1632 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1633
1634         Patches from James Willcox <snorp@snorp.net>
1635
1636         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1637
1638         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1639         support array "out" parameters.
1640
1641         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1642         for 16-bit int support.
1643
1644 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1645
1646         * Released 0.50
1647
1648         * Patch from Steve Grubb:
1649         - bus/activation.c (bus_activation_service_reload_test): clean up
1650         some indentation
1651         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1652         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1653         buffer overflows in the test suite.  This is non critical because
1654         it can not be exploited and this code is only run when doing a 
1655         make check.
1656
1657         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1658         - configure.in: Don't check and link against kdecore, only qt headers
1659         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1660         - gcj/org/freedesktop/dbus/Makefile.am:
1661         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1662         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1663         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1664         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1665         - tools/Makefile.am: Add platform extentions to binaries 
1666         (i.e. .exe on windows)
1667
1668         * configure.in: 
1669         - Make it so if no suitable version of python is found we only 
1670         disable building python instead of exiting the configure script
1671         - Require version 2.4 of glib for glib bindings
1672         - Up version to 0.50
1673
1674         * python/__init__.py: Sync version with libdbus to (0,50,0)
1675         
1676 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1677
1678         * dbus/dbus-object-tree.c (find_subtree_recurse):
1679         a couple of optimizations (bug #710):
1680         - do a binary search in the tree
1681         - insert a new child at the right place directly, no need for
1682           qsort anymore
1683         - do the "double alloc" thing when allocating children
1684
1685 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1686
1687         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1688
1689         * python/dbus_bindings.pyx: Memory management foo
1690         (global): remove hacky _user_data_references global list
1691         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1692         tuples. Unref user_data
1693         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1694         (Connection::__del__): Remove and replace with __dealloc__ method
1695         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1696         to keep tuple from being deallocated instead of the global var hack
1697         (Connection::register_object_path): Stuff user_data into a tuple.
1698         Use Py_INCREF to keep tuple from being deallocated instead of the 
1699         global var hack
1700         (Connection::register_fallback): Stuff user_data into a tuple.
1701         Use Py_INCREF to keep tuple from being deallocated instead of the 
1702         global var hack
1703         (GIL_safe_pending_call_notification): Don't unref the message
1704         because it gets unreffed when going out of scope.  Py_XDECREF
1705         the user_data
1706         (PendingCall::__del__): Remove and replace with __dealloc__ method
1707         (PendingCall::set_notify): ref the pending call because we will
1708         need it to stick around for when the notify callback gets called
1709         (Message::__del__): Remove and replace with __dealloc__ method
1710
1711         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1712         gthreads_init to match up with the dbus call
1713
1714         * python/glib.py (init_threads): Changed to threads_init to match
1715         up with gobject.threads_init().  init_threads is kept for backwards
1716         compat but will most likely be deprecated in the future
1717
1718         * test/python/test-client.py: 
1719         - revamp to use Python's unittest functionality
1720         - add async call tests
1721         - setup threads in glib and dbus so we make sure locks are working
1722         
1723 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1724
1725         * python/dbus_bindings.pyx 
1726         (_pending_call_notification, cunregister_function_handler, 
1727         cmessage_function_handler): All callback functions have been rearranged 
1728         to workaround a bug in Pyrex when working with the GIL which is Python's 
1729         global lock when dealing with threads.  They have been split into
1730         a wrapper function (which assumes the name of the old function) and
1731         a _GIL_safe_<function name> function which contains the functionality
1732         of the old function.  This ensures that Pyrex does not write code
1733         the lock is released.
1734         
1735
1736 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1737
1738         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1739         GIL global lock when calling back into Python
1740
1741 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1742
1743         * Release 0.36.2
1744
1745         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1746
1747         * bus/policy.c (bus_policy_allow_user): change default "user is
1748         allowed" to be "user has same uid as the bus itself"; any
1749         allow/deny rules will override.
1750
1751         * bus/session.conf.in: don't allow all users, since now by default
1752         the user that ran the bus can connect.
1753
1754 2005-08-26  Colin Walters  <walters@verbum.org>
1755
1756         * tools/dbus-print-message.c (print_message): Flush stdout
1757         after printing a message, so that redirecting to a file, then
1758         hitting Ctrl-C works.
1759
1760 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1761
1762         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1763         (EmptyMessage): new class that subclasses Message.  This is a workaround
1764         to a Pyrex bug that fails to call __del__ when the Message object goes out
1765         of scope.  For some reason subclassing Message fixes this bug
1766         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1767         - s/Message(_create=0)/EmptyMessage everywhere else
1768         
1769         * test/python/test-{server|client}.py: add the python/.libs directory
1770         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1771         get picked up from the system
1772
1773 2005-08-25  Colin Walters  <walters@verbum.org>
1774
1775         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1776         to Ryan Lortie for the suggestion.
1777
1778 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1779
1780         * test/python: Add python regression test
1781
1782         * configure.in: Add test/python/Makefile
1783
1784         * test/Makefile.am: Add the python directory to SUBDIRS
1785
1786 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1787
1788         * Release 0.36.1
1789
1790         * python/_dbus.py: 
1791         (Interface::connect_to_signal): propigate keywords for match on args
1792         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1793
1794         * python/proxies.py (ProxyObject::connect_to_signal):
1795         propigate keywords for match on args
1796
1797         * Makefile.am: point everything to pyexecdir since python borks
1798         on multilib
1799
1800 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1801
1802         * Release 0.36
1803
1804 2005-08-23  Colin Walters  <walters@verbum.org>
1805
1806         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1807
1808 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1809
1810         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1811         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1812         of defining DBusConnection ourselves.
1813
1814 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1815
1816         * python/dbus.pth: New path file to fix up problems when installing
1817         c libraries to lib64 and python files to lib.
1818
1819         * python/Makefile.am: install dbus.pth in the correct spot
1820
1821 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1822         * ChangeLog: clean up my last entry a bit
1823
1824         * doc/introspect.xsl: New stylesheet for converting introspection data
1825         into browser renderable xhtml. Contributed by Lennart Poettering.
1826
1827         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1828         Poettering.
1829
1830         * doc/dbus-tutorial.xml: 
1831         - Add Colin Walter to the Authors section for authoring the GLib
1832         section
1833         - Add descriptions of the new signature and type functionality
1834         in the Python complex type mapping section
1835         - Add a sidenote on the new args matching functionality in 
1836         the Python bindings
1837         - Fixed up some of the examples to use the gobject.MainLoop
1838         instead of gtk.main
1839         
1840         * python/_dbus.py:
1841         (Bus::_create_args_dict): New. Converts a hash of arg matches
1842         to a more useable format
1843         (Bus::add_signal_receiver): add a **keywords parameter for catching
1844         arg match parameters
1845         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1846         arg match parameters
1847         
1848         * python/matchrules.py:
1849         (MatchTree::exec_matches): Check for arg matches
1850         (SignalMatchRule::add_args_match): New method
1851         (SignalMatchRule::execute): Added args_list parameter as an optimization
1852         so we don't have to marshal the args more than once
1853         (SignalMatchRule::match_args_from_list): New method that checks to see
1854         if the rule's arg matches match an argument list.  Only arguments
1855         set in the rule are checked.
1856         (SignalMatchRule::match_args_from_rule): New method that checks to see
1857         if the rule's arg matches match another rule's.  All args have to match
1858         in order for this method to return true.  If either rule has more args
1859         then it is not a match.
1860         (SignalMatchRule::is_match): Add args match
1861         (SignalMatchRule::repr): Add args to the final output if they exist
1862
1863 2005-08-17  Ross Burton  <ross@burtonini.com>
1864
1865         * glib/dbus-gproxy.c:
1866         (dbus_g_proxy_call_no_reply): unref the message once sent.
1867         (dbus_g_proxy_call): protect against NULL proxy.
1868
1869 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1870
1871         * python/__init__.py: Version updated (0, 43, 0)
1872         
1873         * python/dbus_bindings.pyx: 
1874         - Fixed type objects to have self passed into __init__
1875         - Added the Variant type
1876         - Add the ability to specify types or signatures for Array, Variant 
1877         and Dictionary
1878         (Connection::send_with_reply_handlers): return a PendingCall object
1879         (_pending_call_notification): handle the case when an error is returned 
1880         without an error message in the body
1881         (MessageIter::get_boolean): return True or False instead of an integer
1882         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1883         and add checks for objects with embeded signatures or types (Array, 
1884         Variant and Dictionary)
1885         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1886         (MessageIter::append_dict): handle embeded types or signatures
1887         (MessageIter::append_array): handle embeded types or signatures
1888         (MessageIter::append_variant): new method
1889         
1890         * python/proxies.py:
1891         (DeferedMethod): New. Dummy executable object used when queuing calls 
1892         blocking on introspection data
1893         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1894         or shorter timeouts for method calls
1895         (ProxyObject): Add first pass at an introspection state machine
1896         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1897         introspection. 
1898         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1899         the usual mechanisms for sending messages.  This is to avoid a deadlock
1900         where the Intospect call would be queued waiting for the Introspect 
1901         call to finish ;-)
1902         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1903         when introspection returns with no error
1904         (ProxyObject::_introspect_error_handler): New.  This method is called 
1905         when introspection encounters an error
1906         (ProxyObject::__getattr__): Code to handle different introspection 
1907         states.  Queue async calls or block blocking calls if we are 
1908         introspecting.  Pass through as normal if we are not or are done with 
1909         introspecting.
1910         
1911         * python/service.py: Import signal and method from decorators.py
1912
1913         * python/types.py: Add Variant type
1914
1915 2005-08-16  Colin Walters  <walters@verbum.org>
1916
1917         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1918         DBusError message is NULL.
1919
1920 2005-08-09  Havoc Pennington  <hp@redhat.com>
1921
1922         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1923         malloc'd copy of the name parameter
1924
1925 2005-08-09  Havoc Pennington  <hp@redhat.com>
1926
1927         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1928         warning if the reply serial is set to 0
1929
1930 2005-08-04  Colin Walters  <walters@verbum.org>
1931
1932         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1933         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1934         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1935         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1936         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1937         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1938         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1939         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1940         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1941         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1942         
1943         Prefix name with _ to ensure they're not exported.  All callers
1944         updated.
1945
1946         * glib/dbus-gvalue.c (typecode_to_gtype)
1947         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1948         (signature_iter_to_g_type_dict)
1949         (signature_iter_to_g_type_array)
1950         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1951         (dbus_gtypes_from_arg_signature):
1952         Move to dbus-gsignature.c.
1953
1954         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1955         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1956         (dbus_binding_tool_output_glib_client): Ditto.
1957
1958         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1959         and dbus-gsignature.h
1960
1961         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1962         unused variable.
1963
1964 2005-08-03  Colin Walters  <walters@verbum.org>
1965
1966         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1967         catch any incompatible changes accidentally made.
1968
1969 2005-08-03  Havoc Pennington  <hp@redhat.com>
1970
1971         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1972         typo, from Julien Puydt
1973
1974         * bus/connection.c (bus_connection_disconnected): we were always
1975         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1976
1977 2005-08-01  Colin Walters  <walters@verbum.org>
1978
1979         Patch from Joe Markus Clarke:   
1980         
1981         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1982         use-after-free.
1983
1984 2005-08-01  Colin Walters  <walters@verbum.org>
1985         
1986         Patch from Joe Markus Clarke:   
1987         
1988         * tools/dbus-send.c (main): 
1989         
1990         Don't use C99 style initializers (bug #3933).
1991         
1992 2005-08-01  Colin Walters  <walters@verbum.org>
1993
1994         Patch from Joe Markus Clarke:   
1995
1996         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1997         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1998         * glib/dbus-gobject.c (write_interface):
1999
2000         Don't use C99 style initializers (bug #3933).
2001
2002 2005-07-31  Havoc Pennington  <hp@redhat.com>
2003
2004         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2005         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2006
2007 2005-07-30  Havoc Pennington  <hp@redhat.com>
2008
2009         * fix a bunch of Doxygen warnings and mistakes
2010
2011 2005-07-30  Havoc Pennington  <hp@redhat.com>
2012
2013         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2014         DBUS_BUILD_TESTS since it's now used in production code
2015
2016 2005-07-29  Havoc Pennington  <hp@redhat.com>
2017
2018         * test/glib/test-profile.c (write_junk): initialize the junk
2019         buffer so valgrind doesn't have a breakdown
2020
2021 2005-07-29  Havoc Pennington  <hp@redhat.com>
2022
2023         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2024         (match_rule_matches): remove unused arg
2025         (test_matching): add tests for match_rule_matches()
2026
2027         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2028         do arg0='foo' arg5='bar' in the match rules
2029         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2030
2031         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2032
2033 2005-07-29  Ross Burton  <ross@openedhand.com>
2034
2035         * dbus/dbus-connection.c:
2036         Don't create a DBusCondVar which is never used.
2037
2038 2005-07-27  Ross Burton  <ross@openedhand.com>
2039
2040         * dbus/dbus-message.c:
2041         Reduce the size of the maximum cached message to 10K.
2042
2043 2005-07-25  Ross Burton  <ross@openedhand.com>
2044
2045         * glib/dbus-gproxy.c:
2046         Remove matches when all proxies are unregistered.
2047
2048 2005-07-24  Colin Walters  <walters@verbum.org>
2049
2050         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2051         typedata; recursive arrays won't have it.
2052
2053         * test/glib/test-dbus-glib.c:
2054         * test/glib/test-service-glib.c:
2055         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2056         
2057 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2058
2059         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2060         proxies.py, service.py: Cleanup of code after running it through the
2061         pyflakes code checker mostly dealing with undefined names.  
2062         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2063
2064 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2065
2066         * NEWS: Update to 0.35.2
2067
2068 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2069
2070         * python/_dbus.py: Remove import of the dbus.services
2071         module as it no longer exists (patch from Dimitur Kirov)
2072
2073         * python/service.py (Object::__init__): Fixed typo
2074         s/name/bus_name (patch from Dimitur Kirov)
2075
2076         * python/examples/example-signal-emitter.py: import dbus.glib
2077         to get the main loop and use glib mainloop instead of gtk so
2078         X doesn't have to be running.
2079
2080         * python/examples/example-signal-recipient.py: import dbus.glib
2081         to get the main loop and use glib mainloop instead of gtk so
2082         X doesn't have to be running. Import the decorators module
2083         directly.
2084
2085         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2086         didn't pick up on but are needed to build
2087
2088         * configure.in: upped version to 0.35.2
2089
2090         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2091         added Colin Walters' SELinux API rename patch from head 
2092         s/unix sercurity context/selinux security context/
2093
2094 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2095
2096         * python/Makefile.am: dbus_binding.pxd.in should be included 
2097         in EXTRA_DIST not dbus_binding.pxd
2098         fix up $(srcdir) hopefully for the last time
2099
2100         * NEWS: Update to 0.35.1
2101
2102 2005-07-16  Colin Walters  <walters@verbum.org>
2103
2104         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2105         from bus_driver_handle_get_connection_unix_security_context.  Update for
2106         error usage.
2107         (message_handlers): Update for renames.
2108
2109         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2110         _dbus_string_init failure correctly.
2111         (bus_selinux_append_context): Convert SID to context.  Append it
2112         as a byte array.
2113         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2114         hasn't been called.
2115
2116         * bus/selinux.h: Update prototype.
2117
2118         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2119         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2120
2121 2005-07-15  Colin Walters  <walters@verbum.org>
2122
2123         * doc/TODO: Add note about convenience wrappers.
2124
2125 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2126
2127         * NEWS: Update to 0.35
2128
2129 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2130
2131         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2132         so distcheck doesn't fail
2133
2134         * glib/examples/Makefile.am: Add example-service.xml and 
2135         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2136
2137         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2138         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2139
2140         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2141         compiler looks in the right places during distcheck
2142
2143 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2144
2145         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2146         to fail
2147
2148 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2149
2150         * python/examples/example-service.py,
2151         python/examples/example-signal-emitter.py: Fixed up examples
2152         for API changes
2153
2154 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2155
2156         * python/__init__.py: Upped to version (0,42,0) because of
2157         the API change
2158
2159 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2160
2161         * ChangeLog: fix date in last entry
2162
2163         * configure.in, bus/system.conf.in: add the ability to configure 
2164         the system bus user at compiletime with the --with-dbus-user flag
2165         (patch from Kristof Vansant)
2166
2167 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2168
2169         * bus/dispatch.c, test/test-service.c: Add testcase
2170         for sending messages to oneself (TODO item).
2171
2172         * python/service.py (class Object): Swap ordering of bus_name 
2173         and object_path parameters to better support inheritance.
2174
2175         * doc/dbus-tutorial.xml: change Python docs to reflect change
2176         in parameter ordering and fix the inheritance section.
2177
2178         * doc/TODO: remove sending message to oneself TODO item
2179
2180 2005-07-15  Ross Burton  <ross@openedhand.com>
2181
2182         * glib/dbus-gproxy.c:
2183         Fix a leak when calling methods via the proxy.
2184
2185 2005-07-15  Colin Walters  <walters@verbum.org>
2186
2187         * bus/selinux.c (bus_selinux_append_context): Wrap in
2188         HAVE_SELINUX.
2189
2190 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2191
2192         * python/_dbus.py (Bus::remove_signal_receiver):
2193         don't add a callback to the match if none has been passed in
2194         
2195         * python/matchrules.py (SignalMatchTree::remove): if the rule
2196         being matched does not have a callback treat it as a wildcard
2197         fix matching logic
2198
2199         * doc/dbus-tutorial.xml: Add Python tutorial
2200
2201 2005-07-14  Colin Walters  <walters@verbum.org>
2202
2203         * bus/driver.c
2204         (bus_driver_handle_get_connection_unix_security_context): New function.
2205         (message_handlers): Add.
2206
2207         * bus/selinux.c (bus_selinux_append_context): New function; appends
2208         security context to message.
2209
2210         * bus/selinux.h: Prototype.
2211
2212         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2213
2214 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2215
2216         * bus/activation.c: clean up all tabs to be 8 spaces 
2217         (bus_activation_activate_service): make sure we clean up
2218         if activation fails
2219
2220         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2221         (check_shell_fail_service_auto_start): New function
2222         tests to make sure we get fail properly when trying to auto start a service
2223         with a faulty command line
2224         (check_shell_service_success_auto_start): New function tests to make sure
2225         auto started services get the arguments on the command line
2226
2227         * test/test-shell-service.c: Added service for testing auto-starting with 
2228         command line arguments
2229
2230         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2231         test/data/valid-service-files/debug-shell-echo-success.service.in:
2232         Added service files for testing auto-starting with command line arguments
2233
2234         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2235
2236 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2237
2238         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2239         
2240         * dbus/Makefile.am: added new files to build.
2241
2242         * bus/activation.c (bus_activation_activate_service): support
2243         activation commands with parameters.
2244
2245         * test/shell-test.c: added test program for the shell parsing
2246         code.
2247
2248 2005-07-13  David Zeuthen  <davidz@redhat.com>
2249
2250         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2251         64 bit signed and unsigned parameters
2252
2253 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2254
2255         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2256
2257         * python/service.py (class Name): renamed BusName to make it clearer
2258         what the object is for (a name on the bus)
2259
2260         * python/examples/example-service.py,
2261         python/examples/example-signal-emitter.py: change the Name object to
2262         BusName
2263
2264 2005-07-12  Colin Walters  <walters@verbum.org>
2265
2266         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2267
2268         * tools/dbus-launch.c: Include sys/select.h.
2269
2270 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2271         * python/dbus_bindings.pyx.in: removed
2272
2273         * python/dbus_bindings.pyx: Added.
2274         - Fixed some memleaks (patch from 
2275         Sean Meiners <sean.meiners@linspireinc.com>)
2276         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2277         own pxd file (Pyrex definition)
2278         - Broke out glib dependancies into its own pyx module
2279         
2280         * python/dbus_bindings.pdx: Added.
2281         - Defines C class Connection for exporting to other modules
2282
2283         * python/dbus_glib_bindings.pyx: Added.
2284         - New module to handle lowlevel dbus-glib mainloop integration
2285
2286         * python/glib.py: Added.
2287         - Registers the glib mainloop when you import this module
2288
2289         * python/services.py: Removed (renamed to service.py)
2290         
2291         * python/service.py: Added.
2292         - (class Server): renamed Name
2293
2294         * python/__init__.py: Bump ro version (0,41,0)
2295         -don't import the decorators or service module
2296         by default.  These now reside in the dbus.service namespace
2297
2298         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2299         setup function on creation 
2300
2301         * python/examples/example-service.py,
2302         python/examples/example-signal-emitter.py: update examples
2303
2304         * python/examples/gconf-proxy-service.py,
2305         python/examples/gconf-proxy-service2.py: TODO fix these up
2306
2307         * doc/TODO: Addition
2308         - Added a Python Bindings 1.0 section
2309         - added "Add match on args or match on details to match rules"
2310
2311
2312 2005-07-12  Colin Walters  <walters@verbum.org>
2313
2314         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2315         (statemachine-glue.h): 
2316         * glib/examples/Makefile.am (example-service-glue.h) 
2317         (example-signal-emitter-glue.h): 
2318         * glib/Makefile.am (dbus-glib-error-switch.h): 
2319         Add libtool --mode=execute so we use the built library instead
2320         of any installed one.
2321
2322 2005-07-11  Colin Walters  <walters@verbum.org>
2323
2324         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2325         (dbus_g_value_types_init): Remove assertion.
2326         (dbus_g_value_get_g_type, dbus_g_value_open)
2327         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2328         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2329         functions related to DBusGValue.  Now we marshal/demarshal
2330         structures as GValueArray.
2331         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2332         structures.
2333         (signature_iter_to_g_type_array): Don't call
2334         signature_iter_to_g_type_struct.
2335         (signature_iter_to_g_type_struct): Delete.
2336         (dbus_gvalue_to_signature): Delete.
2337         (dbus_gvalue_to_signature): New function with same name as other
2338         one; we can convert structures to signatures.
2339         (demarshal_valuearray): New function.
2340         (get_type_demarshaller): Use it.
2341         (demarshal_recurse): Delete.
2342         (marshal_proxy): New function.
2343         (marshal_map): Warn if we can't determine signature from type.
2344         (marshal_collection_ptrarray): Ditto.
2345         (marshal_collection_array): Ditto.
2346         (get_type_marshaller): Use marshal_valuearray.
2347         (marshal_recurse): Delete.
2348         (_dbus_gvalue_test): Add some tests.
2349
2350         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2351         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2352         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2353         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2354         (dbus_g_value_free): Remove prototypes.
2355
2356         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2357         G_TYPE_VALUE_ARRAY.
2358
2359         * glib/examples/example-service.c:
2360         * glib/examples/example-client.c: Implement GetTuple.
2361
2362         * test/glib/test-dbus-glib.c:
2363         * test/glib/test-service-glib.c:
2364         * test/glib/test-service-glib.xml: Add structure tests.
2365
2366 2005-07-10  Colin Walters  <walters@verbum.org>
2367
2368         * doc/TODO: Knock off some GLib items with this patch.
2369
2370         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2371         (_dbus_gvalue_signals_error): New functions.
2372
2373         * glib/dbus-gvalue-utils.h: Prototype them.
2374
2375         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2376         and change to not output const/retval flags for input args.  All
2377         callers updated.
2378         (invoke_object_method): Refactor to handle return values.  Add
2379         some more comments in various places.  Remove debug g_print.
2380
2381         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2382
2383         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2384         Handle G_TYPE_NONE.
2385         (compute_gsignature): New function; refactored from code from
2386         compute_marshaller and compute_marshaller_name.  Enhance to
2387         handle return values and async ops more cleanly.  Update for
2388         async ops returning NONE instead of BOOLEAN.
2389         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2390         and output appropriate string.
2391         (generate_glue): Handle return value annotation.  Also don't dump
2392         constness flag for input arguments.
2393
2394         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2395         files shared between installed library and utilities.
2396         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2397         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2398         binding tool can access gtype utility functions.
2399
2400         * test/glib/test-service-glib.c: 
2401         * test/glib/test-service-glib.xml: 
2402         * test/glib/test-dbus-glib.c: Add some tests for return values.
2403
2404 2005-07-09  Colin Walters  <walters@verbum.org>
2405
2406         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2407         argument if available, not method.
2408
2409         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2410         (invoke_object_method): First, remove some redundant
2411         GValues (object_value, error_value) in favor of working on
2412         array directly.  Second, rework constness to be less buggy.
2413         Now we iterate directly over the argument metadata instead
2414         of parallel iterating over output signature and metadata.
2415
2416         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2417
2418         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2419         annotation on input args.
2420         
2421 2005-07-09  Colin Walters  <walters@verbum.org>
2422
2423         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2424         Define.
2425
2426         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2427         annotation.
2428
2429         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2430         (method_dir_signature_from_object_info): Handle arg_iterate change.
2431         (write_interface): Ditto.
2432         (lookup_object_info): Don't barf if format_version is > 0.
2433         (invoke_object_method): Handle arg constness.
2434
2435         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2436         (arg_info_new): Create.
2437         (arg_info_unref): Destroy.
2438         (arg_info_get_annotations, arg_info_get_annotation) 
2439         (arg_info_add_annotation): New functions.
2440
2441         * glib/dbus-gidl.h: Prototype them.
2442
2443         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2444         args, disallow them in properties.
2445         (parse_annotation): Handle arg annotations.
2446
2447         * test/glib/test-service-glib.xml: 
2448         * test/glib/test-service-glib.c: Update to make some methods
2449         const.
2450
2451 2005-07-08  Colin Walters  <walters@verbum.org>
2452
2453         * test/glib/test-service-glib.xml: 
2454         * test/glib/test-service-glib.c:
2455         * test/glib/test-dbus-glib.c: Test a{sv}.
2456
2457         * glib/examples/statemachine/statemachine.c:
2458         * glib/examples/statemachine/statemachine-server.c:
2459         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2460         add progress bar, etc.
2461
2462         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2463         needed anymore due to generic array/map marshalling.
2464         (dbus_g_value_types_init): Don't register basic arrays or the
2465         string/string hash.
2466         (dbus_gtype_from_signature_iter): Don't try to recurse into
2467         variants.
2468         (dbus_gtype_to_signature): Check collection/map before type
2469         metadata.
2470         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2471         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2472         generic map creation/append functions instead of hash table
2473         specifically.
2474         (get_type_demarshaller): Handle maps.
2475         (demarshal_collection): Dispatch on collection type to either
2476         demarshal_collection_ptrarray or demarshal_collection_array.
2477         (get_type_marshaller): Handle maps.
2478         (marshal_collection): Dispatch collection type to either
2479         marshal_collection_ptrarray or marshal_collection_array.
2480         (_dbus_gvalue_test): New test.
2481
2482         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2483         (hash_free_from_gtype): Use it to free GValues.
2484         (hashtable_append): New function.
2485         (ptrarray_append): Fix prototype.
2486         (slist_append): Ditto.
2487         (_dbus_gvalue_utils_test): Extend tests.
2488
2489         * glib/dbus-gtype-specialized.c
2490         (dbus_g_type_specialized_init_append): Renamed from
2491         dbus_g_type_specialized_collection_init_append.  Remove const from
2492         value, since we steal it.
2493         (dbus_g_type_specialized_map_append): New function.
2494
2495         * glib/dbus-gtype-specialized.h: Update prototypes.
2496         Add DBusGTypeSpecializedMapAppendFunc.
2497
2498         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2499         _dbus_gvalue_test.
2500         
2501         * glib/dbus-gtest.h: Prototype it.
2502
2503 2005-07-08  Ross Burton  <ross@openedhand.com>
2504
2505         * dbus/dbus-glib.h:
2506         Add DBysGAsyncData for the async bindings.
2507
2508         * glib/dbus-binding-tool-glib.c:
2509         Re-enable the async bindings.
2510
2511         * test/glib/test-dbus-glib.c:
2512         Add a test for the generated async bindings.
2513
2514 2005-07-08  Colin Walters  <walters@verbum.org>
2515
2516         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2517         connection concept.
2518         
2519 2005-07-08  Colin Walters  <walters@verbum.org>
2520         
2521         * tools/Makefile.am: Kill of print-introspect in favor of using
2522         dbus-send --print-reply=literal.
2523
2524         * test/glib/test-service-glib.xml: 
2525         * test/glib/test-service-glib.c (my_object_get_objs): New test
2526         for "ao".
2527
2528         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2529         (main): Test GetObjs.
2530
2531         * glib/examples/statemachine/Makefile.am:
2532         * glib/examples/statemachine/sm-marshal.list:
2533         * glib/examples/statemachine/statemachine-client.c:
2534         * glib/examples/statemachine/statemachine-server.c:
2535         * glib/examples/statemachine/statemachine-server.xml:
2536         * glib/examples/statemachine/statemachine.c:
2537         * glib/examples/statemachine/statemachine.h:
2538         * glib/examples/statemachine/statemachine.xml:
2539
2540         New example.
2541
2542         * glib/examples/example-service.c (main): Move invocation
2543         of dbus_g_object_type_install_info earlier, to emphasize it
2544         should only be done once.
2545
2546         * glib/examples/example-signal-emitter.c (main): Ditto.
2547
2548         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2549
2550         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2551         (dbus_gvalue_marshal): Update prototypes.
2552
2553         * glib/dbus-gvalue.c: Update all marshalling functions to take
2554         const GValue instead of GValue.
2555         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2556         types.
2557         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2558         change.
2559         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2560         Return a newly-allocated string.
2561         (demarshal_proxy, demarshal_object_path, demarshal_object)
2562         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2563         we get the wrong types from message.
2564         (get_type_demarshaller): New function, extracted from
2565         dbus_gvalue_demarshal.
2566         (demarshal_collection): New function, demarshals generic
2567         collection.
2568         (dbus_gvalue_demarshal): Just invoke result of
2569         get_type_demarshaller.  Throw error if we don't have one.
2570         (marshal_garray_basic): Abort on OOM.
2571         (get_type_marshaller): New function, extracted from
2572         dbus_gvalue_marshal.
2573         (collection_marshal_iterator, marshal_collection): New functions;
2574         implements generic marshalling for an iteratable specialized
2575         collection.
2576         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2577
2578         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2579         G_TYPE_STRING.
2580         (ptrarray_value_from_gvalue): Ditto.
2581         (ptrarray_append, ptrarray_free): New functions.
2582         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2583         (slist_append, slist_end_append, slist_free): New functions.
2584         (dbus_g_type_specialized_builtins_init): Add append fuctions
2585         for GPtrArray and GSList.  Register GSList.
2586         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2587
2588         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2589         New.
2590         (dbus_g_type_specialized_collection_init_append)
2591         (dbus_g_type_specialized_collection_append)
2592         (dbus_g_type_specialized_collection_end_append): Prototype.
2593         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2594         end_append_func.
2595
2596         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2597         (dbus_g_type_specialized_collection_append) 
2598         (dbus_g_type_specialized_collection_end_append): New functions.
2599         (dbus_g_type_map_value_iterate): Take const GValue.
2600         (dbus_g_type_collection_value_iterate): Ditto.
2601
2602         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2603         _dbus_gvalue_utils_test.
2604         
2605         * glib/dbus-gtest.h: Prototype it.
2606
2607         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2608         using uninitialized owner_list.
2609         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2610         public API.
2611         (dbus_g_proxy_end_call_internal): Update to use error set
2612         from dbus_gvalue_demarshal instead of setting it here.
2613         (dbus_g_proxy_begin_call): Move return_if_fail here.
2614
2615         * glib/dbus-gobject.c (write_interface): Update for
2616         dbus_gtype_to_signature returning new string.
2617
2618         * configure.in: Add glib/examples/statemachine.
2619
2620 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2621
2622         * configure.in: Add a configure option, --with-console-auth-dir
2623         
2624         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2625         new setting.  Patch from Kay Sievers.
2626
2627 2005-07-06  Colin Walters  <walters@verbum.org>
2628
2629         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2630         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2631         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2632         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2633         Delete in favor of dbus_g_proxy_begin_call and
2634         dbus_g_proxy_cancel_call.
2635         (DBusGProxyCall, DBusGProxyCallNotify): New.
2636         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2637         data, and destroy function.  This replaces
2638         dbus_g_pending_call_set_notify.
2639         (dbus_g_proxy_cancel_call): Prototype.
2640         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2641
2642         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2643         pending_calls map.
2644         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2645         internal proxy for calls to the bus. Remove
2646         pending_nameowner_calls, now the internal proxy keeps track.
2647         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2648         pending_nameowner_calls.
2649         (got_name_owner_cb): Update prototype, and use
2650         dbus_g_proxy_end_call.
2651         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2652         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2653         favor of using internal proxy.
2654         (dbus_g_proxy_manager_unregister): Update to use
2655         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2656         (dbus_g_proxy_init): Initialize pending calls map.
2657         (dbus_g_proxy_constructor): New.
2658         (dbus_g_proxy_class_init): Add get/set property functions,
2659         constructor, and add NAME, PATH, and INTERFACE properties.
2660         (cancel_pending_call): New function.
2661         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2662         cancel them.
2663         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2664         (GPendingNotifyClosure): New structure.
2665         (d_pending_call_notify, d_pending_call_free): Moved here from
2666         dbus-glib.c.
2667         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2668         ordering.
2669         (manager_begin_bus_call): New internal function for talking to
2670         internal bus proxy.
2671         (dbus_g_proxy_new): Construct object using GObjet properties.
2672         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2673         Create closure of same, and insert call into map of pending calls.
2674         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2675         call.  Look up pending call in current set.  Remove it when we've
2676         completed.
2677         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2678         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2679         and destroy function directly.
2680         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2681         (dbus_g_proxy_call): Invoke with NULL callback.
2682         (dbus_g_proxy_cancel_call): New function, replaces
2683         dbus_g_pending_call_cancel.
2684
2685         * glib/dbus-gparser.c (validate_signature): Fix call to
2686         dbus_set_g_error.
2687
2688         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2689         New quark for attaching metadata to GType.
2690         (info_hash): Delete.
2691         (lookup_object_info): Look up using quark.
2692         (dbus_g_object_type_install_info): Check that a type is classed,
2693         not that it's an object.  Also just install type data using quark
2694         instead of using global hash.
2695
2696         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2697         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2698         (GPendingNotifyClosure): Delete.
2699         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2700         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2701
2702         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2703         client method generation until we can fix it...
2704         
2705         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2706         (load_from_service_thread_func): Ditto.
2707
2708         * tools/dbus-names-model.c (struct NamesModel): Hold
2709         DBusGProxyCall.
2710         (have_names_notify): Update prototype, use
2711         dbus_g_proxy_cancel_call.
2712         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2713
2714         * tools/dbus-monitor.c (filter_func): Update for print_message
2715         API change.
2716
2717         * test/glib/test-dbus-glib.c: Add more tests for async
2718         invocations.  Update many begin_call/end_call pairs to just use
2719         dbus_g_proxy_call.
2720
2721         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2722         allows us to dump print-introspect.c.
2723
2724         * tools/dbus-print-message.h (print_message): Add literal argument
2725         to print_message which is intended to allow printing arguments without
2726         metadata like "string=".
2727
2728         * tools/dbus-print-message.c (print_iter): Add literal argument.
2729         (print_message): Allow printing string messages literally.
2730
2731 2005-07-05  Colin Walters  <walters@verbum.org>
2732
2733         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2734         Remove value refcount leak, original patch from Jorn Baayen
2735         <jorn@openedhand.com>.  Also remove useless extra value in favor
2736         of prepending to value array directly.
2737
2738 2005-07-02  Colin Walters  <walters@verbum.org>
2739
2740         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2741
2742 2005-07-01  Colin Walters  <walters@verbum.org>
2743
2744         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2745         
2746         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2747         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2748         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2749         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2750
2751 2005-06-30  Colin Walters  <walters@verbum.org>
2752
2753         * test/glib/test-dbus-glib.c:
2754         * test/glib/test-service-glib.c:
2755         * test/glib/test-service-glib.xml: Update tests for new error
2756         setting bits, also add async tests (patch from Ross Burton).
2757
2758         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2759         DBUS_GLIB_THREADS_LIBS.
2760
2761         * glib/dbus-gproxy.c (get_name_owner)
2762         (dbus_g_pending_call_end_valist): Ditto.
2763
2764         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2765         domain (GQuark) to DBusGErrorInfo.  
2766         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2767         quark in error_metadata.  Take message interface as default
2768         error message interface.
2769         (gerror_to_dbus_error_message): Pass message interface.
2770         (dbus_set_g_error): Resurrected.
2771         (dbus_g_error_info_free): New function.
2772         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2773         of _peek to actually create the object class if it hasn't been
2774         created yet.
2775         (dbus_g_error_domain_register): New function.
2776
2777         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2778
2779         * glib/dbus-gparser.c (validate_signature): Ditto.
2780
2781         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2782         (dbus_g_error_domain_register): Prototype.
2783
2784         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2785         Update tests.
2786
2787 2005-06-29  Colin Walters  <walters@verbum.org>
2788
2789         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2790         DBUS_TYPE_G_OBJECT_PATH.
2791
2792         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2793         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2794         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2795         (dbus_g_object_path_get_g_type): New function.
2796         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2797         to DBUS_TYPE_G_OBJECT_PATH by default.
2798         (demarshal_proxy): Remove unused name variable.
2799         (demarshal_object_path, marshal_object_path): New functions.
2800         (demarshal_proxy_array, marshal_proxy_array): Delete.
2801         
2802         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2803         DBUS_TYPE_G_OBJECT_PATH to char *.
2804         (dbus_g_type_get_lookup_function): Map builtin
2805         DBUS_TYPE_G_OBJECT_PATH.
2806
2807         * test/glib/test-dbus-glib.c
2808         * test/glib/test-service-glib.c (my_object_objpath): 
2809         Adapt tests to new object path marshalling.
2810
2811 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2812
2813         * configure.in: force check for Python >= 2.4
2814
2815 2005-06-29  Colin Walters  <walters@verbum.org>
2816         
2817         Patch from Ross Burton <ross@openedhand.com>
2818         
2819         * glib/dbus-gobject.c (invoke_object_method): Unset object
2820         value in all cases, not only in async case.
2821
2822 2005-06-29  Colin Walters  <walters@verbum.org>
2823
2824         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2825         name_call for keeping track of any outgoing GetNameOwner call.
2826         Also add for_owner and associated.
2827         (struct _DBusGProxyManager): Add owner_names, which is hash table
2828         that maps a base name to a list of names it owns (that we're
2829         interested in).  Add pending_nameowner_calls which is a list of
2830         all outstanding GetNameOwner; avoids us having to iterate over
2831         every proxy.  Add unassociated_proxies which keeps track of name
2832         proxies with no associated name owner.
2833         (dbus_g_proxy_manager_unref): Destroy owner_names.
2834         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2835         name refcounts.
2836         (find_name_in_info, name_owner_foreach)
2837         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2838         (dbus_g_proxy_manager_monitor_name_owner)
2839         (dbus_g_proxy_manager_unmonitor_name_owner)
2840         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2841         New functions; they manipulate the owner_names mapping.
2842         (got_name_owner_cb): New function.
2843         (get_name_owner): New function, extracted from
2844         dbus_g_proxy_new_for_name_owner.
2845         (dbus_g_proxy_manager_register): For now we need to keep track of
2846         all NameOwnerChanged.  Also if the proxy is for a name, if we
2847         don't already know the name owner, queue a new GetNameOwner
2848         request and add it to our list of unassociated proxies.  Otherwise
2849         inc the refcount.
2850         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2851         cancel any pending GetNameOwner call, etc.
2852         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2853         the owner_names mapping to look up the current names for the
2854         signal source, and dispatch to any proxies for that name.
2855         (dbus_g_proxy_new): Initialize new members.
2856         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2857         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2858         (dbus_g_pending_call_end_valist): New function, extracted from
2859         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2860         but want to use the GLib infrastructure.  Also note how many
2861         arguments in reply were over.
2862         (dbus_g_pending_call_end): New function, just call
2863         dbus_g_pending_call_end_valist.
2864         (dbus_g_proxy_end_call_internal): Just call
2865         dbus_g_pending_call_end_valist.
2866
2867         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2868         of builtin marshaller for STRING_STRING_STRING.
2869
2870         * test/glib/test-dbus-glib.c: 
2871         * test/glib/test-service-glib.c:
2872         * test/glib/test-service-glib.xml:
2873         Extend tests to cover name proxies, destruction of owner proxies,
2874         etc.
2875         
2876         * glib/examples/example-signal-recipient.c
2877         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2878         
2879         * tools/dbus-send.c (main): Print D-BUS error name in addition
2880         to message.
2881
2882 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2883
2884         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2885         cmessage_function_handler): Patch from 
2886         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2887         by using the Py_GILState_Ensure/Release to synchronize with the
2888         python runtime.
2889         
2890 2005-06-28  Ray Strode  <rstrode@redhat.com>
2891
2892         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2893         babysitter helper process on last unref, bug #2813.
2894
2895 2005-06-27  Colin Walters  <walters@verbum.org>
2896
2897         * test/glib/test-dbus-glib.c: 
2898         * test/glib/test-service-glib.c:
2899         * test/glib/test-service-glib.xml:
2900         Test hash table signal emitting.
2901
2902         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2903         types to their fundamental basis types, since this is what
2904         marshallers operate on.  Also add an entry for VOID__BOXED.
2905         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2906
2907 2005-06-26  Havoc Pennington  <hp@redhat.com>
2908
2909         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2910         from Don Park
2911
2912 2005-06-26  Colin Walters  <walters@verbum.org>
2913
2914         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2915         (dbus_g_error_set): New public function from its ashes; used by
2916         both service-side method implementation and GLib bindings
2917         internals.
2918         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2919         (_dbus_glib_test): Add some tests.
2920
2921         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2922
2923         * test/glib/test-service-glib.c (my_object_throw_error): Use
2924         dbus_g_error_set.
2925
2926         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2927         errors thrown by dbus_g_error_set.
2928
2929         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2930
2931         * glib/dbus-gparser.c (validate_signature): Ditto.
2932
2933         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2934         (dbus_g_proxy_end_call_internal): Ditto.
2935
2936         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2937         converts DBUS_ERROR_x to DBUS_GERROR_x.
2938         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2939
2940         * doc/TODO: Remove error TODO.
2941
2942         * doc/dbus-tutorial.xml: Update with documentation about error
2943         handling.
2944
2945         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2946         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2947         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2948
2949 2005-06-22  Colin Walters  <walters@verbum.org>
2950         
2951         Patch from Ross Burton <ross@openedhand.com>
2952
2953         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2954
2955 2005-06-20  Colin Walters  <walters@verbum.org>
2956
2957         * configure.in: Add glib/examples.
2958
2959         * glib/Makefile.am: Add examples/
2960
2961         * glib/examples/.cvsignore
2962         * glib/examples/Makefile.am
2963         * glib/examples/example-client.c
2964         * glib/examples/example-service.c
2965         * glib/examples/example-service.xml
2966         * glib/examples/example-signal-emitter.c
2967         * glib/examples/example-signal-emitter.xml
2968         * glib/examples/example-signal-recipient.c:
2969         New files; GLib binding examples, ported from
2970         python/examples.
2971
2972 2005-06-20  Colin Walters  <walters@verbum.org>
2973
2974         * dbus/dbus-glib.h: 
2975         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2976         dbus_g_proxy_call.
2977
2978         * glib/dbus-binding-tool-glib.c: 
2979         * doc/dbus-tutorial.xml: 
2980         * test/glib/test-dbus-glib.c: Update for rename.
2981         
2982 2005-06-20  Colin Walters  <walters@verbum.org>
2983
2984         Patch suggested by Ross Burton <ross@openedhand.com>
2985
2986         * glib/dbus-gobject.c (export_signals): Free signal name.
2987         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2988         memory leak.  Add a bit of documentation.
2989         (dbus_g_method_return_error): Free context, and note we do
2990         so.
2991
2992 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2993
2994         * dbus/dbus-glib.h:
2995         * glib/dbus-gobject.c:
2996         * glib/dbus-gproxy.c:
2997         * glib/dbus-gvalue.c: Predeclare structs as 
2998         typedef struct _Something Something instead of 
2999         typedef struct Something Something, so we can 
3000         redeclare the prototypes. Other GNOME libraries 
3001         do this already.
3002
3003 2005-06-17  Colin Walters  <walters@verbum.org>
3004
3005         * tools/dbus-names-model.c (have_names_notify): Fix call
3006         to dbus_g_proxy_end_call.
3007         
3008 2005-06-17  Colin Walters  <walters@verbum.org>
3009
3010         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3011         spew warnings if we get malformed remote signals.
3012
3013         * glib/dbus-gobject.c (propsig_iterate): New function.
3014         (lookup_object_info): New function, extracted from
3015         lookup_object_and_method.
3016         (introspect_properties, introspect_signals): Delete; these
3017         are merged into write_interface.
3018         (write_interface): Write out signals and properties here;
3019         dump the org.gtk.object stuff and use the interface given
3020         in the introspection data blob.  Also fix up property XML.
3021         (lookup_values): New function.
3022         (introspect_interfaces): Gather a mapping from interface to a
3023         list of its methods, signals, and properties, then write out
3024         each interface.
3025         (lookup_object_and_method): Use lookup_object_info.
3026         (struct DBusGSignalClosure): Add interface.
3027         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3028         we can just use the constant data.
3029         (dbus_g_signal_closure_finalize): Don't free signal name.
3030         (signal_emitter_marshaller): Use interface from signal closure.
3031         (export_signals): Only export signals mentioned in introspection
3032         blob.
3033         (dbus_g_connection_register_g_object): Warn if we have no
3034         introspection data for an object.
3035         (funcsig_equal): Remove unused variable.
3036         (dbus_g_object_register_marshaller): Take varargs instead of
3037         list.
3038         (dbus_g_object_register_marshaller_array): New function,
3039         extracted from old dbus_g_object_register_marshaller.
3040
3041         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3042         signals and property data.
3043         (write_quoted_string): New function, extracted from generate_glue.
3044         (generate_glue): Write signals and properties to introspection
3045         blob.
3046
3047         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3048         exported_signals and exported_properties.
3049         (dbus_g_object_register_marshaller): Update prototype.
3050         (dbus_g_object_register_marshaller_array): Prototype.
3051         
3052         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3053
3054         * test/glib/test-service-glib.c: Add new test signals and method
3055         to emit them.
3056
3057         * test/glib/test-service-glib.xml: Add some test signals.
3058
3059         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3060         and my-object-marshal.h
3061         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3062         my-object-marshal.c.
3063         (my-object-marshal.c, my-object-marshal.h): Implement.
3064
3065         * test/glib/.cvsignore: Update.
3066
3067         * doc/TODO: Remove two GLib TODO items fixed by this
3068         patch.
3069
3070 2005-06-16  Colin Walters  <walters@verbum.org>
3071
3072         * doc/TODO: Update for GLib bindings.
3073         
3074 2005-06-16  Colin Walters  <walters@verbum.org>
3075
3076         * glib/dbus-binding-tool-glib.c:
3077         * glib/dbus-gobject.c:
3078         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3079         from Ross Burton, for his GLib bindings work.
3080
3081 2005-06-16  Colin Walters  <walters@verbum.org>
3082
3083         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3084         to iterate instead of walking to G_TYPE_INVALID.
3085
3086         Patch based on a patch from Ryan Gammon.
3087
3088 2005-06-16  Colin Walters  <walters@verbum.org>
3089
3090         * bus/bus.c (bus_context_new): Set parser to NULL
3091         after we unref it (Patch from Chris Boscolo, #2174).
3092         
3093 2005-06-16  Colin Walters  <walters@verbum.org>
3094
3095         * python/dbus_bindings.pyx.in: Import size_t,
3096         __int64_t, __uint64_t, and __signed.
3097
3098         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3099         Define cmsg struct, output it.
3100         (_dbus_read_credentials_unix_socket):
3101         Use cmsg struct.
3102         
3103         Patch from Joe Markus Clarke for FreeBSD support.
3104         
3105 2005-06-16  Colin Walters  <walters@verbum.org>
3106
3107         * tools/dbus-send.c (append_array): Use strtok.
3108         (append_dict): New function.
3109         (type_from_name): New function, extracted from main.
3110         (main): Handle sending dicts.
3111
3112         * tools/dbus-print-message.c (print_iter): Print dict
3113         entries.
3114         
3115 2005-06-16  Colin Walters  <walters@verbum.org>
3116
3117         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3118         values as the empty string (#2948).
3119         
3120 2005-06-16  Colin Walters  <walters@verbum.org>
3121
3122         * dbus/Makefile.am:
3123         * mono/doc/Makefile.am:
3124         * test/glib/Makefile.am:
3125
3126         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3127
3128 2005-06-16  Colin Walters  <walters@verbum.org>
3129
3130         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3131         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3132
3133         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3134         Increment pointer after swapping fixed array.  Add assertion
3135         for array length.
3136                 
3137 2005-06-15  Colin Walters  <walters@verbum.org>
3138
3139         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3140         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3141         
3142 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3143
3144         * NEWS: Update to 0.34
3145
3146 2005-06-15  David Zeuthen  <davidz@redhat.com>
3147
3148         * configure.in (LT_CURRENT): Revert back to 1 as the library
3149         hasn't changed and we've certainly not committed to protocol
3150         stability yet.  All this does is to break ABI. See commit note
3151         from hp@redhat.com 2005-05-05 for details.
3152         
3153 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3154
3155         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3156         (_dbus_connection_run_builtin_filters): New method
3157         (dbus_connection_dispatch): Run the builtin filters which in turn
3158         runs the peer filter which handles Ping messages.
3159
3160         * doc/TODO: 
3161          - Ping isn't handled: This patch fixes it
3162          
3163          - Add a test case for the Ping message: added TODO item
3164
3165 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3166
3167         * dbus/dbus-message.c:
3168         (dbus_message_has_path): New method
3169         (dbus_message_has_interface): New method
3170         (dbus_message_has_member): New method
3171
3172         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3173         New method
3174
3175         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3176         the keyring directory is private to the user
3177
3178         * doc/TODO:
3179          - The convenience functions in dbus-bus.h should perhaps have
3180          the signatures that they would have if they were autogenerated
3181          stubs. e.g. the acquire service function. We should also evaluate
3182          which of these functions to include, in light of the fact that
3183          GLib/Qt native stubs will probably also exist.: Punted
3184
3185          - add dbus_message_has_path(), maybe has_member/interface:
3186          fixed in this patch
3187
3188          - in dbus-keyring.c, enforce that the keyring dir is not
3189          world readable/writable: Fixed in this patch
3190
3191 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3192
3193         * dbus/dbus-marshal-validate.h: Added a new validation
3194         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3195         out of memory errors when validating signitures
3196
3197         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3198         in places where we previously used DBUS_VALID and a FALSE return 
3199         value to indicate OOM
3200         
3201         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3202         Use a stack to track the number of elements inside containers.  The 
3203         stack values are then used to validate that dict entries have only two
3204         elements within them.
3205         (validate_body_helper): check the reason for failure when validating
3206         varients
3207         
3208         * dbus/dbus-message.c (load_message): use 
3209         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3210         DBUS_VALID and a FALSE return value to indicate OOM
3211
3212         * doc/TODO: remove "- validate dict entry number of fields" as this
3213         patch fixes it
3214
3215 2005-06-14  David Zeuthen  <davidz@redhat.com>
3216
3217         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3218         watches (if applicable) and add new watches
3219
3220         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3221         (main): Setup SIGIO signal handler if using D_NOTIFY
3222
3223         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3224
3225         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3226         (merge_included): Also merge conf_dirs list
3227         (bus_config_parser_unref): Clear conf_dirs list
3228         (include_dir): Add directory to conf_dirs list
3229         (bus_config_parser_get_conf_dirs): New function
3230
3231         * bus/dir-watch.[ch]: New files
3232
3233         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3234
3235         * configure.in: Add checks for D_NOTIFY on Linux
3236
3237 2005-06-14  Colin Walters  <walters@verbum.org>
3238
3239         * glib/dbus-binding-tool-glib.c:
3240         * glib/dbus-gobject.c:
3241         * glib/dbus-gvalue.c: Fix indentation and brace style.
3242         
3243 2005-06-14  Ross Burton <ross@openedhand.com>.
3244
3245         * glib/dbus-glib.h: Make DBusGMethodInvocation
3246         a private structure.  Rearrange prototypes a bit.
3247         
3248         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3249         documentation for first_arg_type.
3250         
3251         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3252         here, add documentation.  Move dbus_g_method_return
3253         and dbus_g_method_return_error into public API
3254         section.
3255
3256 2005-06-14  Colin Walters  <walters@verbum.org>
3257
3258         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3259         Add missing return statements, noticed by Ross Burton.
3260         
3261 2005-06-13  Ross Burton <ross@openedhand.com>.
3262
3263         * glib/dbus-gobject.c: Handle errors on message
3264         demarshalling by sending error message back.
3265         * glib/dbus-gvalue.c: Initialize return variables.
3266
3267 2005-06-13  Colin Walters  <walters@verbum.org>
3268
3269         * glib/Makefile.am: Fix thinko in last patch.
3270
3271 2005-06-13  Colin Walters  <walters@verbum.org>
3272
3273         * glib/Makefile.am: Move dbus-gtype-specialized.c
3274         and dbus-gtype-specialized.h into a _HEADERS variable,
3275         install them.
3276
3277 2005-06-12  Colin Walters  <walters@verbum.org>
3278
3279         Async signals and various bugfixes and testing by
3280         Ross Burton <ross@openedhand.com>.
3281
3282         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3283         (dbus_gvalue_genmarshal_name_from_type)
3284         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3285         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3286         (dbus_g_value_types_init, dbus_gtype_from_signature)
3287         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3288         (dbus_gtypes_from_arg_signature): New function prototypes.
3289         (dbus_gvalue_demarshal): Take context and error arguments.
3290         (dbus_gvalue_demarshal_variant): New function.
3291         (dbus_gvalue_demarshal_message): New function.
3292         (dbus_gvalue_store): Delete.
3293
3294         * glib/dbus-gvalue.c:
3295
3296         File has been almost entirely rewritten; now we special-case
3297         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3298         hash tables correctly, etc.  Full support for recursive values
3299         is not yet complete.
3300
3301         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3302         argument of signal to G_TYPE_POINTER since we now pass a
3303         structure.
3304         (lookup_g_marshaller): Delete in favor of
3305         _dbus_gobject_lookup_marshaller.
3306         (marshal_dbus_message_to_g_marshaller): Use
3307         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3308         to handle remote signal callbacks.
3309         (dbus_g_proxy_new_from_proxy): New function; creates a new
3310         DBusGProxy by copying an existing one.
3311         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3312         (dbus_g_proxy_get_path): New functions.
3313         (dbus_g_proxy_marshal_args_to_message): New function;
3314         factored out of existing code.
3315         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3316         from a varargs array.
3317         (dbus_g_proxy_begin_call_internal): New function.
3318         (dbus_g_proxy_end_call_internal): New function.
3319         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3320         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3321         after collecting args into value array.
3322         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3323         invoke dbus_g_proxy_end_call_internal.
3324         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3325         end_call_internal.
3326         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3327         types.
3328         (array_free_all): New function.
3329         (dbus_g_proxy_add_signal): Take GTypes.
3330
3331         * glib/dbus-gobject.h:
3332         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3333         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3334         Prototype.
3335
3336         * glib/dbus-gobject.c: Add a global marshal_table hash which
3337         stores mappings from type signatures to marshallers.  Change lots
3338         of invocations of dbus_gtype_to_dbus_type to
3339         dbus_gtype_to_signature.
3340         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3341         (introspect_signals): Fix test for query.return_type.
3342         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3343         (invoke_object_method): Many changes.  Handle asynchronous
3344         invocations.  Convert arguments with
3345         dbus_gvalue_demarshal_message.  Handle errors.  Use
3346         DBusSignatureIter instead of strlen on args. Handle all arguments
3347         generically.  Special-case variants.
3348         (dbus_g_method_return, dbus_g_method_return_error): New function.
3349         (DBusGSignalClosure): New structure, closes over signal
3350         information.
3351         (dbus_g_signal_closure_new): New function.
3352         (dbus_g_signal_closure_finalize): New function.
3353         (signal_emitter_marshaller): New function; is special marshaller
3354         which emits signals on bus.
3355         (export_signals): New function; introspects object signals and
3356         connects to them.
3357         (dbus_g_object_type_install_info): Take GType instead of
3358         GObjectClass.
3359         (dbus_g_connection_register_g_object): Invoke export_signals.
3360         (dbus_g_connection_lookup_g_object): New function.
3361         (DBusGFuncSignature) New structure; used for mapping type
3362         signatures to marshallers.
3363         (funcsig_hash): New function; hashes DBusGFuncSignature.
3364         (funcsig_equal): New function; compares DBusGFuncSignature.
3365         (_dbus_gobject_lookup_marshaller): New function.
3366         (dbus_g_object_register_marshaller): New function; used to
3367         register a marshaller at runtime for a particular signature.
3368
3369         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3370
3371         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3372         which notes a server method implementation should be
3373         asynchronous.
3374
3375         * glib/dbus-binding-tool-glib.c
3376         (dbus_binding_tool_output_glib_server): Call
3377         dbus_g_value_types_init.
3378         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3379         variants specially.
3380         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3381         of a lookup function.
3382         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3383         (write_untyped_out_args): New method; write output arguments.
3384         (write_formal_declarations_for_direction): Function for
3385         writing prototypes.
3386         (write_formal_parameters_for_direction): Function for
3387         writing implementations.
3388         (write_typed_args_for_direction): Function for writing
3389         arguments prefixed with GTypes.
3390         (write_async_method_client): Write out async version
3391         of method.
3392
3393         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3394         (dbus_g_type_get_marshal_name): Move mapping from GType
3395         to marshal name into here.
3396         (dbus_g_type_get_c_name): Move into here.
3397         (compute_marshaller): Convert signature to type with
3398         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3399         (compute_marshaller_name): Ditto.
3400         (compute_marshaller): Handle async signal annotations.
3401         (gather_marshallers): Return if we don't have a known
3402         prefix.
3403         (generate_glue): Collect introspection blob here, and
3404         write all of the blob at the end.  This allows an object
3405         with multiple interfaces to work.
3406         Mark async methods in introspection blob.
3407
3408         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3409         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3410         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3411
3412         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3413         avoids people accidentally using DBUS_TYPE_* which should
3414         not be necessary anymore.
3415         Do include dbus-gtype-specialized.h, which are utilities
3416         for GLib container types.
3417         Add various #defines for types such as
3418         DBUS_TYPE_G_BOOLEAN_ARRAY.
3419         (DBusGValueIterator, DBusGValue): Define, not fully used
3420         yet.
3421         (dbus_g_value_get_g_type): Type for recursive value.
3422         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3423         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3424         (dbus_g_value_free): Prototypes.
3425         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3426         (dbus_g_proxy_set_interface): Prototype.
3427         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3428         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3429         types.
3430         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3431         Accessors.
3432         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3433         doing async invocations.
3434         (dbus_g_method_return, dbus_g_method_return_error):
3435         Prototypes.
3436         * doc/dbus-tutorial.xml: Update GLib section.
3437         
3438         * tools/dbus-viewer.c (load_child_nodes): Update
3439         for new invocation type of dbus_g_proxy_end_call.
3440         (load_from_service_thread_func): Ditto.
3441
3442         * tools/print-introspect.c (main): Ditto.
3443
3444         * tools/dbus-names-model.c (have_names_notify)
3445         (names_model_reload, names_model_set_connection)
3446         Use GTypes.
3447
3448         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3449         needed since Python bindings use GLib bindings.
3450
3451         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3452         Add --prefix argument.
3453
3454         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3455         unneeded --ignore-unsupported arg.
3456         
3457         * test/glib/test-service-glib.c: 
3458         * test/glib/test-service-glib.xml:
3459         * test/glib/test-dbus-glib.c: Add many more tests.
3460
3461 2005-06-06  David Zeuthen  <davidz@redhat.com>
3462
3463         * doc/TODO: Add item about need to remove deprecated functions.
3464
3465         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3466
3467         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3468         to repair the ABI which was broken with the last commit.
3469
3470 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3471
3472         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3473         (dbus_connection_disconnect): renamed to dbus_connection_close 
3474         for API symmetry with dbus_connection_open
3475         (_dbus_connection_open_internal): 
3476         s/dbus_connection_disconnect/dbus_connection_close
3477
3478         * dbus/dbus-bus.c (dbus_bus_get):
3479         s/dbus_connection_disconnect/dbus_connection_close
3480
3481         * bus/connection.c (bus_connections_unref, 
3482         bus_connections_setup_connection, bus_connections_expire_incomplete):
3483         s/dbus_connection_disconnect/dbus_connection_close
3484
3485         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3486         kill_client_connection_unchecked, check_hello_connection):
3487         s/dbus_connection_disconnect/dbus_connection_close
3488
3489         * bus/bus.c (new_connection_callback):
3490         s/dbus_connection_disconnect/dbus_connection_close
3491
3492         * tools/dbus-send.c (main):
3493         s/dbus_connection_disconnect/dbus_connection_close
3494
3495         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3496         s/dbus_connection_disconnect/dbus_connection_close
3497         
3498         * test/test-service.c (path_message_func, filter_func):
3499         s/dbus_connection_disconnect/dbus_connection_close
3500         
3501         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3502         
3503 2005-05-25  Colin Walters  <walters@verbum.org>
3504
3505         * dbus/dbus-protocol.h: Move various bus service #defines such
3506           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3507           dbus/dbus-shared.h.
3508         * dbus/dbus-shared.h: Various defines moved here.
3509         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3510
3511 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3512
3513         * python/__init__.py: Python bindings deserve a minor version
3514         update.  Upped to (0, 40, 2)
3515
3516 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3517
3518         * python/decorators.py: add explicitly_pass_message decorator
3519         for passing in the dbus message as keyword for edge case signal
3520         handling
3521
3522         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3523         to conform with what dbus expects for match rules
3524         (SignalMatchRule.execute): add the dbus message as a keyword
3525         if the signal handler has requested it
3526
3527         * python/examples/example/signal-recipient.py: added some more
3528         examples on how to hook up to signals
3529
3530 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3531
3532         * python/decorators.py: import dbus_bindings
3533
3534         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3535         SignalMatchNode): new classes that implement wildcard signal
3536         callback matching using a tree lookup. Heavily modified from a
3537         patch sent by Celso Pinto (fd.o bug #3241)
3538
3539         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3540         use new match classes to handle signals.
3541
3542 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3543         
3544         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3545
3546 2005-05-18  Havoc Pennington  <hp@redhat.com>
3547
3548         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3549         gettext. Not really worth requiring yet perhaps, but any
3550         production quality 1.0 would require it so we should go ahead and
3551         get things set up. We do have a couple token calls to
3552         bindtextdomain in the code already.
3553
3554 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3555
3556         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3557         when using recursive g_main_loops
3558
3559         * python/_dbus.py (class Bus): add the ProxyObjectClass
3560         alias for ProxyObject to make it easier for the Twisted 
3561         networking framework to integrate dbus.
3562
3563         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3564         alias for ProxyMethod to make it easier for the Twisted 
3565         networking framework to integrate dbus. 
3566
3567 2005-05-11  Ross Burton  <ross@openedhand.com>
3568
3569         * glib/dbus-glib-tool.c: Add --prefix argument.
3570         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3571         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3572         Add prefix argument.
3573         (generate_glue): Pass prefix argument down.
3574         (dbus_binding_tool_output_glib_server): Pass prefix to
3575         glib-genmarshal.
3576         
3577 2005-05-11  Colin Walters  <walters@verbum.org>
3578
3579         * tools/dbus-send.c (append_array): New function.
3580         (append_arg): Broken out from main.
3581         (main): Add cheesy hack to send arrays and variants.
3582         (usage): Update.
3583         * tools/dbus-print-message.c (print_iter): Broken out
3584         from main.
3585
3586 2005-05-11  Colin Walters  <walters@verbum.org>
3587
3588         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3589         New function, returns signature string for signature iter.
3590         * dbus/dbus-signature.h: Prototype it.
3591         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3592         New function, returns signature string for message iter.
3593         (dbus_message_iter_get_array_len): New function, returns
3594         length of array.
3595         (dbus_message_iter_get_fixed_array): Fix assertion; this
3596         function should be used when the iter is pointing to the
3597         contents of an array
3598         * dbus/dbus-message.h: Prototypes.
3599         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3600         New function; returns length of an array.
3601         * dbus/dbus-marshal-recursive.h: Prototype it.
3602         
3603 2005-05-11  Colin Walters  <walters@verbum.org>
3604
3605         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3606         compilation error.
3607         
3608 2005-05-08  Havoc Pennington  <hp@redhat.com>
3609
3610         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3611         daemon's pid, not the parent's pid, to the file descriptor.
3612         Reported by Taj Morton.
3613
3614 2005-05-05  Havoc Pennington  <hp@redhat.com>
3615
3616         * configure.in (LT_*): add notes on how the libtool versioning
3617         works to save thinking. Increment soname to indicate protocol
3618         breakage (though really the library interface hasn't changed I
3619         guess)
3620
3621         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3622         verify the GUID received from server matches what we were
3623         expecting, if we had an expectation
3624
3625         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3626         (_dbus_auth_get_guid_from_server): new function
3627         (send_begin): parse the OK args
3628
3629         * doc/dbus-specification.xml: add GUID to the auth protocol
3630
3631 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3632
3633         * Fix my name in previous changelog ;)
3634
3635         * python/proxies.py (ProxyObject.__getattr__): add further patch
3636         from Anthony Baxter to throw an AttributeError when python 
3637         __special__ functions are called instead of marshling them over 
3638         the bus (Bug#1685 comment 3).
3639
3640 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3641
3642         * python/Makefile.am: changed to use pyexecdir for the binding
3643         shared libraries (Bug#2494)
3644
3645         * python/exceptions.py: bring exceptions over from the bindings
3646         so they can be used in applications (Bug#2036)
3647         Make all exceptions derive from DBusException
3648
3649         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3650         of classes so that print obj doesn't throw an exception (Bug #1685)
3651
3652 2005-05-03  Ross Burton  <ross@openedhand.com>
3653
3654         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3655         Return if we get an error during registration.  Set up a
3656         weak reference on object to unregister if object is destroyed.
3657         (unregister_gobject): New function.
3658         
3659 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3660
3661         * python/dbus_bindings.pyx.in: 
3662         - added new type classes for hinting to the marashaler what type 
3663         to send over the wire
3664         - added int16 and uint16 marshalers
3665         - Fixed a bug in the type constants that caused int32 to go out
3666         as uint16 over the wire
3667         * python/dbus.py: split up into different files and renamed _dbus.py
3668         * python/__init__.py, python/_util.py, python/decorators.py, 
3669         python/exceptions.py, python/proxies.py, python/services.py,
3670         python/types.py: new files split off from dbus.py
3671         * python/Makefile.am: Add new files, remove dbus.py and 
3672         install all python files to <python module dir>/dbus
3673         * python/examples/*: Added #!/usr/bin/env python to the top of
3674         every example.  Patch provided by Tatavarty Kalyan
3675
3676 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3677
3678         * NEWS: Update to 0.33
3679
3680 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3681
3682         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3683         method for doing async calls
3684         (_pending_call_notification): New C function for handling pendning call
3685         callbacks
3686         (set_notify): New method for setting pending call notification
3687         
3688         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3689         Async capabilities added to remote method calls
3690         (Sender): class removed
3691         (RemoteService): class removed
3692         (ObjectTree): class removed for now
3693         (RemoteObject): Renamed to ProxyObject
3694         (RemoteMethod): Renamed to ProxyMethod
3695         (method): Decorator added for decorating python methods as dbus methods
3696         (signal): Decorator added for decorating python methods as signal emitters
3697         (ObjectType): Metaclass added for generating introspection data and the
3698         method callback vtable
3699         (Interface): Wrapper class added to wrap objects in a dbus interface
3700         (Object): Uses ObjectType as its metaclass and exports Introspect
3701         of the org.freedesktop.DBus.Introspectable interface
3702         (ValidationException, UnknownMethodException): new exceptions
3703
3704         * python/examples/*: Modified to fit with the new bindings
3705
3706 2005-04-23  Havoc Pennington  <hp@redhat.com>
3707
3708         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3709         reported by Tony Houghton
3710
3711         * test/test-service.c (main): test
3712         dbus_connection_get_object_path_data()
3713
3714         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3715         the exact_match
3716         (_dbus_object_tree_get_user_data_unlocked): new function used by
3717         dbus_connection_get_object_path_data()
3718         (do_register): add assertion test for get_user_data_unlocked
3719         (object_tree_test_iteration): more tests
3720
3721         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3722         new function from Dan Reed to let you get the user data from 
3723         dbus_connection_register_object_path()
3724
3725 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3726
3727         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3728         in numerous places that did not account for the NULL terminator
3729         (signature_from_seed): changed the manual string copy loop to 
3730         just use strcpy instead
3731         make check should now pass
3732
3733 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3734
3735         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3736         so that it allows messages that are not signals to pass in 
3737         NULL as the interface.
3738
3739 2005-04-18  David Zeuthen  <davidz@redhat.com>
3740
3741         * glib/dbus-gmain.c (io_handler_destroy_source): 
3742         (timeout_handler_destroy_source, connection_setup_free): 
3743         Also unref the source to avoid memory leaks.
3744
3745 2005-04-13  David Zeuthen  <davidz@redhat.com>
3746
3747         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3748         more reasonable, yet still totally arbitrary, value :-). 
3749
3750 2005-04-13  David Zeuthen  <davidz@redhat.com>
3751
3752         * doc/TODO: Added an "important for 1.0" item about selinux
3753         allow/deny messages
3754
3755 2005-04-13  David Zeuthen  <davidz@redhat.com>
3756
3757         * bus/selinux.c: Add c-file-style to top of file
3758         (log_audit_callback): Don't free the data here anymore
3759         (bus_selinux_check): Don't take spid and tpid since appending
3760         that to auxdata may OOM.
3761         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3762         to the caller if we are OOM by taking an error object.
3763         (bus_selinux_allows_send): -do-
3764
3765         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3766         and bus_selinux_allows_send
3767
3768         * bus/bus.c (bus_context_check_security_policy): Pass error and
3769         pass on OOM thrown by bus_selinux_allows_send()
3770
3771         * bus/services.c (bus_registry_acquire_service): Pass error and
3772         pass on OOM thrown by bus_selinux_allows_acquire_service()
3773
3774 2005-04-13  Havoc Pennington  <hp@redhat.com>
3775
3776         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3777         message at a time to avoid monopolizing the main loop, bug 
3778         #2953 from Benjamin Otte
3779
3780 2005-04-09  Havoc Pennington  <hp@redhat.com>
3781
3782         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3783         possible overlap, fix from Daniel Reed
3784         (fixup_alignment): fix signedness warnings
3785         (_dbus_string_append_unichar): ditto
3786
3787 2005-04-09  Havoc Pennington  <hp@redhat.com>
3788
3789         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3790
3791         * glib/dbus-glib-tool.c (main): fix warning
3792
3793         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3794
3795         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3796         add a new function that can be used in simple applications that
3797         don't have a main loop and are willing to block
3798
3799 2005-04-05  David Zeuthen  <davidz@redhat.com>
3800
3801         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3802
3803         * glib/dbus-gmain.c:
3804         (io_handler_destroy_source): Remove from list of IO handlers
3805         of the ConnectionSetup object
3806         (timeout_handler_destroy_source): -do- for timeout handlers
3807         (io_handler_source_finalized): Don't remove from list since
3808         we now do that in io_handler_destroy_source(). Renamed from
3809         io_handler_source_destroyed
3810         (timeout_handler_source_destroyed): -do- for timeout handlers
3811         (connection_setup_free): It is now safe to iterate over all
3812         IO and timeout handlers as the _destroy_source removes them
3813         from the list synchronously
3814
3815 2005-03-30  Havoc Pennington  <hp@redhat.com>
3816
3817         * configure.in: change check to gtk 2.4
3818
3819         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3820         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3821         to 2.4
3822
3823 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3824
3825         * News: Update 0.32
3826
3827         * HACKING: Fixed realease instructions.  configure.in should be updated to
3828           the next release by the person who made the last release.
3829
3830 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3831
3832         * python/lvalue_cast_post_process.py - removed.  Patch has been
3833           submitted to Pyrex maintainers that fixes gcc4.0 errors
3834
3835         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3836
3837 2005-03-24  Daniel Reed  <n@ml.org>
3838
3839         * tools/Makefile.am: Make print-introspect and
3840         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3841
3842 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3843
3844         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3845
3846         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3847           had in Red Hat packages for a while but for some reason never 
3848           got merged upstream
3849           (_dbus_is_a_number): New checks if a string
3850           can be converted to a number and does the conversion if it can
3851           (_dbus_user_database_lookup): Add check to see if the given username
3852           is a udi.  This allows udi's to be used instead of usernames in the
3853           config file.
3854           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3855           is a gdi.  This allows gdi's to be used instead of groupnames in the
3856           config file.
3857
3858 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3859
3860         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3861           code so that it compiles with gcc4.0
3862
3863         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3864           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3865           results back to dbus_binding.c
3866
3867 2005-03-20  Colin Walters  <walters@verbum.org>
3868
3869         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3870
3871         * configure.in: Require GTK+ 2.6.
3872         
3873 2005-03-20  Colin Walters  <walters@verbum.org>
3874
3875         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3876
3877 2005-03-17  Tom Parker  <palfrey@tevp.net>
3878
3879         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3880         print DBUS_UID_UNSET; instead print passed username.  Also
3881         be sure to actually use gid looked up in cache.
3882         
3883         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3884         for DBUS_GID_UNSET and groupname.
3885
3886 2005-03-17  Colin Walters  <walters@verbum.org>
3887
3888         * bus/print-introspect.c: Move to tools/.
3889         * bus/run-with-tmp-session-bus.sh: Ditto.
3890         
3891         * glib/Makefile.am (dbus-glib-bindings.h): Move
3892         generation to tools/Makefile.am.
3893
3894         * test/glib/run-test.sh: Update to handle move
3895         of run-with-tmp-session-bus.sh.
3896
3897         * test/glib/test-service-glib.c: Update to handle
3898         move of dbus-glib-bindings.h.
3899
3900         * tools/print-introspect.c: Moved here
3901         from bus/, and ported to GLib bindings.
3902
3903         * tools/run-with-tmp-session-bus.sh: Moved here
3904         from bus/.
3905
3906         * tools/Makefile.am: Generate dbus-glib-bindings.h
3907         and dbus-bus-introspect.xml here.
3908
3909         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3910         Update.
3911
3912 2005-03-17  Colin Walters  <walters@verbum.org>
3913
3914         * bus/driver.c (write_args_for_direction): Use
3915         _dbus_string_get_const_data to retrieve string;
3916         _dbus_string_get_const_data_len doesn't actually return
3917         a NULL-terminated substring.
3918
3919         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3920         (main): Change to use org_freedesktop_DBus_request_name
3921         instead of using g_proxy_begin_call/end_call.
3922
3923 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3924
3925         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3926         generating the finalizer.  Fixes from Ben Maurer.
3927
3928 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3929
3930         * mono/BusDriver.cs: Update method names: ListServices
3931         becomes ListNames; GetOwner becomes GetNameOwner.
3932
3933         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3934         onto the eval stack when removing the delegate.
3935
3936 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3937
3938         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3939         LT_CURRENT.  Set it to the autoconf variable.
3940                                                                                 
3941         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3942         classes that disconnects the signal handler delegate from the
3943         service object.  Fixes a big leak of proxy objects on the
3944         client side of things.  Patch from Ben Maurer
3945         <bmaurer@ximian.com>
3946
3947 2005-03-12  Colin Walters  <walters@verbum.org>
3948
3949         * bus/driver.c (write_args_for_direction): New function,
3950         parses a type signature into arguments and outputs to
3951         XML.
3952         (bus_driver_handle_introspect): Use it instead of
3953         hardcoding XML for certain signatures.
3954         
3955         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3956         dependency on dbus-daemon.
3957
3958         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3959         argument, pass it to dbus_binding_tool_output_glib_client.
3960
3961         * glib/dbus-binding-tool-glib.c
3962         (generate_client_glue): Protect against multiple inclusion.
3963         (dbus_binding_tool_output_glib_client): Add
3964         G_BEGIN_DECLS/G_END_DECLS.
3965
3966         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3967         Change to just take iface prefix directly.
3968         (write_formal_parameters): Clarify error message.
3969         (check_supported_parameters): New function; checks to see type
3970         signatures of method parameters are supported.
3971         (generate_client_glue): Handle ignore_unsupported flag.
3972         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3973         parameter.
3974
3975         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3976         --ignore-unsupported by default until glib bindings
3977         support arrays.
3978
3979 2005-03-11  Colin Walters  <walters@verbum.org>
3980
3981         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3982         install it.
3983
3984         * bus/print-introspect.c: New file; prints introspection
3985         data for a given name and object path.
3986
3987         * bus/run-with-tmp-session-bus.sh: New file, refactored
3988         from test/glib/run-test.sh.  Creates a temporary session
3989         bus and runs another program.
3990
3991         * test/glib/run-test.sh: Refactor to invoke
3992         run-with-tmp-session-bus.sh.
3993
3994         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3995         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3996         macros instead of hardcoding.
3997
3998         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3999
4000 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4001
4002         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4003         this unref; it doesn't match up evenly in some codepaths.
4004         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4005         this evenly matches with the ref near the top of this function.
4006
4007 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4008
4009         * dbus/dbus-object-tree.c
4010         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4011         and we try to unregister a path that's not registered, still go
4012         through the process of unlocking and don't just return.
4013
4014 2005-03-09  Colin Walters  <walters@verbum.org>
4015
4016         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4017         to this are generated for client-side wrappers.  Invokes a
4018         D-BUS method and returns reply values.  
4019
4020         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4021         function; writes signature string for argument direction.
4022         (write_args_for_direction): Change to pass input values directly
4023         instead of via address, and fix indentation.
4024         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4025         make generated wrappers inlineable.
4026
4027         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4028         note about using dbus_type_is_fixed.
4029
4030         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4031         dbus/dbus-signature.c as dbus_type_is_fixed.
4032
4033         All callers updated.
4034
4035         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4036         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4037
4038         * dbus/dbus-signature.h: Prototype.
4039
4040         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4041         error printf code.
4042
4043         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4044         appropriate instead of just freeing it.
4045         (main): Free returned strings using g_free.
4046
4047         * test/glib/Makefile.am (test-service-glib-glue.h)
4048         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4049
4050         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4051         simply maps a simple D-BUS type to GType.
4052         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4053         GType.
4054         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4055         initialize the value with it.
4056         (dbus_gvalue_binding_type_from_type): Unused, delete.
4057         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4058         various types instead of unmarshalling to value data directly.
4059         Remove can_convert boolean.
4060         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4061         returning directly instead of using can_convert boolean.
4062         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4063         Stores a GValue in a pointer to a value of its corresponding C
4064         type.
4065
4066         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4067         add dbus_gvalue_store.
4068
4069 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4070
4071         Fix a bunch of lifecycle and memory management problems
4072         in the mono bindings.
4073
4074         * mono/Arguments.cs (Arguments): Implement IDisposable
4075
4076         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4077         strictly a static class.
4078
4079         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4080         delegates into this file.
4081         (Connection): Implement IDisposable.
4082         (Dispose): Disconnect the connection and set the raw connection
4083         pointer to IntPtr.Zero.
4084         (~Connection): Call Dispose().
4085         (RegisterObjectPath): Added.  Manages the registration of object
4086         paths so we can cleanly disconnect them at dispose/finalize time.
4087         (UnregisterObjectPath): Ditto.
4088         (set_RawConnection): Unregister all of the object paths when
4089         changing the underlying DBusConnection.  Add them back onto the
4090         new connection, if any.
4091
4092         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4093         more unmanaged resources anymore, so it's not necessary.  Move all
4094         the DBusObjectPathVTable stuff out of here.
4095         (Handler): Save references to our delegates so that they don't get
4096         finalized.  Call Connection.RegisterObjectPath() instead of
4097         dbus_connection_register_object_path() directly.
4098         (Message_Called): Dispose the message after we're finished with
4099         it.
4100
4101         * mono/Message.cs (Message): Implement IDisposable.
4102         (Dispose): Dispose the Arguments, and set the RawMessage to
4103         IntPtr.Zero.
4104         (SendWithReplyAndBlock): We own the ref to the reply that comes
4105         back from dbus_connection_send_with_reply_and_block() so add a
4106         comment about that and unref it after we've constructed a managed
4107         MethodReturn class around it.  Fixes a big, big leak.
4108
4109         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4110         method.
4111         (BuildSignalHandler): After we've sent the Signal message, dispose
4112         of it.
4113         (BuildMethod): Dispose of the method call and reply messages after
4114         we've sent the message and extracted the data we want from the
4115         reply.
4116
4117         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4118         anymore.
4119         (Service_FilterCalled): Dispose of the message after we're
4120         finished with it.
4121
4122 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4123
4124         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4125         After we attach our pending call to the connection, unref
4126         it.  Fixes a leak.
4127  
4128         * mono/Connection.cs (set_RawConnection): Disconnect our
4129         filter and match callbacks from the old connection and
4130         reconnect them to the new connection, if any.
4131
4132         * mono/DBusType/Array.cs: "Code" is a static member, so
4133         don't use "this" to refer to it.  Fix for stricter checking
4134         in Mono 1.1.4.
4135  
4136         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4137         object path that we pass into unmanaged code.
4138  
4139         * mono/DBusType/String.cs (Append): Don't leak the string
4140         that we pass into unmanged code.
4141
4142 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4143         * NEWS: Update for 0.31
4144
4145         * configure.in: Release 0.31
4146         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4147
4148         * qt/Makefile.am: fixed build
4149
4150         * dbus/Makefile.am: soname bump for libdbus
4151
4152         * glib/Makefile.am: soname bump for libdbus-glib
4153
4154 2005-03-05  Havoc Pennington  <hp@redhat.com>
4155
4156         * dbus/dbus-sysdeps.c:
4157         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4158         value
4159         (_dbus_generate_random_bytes_buffer): fix return value
4160
4161         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4162         checks actually work, from Tom Parker <fdo@tevp.net>
4163
4164 2005-03-01  Colin Walters  <walters@verbum.org>
4165
4166         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4167         functions copied from dbus-glib-tool.c.
4168         (main): Convert lots of error code to use them.
4169         Also add some testing for introspection bits.
4170
4171 2005-03-01  Colin Walters  <walters@verbum.org>
4172         
4173         * doc/TODO: Remove introspection signature TODO.
4174
4175 2005-02-27  Colin Walters  <walters@verbum.org>
4176
4177         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4178         Change return value to const char * instead of int so we can do
4179         full signatures.
4180         (struct PropertyInfo, struct ArgInfo): Store char *.
4181         (property_info_new, arg_info_new): Update parameters, strdup.
4182         (property_info_unref, arg_info_unref): Free.
4183
4184         * glib/dbus-gidl.h: Update prototypes.
4185
4186         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4187         (validate_signature): New function, just validates signature and
4188         sets GError.
4189         (parse_property, parse_arg): Invoke validate_signature.  Store
4190         signature instead of just type code.
4191
4192         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4193         function to return a primary type for a signature, dropping
4194         information about types in container types.
4195         (dbus_gvalue_genmarshal_name_from_type)
4196         (dbus_gvalue_binding_type_from_type)
4197         (dbus_gvalue_ctype_from_type): Update to take full signature
4198          instead of type code.
4199         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4200
4201         * glib/dbus-gvalue.h: Update prototypes for above.
4202
4203         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4204         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4205         (introspect_properties, introspect_signals, write_interface):
4206         Update to handle signatures, and remove usage of
4207         _dbus_gutils_type_to_string.
4208         (handle_introspect): Print out type codes instead of e.g. "string"
4209         in hardcoded introspection XML; also use x_AS_STRING constants
4210         instead of hardcoding in string.
4211
4212         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4213         to string.  Remove usage of _dbus_gutils_type_to_string.
4214
4215         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4216
4217         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4218         deletion.
4219         
4220         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4221         (compute_marshaller_name, generate_glue): Handle signature change
4222         to string.
4223         (write_formal_parameters, write_args_for_direction): Ditto, and
4224         remove FIXME.
4225
4226         * tools/dbus-tree-view.c (type_to_string): Delete.
4227         (info_set_func_text): Update to print full signatures.
4228
4229         * test/glib/test-service-glib.xml: Change types to new
4230         introspection format.
4231
4232 2005-02-26  Havoc Pennington  <hp@redhat.com>
4233
4234         * doc/TODO: remove the "guid" item
4235
4236         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4237         (with_bus_thread_func): use open_private
4238
4239         * dbus/dbus-connection.c (dbus_connection_open_private): new
4240         function that works like the old dbus_connection_open()
4241         (dbus_connection_open): now returns an existing connection if
4242         possible
4243
4244         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4245         through the GUID to the transport
4246
4247         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4248         GUID in hex-encoded form.
4249
4250         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4251         pass GUID argument in to the transport
4252
4253         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4254         guid argument
4255
4256         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4257
4258         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4259
4260 2005-02-25  Havoc Pennington  <hp@redhat.com>
4261
4262         * doc/dbus-specification.xml: document the GUID thing
4263
4264         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4265         globally unique ID for the server, and put a "guid=hexencoded"
4266         field in the address
4267
4268         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4269
4270         * dbus/dbus-message.c: ditto
4271
4272         * dbus/dbus-dataslot.c: ditto
4273
4274         * dbus/dbus-list.c: ditto
4275
4276         * dbus/dbus-internals.h: wait, just include
4277         dbus-threads-internal.h here
4278         
4279         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4280         use in main library
4281
4282         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4283
4284 2005-02-24  Colin Walters  <walters@verbum.org>
4285
4286         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4287
4288 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4289
4290         * glib/Makefile.am: added dbus-gobject.h to sources list
4291         so distcheck doesn't fail
4292         
4293 2005-02-24  Havoc Pennington  <hp@redhat.com>
4294
4295         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4296         you must disconnect before unref, since locking and other things
4297         are screwed up otherwise. Fix assorted other locking stuff.
4298
4299         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4300         fix compilation
4301
4302         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4303         into a private header and don't export from the library
4304
4305         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4306
4307 2005-02-24  Colin Walters  <walters@verbum.org>
4308         
4309         * dbus/dbus-signature.c: New file; implements various functions
4310         related to type signatures.  Includes an interator for parsing,
4311         validation functions.
4312         (dbus_type_is_basic): Moved here from
4313         dbus-marshal-basic.c:_dbus_type_is_basic.
4314         (dbus_type_is_container): Moved here from
4315         dbus-marshal-basic.c:_dbus_type_is_container.
4316
4317         All callers of _dbus_type_is_container and _dbus_type_is_basic
4318         updated, and include dbus-signature.h.
4319
4320         * dbus/dbus-signature.h: New file; prototypes for the above.
4321
4322         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4323         dbus-signature.h.
4324
4325         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4326         function factored out of _dbus_first_type_in_signature.
4327         (_dbus_first_type_in_signature_c_str): New function; returns first
4328         type code for a type signature character.
4329
4330         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4331         handle function moves.
4332
4333         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4334
4335         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4336         function; skips to next complete type in type signature.
4337         Implemented using previous skip_one_complete_type.  Now
4338         skip_one_complete_type just delegates to
4339         _dbus_type_signature_next.
4340
4341         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4342         to dbus-signature.c
4343         (_dbus_type_is_container): Ditto.
4344
4345         * doc/dbus-specification.xml: Update introspection sample to
4346         use real type signatures.
4347
4348         * dbus/dbus-test.h: Prototype signature test.
4349
4350         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4351         signature tests.
4352
4353         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4354
4355 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4356
4357         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4358         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4359
4360 2005-02-21  Colin Walters  <walters@verbum.org>
4361
4362         * dbus/dbus-test-main.c (main): Take optional specific test
4363         argument.
4364
4365         * dbus/dbus-test.c (run_test): New function, runs a test function
4366         with no data directory.
4367         (run_data_test): Like above, but takes data directory.
4368         (dbus_internal_do_not_use_run_tests): Take
4369         specific test argument.  Replace lots of cut n' paste code
4370         with run_test and run_data_test.
4371
4372         * dbus/dbus-test.h: Update prototype for
4373         dbus_internal_do_not_use_run_tests.
4374
4375 2005-02-20  Havoc Pennington  <hp@redhat.com>
4376
4377         Fix bugs reported by Daniel P. Berrange
4378         
4379         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4380         (protected_change_watch): new function
4381         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4382         (_dbus_server_add_watch): change to work like the
4383         dbus-connection.c equivalents; like those, probably kind of
4384         busted, but should at least mostly work for now
4385         (dbus_server_disconnect): drop the lock if we were already
4386         disconnected, patch from Daniel P. Berrange
4387
4388         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4389         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4390         same stuff
4391
4392         * doc/TODO: todo about unscrewing this mess
4393
4394 2005-02-19  Colin Walters  <walters@verbum.org>
4395
4396         * glib/dbus-binding-tool-glib.c
4397         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4398
4399         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4400         as errno.h and sys/stat.h.
4401         (lose): New function, prints error with
4402         newline and exits.
4403         (lose_gerror): Similar, but takes GError for message.
4404         (main): Add --output argument to specify output file to write to,
4405         instead of always printing to stdout.  In this mode, determine
4406         timestamps on source files to see whether any are newer than the
4407         target file.  If not, exit.  Also convert a number of error
4408         messages to use lose (since it's shorter), and switch to using
4409         g_io_channel_shutdown.
4410
4411 2005-02-19  Havoc Pennington  <hp@redhat.com>
4412
4413         * glib/dbus-gobject.c
4414         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4415
4416         * glib/dbus-glib.c: fix doxygen warnings
4417
4418         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4419         is found on an <arg>
4420
4421 2005-02-17  Colin Walters  <walters@verbum.org>
4422
4423         * glib/dbus-gobject.h: Don't export
4424         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4425         
4426         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4427         (invoke_object_method): Handle it.
4428
4429         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4430         Handle rename.
4431         
4432 2005-02-17  Colin Walters  <walters@verbum.org>
4433
4434         * bus/.cvsignore, doc/.cvsignore
4435         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4436         Update.
4437
4438 2005-02-17  Colin Walters  <walters@verbum.org>
4439         
4440         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4441         Rename to DBUS_SERVICE_DBUS.
4442         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4443         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4444         Change the value from "org.freedesktop.Local"
4445         to "org.freedesktop.DBus.Local".
4446         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4447         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4448         DBUS_INTERFACE_INTROSPECTABLE.
4449         Change the value from "org.freedesktop.Introspectable"
4450         to "org.freedesktop.DBus.Introspectable".
4451         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4452         DBUS_INTERFACE_PROPERTIES.
4453         Change the value from "org.freedesktop.Properties"
4454         to "org.freedesktop.DBus.Properties".
4455         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4456         DBUS_INTERFACE_PEER.
4457         Change the value from "org.freedesktop.Peer"
4458         to "org.freedesktop.DBus.Peer".
4459         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4460         DBUS_INTERFACE_LOCAL.
4461         Change the value from "org.freedesktop.Local"
4462         to "org.freedesktop.DBus.Local".
4463
4464         All other users of those constants have been changed.
4465
4466         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4467
4468         * glib/dbus-gobject.c (handle_introspect): Use constants.
4469
4470         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4471
4472 2005-02-17  Colin Walters  <walters@verbum.org>
4473
4474         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4475         (parse_node, parse_interface, parse_method, parse_signal)
4476         (parse_property, parse_annotation): Lose if we're currently in an
4477         annotation.
4478         (parse_annotation): New function.
4479         (parser_start_element, parser_end_element): Handle annotation.
4480         (parse_method, parse_interface): Remove support for c_name attribute,
4481         switch to annotations.
4482
4483         * glib/dbus-gidl.h (interface_info_get_binding_names)
4484         (method_info_get_binding_names)
4485         (interface_info_get_binding_name, method_info_get_binding_name)
4486         (interface_info_set_binding_name, method_info_set_binding_name):
4487         Remove.
4488         (interface_info_get_annotations, method_info_get_annotations)
4489         (interface_info_get_annotation, method_info_get_annotation)
4490         (interface_info_add_annotation, method_info_add_annotation):
4491         Prototype.
4492
4493         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4494         for "bindings".
4495         (struct MethodInfo): Ditto.
4496         Straightfoward conversion of binding methods into annotation methods
4497         as prototyped.
4498
4499         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4500
4501         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4502
4503         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4504         Use new annotation API.
4505
4506         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4507         annotation element.
4508         
4509         * doc/dbus-specification.xml: Discuss introspection annotations,
4510         include list of well-known annotations.
4511
4512         * test/glib/test-service-glib.xml: Make validate against new DTD.
4513
4514 2005-02-17  Colin Walters  <walters@verbum.org>
4515
4516         This patch is based on initial work from
4517         Paul Kuliniewicz <kuliniew@purdue.edu>.
4518
4519         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4520         initialization of GValue from dbus type to here.
4521         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4522         for the "glib-genmarshal" program from a DBus type.
4523         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4524         into the C name for it we use in the glib bindings.
4525         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4526         glib C type (not GValue).
4527         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4528
4529         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4530         from dbus-gobject.c.
4531
4532         * glib/dbus-gutils.h: Prototype it.
4533
4534         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4535         (marshal_dbus_message_to_g_marshaller): Use new shared function
4536         dbus_glib_marshal_dbus_message_to_gvalue_array.
4537
4538         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4539         Will be changed once we have annotations.
4540
4541         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4542         GStaticRWLock.  Callers updated.
4543         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4544         (string_table_next): New function for iterating over zero-terminated
4545         string value array.
4546         (string_table_lookup): New function; retrieves specific entry in
4547         array.
4548         (get_method_data): New function; look up method data in object data chunk.
4549         (object_error_domain_prefix_from_object_info)
4550         (object_error_code_from_object_info): New functions, but not implemented yet.
4551         (method_interface_from_object_info): New function; retrieve interface name.
4552         (method_name_from_object_info): New function; retrieve method name.
4553         (method_arg_info_from_object_info): New function; retrieve argument data.
4554         (arg_iterate): New function; iterates over serialized argument data.
4555         (method_dir_signature_from_object_info): New function; returns a
4556         GString holding type signature for arguments for just one
4557         direction (input or output).
4558         (method_input_signature_from_object_info)
4559         (method_output_signature_from_object_info): New functions.
4560         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4561         converts dbus message arguments into a GValue array.  Used for both
4562         signal handling and method invocation.
4563         (struct DBusGlibWriteIterfaceData): New utility structure.
4564         (write_interface): New function; generate introspection XML for
4565         an interface.
4566         (introspect_interfaces): New function; gathers all interface->methods,
4567         generates introspection XML for them.
4568         (handle_introspect): Invoke introspect_interfaces.
4569         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4570         (lookup_object_and_method): New function; examines an incoming message
4571         and attempts to match it up (via interface, method name, and argument
4572         signature) with a known object and method.
4573         (gerror_domaincode_to_dbus_error_name): New function; converts a
4574         GError domain and code into a DBus error name.  Needs GError data
4575         added to object introspection to work well.
4576         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4577         GError.
4578         (invoke_object_method): New function to invoke an object method
4579         looked up via lookup_object_and_method.  Parses the incoming
4580         message, turns it into a GValue array, then invokes the marshaller
4581         specified in the DBusGMethodInfo.  Creates a new message with
4582         either return values or error message as appropriate.
4583         (gobject_message_function): Invoke lookup_object_and_method and
4584         invoke_object_method.
4585
4586         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4587         (enum DBusBindingOutputMode): New enum for binding output modes.
4588         (pretty_print): Print binding names.
4589         (dbus_binding_tool_error_quark): GError bits.
4590         (version): Fix typo.
4591         (main): Create GIOChannel for output.  Parse new --mode argument,
4592         possible values are "pretty-print", "glib-server", "glib-client".
4593         Use mode to invoke appropriate function.
4594         
4595         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4596
4597         * glib/dbus-glib-tool.h: New header, just includes GError bits
4598         for now.
4599
4600         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4601         maps binding style to name.
4602         (struct MethodInfo): Ditto.
4603         (get_hash_keys, get_hash_key): Utility function, returns keys for
4604         a GHashTable.
4605         (interface_info_new, method_info_new): Initialize bindings.
4606         (interface_info_unref, method_info_unref): Destroy bindings.
4607         (method_info_get_binding_names, method_info_get_binding_name)
4608         (interface_info_get_binding_names, interface_info_get_binding_name):
4609         Functions for retrieving binding names.
4610         (method_info_set_binding_name, interface_info_set_binding_name):
4611         Functions for setting binding names.
4612
4613         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4614         for glib binding generation.
4615
4616         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4617         and client-side glib glue generation.
4618
4619         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4620         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4621         dbus-glib-tool.h.
4622
4623         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4624         of using GClosureMarshal directly.
4625         (struct DBusGObjectInfo): Add n_infos member.
4626
4627         * test/glib/test-service-glib.xml: New file; contains introspection data
4628         for MyTestObject used in test-service-glib.c.
4629
4630         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4631         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4632         (my_object_uppercase, my_object_many_args): New test methods.
4633         (main): Use dbus_g_object_class_install_info to include generated object
4634         info.
4635
4636         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4637         as well as client-side bindings.
4638
4639         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4640         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4641         using both the dbus_gproxy stuff directly as well as the generated bindings.
4642
4643 2005-02-15  Havoc Pennington  <hp@redhat.com>
4644
4645         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4646         complete a pending call, don't run filters first.
4647
4648         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4649         dbus_pending_call_steal_reply
4650
4651         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4652         _dbus_connection_block_pending_call
4653         (dbus_pending_call_get_reply): change to steal_reply and return a
4654         ref
4655
4656         * dbus/dbus-connection.c
4657         (dbus_connection_send_with_reply_and_block): port to work in terms
4658         of DBusPendingCall
4659         (_dbus_connection_block_pending_call): replace block_for_reply
4660         with this
4661
4662 2005-02-14  Havoc Pennington  <hp@redhat.com>
4663
4664         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4665         properly handle looking up group information by name; fix 
4666         from j@bootlab.org
4667
4668 2005-02-13  Havoc Pennington  <hp@redhat.com>
4669
4670         * dbus/dbus-connection.c (dbus_connection_return_message) 
4671         (dbus_connection_borrow_message): hold dispatch lock while message
4672         is outstanding
4673         (_dbus_connection_block_for_reply): hold dispatch lock while we
4674         block for the reply, so nobody steals our reply
4675         (dbus_connection_pop_message): hold the dispatch lock while we
4676         pluck the message
4677
4678 2005-02-13  Havoc Pennington  <hp@redhat.com>
4679
4680         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4681         (_dbus_connection_release_dispatch)
4682         (_dbus_connection_acquire_io_path)
4683         (_dbus_connection_release_io_path): make the mutex and condvar
4684         control access to the "acquired" flag. Drop the connection lock
4685         while waiting on the condvar. Hopefully these are baby steps in
4686         roughly the right direction.
4687
4688 2005-02-13  Havoc Pennington  <hp@redhat.com>
4689
4690         * dbus/dbus-connection.c: use separate mutexes for the condition
4691         variables; this is some kind of baseline for sanity, but the
4692         condition variables still aren't used correctly afaict
4693
4694 2005-02-13  Havoc Pennington  <hp@redhat.com>
4695
4696         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4697         fix a double-unlock
4698
4699         * dbus/dbus-connection.c
4700         (_dbus_connection_detach_pending_call_unlocked): add this
4701
4702         Initial semi-correct pass through to fix thread locking; there are
4703         still some issues with the condition variable paths I'm pretty
4704         sure
4705         
4706         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4707         lock/unlock calls
4708
4709         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4710         rename to add _unlocked
4711         (struct DBusConnection): move "dispatch_acquired" and
4712         "io_path_acquired" to use only one bit each.
4713         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4714         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4715         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4716         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4717         (_dbus_connection_remove_timeout) 
4718         (_dbus_connection_toggle_timeout): drop lock when calling out to
4719         user functions; done in a hacky/bad way.
4720         (_dbus_connection_send_and_unlock): add a missing unlock
4721         (_dbus_connection_block_for_reply): add a missing unlock
4722
4723         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4724         drop lock in a hacky probably unsafe way to call out to user
4725         function
4726
4727 2005-02-12  Havoc Pennington  <hp@redhat.com>
4728
4729         * tools/dbus-tree-view.c (info_set_func_text): display more
4730         details on args
4731
4732         * bus/driver.c (bus_driver_handle_list_services): list the bus
4733         driver
4734
4735         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4736
4737         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4738         (method_info_get_n_args): new function
4739
4740 2005-02-12  Havoc Pennington  <hp@redhat.com>
4741
4742         * bus/driver.c (bus_driver_handle_introspect): add introspection
4743         for bus driver
4744
4745 2005-02-12  Havoc Pennington  <hp@redhat.com>
4746
4747         * bus/driver.c: put the signature of each bus driver method in the
4748         table of handlers and check it on incoming calls; this isn't
4749         really useful, but going to add introspect support in a minute.
4750
4751 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4752
4753         * mono/Connection.cs: The unpredictability of finalizers in mono
4754         prevents us from deterministically disconnecting the filters from
4755         the Service class's finalizer, so move tracking of filters and
4756         matches here.  Add API for that.
4757
4758         * mono/Service.cs: Remove the code, add code which calls the
4759         methods now on the Connection class.
4760
4761 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4762
4763         * python/dbus.py (class Sender): added to support dbus signals better
4764         (Bus::add_signal_receiver): added expand_args parameter which defaults
4765         to True.  When expand args is True the signal handler will pass the 
4766         message arguments as parameters to the signal handler.  If False
4767         revert to previous behavior where the signal handler must get the
4768         argument list from the message.  This is to help port applications
4769         like HAL that have a tendancy to send variable length argument lists.
4770         self._match_rule_to_receivers is now a dict of dicts.
4771         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4772         removing it from a list
4773         (Bus::_signal_func): change signal handlers so that interface,
4774         signal_name, service, path and message are packed into a Sender
4775         object and that is passed to the handler.  If expand_args is True
4776         extract the args list from the message and append it to the parameter
4777         list
4778         
4779         * python/dbus_bindings.pyx.in (class Signature): added to support 
4780         signiature types
4781         (MessageIter::__init__): changed iteration limit to match D-BUS
4782         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4783         STRUCT and VARIENT type support
4784         (MessageIter::python_value_to_dbus_sig): made recursive to support
4785         recursive types
4786         (MessageIter::append*): added Signature, dict, tuple 
4787         support
4788
4789         * python/examples/example-client.py: added examples of getting tuples
4790         and dicts
4791
4792         * python/examples/example-service.py: added examples of sending tuples
4793         and dicts
4794
4795         * python/examples/example-signal-recipient.py: Fixed to handle new
4796         signal callback format
4797
4798 2005-02-10  Havoc Pennington  <hp@redhat.com>
4799
4800         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4801         (call dbus_g_proxy_add_signal)
4802
4803         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4804         escape the hostname
4805         (_dbus_server_new_for_domain_socket): escape the path
4806
4807         * dbus/dbus-address.c (dbus_address_escape_value): new
4808         (dbus_address_unescape_value): new
4809         (dbus_parse_address): unescape values
4810
4811         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4812
4813         * doc/dbus-specification.xml: explain how to escape values in
4814         addresses
4815
4816 2005-02-10  Havoc Pennington  <hp@redhat.com>
4817
4818         * dbus/dbus-message-factory.c (generate_special): modify test to
4819         avoid using a non-basic dict key
4820
4821         * dbus/dbus-marshal-validate-util.c: add test for the below
4822
4823         * doc/dbus-specification.xml: require that dict keys are a basic
4824         type
4825
4826         * dbus/dbus-marshal-validate.c
4827         (_dbus_validate_signature_with_reason): require that dict key is a
4828         basic type
4829
4830 2005-02-10  Havoc Pennington  <hp@redhat.com>
4831
4832         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4833         change to be _and_unlock instead of _unlocked
4834
4835         * dbus/dbus-connection.c
4836         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4837         have no_update so we can find this bug quickly in future
4838
4839 2005-02-10  Havoc Pennington  <hp@redhat.com>
4840
4841         * dbus/dbus-message-util.c (verify_test_message): tests for string
4842         array
4843
4844         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4845         support for arrays of string/signature/path
4846
4847 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4848
4849         * dbus/dbus-connection.c
4850         (_dbus_connection_queue_received_message_link,
4851         _dbus_connection_message_sent): Add the path to
4852         the verbose output.
4853         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4854         _dbus_connection_send_preallocated_unlocked(), updated the
4855         dispatch status, and unlocks.  Fixes a bug where certain
4856         situations (like a broken pipe) could cause a Disconnect message
4857         to not be sent, tricking the bus into thinking a service was still
4858         there when the process had quit.
4859         (_dbus_connection_send_preallocated): Call
4860         _dbus_connection_send_preallocated_and_unlock().
4861         (_dbus_connection_send_and_unlock): Added.  Calls
4862         _dbus_connection_send_preallocated_and_unlock().
4863         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4864         (dbus_connection_send_with_reply): Update the dispatch status and
4865         unlock.
4866
4867         * mono/Service.cs (~Service): Added.  Removes the filter so that
4868         we don't get unmanaged code calling back into a GCed delegate.
4869         (RemoveFilter); Added.
4870
4871 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4872
4873         * dbus/dbus-message.c (dbus_message_iter_open_container):
4874         - Removed check for iterator type being an array because
4875         get_arg_type does not work with writer iterators
4876         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4877
4878 2005-02-07  Havoc Pennington  <hp@redhat.com>
4879
4880         * doc/dbus-specification.xml: some more language cleanups; add
4881         stuff about how to deal with invalid protocol and extension
4882         points; add _ to allowed chars in auth commands; add EXTENSION_
4883         auth command prefix
4884
4885 2005-02-06  Havoc Pennington  <hp@redhat.com>
4886
4887         * s/expected/required/ in a couple places for clarity
4888
4889 2005-02-07  Colin Walters  <walters@verbum.org>
4890
4891         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4892         sender or proposed_recipient.
4893
4894 2005-02-06  Havoc Pennington  <hp@redhat.com>
4895
4896         * dbus/dbus-message-factory.c (generate_special): more tests
4897
4898         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4899         array length that exceeds the maximum
4900
4901 2005-02-05  Havoc Pennington  <hp@redhat.com>
4902
4903         * dbus/dbus-message-factory.c (generate_special): more test cases,
4904         increasing coverage
4905
4906         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4907         reason why a signature was invalid
4908
4909         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4910         skip the length of the string before we look at it in validation
4911
4912         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4913         equal_substring
4914
4915         * dbus/dbus-message.c (_dbus_message_loader_new): default
4916         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4917
4918 2005-02-05  Havoc Pennington  <hp@redhat.com>
4919
4920         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4921         if the signature of a variant was empty
4922         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4923         struct with no element type)
4924
4925         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4926         mangled messages to break things
4927
4928 2005-02-04  Havoc Pennington  <hp@redhat.com>
4929
4930         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4931         g_quark_try_string() so it actually can return 0
4932         (dbus_g_proxy_connect_signal): ditto
4933
4934 2005-02-04  Havoc Pennington  <hp@redhat.com>
4935
4936         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4937         bogus warning
4938         (tristring_from_message): assert cleanly on null path/interface
4939         (should not be possible though I decided later)
4940         (dbus_g_proxy_dispose): move proxy manager unregistration here
4941         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4942         g_return_if_fail() checks
4943
4944 2005-02-04  Havoc Pennington  <hp@redhat.com>
4945
4946         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4947
4948         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4949         (with some minor changes)
4950
4951         * doc/dbus-specification.xml: add deprecated attribute to
4952         introspection format
4953
4954 2005-01-31  Havoc Pennington  <hp@redhat.com>
4955
4956         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4957         think it's sort of right
4958
4959 2005-01-30  Havoc Pennington  <hp@redhat.com>
4960
4961         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4962
4963 2005-01-30  Havoc Pennington  <hp@redhat.com>
4964
4965         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4966
4967         * autogen.sh: change to autotools 1.9
4968
4969         * glib/dbus-gproxy.c: completely change how signals work
4970         (dbus_g_proxy_add_signal): new function to specify signature of a
4971         signal
4972         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4973         and g_warning if the incoming message has the wrong signature.
4974
4975 2005-01-30  Havoc Pennington  <hp@redhat.com>
4976
4977         * tools/dbus-names-model.c (have_names_notify): fix this
4978
4979         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4980         up the string array handling a bit 
4981
4982 2005-01-30  Havoc Pennington  <hp@redhat.com>
4983
4984         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4985         (dbus_g_pending_call_cancel): new function
4986
4987         * dbus/dbus-glib.h: move GType decls for connection/message here;
4988         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4989         here, just kind of rationalizing how we handle all that
4990
4991         * tools/dbus-names-model.c: new file for a tree model listing the
4992         services on a bus
4993
4994         * tools/dbus-tree-view.c (model_new): use proper typing on the
4995         model rows
4996
4997 2005-01-30  Havoc Pennington  <hp@redhat.com>
4998
4999         * glib/dbus-gmain.c: add a custom GSource back that just checks
5000         whether the message queue has anything in it; otherwise, there are 
5001         cases where we won't see messages in the queue since there was no 
5002         IO visible to the glib main loop
5003
5004         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5005         increase default message timeout to 25 seconds
5006
5007 2005-01-30  Havoc Pennington  <hp@redhat.com>
5008
5009         * test/glib/test-profile.c (no_bus_stop_server): remove the
5010         warning about the g_warning that I just fixed
5011
5012         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5013         custom source, seems to be a lot easier to understand and work
5014         better.
5015
5016 2005-01-30  Havoc Pennington  <hp@redhat.com>
5017
5018         I think this main loop thing is conceptually broken, but here are 
5019         some band aids. I'll maybe rewrite it in a minute.
5020         
5021         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5022         custom GSource, so don't pass it in; confusing
5023         (gsource_server_finalize, gsource_connection_finalize): add
5024         finalize handlers that remove all the watches.  
5025
5026 2005-01-30  Havoc Pennington  <hp@redhat.com>
5027
5028         * glib/dbus-gobject.c (introspect_properties): fix the XML
5029         generated
5030
5031         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5032         which effectively detects the use of freed messages
5033
5034         * glib/dbus-gobject.c (handle_introspect): modify and return the
5035         reply message instead of the incoming message
5036
5037         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5038         gee, maybe it should SEND THE XML instead of just making a string
5039         and freeing it again ;-)
5040
5041         * tools/dbus-print-message.c (print_message): improve printing of
5042         messages
5043
5044         * configure.in: add debug-glib.service to the output
5045
5046 2005-01-30  Havoc Pennington  <hp@redhat.com>
5047
5048         dbus-viewer introspected and displayed the bus driver
5049         
5050         * dbus/dbus-object-tree.c 
5051         (object_tree_test_iteration): add tests for a handler registered on "/"
5052
5053         * dbus/dbus-object-tree.c
5054         (_dbus_decompose_path): fix to handle path "/" properly
5055         (run_decompose_tests): add tests for path decomposition
5056         
5057         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5058         properly
5059
5060         * glib/dbus-gobject.c (handle_introspect): fix quotes
5061
5062         * test/glib/run-test.sh: support launching the bus, then running
5063         dbus-viewer
5064
5065         * test/glib/test-service-glib.c (main): put in a trivial gobject
5066         subclass and register it on the connection
5067
5068         * bus/driver.c (bus_driver_handle_introspect): implement
5069         introspection of the bus driver service
5070
5071         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5072         identifiers, doctype decl
5073
5074         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5075         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5076         returning the service unchanged.
5077         (bus_driver_handle_message): remove old check for reply_serial in
5078         method calls, now the message type deals with that
5079         (bus_driver_handle_message): handle NULL interface
5080
5081         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5082
5083         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5084         -1 for len
5085
5086         * tools/dbus-viewer.c: add support for introspecting a service on
5087         a bus
5088
5089         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5090         (dbus_g_pending_call_unref): add
5091
5092 2005-01-29  Havoc Pennington  <hp@redhat.com>
5093
5094         * tools/dbus-tree-view.c: add support for displaying properties.
5095         (run dbus-viewer with an introspect xml file as arg, then resize
5096         the window so the tree elements show up, not sure what that is)
5097
5098         * glib/dbus-gobject.c (handle_introspect): return
5099         org.freedesktop.Properties and org.freedesktop.Introspectable
5100         interfaces when we are introspected.
5101
5102         * doc/dbus-specification.xml: allow empty interface name when 
5103         Get/Set a property
5104
5105 2005-01-29  Havoc Pennington  <hp@redhat.com>
5106
5107         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5108         though it uses glib, it could be extended for any binding in
5109         principle
5110
5111         * glib/dbus-gobject.c (gobject_message_function): change to the
5112         new way properties work
5113
5114         * dbus/dbus-protocol.h: add the new interfaces
5115
5116         * doc/dbus-specification.xml: document the introspection format,
5117         Introspectable interface, and add an org.freedesktop.Properties
5118         interface.
5119
5120         * glib/dbus-gparser.c: add support for a <property> element
5121
5122         * glib/dbus-gidl.c: add PropertyInfo
5123
5124         * glib/dbus-gobject.c (handle_introspect): put the outermost
5125         <node> outside the signal and property descriptions.
5126         (introspect_properties): export properties as <property> rather
5127         than as method calls
5128
5129 2005-01-28  Havoc Pennington  <hp@redhat.com>
5130
5131         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5132         related to authentication protocol
5133
5134 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5135
5136         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5137                 - BUS_ACTIVATION -> BUS_STARTER
5138                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5139                 - class MessageIter (__init__): Added recursion checking 
5140                 so we throw a nice error instead of just disconnecting from the
5141                 bus.
5142                 (get): Added arg_type parameter for recursion.
5143                 Removed the nil type
5144                 Added signiture type placeholder (not implemented)
5145                 Added struct type placeholder (not implemented)
5146                 Added varient type placeholder (not implemented)
5147                 Commented out dict type for now     
5148                 (get_element_type): renamed from get_array_type
5149                 (get_*): changed to use the dbus_message_iter_get_basic API
5150                 (get_*_array): removed in favor of recursive get_array method
5151                 (get_array): new recursive method which calls get to marshal
5152                 the elements of the array
5153                 (value_to_dbus_sig): New method returns the corrasponding
5154                 dbus signiture to a python value
5155                 (append): Comment out dict handling for now
5156                 Handle lists with the new recursive API
5157                 Comment out None handling for now
5158                 (append_nil): removed
5159                 (append_*): changed to use dbus_message_iter_append_basic API
5160                 (append_*_array): removed in favor of recursive append_array 
5161                 method
5162                 (__str__): Make it easier to print out recursive iterators
5163                 for debugging
5164                 - class Message (__str__): moved type inspection to the
5165                 MessageIter class' __str__ method
5166                 (get_iter): Added an append parameter wich defaults to False
5167                 If True use the new API's to create an append iterator
5168
5169         * python/dbus.py: Update to use new bindings API
5170                 - TYPE_ACTIVATION -> TYPE_STARTER
5171                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5172                 - class ActivationBus -> class StarterBus
5173                 - class RemoteObject (__call__): get an append iterator
5174                 - (_dispatch_dbus_method_call): get an append iterator
5175                 - class Object (emit_signal): get an append iterator
5176
5177         * python/examples/: Fixed up the examples to work with the new API
5178                 
5179 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5180
5181         * configure.in: Bump version up to 0.30.
5182
5183         * HACKING: Add a release item to bump the version number up after 
5184         a release.
5185
5186 2005-01-28  Havoc Pennington  <hp@redhat.com>
5187
5188         * doc/dbus-specification.xml: update to describe 16-bit types and
5189         dict entries
5190
5191         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5192         assertion
5193
5194         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5195         type
5196
5197         * dbus/dbus-marshal-recursive.c: implement
5198
5199 2005-01-27  Havoc Pennington  <hp@redhat.com>
5200
5201         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5202
5203         * configure.in: find the right type for 16 and 32 bit ints as well
5204         as 64
5205
5206         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5207         the 16-bit types so people don't have to stuff them in 32-bit or
5208         byte arrays.
5209
5210 2005-01-27  Havoc Pennington  <hp@redhat.com>
5211
5212         * dbus/dbus-message.c: byteswap the message if you init an
5213         iterator to read/write from it
5214         
5215         * dbus/dbus-marshal-byteswap.c: new file implementing 
5216         _dbus_marshal_byteswap()
5217
5218         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5219
5220 2005-01-26  Havoc Pennington  <hp@redhat.com>
5221         
5222         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5223         build, apparently - nobody noticed?)
5224         
5225 2005-01-26  Havoc Pennington  <hp@redhat.com>
5226
5227         * dbus/dbus-marshal-recursive.h: remove todo comment
5228
5229 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5230
5231         * Land the mono binding changes to conform to the new APIs.
5232
5233         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5234         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5235
5236         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5237         type code as a string.
5238         (InitAppending): Rename dbus_message_append_iter_init() to
5239         dbus_message_iter_init_append().
5240
5241         * mono/BusDriver.cs: Rename ServiceEventHandler to
5242         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5243         Rename ServiceOwnerChanged to NameOwnerChanged.
5244
5245         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5246         underlying C call.
5247
5248         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5249
5250         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5251         dbus_bus_acquire_service() to dbus_bus_request_name().
5252
5253         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5254         of Type.UnderlyingSystemType to get the correct element type for
5255         the array.
5256         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5257         dbus_message_get_{element|arg}_type() instead of
5258         dbus_message_iter_init_array_iterator().
5259         (Append): Replace dbus_message_iter_append_array() with
5260         dbus_message_iter_open_container() and
5261         dbus_message_iter_close_container().
5262
5263         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5264         types have been removed.
5265         
5266         * mono/DBusType/*.cs: Replace calls of
5267         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5268         but specify the type in the DllImport extern declaration.  Ditto
5269         for dbus_message_iter_append_[type]() ->
5270         dbus_message_iter_append_basic().
5271
5272         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5273         NameOwnerChangedHandler.
5274
5275 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5276
5277         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5278                 - get_base_service -> get_unique_name
5279                 - bus_get_base_service -> bus_get_unique_name
5280                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5281                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5282                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5283                 - bus_activate_service -> bus_start_service_by_name
5284                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5285                 - bus_acquire_service -> bus_request_name
5286                 - dbus_bus_acquire_service -> dbus_bus_request_name
5287                 - bus_service_exists -> bus_name_has_owner
5288                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5289
5290         * python/dbus.py: Rename of methods
5291                 - activate_service -> start_service_by_name
5292                 - bus_acquire_service -> bus_request_name
5293                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5294                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5295
5296         
5297 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5298
5299         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5300         signature for the method that can't be found.
5301
5302         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5303         the message has any arguments, we need to call
5304         _dbus_type_reader_get_current_type(), not
5305         _dbus_type_reader_has_next().
5306
5307 2005-01-24  Havoc Pennington  <hp@redhat.com>
5308
5309         * dbus/dbus-message-factory.c: more testing of message validation
5310
5311         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5312         header
5313
5314 2005-01-23  Havoc Pennington  <hp@redhat.com>
5315
5316         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5317         get this all working, not many tests in the framework yet though
5318
5319 2005-01-22  Havoc Pennington  <hp@redhat.com>
5320
5321         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5322         tutorial, based on work from David Wheeler.
5323
5324 2005-01-21  Havoc Pennington  <hp@redhat.com>
5325
5326         * dbus/dbus-bus.c: add more return_if_fail checks
5327
5328         * dbus/dbus-message.c (load_message): have the "no validation"
5329         mode (have to edit the code to toggle the mode for now though)
5330
5331         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5332         skips all validation; I want to use this at least for benchmark
5333         baseline, I'm not sure if it should be a publicly-available switch.
5334
5335 2005-01-21  Havoc Pennington  <hp@redhat.com>
5336
5337         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5338         toplevel doxygen group as the low-level API stuff
5339
5340         * dbus/dbus.h: note that libdbus is the low-level API
5341
5342 2005-01-20  Havoc Pennington  <hp@redhat.com>
5343
5344         * update-dbus-docs.sh: script to update docs on the web site, only
5345         works for me though. neener.
5346
5347 2005-01-20  Havoc Pennington  <hp@redhat.com>
5348
5349         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5350         code can reveal bugs in it
5351
5352 2005-01-20  Havoc Pennington  <hp@redhat.com>
5353
5354         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5355         select() version, patches from Tor Lillqvist
5356
5357 2005-01-20  Havoc Pennington  <hp@redhat.com>
5358
5359         * doc/dbus-tutorial.xml: replace > with &gt;
5360
5361         * bus/services.c (bus_registry_acquire_service): validate the name
5362         and return a better error if it's no good.
5363
5364         * doc/dbus-specification.xml: note NO_AUTO_START change
5365
5366         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5367         from AUTO_START, we're toggling the default
5368
5369         * bus/dispatch.c: adapt the tests to change of auto-start default
5370
5371 2005-01-18  Havoc Pennington  <hp@redhat.com>
5372
5373         * rename dbus-daemon-1 to dbus-daemon throughout
5374
5375 2005-01-18  Havoc Pennington  <hp@redhat.com>
5376
5377         * Throughout, grand renaming to strip out the use of "service",
5378         just say "name" instead (or "bus name" when ambiguous).  Did not
5379         change the internal code of the message bus itself, only the
5380         programmer-facing API and messages.
5381         
5382         * doc/dbus-specification.xml: further update the message bus section
5383         
5384         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5385         in error case
5386
5387 2005-01-17  Havoc Pennington  <hp@redhat.com>
5388
5389         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5390         ever
5391
5392         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5393         "invalid name character" not only non-ASCII
5394
5395         * doc/dbus-specification.xml: further update spec, message bus 
5396         parts are still out-of-date but the marshaling etc. stuff is now
5397         accurate-ish
5398
5399 2005-01-17  Havoc Pennington  <hp@redhat.com>
5400
5401         * doc/dbus-specification.xml: partially update spec
5402
5403 2005-01-17  Havoc Pennington  <hp@redhat.com>
5404
5405         * Throughout, align variant bodies according to the contained
5406         type, rather than always to 8. Should save a fair bit of space in
5407         message headers.
5408         
5409         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5410         fix handling of case where p == end
5411
5412         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5413
5414 2005-01-17  Havoc Pennington  <hp@redhat.com>
5415
5416         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5417
5418         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5419         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5420         are marshaling/unmarshaling a boolean.
5421
5422 2005-01-16  Havoc Pennington  <hp@redhat.com>
5423
5424         This is about it on what can be disabled/deleted from libdbus
5425         easily, back below 150K anyhow. Deeper cuts are more work than 
5426         just turning the code off as I've done here.
5427         
5428         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5429         signed int convenience funcs
5430
5431         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5432         verbose mode
5433
5434         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5435         things out of libdbus
5436
5437         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5438         
5439         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5440         tests-enabled-only, though it should probably be deleted)
5441
5442         * dbus/dbus-message-util.c: same stuff
5443
5444         * dbus/dbus-auth-util.c: same stuff
5445
5446 2005-01-16  Havoc Pennington  <hp@redhat.com>
5447
5448         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5449
5450         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5451         way for stripping down dbus-userdb.c stuff included in libdbus.
5452         Rename _dbus_parse_uid for consistency.
5453
5454 2005-01-16  Havoc Pennington  <hp@redhat.com>
5455
5456         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5457         name the assertion failed in
5458
5459         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5460         (_dbus_return_val_if_fail): assert that the name of the function
5461         containing the check doesn't start with '_', since we only want to 
5462         use checks on public functions
5463         
5464         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5465         checks to assertions
5466
5467         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5468         change checks to asserts for private function
5469
5470         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5471         to asserts for private function
5472
5473         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5474         broken assertion that was breaking make check
5475         (_dbus_type_reader_array_is_empty): remove this rather than fix
5476         it, was only used in assertions
5477
5478 2005-01-16  Havoc Pennington  <hp@redhat.com>
5479
5480         * test/unused-code-gc.py: hacky script to find code that's used
5481         only by the bus (not libdbus) or used only by tests or not used at
5482         all. It has some false alarms, but looks like we can clean up a
5483         lot of size from libdbus.
5484
5485         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5486         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5487         
5488 2005-01-16  Havoc Pennington  <hp@redhat.com>
5489
5490         * Add and fix docs according to Doxygen warnings throughout
5491         source.
5492         
5493         * dbus/dbus-marshal-recursive.c
5494         (_dbus_type_reader_array_is_empty): change this to just call
5495         array_reader_get_array_len() and make it static
5496
5497         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5498         from get_array_type
5499         (dbus_message_iter_init_append): rename from append_iter_init
5500
5501         * dbus/dbus-marshal-recursive.c
5502         (_dbus_type_reader_get_element_type): rename from
5503         _dbus_type_reader_get_array_type
5504
5505 2005-01-15  Havoc Pennington  <hp@redhat.com>
5506
5507         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5508
5509         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5510         when DBUS_DISABLE_ASSERT
5511         (_dbus_marshal_set_basic): be sure we align for the string length
5512
5513         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5514         this look faster
5515
5516         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5517         inline macro version
5518         (_dbus_string_set_byte): provide inline macro version
5519
5520 2005-01-15  Havoc Pennington  <hp@redhat.com>
5521
5522         * Land the new message args API and type system.
5523
5524         This patch is huge, but the public API change is not 
5525         really large. The set of D-BUS types has changed somewhat, 
5526         and the arg "getters" are more geared toward language bindings;
5527         they don't make a copy, etc.
5528
5529         There are also some known issues. See these emails for details
5530         on this huge patch:
5531         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5532         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5533         
5534         * dbus/dbus-marshal-*: all the new stuff
5535
5536         * dbus/dbus-message.c: basically rewritten
5537
5538         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5539         freed blocks to be all non-nul bytes so using freed memory is less
5540         likely to work right
5541
5542         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5543         DBUS_FAIL_MALLOC=N environment variable, so you can do
5544         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5545         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5546         thorough.
5547
5548         * qt/message.cpp: port to the new message args API
5549         (operator<<): use str.utf8() rather than str.unicode()
5550         (pretty sure this is right from the Qt docs?)
5551
5552         * glib/dbus-gvalue.c: port to the new message args API
5553
5554         * bus/dispatch.c, bus/driver.c: port to the new message args API
5555
5556         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5557         "locked" flag to TRUE and align_offset to 0; I guess we never
5558         looked at these anyhow, but seems cleaner.
5559
5560         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5561         move allocation padding macro to this header; use it to implement
5562         (_DBUS_STRING_STATIC): ability to declare a static string.
5563
5564         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5565         change to return TRUE if the interface is not set.
5566
5567         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5568         to dbus-marshal-validate.[hc]
5569
5570         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5571         dbus-internals.c
5572
5573         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5574         to dbus-marshal-*.[hc]
5575
5576         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5577         function here from dbus-marshal.c
5578
5579 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5580
5581         * NEWS: Update for 0.23.
5582
5583         * configure.in: Release 0.23.
5584
5585 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5586
5587         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5588         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5589         behind.
5590
5591         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5592         uninstall"
5593
5594         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5595         is an enum, get the enum's underlying type.  Another mono
5596         1.1.3 fix.
5597
5598 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5599
5600         Patch from Sjoerd Simons <sjoerd@luon.net>
5601
5602         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5603         DESTDIR.  It breaks stuff.
5604
5605 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5606
5607         Patch from Tambet Ingo <tambet@ximian.com>
5608
5609         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5610         calling type.GetElementType().  The code previously depended on
5611         broken Mono behavior, which was fixed in Mono 1.1.3.
5612
5613         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5614         Activator.CreateInstance() so that the class's constructor is
5615         called with the right parameters.
5616
5617 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5618
5619         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5620
5621         * dbus/dbus-connection.c
5622         (_dbus_connection_queue_received_message_link): Call
5623         _dbus_connection_remove_timeout() instead of the _locked()
5624         variant, since it's always called from
5625         _dbus_connection_handle_watch(), which handles the locking.
5626         Removed the _locked() variant since it's no longer used.
5627
5628 2005-01-03  Havoc Pennington  <hp@redhat.com>
5629
5630         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5631         return
5632         
5633 2004-12-26  Havoc Pennington  <hp@redhat.com>
5634
5635         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5636
5637 2005-01-03  Havoc Pennington  <hp@redhat.com>
5638
5639         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5640         floating point
5641
5642         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5643
5644 2005-01-02  Havoc Pennington  <hp@redhat.com>
5645
5646         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5647
5648 2005-01-01  Havoc Pennington  <hp@redhat.com>
5649
5650         * configure.in: add -Wfloat-equal
5651
5652 2005-01-01  Havoc Pennington  <hp@redhat.com>
5653
5654         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5655         for a variety of reasons '==' doesn't do this.
5656
5657 2004-12-31  Havoc Pennington  <hp@redhat.com>
5658
5659         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5660         I keep wishing I had
5661
5662 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5663
5664         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5665
5666 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5667
5668         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5669         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5670         dbus-protocol.h.  Because they are defines and not enums they are not
5671         autogenerated.
5672
5673 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5674
5675         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5676         dbus_bus_activate_service
5677
5678         * python/dbus.py (Bus.activate_service): activate a service on the
5679         bus.
5680
5681 2004-12-24  Havoc Pennington  <hp@redhat.com>
5682
5683         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5684         file format has also changed and I haven't adapted to that yet
5685         
5686         * Makefile.am: load .gcno files from latest gcc
5687
5688 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5689         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5690
5691         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5692         lowlevel binding
5693
5694         * python/dbus.py (get_unix_user): Added binding to 
5695         call dbus_bindings.bus_get_unix_user
5696
5697         * python/extract.py: Modified the proto_pat regex to
5698         handle unsigned long
5699
5700 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5701
5702         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5703         better POSIX compliance.
5704
5705 2004-12-19  Havoc Pennington  <hp@redhat.com>
5706
5707         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5708         (_dbus_string_insert_8_aligned): new functions
5709
5710         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5711
5712 2004-12-18  Havoc Pennington  <hp@redhat.com>
5713
5714         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5715         macro
5716
5717         * dbus/dbus-message.c: fix a comment, and add a still-unused
5718         not-implemented function
5719
5720         * dbus/dbus-marshal.h: fix comment
5721
5722         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5723
5724 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5725
5726         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5727         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5728         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5729         Type.UnderlyingSystemType to get the actual system type
5730         underneath.  This code previously depended on the broken Mono
5731         behavior, which was fixed in 1.1.3.
5732
5733 2004-11-27  Havoc Pennington  <hp@redhat.com>
5734
5735         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5736         are disabled
5737         (_dbus_string_get_const_data): inline when asserts are disabled
5738
5739         * dbus/dbus-message.c: record the _dbus_current_generation of
5740         creation so we can complain if dbus_shutdown() is used improperly.
5741         Do this only if checks are enabled.
5742
5743         * dbus/dbus-connection.c: ditto
5744         
5745 2004-11-26  Havoc Pennington  <hp@redhat.com>
5746
5747         * test/glib/test-profile.c: add with_bus mode to profile echoes
5748         that go through the bus.
5749
5750         * test/glib/run-test.sh: add ability to run test-profile
5751
5752         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5753         config file reload.
5754
5755 2004-11-26  Havoc Pennington  <hp@redhat.com>
5756
5757         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5758         thing was implemented
5759
5760 2004-11-26  Havoc Pennington  <hp@redhat.com>
5761
5762         * test/glib/test-profile.c: tweak a bit, add support for some
5763         made-up minimal malloc overhead with plain sockets, since in 
5764         real life some sort of buffers are unavoidable thus we could 
5765         count them in the theoretical best case
5766
5767 2004-11-26  Havoc Pennington  <hp@redhat.com>
5768
5769         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5770         where I was trying to cache one too many messages
5771
5772 2004-11-26  Havoc Pennington  <hp@redhat.com>
5773
5774         * dbus/dbus-message.c: reimplement message cache as an array which 
5775         makes the cache about twice as fast and saves maybe 1.5% overall
5776
5777 2004-11-26  Havoc Pennington  <hp@redhat.com>
5778
5779         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5780         message cache lock here
5781
5782 2004-11-26  Havoc Pennington  <hp@redhat.com>
5783
5784         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5785         the "char byte_order" next to each other to save 4 bytes
5786         (dbus_message_new_empty_header): reduce preallocation, since the
5787         message cache should achieve a similar effect
5788         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5789         message cache that keeps a few DBusMessage around in a pool,
5790         another 8% speedup or so.
5791
5792         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5793
5794 2004-11-25  Havoc Pennington  <hp@redhat.com>
5795
5796         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5797         to write, without reading or blocking, try it before the poll()
5798         and skip the poll() if nothing remains to write. This is about a
5799         3% speedup in the echo client/server
5800
5801 2004-11-25  Havoc Pennington  <hp@redhat.com>
5802
5803         The primary change here is to always write() once before adding
5804         the write watch, which gives us about a 10% performance increase.
5805         
5806         * dbus/dbus-transport-unix.c: a number of modifications to cope
5807         with removing messages_pending
5808         (check_write_watch): properly handle
5809         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5810         messages_pending stuff
5811         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5812         AUTHENTICATED cases
5813         (unix_handle_watch): after writing, see if the write watch can be
5814         removed
5815         (unix_do_iteration): assert that write_watch/read_watch are
5816         non-NULL rather than testing that they aren't, since they 
5817         aren't allowed to be NULL. check_write_watch() at the end so 
5818         we add the watch if we did not finish writing (e.g. got EAGAIN)
5819
5820         * dbus/dbus-transport-protected.h: remove messages_pending call,
5821         since it resulted in too much inefficient watch adding/removing; 
5822         instead we now require that the transport user does an iteration 
5823         after queueing outgoing messages, and after trying the first
5824         write() we add a write watch if we got EAGAIN or exceeded our 
5825         max bytes to write per iteration setting
5826
5827         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5828         function
5829
5830         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5831         freed and then accessed, valgrind flagged this bug, fix it
5832
5833         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5834         as the last valid field plus 1, where really it is equal to the
5835         last valid field. Corrects some message corruption issues.
5836
5837         * dbus/dbus-mainloop.c: verbosity changes
5838
5839         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5840         instead of aborting in one of the test codepaths
5841
5842         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5843         caused not printing the pid ever again if a verbose was missing
5844         the newline at the end
5845         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5846
5847         * dbus/dbus-connection.c: verbosity changes; 
5848         (dbus_connection_has_messages_to_send): new function
5849         (_dbus_connection_message_sent): no longer call transport->messages_pending
5850         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5851         try to write() immediately, so we can avoid the write watch. This
5852         is the core purpose of this patchset
5853         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5854         dump the outgoing message queue, so nobody will get confused
5855         trying to send them or thinking stuff is pending to be sent
5856
5857         * bus/test.c: verbosity changes
5858
5859         * bus/driver.c: verbosity/assertion changes
5860
5861         * bus/dispatch.c: a bunch of little tweaks to get it working again
5862         because this patchset changes when/where you need to block.
5863
5864 2004-11-23  Havoc Pennington  <hp@redhat.com>
5865
5866         * test/glib/test-profile.c: modify to accept a plain_sockets
5867         argument in which case it will bench plain sockets instead of
5868         libdbus, for comparison purposes.
5869
5870 2004-11-22  Havoc Pennington  <hp@redhat.com>
5871
5872         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5873         threads for more time, so sysprof can get a grip on it.
5874
5875         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5876         pointless variable
5877
5878 2004-11-13  Havoc Pennington  <hp@redhat.com>
5879
5880         * test/glib/test-profile.c: fix this thing up a bit
5881
5882         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5883         preallocation sizes by a fair bit; not sure if this will be an
5884         overall performance win or not, but it does reduce reallocs.
5885
5886         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5887         the test hack that forced constant realloc if asserts are
5888         disabled, so we can profile sanely. Sprinkle in some
5889         _DBUS_UNLIKELY() which are probably pointless, but before I
5890         noticed the real performance problem I put them in.
5891         (_dbus_string_validate_utf8): micro-optimize this thing a little
5892         bit, though callgrind says it didn't help; then special-case
5893         ascii, which did help a lot; then be sure we detect nul bytes as
5894         invalid, which is a bugfix.
5895         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5896         superstition; use memset to nul the padding instead of a manual
5897         loop.
5898         (_dbus_string_get_length): inline this as a
5899         macro; it showed up in the profile because it's used for loop
5900         tests and so forth
5901
5902 2004-11-10  Colin Walters  <walters@verbum.org>
5903
5904         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5905         for extra paranoia.
5906
5907 2004-11-09  Colin Walters  <walters@verbum.org>
5908
5909         * dbus/dbus-string.c (_dbus_string_get_length): New
5910         function, writes DBusString to C buffer.
5911
5912         * dbus/dbus-string.h: Prototype it.
5913
5914         * dbus/dbus-message.c (dbus_message_type_to_string): New
5915         function, converts message type into C string.
5916
5917         * dbus/dbus-message.h: Prototype it.
5918
5919         * bus/selinux.c (bus_selinux_check): Take source pid,
5920         target pid, and audit data.  Pass audit data to
5921         avc_has_perm.
5922         (log_audit_callback): New function, appends extra
5923         audit information.
5924         (bus_selinux_allows_acquire_service): Also take
5925         service name, add it to audit data.
5926         (bus_selinux_allows_send): Also take message
5927         type, interface, method member, error name,
5928         and destination, and add them to audit data.
5929         (log_cb): Initialize func_audit.
5930         
5931         * bus/selinux.h (bus_selinux_allows_acquire_service)
5932         (bus_selinux_allows_send): Update prototypes 
5933
5934         * bus/services.c (bus_registry_acquire_service): Pass
5935         service name to bus_selinux_allows_acquire_service.
5936
5937         * bus/bus.c (bus_context_check_security_policy): Pass
5938         additional audit data.  Move assignment of dest
5939         to its own line.
5940
5941 2004-11-07  Colin Walters  <walters@verbum.org>
5942
5943         * dbus/dbus-transport-unix.c (do_authentication): Always
5944         initialize auth_completed.
5945         
5946 2004-11-07  Colin Walters  <walters@verbum.org>
5947
5948         * bus/bus.c (load_config): Break into three
5949         separate functions: process_config_first_time_only,
5950         process_config_every_time, and process_config_postinit.
5951         (process_config_every_time): Move call of
5952         bus_registry_set_service_context_table into
5953         process_config_postinit.
5954         (process_config_postinit): New function, does
5955         any processing that needs to happen late
5956         in initialization (and also on reload).
5957         (bus_context_new): Instead of calling load_config,
5958         open config parser here and call process_config_first_time_only
5959         and process_config_every_time directly.  Later, after
5960         we have forked but before changing UID,
5961         invoke bus_selinux_full_init, and then call
5962         process_config_postinit.
5963         (bus_context_reload_config): As in bus_context_new,
5964         load parse file inside here, and call process_config_every_time
5965         and process_config_postinit.
5966
5967         * bus/services.h, bus/services.c
5968         (bus_registry_set_service_context_table): Rename
5969         from bus_registry_set_sid_table.  Take string hash from config
5970         parser, and convert them here into SIDs.
5971
5972         * bus/config-parser.c (struct BusConfigParser): Have
5973         config parser only store a mapping of service->context
5974         string.
5975         (merge_service_context_hash): New function.
5976         (merge_included): Merge context string hashes instead
5977         of using bus_selinux_id_table_union.
5978         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5979         simply create a new string hash.
5980         (bus_config_parser_unref): Unref it.
5981         (start_selinux_child): Simply insert strings into hash,
5982         don't call bus_selinux_id_table_copy_over.
5983
5984         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5985         (bus_selinux_id_table_copy_over): Delete.
5986
5987 2004-11-03  Colin Walters  <walters@verbum.org>
5988
5989         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5990         variables.
5991         
5992 2004-11-03  Colin Walters  <walters@verbum.org>
5993
5994         * bus/test-main.c (test_pre_hook): Fix test logic,
5995         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5996
5997 2004-11-02  Colin Walters  <walters@redhat.com>
5998
5999         * bus/selinux.c (bus_selinux_init): Split into two functions,
6000         bus_selinux_pre_init and bus_selinux_post_init.
6001         (bus_selinux_pre_init): Just determine whether SELinux is
6002         enabled.
6003         (bus_selinux_post_init): Do everything else.
6004
6005         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6006         config file, and bus_selinux_post_init after.  This ensures that
6007         we don't lose the policyreload notification thread that
6008         bus_selinux_init created before forking previously.
6009         
6010         * bus/test-main.c (test_pre_hook): Update for split.
6011
6012 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6013
6014         Patch from Johan Fischer <linux@fischaz.com>
6015         
6016         * mono/doc/Makefile.am (install-data-local): Added directory
6017         install for DESTDIR
6018
6019 2004-10-29  Colin Walters  <walters@redhat.com>
6020
6021         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6022         parameter for fd to write pid to.       
6023
6024         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6025         
6026         * bus/bus.c (bus_context_new): Pass print_pid_fd
6027         to _dbus_become_daemon (bug #1720)
6028
6029 2004-10-29  Colin Walters  <walters@redhat.com>
6030
6031         Patch from Ed Catmur <ed@catmur.co.uk>
6032
6033         * mono/doc/Makefile.am (install-data-local): Handle
6034         DESTDIR.
6035
6036 2004-10-29  Colin Walters  <walters@redhat.com>
6037
6038         * bus/.cvsignore, qt/.cvsignore: Update.
6039
6040 2004-10-29  Colin Walters  <walters@redhat.com>
6041
6042         Patch from Kristof Vansant <de_lupus@pandora.be>
6043
6044         * configure.in: Detect Slackware.
6045         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6046         * bus/rc.messagebus.in: New file.
6047
6048 2004-10-29  Colin Walters  <walters@redhat.com>
6049
6050         * tools/dbus-monitor.c (filter_func): Return
6051         DBUS_HANDLER_RESULT_HANDLED in filter function
6052         for now.  See:
6053         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6054
6055 2004-10-29  Colin Walters  <walters@redhat.com>
6056
6057         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6058
6059         * bus/services.c (bus_registry_acquire_service): 
6060         Correctly retrieve service name from DBusString
6061         for printing.
6062
6063 2004-10-29  Colin Walters  <walters@redhat.com>
6064
6065         * dbus/dbus-glib.h: Update documentation to not
6066         refer to internal APIs.
6067
6068 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6069
6070         * mono/Arguments.cs (GetDBusTypeConstructor):
6071         type.UnderlyingSystemType will return "System.Byte" if you do it
6072         on "byte[]", which is not what we want.  So check the type.IsArray
6073         property and use System.Array instead.
6074
6075 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6076
6077         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6078         the DBusUserInfo structure since this is passed into the function.
6079         This would cause a double free when the function that allocated
6080         the structure would try to free it when an error occured.
6081
6082         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6083         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6084         for service activation to avoid 32bit/64bit parallel install issues
6085
6086 2004-10-21  Colin Walters  <walters@verbum.org>
6087
6088         * AUTHORS: Fix my email address, the @gnu.org one
6089         has been bouncing for some time.  Also add J5.
6090         
6091 2004-10-21  Colin Walters  <walters@verbum.org>
6092
6093         * dbus/dbus-transport-unix.c (do_authentication): Return
6094         authentication status to callers.
6095         (unix_handle_watch): If we completed authentication this round,
6096         don't do another read.  Instead wait until the next iteration,
6097         after we've read any pending data in the auth buffer.
6098         (unix_do_iteration): Ditto.
6099         (unix_handle_watch): Updated for new do_authentication prototype.
6100
6101 2004-10-18  Colin Walters  <walters@verbum.org>
6102
6103         * bus/selinux.c (bus_selinux_enabled): Handle
6104         --disable-selinux case.
6105         
6106 2004-10-18  Colin Walters  <walters@verbum.org>
6107
6108         * bus/selinux.h: Add bus_selinux_enabled.
6109         
6110         * bus/selinux.c (bus_selinux_enabled): Implement it.
6111         
6112         * bus/config-parser.c (struct include): Add
6113         if_selinux_enabled member.
6114         (start_busconfig_child): Parse if_selinux_enabled
6115         attribute for include.
6116         (bus_config_parser_content): Handle it.
6117
6118         * bus/session.conf.in, bus/system.conf.in: Add
6119         inclusion of context mapping to default config files;
6120         conditional on SELinux being enabled.
6121         
6122         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6123         
6124         * test/data/invalid-config-files/badselinux-1.conf, 
6125         test/data/invalid-config-files/badselinux-2.conf:
6126         Test files for bad syntax.
6127         
6128 2004-10-17  Colin Walters  <walters@verbum.org>
6129
6130         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6131         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6132         format specifier mismatches.
6133
6134 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6135
6136         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6137         format string.
6138
6139         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6140         pointer (bug #1540, Leonardo Boiko).
6141
6142 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6143
6144         * mono/BusDriver.cs: Changed BusDriver struct to remove
6145         the ServiceCreated and ServiceDeleted events and replace them
6146         with the new ServiceOwnerChanged event.
6147
6148         * mono/example/BusListener.cs: Added a new example program,
6149         which listens for and reports any ServiceOwnerChanged events
6150         on the bus driver.
6151
6152         * mono/example/Makefile.am (DESTDIR): Build changes for the
6153         new BusListener.cs example.
6154
6155 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6156
6157         * bus/signals.c (bus_match_rule_parse): validate the components of
6158         match rules (bug #1439).
6159
6160         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6161
6162 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6163
6164         * doc/dbus-specification.xml: document ServiceOwnerChanged
6165         signal.
6166         
6167         * bus/driver.c, bus/driver.h, bus/services.c: Use
6168         ServiceOwnerChanged signal instead of ServiceCreated and
6169         ServiceDeleted.
6170         
6171         * bus/dispatch.c: update testcase for the new signal.
6172
6173 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6174
6175         Patch from Nat Friedman <nat@novell.com>
6176
6177         * mono/Makefile.am: A number of small build fixes to allow "make
6178         distcheck" to succeed.
6179
6180         * mono/example/Makefile.am: "make distcheck" fixes.
6181
6182         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6183         key in @srcdir@.
6184
6185         * test/Makefile.am: "make distcheck" fixes.
6186
6187 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6188
6189         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6190
6191         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6192
6193         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6194         messages after the first one (bug #1389).
6195         
6196         * bus/dispatch.c (check_double_hello_message): add a test case for
6197         the double hello message bug.
6198         (check_existent_service_activation): fix check of spawning error.
6199         
6200 2004-09-16  David Zeuthen  <david@fubar.dk>
6201
6202         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6203
6204 2004-09-12  David Zeuthen  <david@fubar.dk>
6205
6206         Patch from Kay Sievers <kay.sievers@vrfy.org>
6207
6208         * bus/bus.c (bus_context_new):
6209         * bus/bus.h:
6210         * bus/main.c (usage)
6211         (main):
6212         Add commandline option --nofork to override configuration file
6213         setting.
6214
6215 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6216
6217         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6218         compilers don't like it (bug #974).
6219
6220 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6221
6222         * qt/connection.*: Applied patch by Jérôme Lodewyck
6223         <lodewyck@clipper.ens.fr> to integrate an existing
6224         connection into the Qt eventloop
6225
6226 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6227
6228         * mono/BusDriver.cs: Added.  This is a class for interacting with
6229         the org.freedesktop.DBus service.
6230
6231         * mono/Message.cs: Added a mechanism to expose the message that is
6232         currently being dispatched via the static Message.Current
6233         property.  Added Message.Sender and Message.Destination
6234         properties.
6235
6236         * mono/Handler.cs: Expose the dispatched message via
6237         Message.Current when handling method calls.
6238
6239         * mono/Service.cs: Expose the dispatched message via
6240         Message.Current when handling signal emissions.
6241         
6242         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6243         Connection.BaseService property.
6244
6245 2004-08-28  Havoc Pennington  <hp@redhat.com>
6246
6247         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6248
6249         More fixes from Steve Grubb
6250         
6251         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6252         (_dbus_listen_tcp_socket): fix fd leak
6253
6254         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6255         EINTR to a bit lower in the code
6256
6257 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6258
6259         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6260         TRUE if we are inquiring about the existence of the built-in
6261         org.freedesktop.DBus service.
6262
6263 2004-08-25  John Palmieri  <johnp@redhat.com>
6264         * bus/config-parser.c:
6265         (struct PolicyType): Add POLICY_CONSOLE
6266         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6267         (start_busconfig_child): Sets up console element when
6268         <policy at_console=""> is encountered in a policy file
6269         (append_rule_from_element): Convert console elements to console
6270         rules.
6271
6272         * bus/policy.c: 
6273         (bus_policy_create_client_policy): Add console rules to the client
6274         policy based on if the client is at the console
6275         (bus_policy_append_console_rule): New function for adding a
6276         console rule to a policy
6277         (bus_policy_merge): Handle console rule merging
6278
6279         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6280         where we check for console user files
6281         
6282         * dbus/dbus-sysdeps.c:
6283         (_dbus_file_exists): New function which checks if the given
6284         file exists
6285         (_dbus_user_at_console): New function which does the system
6286         specific process of checking if the user is at the console
6287
6288         * dbus/dbus-userdb.c:
6289         (_dbus_is_console_user): New function converts a UID to user name
6290         and then calls the system specific _dbus_user_at_console to 
6291         see if the user is at the console and therefor a console user
6292
6293 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6294
6295         * bus/config-parser.c (set_limit):
6296         * bus/dbus-daemon-1.1.in:
6297         * test/data/valid-config-files/many-rules.conf: set the
6298         max_match_rules_per_connection limt from the config file. 
6299
6300         * doc/busconfig.dtd: update the DTD.
6301
6302         * bus/driver.c: remove some unused variables.
6303
6304 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6305
6306         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6307         it's been replaced by dbus_g_bus_get
6308
6309 2004-08-23  Colin Walters  <walters@redhat.com>
6310
6311         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6312
6313         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6314
6315         * bus/selinux.c: Create a thread for policy reload notification.
6316         (bus_selinux_get_policy_root): Implement.
6317
6318         * bus/config-parser.c (start_busconfig_child)
6319         (bus_config_parser_content): Support SELinux-root relative
6320         inclusion.
6321
6322         * configure.in <HAVE_SELINUX>: Add -lpthread.
6323         
6324         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6325         (test_post_hook): Move memory checking into here.
6326         (test_pre_hook, test_post_hook): Move SELinux checks in
6327         here, but conditional on a DBUS_TEST_SELINUX environment
6328         variable.  Unfortunately we can't run the SELinux checks
6329         as a normal user, since they won't have any permissions
6330         for /selinux.  So this will have to be tested manually
6331         for now, until we have virtualization for most of
6332         libselinux.
6333         
6334 2004-08-23  Havoc Pennington  <hp@redhat.com>
6335
6336         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6337         drop supplementary groups, suggested by Steve Grubb
6338
6339 2004-08-20  Colin Walters  <walters@redhat.com>
6340
6341         * bus/config-parser.c (start_busconfig_child): Remove some unused
6342         variables.
6343         
6344         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6345         warning.
6346
6347 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6348
6349         * configure.in: If --enable-mono is passed in, if we can't find
6350         mono error out.
6351
6352         * mono/Makefile.am: Use /gacutil to install assemblies into the
6353         GAC and not /root.
6354
6355 2004-08-12  Havoc Pennington  <hp@redhat.com>
6356
6357         * NEWS: update for 0.22
6358
6359         * configure.in: release 0.22
6360
6361 2004-08-11  Colin Walters  <walters@redhat.com>
6362
6363         * tools/dbus-send.c (main, usage): Add --reply-timeout
6364         argument.
6365
6366 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6367
6368         * bus/bus.c (process_config_first_time_only): get rid of an unused
6369         DBusError that was causing a memoy leak (bug #989).
6370
6371         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6372         fix compilation on Solaris/Forte C (bug #974)
6373
6374         * bus/main.c (main): plug two minuscule memleaks.
6375
6376 2004-08-10  Havoc Pennington  <hp@redhat.com>
6377
6378         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6379
6380 2004-08-09  Havoc Pennington  <hp@redhat.com>
6381
6382         * COPYING: switch to Academic Free License version 2.1 instead of
6383         2.0, to resolve complaints about patent termination clause.
6384
6385 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6386
6387         * README: added documentation for the --enable-python 
6388         configure switch.
6389
6390 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6391
6392         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6393         _unref in the SELinux support.
6394
6395         * doc/busconfig.dtd: update DTD for SELinux support.
6396
6397         * bus/config-loader-libxml.c: fix error handler and parser
6398         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6399
6400         * configure.in: remove the warning about libxml2.
6401
6402         * dbus/dbus-bus.c: silence doxygen warning.
6403
6404 2004-07-31  Colin Walters  <walters@redhat.com>
6405
6406         * configure.in: Move #error in SELinux check to its own line.
6407
6408 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6409
6410         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6411         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6412         dbus_error_set.
6413
6414         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6415         broken by the change in the _SET_OOM macros.
6416
6417 2004-07-31  Colin Walters  <walters@redhat.com>
6418
6419         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6420         BUS_SET_OOM.
6421
6422 2004-07-31  Colin Walters  <walters@redhat.com>
6423
6424         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6425         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6426         AC_MSG_CHECKING.
6427
6428 2004-07-24  Havoc Pennington  <hp@redhat.com>
6429
6430         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6431
6432         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6433         functionality
6434
6435         * configure.in: add --enable-selinux
6436         
6437         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6438
6439         * bus/main.c (main): initialize and shut down selinux
6440
6441         * bus/connection.c: store SELinux ID on each connection, to avoid 
6442         repeated getting of the string context and converting it into 
6443         an ID
6444
6445         * bus/bus.c (bus_context_get_policy): new accessor, though it
6446         isn't used
6447         (bus_context_check_security_policy): check whether the security
6448         context of sender connection can send to the security context of
6449         recipient connection
6450
6451         * bus/config-parser.c: add parsing for <selinux> and <associate>
6452         
6453         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6454         implement dbus_connection_get_unix_fd()
6455
6456         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6457         function, used by the selinux stuff
6458         
6459 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6460
6461         * bus/config-loader-libxml.c: complete the implementation of
6462         libxml backend for config file loader. Doesn't work with full OOM
6463         test yet. 
6464         
6465         * configure.in: change error when selecting libxml into a warning.
6466         
6467         * test/data/invalid-config-files: add two non-well-formed XML
6468         files. 
6469         
6470         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6471         
6472         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6473         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6474         be necessary to read all the buffer. (bug #894)
6475
6476         * bus/activation.c (bus_activation_activate_service): fix a
6477         potential assertion failure (bug #896). Small optimization in the
6478         case of auto-activation messages.
6479
6480         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6481         add test case for byte-through-vararg bug (#901). patch by Kimmo
6482         Hämäläinen. 
6483
6484 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6485
6486         * python/dbus.py:
6487         * python/dbus_bindings.pyx.in:
6488         Add dbus.init_gthreads (), allow emit_signal to pass
6489         arguments to the signal.
6490         
6491 2004-07-24  Havoc Pennington  <hp@redhat.com>
6492
6493         * AUTHORS: add some people, not really comprehensively, let me
6494         know if I missed you
6495
6496 2004-07-24  Havoc Pennington  <hp@redhat.com>
6497
6498         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6499         Owen
6500
6501         * test/Makefile.am (DIST_SUBDIRS): here also
6502
6503 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6504
6505         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6506         breaking build on Solaris, reported by Farhad Saberi on the ML.
6507
6508         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6509         va_arg invocation to account for integer promotion in the case of
6510         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6511
6512         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6513         _dbus_list_get_first_link, not _dbus_list_get_first.
6514
6515         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6516
6517         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6518         handler functions so that the asserts in _dbus_object_subtree_unref
6519         do not fail.
6520
6521         * dbus/dbus-transport-unix.c (do_reading):
6522         _dbus_transport_queue_messages return value is of type
6523         dbus_bool_t, not DBusDispatchStatus.
6524         
6525 2004-07-19  David Zeuthen  <david@fubar.dk>
6526
6527         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6528
6529         * bus/dispatch.c:
6530         (check_get_connection_unix_user): Debug says GetProperty; but the
6531         method is called GetConnectionUnixUser
6532         (check_get_connection_unix_process_id): New function
6533         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6534         also call check_get_connection_unix_process_id()
6535         
6536         * bus/driver.c:
6537         (bus_driver_handle_get_connection_unix_process_id): New function,
6538         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6539         interface
6540         
6541         * dbus/dbus-auth.c:
6542         (handle_server_data_external_mech): Set pid from the credentials
6543         obtained from the socket
6544         
6545         * dbus/dbus-connection.c:
6546         (dbus_connection_get_unix_process_id): New function
6547         
6548         * dbus/dbus-connection.h: 
6549         Add prototype for dbus_connection_get_unix_process_id
6550         
6551         * dbus/dbus-transport.c:
6552         (_dbus_transport_get_unix_process_id): New function
6553         
6554         * dbus/dbus-transport.h:
6555         Add prototype for _dbus_transport_get_unix_process_id
6556         
6557 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6558
6559         * dbus/dbus-message.c: Message counter fix, patch by Christian
6560         Hammond <chipx86@gnupdate.org>
6561
6562 2004-07-18  Seth Nickell  <seth@gnome.org>
6563
6564         * python/dbus.py:
6565         * python/dbus_bindings.pyx.in:
6566         * python/tests/test-client.py:
6567
6568         Add dbus.ByteArray and dbus_bindings.ByteArray
6569         types so that byte streams can be passed back.
6570
6571         Give jdahlin the heaps of credit that are so
6572         rightfully his.
6573         
6574 2004-07-12  Seth Nickell  <seth@gnome.org>
6575
6576         * python/dbus.py:
6577
6578         Add message argument to the default object_method_handler
6579         function.
6580         
6581         * python/dbus_bindings.pyx.in:
6582
6583         Automatically return NIL when passed an empty list
6584         (we can't pass back a list since lists are typed
6585         and we don't have any idea what type the the client
6586         intended the list to be... :-( )
6587         
6588 2004-07-10  Seth Nickell  <seth@gnome.org>
6589
6590         * python/examples/Makefile.am:
6591
6592         Fix distcheck breakage caused by new examples.
6593
6594 2004-07-10  Seth Nickell  <seth@gnome.org>
6595
6596         * python/dbus.py:
6597
6598         Add "message" argument to service-side dbus.Object
6599         methods. This will break existing services written
6600         using the python bindings, but will allow extraction
6601         of all the message information (e.g. who its from).
6602
6603         Add improved "object oriented" signal handling/emission.
6604         
6605         * python/examples/example-service.py:
6606
6607         Nix this example.
6608         
6609         * python/examples/example-signal-emitter.py:
6610         * python/examples/example-signal-recipient.py:
6611
6612         Two new examples that show how to emit and receive
6613         signals using the new APIs.
6614         
6615         * python/examples/example-signals.py:
6616         * python/examples/gconf-proxy-service.py:
6617         * python/examples/gconf-proxy-service2.py:
6618
6619         Add "message" argument to service methods.
6620
6621 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6622
6623         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6624         * dbus/bus.c (dbus_bus_get_unix_user)
6625         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6626         method of org.freedesktop.DBus interface.
6627
6628         * bus/dispatch.c: test case
6629
6630 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6631
6632         * python/Makefile.am: switched include directory from glib/ to dbus/
6633         since dbus-glib.h moved
6634  
6635 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6636
6637         * configure.in: prevent building the gcj stuff and libxml loader
6638         since they are broken.
6639
6640 2004-06-20  Havoc Pennington  <hp@redhat.com>
6641
6642         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6643         codes from the dbus error names
6644         
6645         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6646         as dbus/dbus-glib.h and that breakage is now visible due to 
6647         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6648         
6649         * glib/dbus-glib.h: s/gproxy/g_proxy/
6650
6651         * dbus/dbus-shared.h: new header to hold stuff shared with
6652         binding APIs
6653         
6654         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6655         than dbus-errors.h
6656
6657         * glib/dbus-glib.h (dbus_set_g_error): move to
6658         dbus-glib-lowlevel.h
6659
6660         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6661         of stuff to enable this
6662
6663         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6664
6665         * a bunch of other changes with the same basic "separate glib 
6666         bindings from dbus.h" theme
6667         
6668 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6669
6670         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6671
6672         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6673
6674 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6675
6676         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6677         the reply value of the ServiceExists message.
6678
6679 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6680
6681         * python/dbus_bindings.pyx.in: No longer need to parse path
6682         elements and pass them as arrays of strings.  The C API now
6683         accepts plain path strings.
6684         (_build_parsed_path): removed 
6685
6686 2004-06-07  Havoc Pennington  <hp@redhat.com>
6687
6688         * doc/TODO: remove auto-activation item since it's done; sort
6689         items by importance/milestone
6690
6691 2004-06-07  Havoc Pennington  <hp@redhat.com>
6692
6693         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6694         random signature when using REQUIRED_FIELDS (this hack won't work
6695         in the long term)
6696
6697         * dbus/dbus-message.c: change the signature to be a header field,
6698         instead of message->signature special-case string. Incremental
6699         step forward. Then we can fix up code to send the signature in the
6700         message, then fix up code to validate said signature, then fix up
6701         code to not put the typecodes inline, etc.
6702         (load_one_message): don't make up the signature after the fact
6703         (decode_header_data): require signature field for the known
6704         message types
6705
6706         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6707
6708         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6709
6710 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6711
6712         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6713
6714         * mono/Handler.cs: Updated to follow new path argument for
6715         (un-)registering objects.
6716
6717         * mono/example/Makefile.am:
6718         * mono/Makefile.am:
6719         * configure.in: Bumped required version for mono and use new -pkg
6720         syntax for deps
6721
6722 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6723
6724         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6725         registration functions take the path argument as char* instead of
6726         char**.
6727
6728         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6729         split off the path decompostion part of
6730         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6731         warnings. 
6732
6733         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6734         
6735 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6736  
6737         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6738         machine approach.  A state is implemented as a function that
6739         handles incoming events as specified for that state.
6740         
6741         * doc/dbus-specification.xml: Update auth protocol state machine
6742         specification to match implementation.  Remove some leftover
6743         base64 examples.
6744
6745 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6746
6747         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6748         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6749         quiet doxygen.
6750
6751         * Doxyfile.in: remove deprecated options.
6752
6753         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6754         glib/test-thread.h, glib/test-thread-client.c,
6755         glib/test-thread-server.c, glib/test-profile.c,
6756         glib/test-dbus-glib.c: remove these unused files.
6757
6758 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6759
6760         * dbus/dbus-object-tree.c
6761         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6762         non-fallback handlers (bug #684).
6763         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6764         (find_subtree_recurse): report wether the returned subtree is an
6765         exact match or a "fallback" match higher up in the tree.
6766         (object_tree_test_iteration): update test case.
6767
6768 2004-06-01  Seth Nickell  <seth@gnome.org>
6769
6770         * python/dbus_bindings.pyx.in:
6771         * python/tests/test-client.py:
6772
6773         Round off basic type support. Add dicts (yay!), and 
6774         remaining array types.
6775
6776         Make MessageIter more general so it works for dicts too.
6777
6778         Mark all loop variables as C integers.
6779         
6780 2004-05-31  Havoc Pennington  <hp@redhat.com>
6781
6782         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6783         "in" before "out"
6784
6785         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6786
6787         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6788         option that runs the tests, and start filling in some code
6789         including for starters just dumping the interfaces to stdout
6790
6791         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6792
6793         * test/data/valid-introspection-files/lots-of-types.xml: test of
6794         an example introspection file
6795
6796         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6797         "node" (I think...)
6798
6799 2004-05-31  Seth Nickell  <seth@gnome.org>
6800
6801         * python/dbus_bindings.pyx.in:
6802         * python/tests/test-client.py:
6803
6804         Test Suite: 1
6805         Python Bindings: 0
6806
6807         Fix string array memory trashing bug... oops...
6808
6809 2004-05-30  Seth Nickell  <seth@gnome.org>
6810
6811         * python/dbus.py:
6812
6813         Add a nicer-but-less-flexible alternate API for handling 
6814         calls to virtual objects in dbus.ObjectTree.
6815
6816         Screw up the argument order to the dbus.Object constructor
6817         for consistency with dbus.ObjectTree (and to make dbus_methods
6818         optional for future extension)
6819         
6820         * python/examples/Makefile.am:
6821         * python/examples/gconf-proxy-service.py:
6822         * python/examples/gconf-proxy-service2.py:
6823
6824         Alternate implementation of gconf-proxy-service using the
6825         nicer dbus.ObjectTree API.
6826         
6827         * python/examples/example-service.py:
6828         * python/tests/test-server.py
6829
6830         Reverse the argument order to deal with dbus.Object constructor
6831         changes.
6832         
6833 2004-05-30  Seth Nickell  <seth@gnome.org>
6834
6835         * python/examples/example-client.py:
6836         * python/examples/example-service.py:
6837
6838         Take it back. Lists seem to work but they're broken
6839         in the test suite. Make the base examples use
6840         lists (works fine).
6841
6842 2004-05-30  Seth Nickell  <seth@gnome.org>
6843
6844         * python/dbus_bindings.pyx.in:
6845         * python/tests/test-client.py:
6846
6847         Add some more tests and fix errors that crop up.
6848         Unfortunately, currently it seems like marshalling
6849         and unmarshalling of lists is completely broken :-(
6850
6851 2004-05-30  Seth Nickell  <seth@gnome.org>
6852
6853         * python/dbus_bindings.pyx.in:
6854
6855         Add support for ObjectPath type.
6856
6857         * python/dbus.py:
6858
6859         Refactor message handling code to a common function.
6860         
6861         * python/tests/test-client.py:
6862         * python/tests/test-server.py:
6863
6864         Add tests that check to make sure values of all types
6865         can be echoed from a service w/o mangling.
6866         
6867 2004-05-29  Seth Nickell  <seth@gnome.org>
6868
6869         * python/dbus.py:
6870
6871         Add ObjectTree class which allows implementation
6872         of trees of "virtual" objects. Basically the python
6873         wrapper for "register_fallback".
6874         
6875         * python/examples/Makefile.am
6876         * python/examples/gconf-proxy-client.py:
6877         * python/examples/gconf-proxy-service.py:
6878
6879         Implement a simple GConf proxy service that supports
6880         get/set on string and int GConf keys using the ObjectTree.
6881         
6882 2004-05-29  Seth Nickell  <seth@gnome.org>
6883
6884         * python/dbus.py:
6885         * python/examples/example-client.py:
6886         * python/examples/example-service.py:
6887         * python/examples/list-system-services.py:
6888
6889         Add SessionBus, SystemBus and ActivationBus classes
6890         so you don't need to know the special little BUS_TYPE
6891         flag.
6892         
6893 2004-05-29  Havoc Pennington  <hp@redhat.com>
6894
6895         * bus/config-parser.c (process_test_valid_subdir): temporarily
6896         stop testing config parser OOM handling, since expat has issues
6897         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6898
6899         * bus/dbus-daemon-1.1.in: change requested_reply to
6900         send_requested_reply/receive_requested_reply so we can send the
6901         replies, not just receive them.
6902
6903         * bus/config-parser.c: parse the new
6904         send_requested_reply/receive_requested_reply
6905
6906         * bus/policy.c (bus_client_policy_check_can_send): add
6907         requested_reply argument and use it
6908
6909         * bus/bus.c (bus_context_check_security_policy): pass through
6910         requested_reply status to message send check
6911
6912         * bus/system.conf.in: adapt to requested_reply change
6913         
6914 2004-05-28  Havoc Pennington  <hp@redhat.com>
6915
6916         * test/glib/test-service-glib.c (main): remove unused variable
6917
6918         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6919
6920         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6921         from the enum, no longer in use.
6922
6923         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6924         works right.
6925
6926         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6927         whether error_name passed in is a valid error name.
6928
6929 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6930
6931         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6932         OBJECT_PATH and OBJECT_PATH_ARRAY
6933
6934 2004-05-28  Seth Nickell  <seth@gnome.org>
6935
6936         * python/examples/Makefile.am:
6937
6938         Forget to add Makefile.am. Do not pass go.
6939
6940 2004-05-28  Michael Meeks  <michael@ximian.com>
6941
6942         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6943         fix no int64 case.
6944
6945         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6946
6947         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6948         (_dbus_message_iter_get_basic_type_array): impl.
6949         drastically simplify ~all relevant _get methods to use these.
6950         (_dbus_message_iter_append_basic_array),
6951         (dbus_message_iter_append_basic): impl
6952         drastically simplify ~all relevant _append methods to use these.
6953
6954         * dbus/dbus-message-builder.c (parse_basic_type) 
6955         (parse_basic_array, lookup_basic_type): impl.
6956         (_dbus_message_data_load): prune scads of duplicate /
6957         cut & paste coding.
6958
6959         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6960         (_dbus_demarshal_basic_type): implement,
6961         (demarshal_and_validate_len/arg): beef up debug.
6962         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6963
6964 2004-05-27  Seth Nickell  <seth@gnome.org>
6965
6966         * configure.in:
6967         * python/Makefile.am:
6968
6969         Include the example python apps in the tarball.
6970         
6971         * python/examples/list-system-services.py
6972
6973         Add a python new example that fetches the list of services
6974         from the system bus.
6975         
6976 2004-05-27  Seth Nickell  <seth@gnome.org>
6977
6978         * python/dbus.py:
6979         * python/dbus_bindings.pyx.in:
6980
6981         Fix failure to notify that a signal was not handled,
6982         resulted in hung functions.
6983         
6984 2004-05-25  Colin Walters  <walters@redhat.com>
6985
6986         * tools/dbus-monitor.c (main): Monitor all types of messages.
6987
6988 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6989
6990         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6991         which unregisters the object path and disposes the handler.
6992
6993 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6994  
6995         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6996          
6997         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6998         operands to && so we call dbus_message_iter_next () for the last
6999         argument also.
7000
7001 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7002
7003         * dbus/dbus-object-tree.c
7004         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7005         children even if the requested path isn't registered.
7006         (object_tree_test_iteration): test object_tree_list_registered.
7007
7008         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7009         it to 0.
7010         
7011 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7012
7013         * doc/TODO: Remove resolved items.
7014
7015         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7016         field.
7017         
7018         * bus/connection.c (bus_connections_expect_reply): Enforce the
7019         per-connection limit on pending replies.
7020         
7021         Patch from Jon Trowbridge <trow@ximian.com>:
7022  
7023         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7024         up a watch that triggers a config reload when one end of the pipe
7025         becomes readable.
7026         (signal_handler): Instead of doing the config reload in our SIGHUP
7027         handler, just write to the reload pipe and let the associated
7028         watch handle the reload when control returns to the main loop.
7029  
7030         * bus/driver.c (bus_driver_handle_reload_config): Added.
7031         Implements a ReloadConfig method for requesting a configuration
7032         file reload via the bus driver.
7033  
7034 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7035
7036         * HACKING: Updated release instructions concerning the wiki page.
7037
7038 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7039
7040         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7041         filter against auth->allowed_mechs; we only add allowed mechs in
7042         record_mechanisms().
7043  
7044         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7045         ALLOWED_MECHS to auth-script format so we can set the list of
7046         allowed mechanisms.
7047  
7048         * data/auth/client-out-of-mechanisms.auth-script: New test to
7049         check client disconnects when it is out of mechanisms to try.
7050  
7051         * dbus/dbus-auth.c (process_command): Remove check for lines
7052         longer that 1 MB; we only buffer up maximum 16 kB.
7053  
7054         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7055         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7056         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7057         assume there might be unused bytes.
7058  
7059         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7060         client-out-of-mechs, it is handled in process_reject(). Move check
7061         for max failures to send_rejected(), as it's a server-only thing.
7062
7063         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7064         send_auth(), send_data(), send_rejected(), send_error(),
7065         send_ok(), send_begin() and send_cancel().
7066
7067 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7068
7069         Remove base64 encoding, replace with hex encoding. Original patch
7070         from trow@ximian.com, added error handling.
7071
7072         * dbus/dbus-string.c (_dbus_string_base64_encode)
7073         (_dbus_string_base64_decode): Remove.
7074         (_dbus_string_hex_decode): Add end_return argument so we can
7075         distinguish between OOM and invalid hex encoding.
7076         (_dbus_string_test): Remove base64 tests and add test case for
7077         invalid hex.
7078
7079         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7080         Replace base64 with hex.
7081
7082         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7083         for invalid hex encoded data in auth protocol.
7084
7085 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7086
7087         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7088         leak.
7089
7090 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7091
7092         * mono/dbus-sharp.dll.config.in: Added for GAC
7093         * mono/dbus-sharp.snk: Added for GAC
7094         * mono/Assembly.cs.in: Added for GAC
7095         * mono/Makefile.am: Changes for GAC installation        
7096         * configure.in: Added refs for dbus-sharp.dll.config.in and
7097         Assembly.cs.in. More fixes for mono testing
7098         * mono/example/Makefile.am: Changed var to CSC
7099         * Makefile.am: Changed flag name to DBUS_USE_CSC
7100
7101 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7102
7103         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7104         * mono/doc/*: Added documentation framework
7105         * configure.in: Added monodoc check
7106         * README: Added description of mono configure flags
7107
7108 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7109
7110         * doc/dbus-specification.xml: Added a "Required" column to the 
7111         header fields table and changed the "zero or more" verbage in
7112         the above paragraph to read "The header must contain the required 
7113         named header fields and zero or more of the optional named header 
7114         fields".
7115         * test/data/invalid-messages/*.message: Added the required PATH 
7116         named header field to the tests so that they don't fail on 
7117         'Missing path field'
7118
7119 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7120
7121         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7122         the stack by implicitly defining variable and parameter types and
7123         removing the hack of defining C pointers as python objects and later
7124         casting them.
7125
7126 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7127
7128         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7129
7130 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7131
7132         * mono/DBusType/Dict.cs: Handle empty dicts
7133         * mono/DBusType/Array.cs: Handle empty arrays
7134         * mono/Arguments.cs: Handle empty arguments
7135
7136 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7137
7138         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7139         field
7140
7141 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7142
7143         * test/data/valid-messages/standard-*.message: Update message
7144         test scripts to new header field names.
7145
7146 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7147
7148         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7149         overflow to times_we_did_each_thing array which would chop off the
7150         first character of the failure_dir string. Increased the size of
7151         the array to 7 to reflect the number of random mutation functions
7152         we have.
7153
7154 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7155
7156         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7157         unix_server->watch here, it is unreffed in disconnect.
7158         (_dbus_server_new_for_tcp_socket): convert NULL host to
7159         "localhost" here so we don't append NULL to address.
7160         
7161         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7162         various addresses, including tcp with no explicit host.
7163
7164 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7165
7166         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7167         fix incorrect setting of .name_offset in the HeaderField (it was
7168         off by two bytes, positioned right after the name and typecode)
7169
7170         * bus/bus.c (bus_context_new, bus_context_unref): test before
7171         calling dbus_server_free_data_slot and _dbus_user_database_unref
7172         in case of an error.
7173
7174         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7175         by libdbus-gtool.
7176
7177 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7178
7179         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7180         _dbus_poll() instead of select().
7181
7182 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7183
7184         * bus/main.c (signal_handler): Reload the configuration files
7185         on SIGHUP.
7186         (main): Set up our SIGHUP handler.
7187
7188         * bus/bus.c (struct BusContext): Store the config file, user and
7189         fork flag in the BusContext.
7190         (process_config_first_time_only): Added.  Contains the code
7191         (previously in bus_context_new) for setting up the BusContext from
7192         the BusConfigParser that should only be run the first time the
7193         config files are read.
7194         (process_config_every_time): Added.  Contains the code (previously
7195         in bus_context_new) for setting up the BusContext from the
7196         BusConfigParser that should be run every time the config files are
7197         read.
7198         (load_config): Added.  Builds a BusConfigParser from the config
7199         files and passes the resulting structure off to
7200         process_config_first_time_only (assuming this is the first time)
7201         and process_config_every_time.
7202         (bus_context_new): All of the config-related code has been moved
7203         to process_config_first_time_only and process_config_every_time.
7204         Now this function just does the non-config-related initializations
7205         and calls load_config.
7206         (bus_context_reload_config): Added.
7207
7208 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7209
7210         * bus/driver.c (bus_driver_handle_get_service_owner):
7211         implement a GetServiceOwner method.
7212         * doc/dbus-specification.xml: document it.
7213         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7214         
7215         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7216         implement, using the bus GetServiceOwner method.
7217
7218         * test/glib/test-dbus-glib.c:
7219         use dbus_gproxy_new_for_service_owner so that we can receive the
7220         signal. 
7221
7222 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7223
7224         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7225         dbus/dbus-message.c, dbus/dbus-protocol.h
7226         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7227
7228         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7229         dbus/dbus-message.c, dbus/dbus-protocol.h
7230         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7231
7232         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7233         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7234         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7235
7236         * doc/dbus-specification.xml (Header Fields Table):
7237         s/SERVICE/DESTINATION
7238         s/SENDER_SERVICE/SENDER
7239
7240
7241 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7242
7243         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7244         a few seconds.
7245
7246 2004-04-13  Michael Meeks  <michael@ximian.com>
7247
7248         * glib/dbus-gobject.c (handle_introspect): split out
7249         (introspect_properties): this.
7250         (handle_introspect): implement this.
7251
7252         * test/glib/Makefile.am: use the absolute path so the bus
7253         daemon's chdir ("/") doesn't kill us dead.
7254
7255         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7256
7257 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7258
7259         * bus/config-parser.c (struct BusConfigParser): Added
7260         included_files field.
7261         (seen_include): Added.  Checks whether or not a file has already
7262         been included by any parent BusConfigParser.
7263         (bus_config_parser_new): Copy the parent's included_files.
7264         (include_file): Track which files have been included, and fail on
7265         circular inclusions.
7266         (process_test_valid_subdir): Changed printf to report if we are
7267         testing valid or invalid conf files.
7268         (all_are_equiv): Changed printf to be a bit clearer about
7269         what we are actually doing.
7270         (bus_config_parser_test): Test invalid configuration files.
7271
7272 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7273
7274         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7275         argument.  If non-null, the newly-constructed BusConfigParser will
7276         be initialized with the parent's BusLimits instead of the default
7277         values.
7278         (include_file): When including a config file, pass in
7279         the current parser as the parent and then copy the BusLimits
7280         from the included BusConfigParser pack to the current parser.
7281         (process_test_valid_subdir): Renamed from process_test_subdir.
7282         (process_test_equiv_subdir): Added.  Walks through a directory,
7283         descending into each subdirectory and loading the config files
7284         it finds there.  If any subdirectory contains two config files
7285         that don't produce identical BusConfigParser structs, fail.
7286         For now, the BusConfigParser's BusPolicies are not compared.
7287         (bus_config_parser_test): Call both process_test_valid_subdir and
7288         process_test_equiv_subdir.
7289
7290         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7291         argument and pass it along to the call to bus_config_parser_new.
7292         Also made a few small changes to allow this code to compile.
7293
7294         * bus/config-loader-expat.c (bus_config_load): Take a parent
7295         argument and pass it along to the call to bus_config_parser_new.
7296
7297         * bus/bus.c (bus_context_new): Load the config file
7298         with a NULL parent argument.
7299
7300 2004-03-29  Michael Meeks  <michael@ximian.com>
7301
7302         * glib/dbus-gobject.c (introspect_properties): split
7303         out, fix mangled 'while' flow control.
7304         (introspect_signals): implement.
7305         (handle_introspect): update.
7306
7307 2004-03-29  Michael Meeks  <michael@ximian.com>
7308
7309         * glib/dbus-gobject.c (set_object_property): split out / 
7310         re-work, use the property type, and not the message type(!)
7311         (get_object_property): ditto.
7312
7313         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7314         (dbus_gvalue_marshal): make this code re-usable, needed
7315         for signals too, also on both proxy and server side.
7316         Re-write for more efficiency / readability.
7317
7318 2004-03-29  Michael Meeks  <michael@ximian.com>
7319
7320         * dbus/dbus-message.c
7321         (dbus_message_new_error_printf): impl.
7322
7323         * dbus/dbus-connection.c
7324         (dbus_connection_unregister_object_path): fix warning.
7325
7326         * configure.in: fix no-mono-installed situation.
7327
7328 2004-03-27  Havoc Pennington  <hp@redhat.com>
7329
7330         Patch from Timo Teräs:
7331         
7332         * tools/dbus-send.c (main): if --print-reply, assume type is
7333         method call; support boolean type args
7334         
7335         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7336         bunch of memleak and logic bugs
7337         
7338 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7339
7340         * mono/Arguments.cs:
7341         * mono/Introspector.cs:
7342         * mono/Handler.cs:
7343         * mono/InterfaceProxy.cs:
7344         * mono/Message.cs
7345         * mono/ProxyBuilder.cs:
7346         * mono/Service.cs:
7347         Added InterfaceProxy class to avoid building proxies for every
7348         object.
7349
7350         * dbus-message.h:
7351         * dbus-message.c (dbus_message_append_args_valist)
7352         (dbus_message_iter_get_object_path)
7353         (dbus_message_iter_get_object_path_array)
7354         (dbus_message_iter_append_object_path)
7355         (dbus_message_iter_append_object_path_array):
7356         Added object_path iter functions to handle OBJECT_PATH arguments
7357         
7358 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7359
7360         First checkin of mono bindings.
7361         * configure.in:
7362         * Makefile.am:
7363         Build stuff for the bindings
7364         * dbus-sharp.pc.in: Added for pkgconfig
7365         
7366 2004-03-21  Havoc Pennington  <hp@redhat.com>
7367
7368         * test/test-service.c (main): remove debug spew
7369
7370 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7371
7372         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7373         arrays
7374
7375         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7376         (dbus_message_iter_init_array_iterator)
7377         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7378         indicate whether the iterator is empty
7379
7380         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7381         warnings
7382
7383 2004-03-19  Havoc Pennington  <hp@redhat.com>
7384
7385         * NEWS: 0.21 updates
7386
7387         * configure.in: 0.21
7388
7389         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7390         
7391         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7392         you don't need pyrex to make dist
7393
7394         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7395         sources; run moc
7396         
7397 2004-03-18  Richard Hult  <richard@imendio.com>
7398
7399         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7400         (dbus_message_set_auto_activation): Add doxygen docs.
7401
7402 2004-03-16  Richard Hult  <richard@imendio.com>
7403
7404         * bus/activation.c: (bus_activation_service_created),
7405         (bus_activation_send_pending_auto_activation_messages),
7406         (bus_activation_activate_service):
7407         * bus/activation.h:
7408         * bus/dispatch.c: (bus_dispatch),
7409         (check_nonexistent_service_auto_activation),
7410         (check_service_auto_activated),
7411         (check_segfault_service_auto_activation),
7412         (check_existent_service_auto_activation), (bus_dispatch_test):
7413         * bus/driver.c: (bus_driver_handle_activate_service):
7414         * bus/services.c: (bus_registry_acquire_service):
7415         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7416         (dbus_message_get_auto_activation):
7417         * dbus/dbus-message.h:
7418         * dbus/dbus-protocol.h: Implement auto-activation.
7419         
7420         * doc/dbus-specification.xml: Add auto-activation to the spec.
7421
7422 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7423
7424         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7425         fix a bug with CUSTOM types.
7426
7427         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7428         a unit test for this bug (used to fail).
7429
7430 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7431
7432         * bus/activation.c:
7433         (babysitter_watch_callback): notify all pending activations waiting for
7434           the same exec that the activation failed.
7435         (bus_activation_activate_service): shortcut the activation if we 
7436           already waiting for the same executable to start up.
7437
7438 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7439
7440         * bus/activation.c: 
7441         - Added service file reloading. 
7442           Each service files directory is kept in an hash table in 
7443           BusActivation and each BusActivationEntry knows what .service-file it
7444           was read from. So when you try to activate a service the bus will 
7445           check if it's been updated, removed or if new .service-files has 
7446           been installed.
7447         - Test code at the bottom for the service file reloading.
7448         * bus/test-main.c: (main):
7449         * bus/test.h:
7450         - added service reloading test.
7451         * dbus/dbus-sysdeps.c: 
7452         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7453
7454 2004-03-08  Michael Meeks  <michael@ximian.com>
7455
7456         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7457         bail immediately if disconnected, to avoid busy loop.
7458
7459         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7460         cleanup cut/paste/inefficiency.
7461
7462 2004-03-01  David Zeuthen  <david@fubar.dk>
7463
7464         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7465         bug where args were used twice. This bug resulted in a segfault
7466         on a Debian/PPC system when starting the messagebus daemon. Include
7467         dbus-sysdeps.h for DBUS_VA_COPY
7468
7469         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7470
7471         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7472         appropriate va_copy implementation. From GLib
7473         
7474 2004-02-24  Joe Shaw  <joe@ximian.com>
7475
7476         * bus/services.c (bus_registry_acquire_service): We need to pass
7477         in the service name to dbus_set_error() to prevent a crash.
7478
7479 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7480
7481         * AUTHORS: Reveal my True identity.
7482
7483 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7484
7485         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7486         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7487
7488 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7489
7490         * doc/TODO: Added not about better error check of configuration files.
7491
7492 2003-12-02  Richard Hult  <richard@imendio.com>
7493
7494         * Update AFL version to 2.0 throughout the source files to reflect
7495         the update that was done a while ago.
7496
7497 2003-12-02  Richard Hult  <richard@imendio.com>
7498
7499         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7500         wrote_dict_key to FALSE on the iter that the dict is appended to,
7501         just like when appending other types. Fixes a bug where a dict
7502         couldn't be put inside a dict.
7503         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7504         (message_iter_test, _dbus_message_test): Add test case for dict
7505         inside dict.
7506
7507 2003-12-01  David Zeuthen  <david@fubar.dk>
7508
7509         * python/dbus.py: Add the actual message when calling the reciever
7510         of a signal such that parameters can be inspected. Add the method
7511         remove_signal_receiver
7512         
7513 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7514
7515         * bus/*.[ch]:
7516         * dbus/*.[ch]:
7517         * glib/*.[ch]: Made ref functions return the pointer
7518
7519 2003-11-25  Zack Rusin  <zack@kde.org>
7520
7521         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7522
7523         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7524         wrappers,
7525
7526         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7527         the Integrator and to better fit with the server,
7528
7529 2003-11-24  Zack Rusin  <zack@kde.org>
7530
7531         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7532         the integrator handles it now
7533
7534         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7535         since QTimer wasn't really meant to be used the way DBusTimeout is
7536
7537 2003-11-24  Zack Rusin  <zack@kde.org>
7538
7539         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7540         Integrator class which integrates D-BUS with the Qt event loop,
7541
7542         * qt/connection.h, qt/connection.cpp: Move all the code which
7543         was dealing with D-BUS integration to the Integrator class,
7544         and start using Integrator,
7545
7546 2003-11-23  Zack Rusin  <zack@kde.org>
7547
7548         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7549         wrapper
7550
7551         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7552         switching namespaces to DBusQt, reworking the class,
7553
7554         * Makefile.cvs: switching dependencies so that it matches KDE 
7555         schematics,
7556         
7557         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7558         the library
7559
7560 2003-11-19  Havoc Pennington  <hp@redhat.com>
7561
7562         * NEWS: update
7563
7564         * configure.in: bump version to 0.20
7565
7566         * configure.in (have_qt): add yet another place to look for qt
7567         (someone hand trolltech a .pc file...)
7568
7569 2003-11-01  Havoc Pennington  <hp@redhat.com>
7570
7571         * doc/dbus-specification.xml: add state machine docs on the auth
7572         protocol; just a first draft, I'm sure it's wrong.      
7573
7574 2003-10-28  David Zeuthen  <david@fubar.dk>
7575
7576         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7577         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7578         
7579 2003-10-28  Havoc Pennington  <hp@redhat.com>
7580
7581         * dbus/dbus-message.c (get_next_field): delete unused function
7582
7583 2003-10-28  Havoc Pennington  <hp@redhat.com>
7584
7585         * bus/expirelist.c (do_expiration_with_current_time): detect
7586         failure of the expire_func due to OOM
7587
7588         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7589
7590         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7591         NoReply error that's now created by the bus when the service exits
7592
7593 2003-10-28  Havoc Pennington  <hp@redhat.com>
7594
7595         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7596         tests for set_path, set_interface, set_member, etc.
7597
7598         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7599
7600         * dbus/dbus-message.c (set_string_field): always just delete and
7601         re-append the field; accept NULL for deletion
7602         (re_align_fields_recurse): reimplement
7603         
7604 2003-10-26  Havoc Pennington  <hp@redhat.com>
7605
7606         * dbus/dbus-connection.c: fix docs to properly describe the
7607         disconnected message
7608         (_dbus_connection_notify_disconnected): remove this function; 
7609         we can't synchronously add the disconnected message, we have to 
7610         do it after we've queued any remaining real messages
7611         (_dbus_connection_get_dispatch_status_unlocked): queue the
7612         disconnect message only if the transport has finished queueing all
7613         its real messages and is disconnected.
7614         (dbus_connection_disconnect): update the dispatch status here
7615
7616 2003-10-22  Havoc Pennington  <hp@redhat.com>
7617
7618         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7619
7620         * bus/connection.c (bus_transaction_send_from_driver): set the
7621         destination to the connection's base service
7622
7623 2003-10-20  Havoc Pennington  <hp@redhat.com>
7624
7625         hmm, make check is currently not passing.
7626         
7627         * doc/dbus-specification.xml: add requirement that custom type
7628         names follow the same rules as interface names.
7629
7630         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7631         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7632         'map'
7633
7634         * doc/dbus-specification.xml: update type codes to match
7635         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7636         CUSTOM. Add type OBJECT_PATH to the spec.
7637
7638 2003-10-17  Havoc Pennington  <hp@redhat.com>
7639
7640         * bus/driver.c (create_unique_client_name): use "." as separator
7641         in base service names instead of '-'
7642
7643         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7644         byte at the end of the string
7645
7646         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7647         optimization macros since string validation seems to be a slow
7648         point.
7649         
7650         * doc/dbus-specification.xml: restrict valid
7651         service/interface/member/error names. Add test suite code for the
7652         name validation.
7653
7654         * dbus/dbus-string.c: limit service/interface/member/error names 
7655         to [0-9][A-Z][a-z]_
7656
7657         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7658         format arg to verbose spew
7659
7660         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7661         memory, return instead of g_error
7662
7663         * test/test-service.c (path_message_func): support emitting a
7664         signal on request
7665
7666         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7667         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7668         assuming the activation bus was the session bus so that services
7669         started manually will still register.
7670         (init_connections_unlocked): fix so that in OOM situation we get
7671         the same semantics when retrying the function
7672         
7673         * test/test-service.c (main): change to use path registration, to
7674         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7675         than DBUS_BUS_SESSION
7676
7677 2003-10-16  Havoc Pennington  <hp@redhat.com>
7678
7679         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7680
7681         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7682         coverage of the tests
7683         (coverage-report.txt): don't move the .da and .bbg files around
7684
7685 2003-10-16  Havoc Pennington  <hp@redhat.com>
7686
7687         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7688         to put there
7689
7690 2003-10-16  Havoc Pennington  <hp@redhat.com>
7691
7692         * bus/connection.c (bus_pending_reply_expired): either cancel or
7693         execute, not both
7694         (bus_connections_check_reply): use unlink, not remove_link, as we
7695         don't want to free the link; fixes double free mess
7696
7697         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7698         where no reply was received
7699
7700         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7701         fix a refcount leak
7702
7703         * bus/signals.c (match_rule_matches): add special cases for the
7704         bus driver, so you can match on sender/destination for it.
7705
7706         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7707         DBUS_PRINT_BACKTRACE is set
7708
7709         * dbus/dbus-internals.c: add pid to assertion failure messages
7710
7711         * dbus/dbus-connection.c: add message type code to the debug spew
7712
7713         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7714         sender=foo not service=foo
7715
7716         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7717         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7718         DBUS_ACTIVATION_ADDRESS instead
7719
7720         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7721         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7722
7723         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7724         context struct
7725
7726         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7727         (dbus_message_iter_get_object_path_array): new function (half
7728         finished, disabled for the moment)
7729         
7730         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7731         DBUS_MESSAGE_TYPE_ERROR
7732
7733         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7734         avoid redirecting stderr to /dev/null
7735         (babysit): close stdin if not doing the "exit_with_session" thing
7736
7737         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7738         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7739         stdout/stdin, so things don't get confused
7740         
7741         * bus/system.conf.in: fix to allow replies, I modified .conf
7742         instead of .conf.in again.
7743
7744 2003-10-14  David Zeuthen  <david@fubar.dk>
7745
7746         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7747         argtype to arg_type when raising unknown arg type exception.
7748         Changed type list to reflect the changes in dbus-protocol.h so 
7749         the bindings actually work.
7750
7751 2003-10-14  Havoc Pennington  <hp@redhat.com>
7752
7753         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7754         to have a bug keeping it from outputting the .da files sometimes
7755         (string_get_string): don't append garbage nul bytes to the string.
7756
7757 2003-10-15  Seth Nickell  <seth@gnome.org>
7758
7759         * python/Makefile.am:
7760
7761         Include dbus_h_wrapper.h in the dist tarball.
7762
7763 2003-10-14  Havoc Pennington  <hp@redhat.com>
7764
7765         * bus/bus.c (bus_context_check_security_policy): revamp this to
7766         work more sanely with new policy-based requested reply setup
7767
7768         * bus/connection.c (bus_transaction_send_from_driver): set bus
7769         driver messages as no reply
7770
7771         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7772         requested_reply attribute on allow/deny rules
7773
7774         * bus/system.conf: add <allow requested_reply="true"/>
7775
7776         * bus/driver.c (bus_driver_handle_message): fix check for replies
7777         sent to the bus driver, which was backward. How did this ever work
7778         at all though? I think I'm missing something.
7779
7780         * dbus/dbus-message.c (decode_header_data): require error and
7781         method return messages to have a reply serial field to be valid
7782         (_dbus_message_loader_queue_messages): break up this function;
7783         validate that reply serial and plain serial are nonzero; 
7784         clean up the OOM/error handling.
7785         (get_uint_field): don't return -1 from this
7786         (dbus_message_create_header): fix signed/unsigned bug
7787
7788         * bus/connection.c (bus_connections_expect_reply): save serial of
7789         the incoming message, not reply serial
7790
7791 2003-10-14  Havoc Pennington  <hp@redhat.com>
7792
7793         * bus/connection.c: implement pending reply tracking using
7794         BusExpireList
7795
7796         * bus/bus.c (bus_context_check_security_policy): verify that a
7797         reply is pending in order to allow a reply to be sent. Deny 
7798         messages of unknown type.
7799
7800         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7801
7802         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7803         (bus_context_get_reply_timeout): new
7804
7805 2003-10-13  Seth Nickell  <seth@gnome.org>
7806
7807         * python/Makefile.am:
7808
7809         Pass "make distcheck": remove a couple files from DIST_FILES
7810         that weren't included in the final version.
7811
7812 2003-10-12  Havoc Pennington  <hp@pobox.com>
7813
7814         Added test code that 1) starts an actual bus daemon and 2) uses
7815         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7816         more testing possible, but this is the basic framework.
7817         
7818         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7819         empty proxy lists from the proxy list hash
7820
7821         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7822         couple of return_if_fail checks
7823
7824         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7825         to allocate, so everything is cleared to NULL as it should be.
7826
7827         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7828         source as data to dbus_connection_set_timeout_functions() as the 
7829         timeout functions expected
7830
7831         * test/glib/run-test.sh: add a little script to start up a message
7832         bus and run tests using it
7833
7834         * tools/dbus-launch.1: updates
7835
7836         * tools/dbus-launch.c (main): add --config-file option
7837
7838         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7839         that could never be reached.
7840
7841         * dbus/dbus-message.c (dbus_message_new_method_return) 
7842         (dbus_message_new_error, dbus_message_new_signal): set the
7843         no-reply-expected flag on all these. Redundant, but may
7844         as well be consistent.
7845
7846 2003-10-11  Havoc Pennington  <hp@pobox.com>
7847
7848         * test/decode-gcov.c (function_solve_graph): make broken block
7849         graph a nonfatal error since it seems to be broken. Need to debug
7850         this.
7851
7852         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7853         can't just check type > INVALID < LAST anymore
7854
7855         * dbus/dbus-message.c (dbus_message_get_signature): new function
7856         (dbus_message_has_signature): new function
7857         (struct DBusMessage): add signature field (right now it isn't sent
7858         over the wire, just generated on the fly)
7859         (dbus_message_copy): copy the signature, and init strings to
7860         proper length to avoid some reallocs
7861         (dbus_message_iter_init_array_iterator): return void, since it
7862         can't fail
7863         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7864         (_dbus_message_loader_queue_messages): add silly temporary hack to
7865         fill in message->signature on load
7866
7867         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7868         characters, so they are relatively human-readable.
7869
7870 2003-10-11  Havoc Pennington  <hp@pobox.com>
7871
7872         * dbus/dbus-message.c (_dbus_message_test): add more test
7873         coverage, but #if 0 for now since they uncover a bug 
7874         not fixed yet; I think in re_align_field_recurse()
7875         (re_align_field_recurse): add FIXME about broken assertion
7876
7877         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7878
7879         * bus/connection.c: share a couple code bits with expirelist.c
7880
7881         * bus/expirelist.h, bus/expirelist.c: implement a generic
7882         expire-items-after-N-seconds facility, was going to share between
7883         expiring connections and replies, decided not to use for expiring
7884         connections for now.
7885
7886         * COPYING: include AFL 2.0 (still need to change all the file headers)
7887
7888 2003-10-09  Havoc Pennington  <hp@redhat.com>
7889
7890         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7891         gcc 3.3. Not that we do anything about it yet.
7892
7893         * bus/signals.c (bus_match_rule_parse): impose max length on the
7894         match rule text
7895
7896         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7897
7898 2003-10-09  Havoc Pennington  <hp@redhat.com>
7899
7900         Make matching rules theoretically work (add parser).
7901         
7902         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7903         the case where destination is explicitly specified as bus driver
7904         and someone else is eavesdropping.
7905         
7906         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7907         definition of eavesdropping and assertion
7908
7909         * tools/dbus-send.c (main): use dbus_message_type_from_string
7910
7911         * bus/signals.c (bus_match_rule_parse): implement
7912
7913         * dbus/dbus-message.c (dbus_message_type_from_string): new
7914
7915         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7916
7917 2003-10-02  Havoc Pennington  <hp@pobox.com>
7918
7919         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7920         dbus_gproxy_oneway_call
7921
7922         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7923         (dbus_server_setup_with_g_main): fix to allow calling them more
7924         than once on the same args
7925         (dbus_bus_get_with_g_main): new function
7926
7927 2003-10-02  Havoc Pennington  <hp@redhat.com>
7928
7929         * doc/dbus-tutorial.xml: write some stuff
7930
7931 2003-09-29  Havoc Pennington  <hp@pobox.com>
7932
7933         * configure.in: split checks for Doxygen from XML docs, check for
7934         xmlto
7935
7936         * doc/Makefile.am: XML-ify all the docs, and add a blank
7937         dbus-tutorial.xml
7938
7939 2003-09-29  Havoc Pennington  <hp@pobox.com>
7940
7941         * Merge dbus-object-names branch. To see the entire patch 
7942         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7943         it's huuuuge though.
7944         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7945         
7946 2003-09-28  Havoc Pennington  <hp@pobox.com>
7947
7948         * HACKING: update to reflect new server
7949
7950 2003-09-26  Seth Nickell  <seth@gnome.org>
7951
7952         * python/dbus.py:
7953         * python/examples/example-signals.py:
7954
7955         Start implementing some notions of signals. The API
7956         is really terrible, but they sort of work (with the
7957         exception of being able to filter by service, and to
7958         transmit signals *as* a particular service). Need to
7959         figure out how to make messages come from the service
7960         we registered :-(
7961         
7962         * python/dbus_bindings.pyx.in:
7963
7964         Removed duplicate message_handler callbacks.
7965         
7966 2003-09-25  Havoc Pennington  <hp@redhat.com>
7967
7968         * bus/session.conf.in: fix my mess
7969
7970 2003-09-25  Havoc Pennington  <hp@pobox.com>
7971
7972         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7973
7974 2003-09-25  Seth Nickell  <seth@gnome.org>
7975
7976         * python/examples/example-service.py:
7977
7978         Johan notices complete wrong code in example-service, but
7979         completely wrong in a way that works exactly the same (!).
7980         Johan is confused, how could this possibly work? Example
7981         code fails to serve purpose of making things clear.
7982         Seth fixes.
7983
7984 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7985
7986         * doc/dbus-specification.sgml: don't require header fields
7987         to be 4-byte aligned and specify that fields should be
7988         distinguished from padding by the fact that zero is not
7989         a valid field name.
7990         
7991         * doc/TODO: remove re-alignment item and add item to doc
7992         the OBJECT_PATH type.
7993         
7994         * dbus/dbus-message.c:
7995         (HeaderField): rename the original member to value_offset
7996         and introduce a name_offset member to keep track of where
7997         the field actually begins.
7998         (adjust_field_offsets): remove.
7999         (append_int_field), (append_uint_field),
8000         (append_string_field): don't align the start of the header
8001         field to a 4-byte boundary.
8002         (get_next_field): impl finding the next marhsalled field
8003         after a given field.
8004         (re_align_field_recurse): impl re-aligning a number of
8005         already marshalled fields.
8006         (delete_field): impl deleting a field of any type and
8007         re-aligning any following fields.
8008         (delete_int_or_uint_field), (delete_string_field): remove.
8009         (set_int_field), (set_uint_field): no need to re-check
8010         that we have the correct type for the field.
8011         (set_string_field): ditto and impl re-aligning any
8012         following fields.
8013         (decode_header_data): update to take into account that
8014         the fields aren't 4-byte aligned any more and the new
8015         way to distinguish padding from header fields. Also,
8016         don't exit when there is too much header padding.
8017         (process_test_subdir): print the directory.
8018         (_dbus_message_test): add test to make sure a following
8019         field is re-aligned correctly after field deletion.
8020         
8021         * dbus/dbus-string.[ch]:
8022         (_dbus_string_insert_bytes): rename from insert_byte and
8023         allow the insert of multiple bytes.
8024         (_dbus_string_test): test inserting multiple bytes.
8025
8026         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8027         warning note to docs about having to re-align any
8028         marshalled values following the string.
8029         
8030         * dbus/dbus-message-builder.c:
8031         (append_string_field), (_dbus_message_data_load):
8032         don't align the header field.
8033         
8034         * dbus/dbus-auth.c: (process_test_subdir): print the
8035         directory.
8036         
8037         * test/break-loader.c: (randomly_add_one_byte): upd. for
8038         insert_byte change.
8039         
8040         * test/data/invalid-messages/bad-header-field-alignment.message:
8041         new test case.
8042         
8043         * test/data/valid-messages/unknown-header-field.message: shove
8044         a dict in the unknown field.
8045
8046 2003-09-25  Seth Nickell  <seth@gnome.org>
8047
8048         * python/dbus.py:
8049         * python/dbus_bindings.pyx.in:
8050
8051         Handle return values.
8052         
8053         * python/examples/example-client.py:
8054         * python/examples/example-service.py:
8055
8056         Pass back return values from the service to the client.
8057         
8058 2003-09-24  Seth Nickell  <seth@gnome.org>
8059
8060         * python/dbus.py:
8061
8062         Connect Object methods (when you are sharing an object) up... pass
8063         in a list of methods to be shared. Sharing all the methods just
8064         worked out too weird. You can now create nice Services over the
8065         DBus in Python. :-)
8066         
8067         * python/dbus_bindings.pyx.in:
8068
8069         Keep references to user_data tuples passed into C functions so 
8070         Python doesn't garbage collect on us.
8071
8072         Implement MethodReturn and Error subclasses of Message for creating
8073         DBusMessage's of those types.
8074         
8075         * python/examples/example-client.py:
8076         * python/examples/example-service.py:
8077
8078         Simple example code showing both how create DBus services and objects,
8079         and how to use them.
8080
8081 2003-09-23  Havoc Pennington  <hp@pobox.com>
8082
8083         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8084
8085 2003-09-23  Havoc Pennington  <hp@redhat.com>
8086
8087         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8088         (dbus_gproxy_disconnect_signal): implement
8089         (dbus_gproxy_manager_remove_signal_match): implement
8090         (dbus_gproxy_manager_add_signal_match): implement
8091         (dbus_gproxy_oneway_call): implement
8092
8093 2003-09-23  Havoc Pennington  <hp@pobox.com>
8094
8095         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8096         subclass. This means dropping the transparent thread safety of the
8097         proxy; you now need a separate proxy per-thread, or your own
8098         locking on the proxy. Probably right anyway.
8099         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8100
8101 2003-09-22  Havoc Pennington  <hp@redhat.com>
8102
8103         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8104
8105 2003-09-21  Seth Nickell  <seth@gnome.org>
8106
8107         First checkin of the Python bindings.
8108         
8109         * python/.cvsignore:
8110         * python/Makefile.am:
8111         * python/dbus_bindings.pyx.in:
8112         * python/dbus_h_wrapper.h:
8113
8114         Pieces for Pyrex to operate on, building a dbus_bindings.so
8115         python module for low-level access to the DBus APIs.
8116         
8117         * python/dbus.py:
8118
8119         High-level Python module for accessing DBus objects.
8120
8121         * configure.in:
8122         * Makefile.am:
8123
8124         Build stuff for the python bindings.
8125
8126         * acinclude.m4:
8127
8128         Extra macro needed for finding the Python C header files.
8129
8130 2003-09-21  Havoc Pennington  <hp@pobox.com>
8131
8132         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8133         implementing the proxy manager, didn't get very far.
8134
8135         * dbus/dbus-bus.c (dbus_bus_add_match): new
8136         (dbus_bus_remove_match): new
8137
8138         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8139         path_name argument; adjust the other not-yet-implemented 
8140         gproxy constructors to be what I think they should be.
8141
8142 2003-09-21  Havoc Pennington  <hp@pobox.com>
8143
8144         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8145         by default for message bus connections.
8146
8147         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8148         exit_on_disconnect flag is set and we process the disconnected
8149         signal.
8150         (dbus_connection_set_exit_on_disconnect): new function
8151
8152 2003-09-21  Havoc Pennington  <hp@pobox.com>
8153
8154         Get matching rules mostly working in the bus; only actually
8155         parsing the rule text remains. However, the client side of
8156         "signal connections" hasn't been started, this patch is only the
8157         bus side.
8158         
8159         * dbus/dispatch.c: fix for the matching rules changes
8160         
8161         * bus/driver.c (bus_driver_handle_remove_match)
8162         (bus_driver_handle_add_match): send an ack reply from these
8163         method calls
8164
8165         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8166         arguments, reported by Seth Nickell
8167
8168         * bus/config-parser.c (append_rule_from_element): support
8169         eavesdrop=true|false attribute on policies so match rules 
8170         can be prevented from snooping on the system bus.
8171
8172         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8173         and "destination" in attribute names; fix some docs bugs; 
8174         add eavesdrop=true|false attribute
8175
8176         * bus/driver.c (bus_driver_handle_add_match)
8177         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8178         messages
8179
8180         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8181         rid of broadcast service concept, signals are just always broadcast
8182
8183         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8184         mostly implement matching rules stuff (currently only exposed as signal
8185         connections)
8186
8187 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8188
8189         * doc/dbus-specification.sgml: Change the header field name
8190         to be an enum and update the rest of the spec to reference
8191         the fields using the conventinal name.
8192
8193         * dbus/dbus-protocol.h: update to reflect the spec.
8194
8195         * doc/TODO: add item to remove the 4 byte alignment requirement.
8196         
8197         * dbus/dbus-message.c: Remove the code to generalise the
8198         header/body length and serial number header fields as named
8199         header fields so we can reference field names using the 
8200         protocol values.
8201         (append_int_field), (append_uint_field), (append_string_field):
8202         Append the field name as a byte rather than four chars.
8203         (delete_int_or_uint_field), (delete_string_field): reflect the
8204         fact that the field name and typecode now occupy 4 bytes instead
8205         of 8.
8206         (decode_string_field), (decode_header_data): update to reflect
8207         protocol changes and move the field specific encoding from
8208         decode_string_field() back into decode_header_data().
8209         
8210         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8211         Add utility to aid debugging.
8212         
8213         * dbus/dbus-message-builder.c:
8214         (append_string_field), (_dbus_message_data_load): Update to
8215         reflect protocol changes; Change the FIELD_NAME directive
8216         to HEADER_FIELD and allow it to take the field's conventional
8217         name rather than the actual value.
8218         
8219         * test/data/*/*.message: Update to use HEADER_FIELD instead
8220         of FIELD_NAME; Always align the header on an 8 byte boundary
8221         *before* updating the header length.
8222
8223 2003-09-15  Havoc Pennington  <hp@pobox.com>
8224
8225         * dbus/dbus-pending-call.c: add the get/set object data
8226         boilerplate as for DBusConnection, etc. Use generic object data
8227         for the notify callback.
8228
8229         * glib/dbus-gparser.c (parse_node): parse child nodes
8230
8231         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8232         
8233         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8234         contain functions shared between the convenience lib and the
8235         installed lib
8236
8237         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8238         -export-symbols-regex to the GLib library
8239
8240         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8241         fix the locking in here, and add a default handler for
8242         Introspect() that just returns sub-nodes.
8243
8244 2003-09-14  Havoc Pennington  <hp@pobox.com>
8245
8246         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8247         rather than gfoo consistent
8248
8249         * glib/dbus-gproxy.h: delete for now, move contents to
8250         dbus-glib.h, because the include files don't work right since we
8251         aren't in the dbus/ subdir.
8252         
8253         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8254         (dbus_gproxy_end_call): finish
8255         (dbus_gproxy_begin_call): finish
8256
8257         * glib/dbus-gmain.c (dbus_set_g_error): new
8258
8259         * glib/dbus-gobject.c (handle_introspect): include information
8260         about child nodes in the introspection
8261
8262         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8263         function to help in implementation of introspection
8264
8265         * dbus/dbus-object-tree.c
8266         (_dbus_object_tree_list_registered_and_unlock): new function
8267
8268 2003-09-12  Havoc Pennington  <hp@pobox.com>
8269
8270         * glib/dbus-gidl.h: add common base class for all the foo_info
8271         types
8272
8273         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8274         similar to kdcop
8275
8276         * test/Makefile.am: try test srcdir -ef . in addition to test
8277         srcdir = ., one of them should work (yeah lame)
8278         
8279         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8280         library
8281         
8282         * glib/dbus-gparser.h: make description_load routines return
8283         NodeInfo* not Parser*
8284
8285         * Makefile.am (SUBDIRS): build test dir after all library dirs
8286
8287         * configure.in: add GTK+ detection
8288
8289 2003-09-07  Havoc Pennington  <hp@pobox.com>
8290
8291         * Make Doxygen contented.
8292
8293 2003-09-07  Havoc Pennington  <hp@pobox.com>
8294
8295         * doc/dbus-specification.sgml: more updates
8296
8297 2003-09-06  Havoc Pennington  <hp@pobox.com>
8298
8299         * doc/dbus-specification.sgml: partial updates
8300
8301         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8302         zillionth time; hopefully I edited the right file this time.
8303
8304         * bus/config-parser.c (append_rule_from_element): support
8305         send_type, send_path, receive_type, receive_path
8306
8307         * bus/policy.c: add message type and path to the list of things
8308         that can be "firewalled"
8309
8310 2003-09-06  Havoc Pennington  <hp@pobox.com>
8311
8312         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8313         (dbus_connection_register_object_path): make this not handle
8314         messages to paths below the given path
8315
8316 2003-09-03  Havoc Pennington  <hp@pobox.com>
8317
8318         * test/glib/Makefile.am: add this with random glib-linked test
8319         programs
8320
8321         * glib/Makefile.am: remove the random test programs from here,
8322         leave only the unit tests
8323
8324         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8325         uscore/javacaps conversion, and fix     
8326         (get_object_property, set_object_property): change to .NET
8327         convention for mapping props to methods, set_FooBar/get_FooBar, 
8328         since one language has such a convention we may as well copy it. 
8329         Plus real methods in either getFooBar or get_foo_bar style won't 
8330         collide with this convention.
8331
8332 2003-09-01  Havoc Pennington  <hp@pobox.com>
8333
8334         * glib/dbus-gparser.c: implement
8335
8336         * glib/dbus-gobject.c: start implementing skeletons support
8337
8338         * configure.in: when disabling checks/assert, also define
8339         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8340
8341 2003-09-01  Havoc Pennington  <hp@pobox.com>
8342
8343         * glib/Makefile.am: rearrange a bunch of files and get "make
8344         check" framework set up
8345
8346 2003-08-31  Havoc Pennington  <hp@pobox.com>
8347
8348         * fix build with --disable-tests
8349
8350 2003-08-30  Havoc Pennington  <hp@pobox.com>
8351
8352         * dbus/dbus-connection.c: purge DBusMessageHandler
8353
8354         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8355         use callbacks everywhere
8356
8357 2003-08-30  Havoc Pennington  <hp@pobox.com>
8358
8359         * test/data/valid-config-files/system.d/test.conf: change to 
8360         root for the user so warnings don't get printed
8361
8362         * dbus/dbus-message.c: add dbus_message_get_path,
8363         dbus_message_set_path
8364         
8365         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8366         dispatching to a path
8367
8368         * dbus/dbus-string.c (_dbus_string_validate_path): add
8369
8370         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8371         (_dbus_marshal_object_path): implement
8372
8373         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8374         to contain the path to the target object
8375         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8376         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8377
8378 2003-08-30  Havoc Pennington  <hp@pobox.com>
8379
8380         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8381
8382 2003-08-29  Havoc Pennington  <hp@pobox.com>
8383
8384         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8385         registered
8386         (struct DBusObjectSubtree): shrink this
8387         a lot, since we may have a lot of them
8388         (_dbus_object_tree_free_all_unlocked): implement
8389         (_dbus_object_tree_dispatch_and_unlock): implement
8390
8391 2003-08-29  Havoc Pennington  <hp@pobox.com>
8392
8393         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8394
8395 2003-08-28  Havoc Pennington  <hp@pobox.com>
8396
8397         purge DBusObjectID
8398         
8399         * dbus/dbus-connection.c: port to no ObjectID, create a
8400         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8401
8402         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8403         everything except UnregisterFunction and MessageFunction
8404         
8405         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8406         add DBUS_TYPE_OBJECT_PATH
8407         
8408         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8409         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8410         path-based object IDs
8411
8412 2003-08-25  Havoc Pennington  <hp@pobox.com>
8413
8414         Just noticed that dbus_message_test is hosed, I wonder when I
8415         broke that. I thought make check was passing earlier...
8416         
8417         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8418         container tree, will replace most of dbus-object-registry
8419
8420         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8421         screwup
8422
8423 2003-08-19  Havoc Pennington  <hp@pobox.com>
8424
8425         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8426         (dbus_message_is_error): fix this function
8427
8428         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8429         match
8430
8431         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8432         reflect clarified man page
8433         (bus_client_policy_check_can_send): ditto
8434         
8435         * bus/session.conf.in: fixup
8436
8437         * bus/system.conf.in: fixup
8438
8439 2003-08-18  Havoc Pennington  <hp@redhat.com>
8440
8441         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8442
8443         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8444         dumb bug created earlier (wrong order of args to
8445         decode_header_data())
8446         
8447         * tools/dbus-send.c: port
8448
8449         * tools/dbus-print-message.c (print_message): port
8450
8451         * test/data/*messages: port all messages over
8452         
8453         * dbus/dbus-message-builder.c: support including 
8454         message type
8455         
8456         * bus/driver.c: port over
8457         
8458         * bus/dispatch.c: port over to new stuff
8459
8460         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8461         rename disconnect signal to "Disconnected"
8462
8463 2003-08-17  Havoc Pennington  <hp@pobox.com>
8464
8465         This doesn't compile yet, but syncing up so I can hack on it from
8466         work. What are branches for if not broken code? ;-)
8467         
8468         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8469         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8470         DBUS_HEADER_FIELD_ERROR_NAME
8471         
8472         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8473         for the interface+member pairs
8474         (string_hash): change to use g_str_hash algorithm
8475         (find_direct_function, find_string_function): refactor these to
8476         share most code.
8477         
8478         * dbus/dbus-message.c: port all of this over to support 
8479         interface/member fields instead of name field
8480
8481         * dbus/dbus-object-registry.c: port over
8482         
8483         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8484         from _dbus_string_validate_name
8485
8486         * bus/dbus-daemon-1.1: change file format for the 
8487         <deny>/<allow> stuff to match new message naming scheme
8488
8489         * bus/policy.c: port over
8490
8491         * bus/config-parser.c: parse new format
8492         
8493 2003-08-16  Havoc Pennington  <hp@pobox.com>
8494
8495         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8496         broken assertion
8497
8498         * glib/dbus-gproxy.c: some hacking
8499
8500 2003-08-15  Havoc Pennington  <hp@redhat.com>
8501
8502         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8503
8504         * dbus/dbus-connection.c
8505         (dbus_connection_send_with_reply_and_block): factor out internals;
8506         change to convert any error replies to DBusError instead of 
8507         returning them as a message
8508
8509 2003-08-15  Havoc Pennington  <hp@pobox.com>
8510
8511         * dbus/dbus-connection.c, 
8512         dbus/dbus-pending-call.c: Finish the pending call stuff
8513
8514 2003-08-14  Havoc Pennington  <hp@redhat.com>
8515
8516         * dbus/dbus-pending-call.c: start on new object that will replace
8517         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8518         replies
8519
8520         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8521         with remote interfaces
8522
8523         * dbus/dbus-gidl.c: do the boring boilerplate in here
8524         
8525 2003-08-12  Havoc Pennington  <hp@pobox.com>
8526
8527         * bus/dispatch.c (bus_dispatch): make this return proper 
8528         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8529
8530         * dbus/dbus-errors.c (dbus_set_error): use
8531         _dbus_string_append_printf_valist
8532
8533         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8534         (_dbus_string_append_printf): new
8535
8536         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8537         UNKNOWN_METHOD
8538
8539         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8540         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8541         message is unhandled.
8542
8543 2003-08-11  Havoc Pennington  <hp@pobox.com>
8544
8545         * bus/test.c (client_disconnect_handler): change to return
8546         HANDLED (would have been REMOVE_MESSAGE)
8547
8548         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8549         HANDLED/NOT_YET_HANDLED instead of
8550         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8551         should be used.
8552
8553 2003-08-10  Havoc Pennington  <hp@pobox.com>
8554
8555         * tools/dbus-send.c (main): add --type argument, for now
8556         supporting only method_call and signal types.
8557
8558         * tools/dbus-print-message.c: print message type
8559
8560         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8561         init connection->objects
8562
8563         * doc/dbus-specification.sgml: fix sgml
8564
8565         * bus/*.c: port over to object-instance API changes
8566
8567         * test/test-service.c: ditto
8568         
8569         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8570         name, we will have to fix up the rest of the code to also handle
8571         this
8572         (dbus_message_new): generic message-creation call
8573         (set_string_field): allow appending name field
8574
8575 2003-08-06  Havoc Pennington  <hp@pobox.com>
8576
8577         * dbus/dbus-object-registry.c: implement signal connection 
8578         and dispatch
8579
8580         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8581
8582         * dbus/dbus-internals.c (_dbus_memdup): new function
8583
8584 2003-08-02  Havoc Pennington  <hp@pobox.com>
8585
8586         * dbus/dbus-message.c (dbus_message_get_no_reply)
8587         (dbus_message_set_no_reply): add these and remove
8588         set_is_error/get_is_error
8589
8590         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8591         remove the ERROR flag, since there's now an ERROR type
8592
8593 2003-08-01  Havoc Pennington  <hp@pobox.com>
8594
8595         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8596         implement
8597
8598         * dbus/dbus-message.c (dbus_message_get_type): new function
8599
8600         * doc/dbus-specification.sgml: add "type" byte to messages
8601
8602 2003-08-01  Havoc Pennington  <hp@pobox.com>
8603
8604         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8605         a message type enum to distinguish kinds of message
8606         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8607         that need not be replied to
8608
8609 2003-08-01  Havoc Pennington  <hp@pobox.com>
8610
8611         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8612         (unpack_8_octets): fix no-64-bit-int bug
8613
8614         * dbus/dbus-object-registry.c (validate_id): validate the 
8615         connection ID bits, not just the instance ID.
8616
8617         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8618         the connection-global 33 bits of the object ID
8619
8620         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8621         object ID in the new way
8622
8623         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8624         define server/client/instance bits.
8625
8626 2003-07-30  Havoc Pennington  <hp@pobox.com>
8627
8628         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8629         build
8630
8631 2003-07-13  Havoc Pennington  <hp@pobox.com>
8632
8633         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8634         fields to DBusObjectVTable and DBusObjectInfo
8635
8636 2003-07-12  Havoc Pennington  <hp@pobox.com>
8637
8638         * dbus/dbus-object-registry.c: implement unit test,
8639         fix bugs discovered in process
8640
8641         * dbus/dbus-connection.c: remove handler_table and
8642         register_handler(), add DBusObjectRegistry usage
8643
8644         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8645         (dbus_object_id_set_null): new functions
8646
8647 2003-07-08  Havoc Pennington  <hp@pobox.com>
8648
8649         * dbus/dbus-object.c: implement some of this
8650
8651         * dbus/dbus-object-registry.c
8652         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8653         param
8654         (_dbus_object_registry_new): handle OOM
8655
8656 2003-07-08  Havoc Pennington  <hp@pobox.com>
8657
8658         * dbus/dbus-object.h: sketch out an API for registering objects
8659         with a connection, that allows us to use as little as 24 bytes
8660         per object and lets application code represent an object in 
8661         any conceivable way.
8662
8663         * dbus/dbus-object-registry.c: implement the hard bits of the
8664         DBusConnection aspect of object API. Not yet wired up.
8665         
8666 2003-07-06  Havoc Pennington  <hp@pobox.com>
8667
8668         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8669         (_dbus_marshal_object_id): new
8670         (_dbus_demarshal_object_id): new
8671         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8672         consolidate identical switch cases. Don't conditionalize handling
8673         of DBUS_TYPE_UINT64, need to handle the type always.
8674         (_dbus_marshal_validate_arg): consolidate identical cases, and
8675         handle DBUS_TYPE_OBJECT_ID
8676
8677         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8678
8679         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8680
8681 2003-09-28  Havoc Pennington  <hp@pobox.com>
8682
8683         * real 0.13 release
8684
8685 2003-09-28  Havoc Pennington  <hp@pobox.com>
8686
8687         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8688         to work with Debian db2html
8689
8690 2003-09-28  Havoc Pennington  <hp@pobox.com>
8691
8692         * configure.in: 0.13
8693
8694         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8695         stylesheet-images for benefit of Debian
8696         
8697         Change back to using filesystem-linked sockets for the system
8698         bus, so only root can create the default system bus address.
8699         
8700         * bus/system.conf.in: change to use
8701         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8702
8703         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8704         from here.
8705
8706         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8707         here, and AC_DEFINE DBUS_SYSTEM_PATH
8708
8709 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8710
8711         * doc/TODO:
8712         * doc/busconfig.dtd:
8713         Add busconfig DTD.
8714         
8715 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8716
8717         * doc/dbus-specification.sgml:
8718         Add activation reply values.
8719         
8720 2003-08-05  Havoc Pennington  <hp@redhat.com>
8721
8722         * configure.in: 0.12
8723
8724 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8725
8726         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8727         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8728         (add_watch), (remove_watch), (create_source):
8729         Refcount fds, fixes some reentrancy issues.
8730         
8731 2003-07-30  Havoc Pennington  <hp@redhat.com>
8732
8733         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8734         bus address to be abstract if we have abstract sockets
8735
8736         * NEWS: update
8737
8738 2003-07-28  Havoc Pennington  <hp@redhat.com>
8739
8740         * bus/messagebus.in: fix to avoid processname/servicename 
8741         confusion, from Michael Kearey
8742         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8743         
8744 2003-07-23  Havoc Pennington  <hp@pobox.com>
8745
8746         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8747         fix from Andy Hanton to remove broken "+1"
8748
8749 2003-07-16  Havoc Pennington  <hp@pobox.com>
8750
8751         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8752         babysitter process, as suggested by Thomas Leonard, so 
8753         an "eval `dbus-launch --exit-with-session`" will actually 
8754         return
8755
8756 2003-07-16  Havoc Pennington  <hp@pobox.com>
8757
8758         * configure.in: print out EXPANDED_* variables in the summary at
8759         the end; clean up the code that computes EXPANDED_ variables and
8760         get the ones using exec_prefix right. Should make things work
8761         when you build without --prefix
8762
8763 2003-06-29  Havoc Pennington  <hp@pobox.com>
8764
8765         * mono/Test.cs (class Test): fire up a main loop and run it
8766
8767         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8768         done once, the app has to do it
8769
8770 2003-06-26  Havoc Pennington  <hp@pobox.com>
8771
8772         * mono/Connection.cs: set up connection with the glib main loop
8773
8774 2003-07-01  Havoc Pennington  <hp@redhat.com>
8775
8776         * doc/dbus-specification.sgml: clarify the format of a type code,
8777         change suggested by Jim Blandy
8778
8779 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8780
8781         * doc/Makefile.am:
8782         * tools/Makefile.am: Don't assume srcdir == builddir.
8783
8784         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8785         the allocated block.
8786         (_dbus_memory_test): New function.
8787         * dbus/dbus-test.h: Add _dbus_memory_test ().
8788         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8789
8790         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8791         of %c%c%c%c.
8792         (dbus_message_new): Remove obsolete @todo.
8793
8794         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8795         (_dbus_marshal_set_uint64): Fix comment.
8796
8797         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8798         hardcode FIELD_REPLY_SERIAL.
8799
8800         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8801         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8802
8803         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8804         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8805
8806 2003-06-24  Havoc Pennington  <hp@pobox.com>
8807
8808         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8809
8810 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8811
8812         * configure.in:
8813         * gcj/.cvsignore:
8814         * gcj/Hello.java:
8815         * gcj/Makefile.am:
8816         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8817         * gcj/org/.cvsignore:
8818         * gcj/org/Makefile.am:
8819         * gcj/org/freedesktop/.cvsignore:
8820         * gcj/org/freedesktop/Makefile.am:
8821         * gcj/org/freedesktop/dbus/.cvsignore:
8822         * gcj/org/freedesktop/dbus/Makefile.am:
8823         * gcj/org/freedesktop/dbus/Message.java: (Message),
8824         (Message.Message):
8825         * gcj/org/freedesktop/dbus/natMessage.cc:
8826         Fix the build system.
8827
8828 2003-06-22  Havoc Pennington  <hp@pobox.com>
8829
8830         * mono/Connection.cs: add more bindings
8831
8832         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8833         more than once.
8834
8835 2003-06-22  Havoc Pennington  <hp@pobox.com>
8836
8837         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8838         Start wrapping more stuff.
8839
8840 2003-06-22  Havoc Pennington  <hp@pobox.com>
8841
8842         * mono/Message.cs: implement Message.Wrap() that ensures we only
8843         have a single C# wrapper per DBusMessage, assuming it works which
8844         it probably doesn't.
8845
8846         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8847         (dbus_message_free_data_slot): new
8848         (dbus_message_set_data): new
8849         (dbus_message_get_data): new
8850
8851 2003-06-22  Havoc Pennington  <hp@pobox.com>
8852
8853         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8854         (_dbus_data_slot_allocator_alloc): rework these to keep a
8855         reference count on each slot and automatically manage a global
8856         slot ID variable passed in by address
8857
8858         * bus/bus.c: convert to new dataslot API
8859
8860         * dbus/dbus-bus.c: convert to new dataslot API
8861
8862         * dbus/dbus-connection.c: convert to new dataslot API
8863
8864         * dbus/dbus-server.c: convert to new dataslot API
8865
8866         * glib/dbus-gmain.c: ditto
8867
8868         * bus/test.c: ditto
8869
8870         * bus/connection.c: ditto
8871
8872 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8873
8874         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8875         after the gcj checks so that the correct configuration tags
8876         will be added to libtool.
8877
8878         * dbus-glib-1.pc.in: No need to specify any includes since
8879         dbus-1.pc.in has those.
8880
8881 2003-06-22  Havoc Pennington  <hp@pobox.com>
8882
8883         * mono/*, gcj/*, configure.in, Makefile.am:
8884         Check in makefiles and subdirs for mono and gcj bindings.
8885         Neither binding actually exists, just trying to get through
8886         all the build and other boring bits.
8887
8888 2003-06-21  Philip Blundell  <philb@gnu.org>
8889
8890         * tools/dbus-monitor.1: Updated.
8891
8892         * tools/dbus-send.1: Likewise.
8893
8894 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8895
8896         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8897         for hangup and error after checking read so we won't discard
8898         pending data if both hangup and read are set.
8899
8900 2003-06-19  Philip Blundell  <philb@gnu.org>
8901
8902         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8903
8904         * tools/dbus-send.c: Accept both --system and --session.
8905
8906         * tools/dbus-monitor.c: Same here.
8907
8908 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8909
8910         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8911         from C++ (Patch by Miloslav Trmac).
8912
8913 2003-06-15  Joe Shaw  <joe@assbarn.com>
8914
8915         * configure.in: Check for socklen_t.
8916
8917         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8918
8919         * test/test-segfault.c: Add #include <sys/time.h>
8920
8921         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8922         dbus-launch needs it.
8923
8924 2003-06-09  Havoc Pennington  <hp@redhat.com>
8925
8926         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8927         SUN_LEN, it breaks abstract socket usage
8928
8929         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8930         starts of lines.
8931
8932 2003-06-04  Havoc Pennington  <hp@pobox.com>
8933
8934         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8935         using unix:abstract=/foo, and when listening in a tmpdir
8936         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8937
8938         * dbus/dbus-transport.c (_dbus_transport_open): support
8939         unix:abstract=/foo
8940
8941         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8942         support abstract sockets
8943
8944         * dbus/dbus-transport-unix.c
8945         (_dbus_transport_new_for_domain_socket): support abstract sockets
8946
8947         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8948         toggle as an argument, implement abstract namespace support
8949         (_dbus_listen_unix_socket): ditto
8950
8951         * configure.in: add --enable-abstract-sockets and implement
8952         a configure check for autodetection of the right value.
8953
8954 2003-06-01  Havoc Pennington  <hp@pobox.com>
8955
8956         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8957         in /tmp (though on Linux this will end up being useless,
8958         when we add abstract namespace support)
8959
8960         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8961         subst'ing it
8962
8963 2003-05-28  Colin Walters  <walters@verbum.org>
8964
8965         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8966
8967 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8968
8969         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8970
8971 2003-05-17  Colin Walters  <walters@gnu.org>
8972
8973         * tools/dbus-send.c: Don't exit with an error code if --help was
8974         passed.  Default to using the session bus instead of the system
8975         one.
8976
8977         * tools/dbus-launch.c: Ditto.
8978
8979         * tools/dbus-monitor.c: Ditto.
8980
8981         * tools/dbus-send.1: Update with new arguments.
8982
8983         * tools/dbus-launch.c: Emit code to export variables.  New
8984         arguments -s and -c to specify shell syntax, and a bit of code to
8985         autodetect syntax.  Also, allow specifying a program to run.
8986
8987         * tools/dbus-launch.1: Update with new arguments.
8988
8989         * tools/dbus-send.1: Ditto.
8990
8991         * tools/dbus-monitor.1: Ditto.
8992
8993 2003-05-17  Havoc Pennington  <hp@pobox.com>
8994
8995         * bus/config-parser.c (merge_included): merge in policies from
8996         child configuration file.
8997
8998         * bus/policy.c (bus_policy_merge): function to merge two policies
8999         together
9000
9001 2003-05-16  Havoc Pennington  <hp@redhat.com>
9002
9003         * dbus/dbus-connection.c: disable verbose lock spew
9004
9005         * tools/dbus-send.c: add --print-reply command line option
9006
9007         * tools/dbus-print-message.h (print_message): new util function
9008         shared by dbus-send and dbus-monitor
9009
9010         * tools/dbus-monitor.c (handler_func): exit on disconnect
9011
9012         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9013         disconnected, don't try to use the read_watch
9014
9015         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9016         so we can find this bug more easily
9017
9018 2003-05-16  Havoc Pennington  <hp@redhat.com>
9019
9020         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9021         NULL as DBusHashTable is annoyingly likely to do.
9022
9023 2003-05-16  Colin Walters  <walters@verbum.org>
9024
9025         * tools/dbus-monitor.c: Add --session argument and usage()
9026         function.
9027
9028         * tools/dbus-monitor.1: Update with new --session arg.
9029
9030         * bus/Makefile.am (install-data-hook): Create
9031         $(libdir)/dbus-1.0/services so that the session bus is happy.
9032
9033 2003-05-15  Havoc Pennington  <hp@redhat.com>
9034
9035         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9036         on non-x86. ifdef's are evil.
9037
9038 2003-05-15  Havoc Pennington  <hp@redhat.com>
9039
9040         * configure.in: 0.11
9041
9042         * NEWS: update
9043
9044         * bus/Makefile.am (initddir): apparently we are supposed to put
9045         init scripts in /etc/rc.d/init.d not /etc/init.d
9046
9047         * bus/Makefile.am: remove the "you must --enable-tests to make
9048         check" as it broke distcheck
9049
9050         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9051
9052 2003-05-13  James Willcox  <jwillcox@gnome.org>
9053
9054         * configure.in:
9055         * bus/activation.c: (bus_activation_service_created),
9056         (bus_activation_activate_service):
9057         * bus/driver.c: (bus_driver_send_service_deleted),
9058         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9059         (bus_driver_send_service_acquired),
9060         (bus_driver_send_welcome_message),
9061         (bus_driver_handle_list_services):
9062         * bus/session.conf.in:
9063         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9064         (dbus_bus_service_exists), (dbus_bus_activate_service):
9065         * dbus/dbus-bus.h:
9066
9067         Add some convenience API which lets you activate a service, and did a
9068         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9069         and dbus_message_get_args()
9070
9071 2003-05-11  Havoc Pennington  <hp@pobox.com>
9072
9073         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9074         calling _dbus_marshal_validate_arg() for every byte in a byte
9075         array, etc.
9076
9077         * dbus/dbus-message-handler.c: use atomic reference counting to
9078         reduce number of locks slightly; the global lock in here sucks
9079
9080         * dbus/dbus-connection.c
9081         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9082         update_dispatch_status that can be called with lock held; then use
9083         in a couple places to reduce locking/unlocking
9084         (dbus_connection_send): hold the lock over the whole function
9085         instead of acquiring it twice.
9086
9087         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9088
9089         * bus/connection.c (bus_connections_setup_connection): fix access
9090         to already-freed memory.
9091
9092         * dbus/dbus-connection.c: keep a little cache of linked list
9093         nodes, to avoid using the global linked list alloc lock in the
9094         normal send-message case. Instead we just use the connection lock
9095         that we already have to take.
9096
9097         * dbus/dbus-list.c (_dbus_list_find_last): new function
9098
9099         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9100         change to use a struct for the atomic type; fix docs,
9101         they return value before increment, not after increment.
9102
9103         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9104         (_dbus_string_append_8_aligned): new functions to try to
9105         microoptimize this operation.
9106         (reallocate_for_length): break this out of set_length(), to
9107         improve profile info, and also so we can consider inlining the
9108         set_length() part.
9109
9110         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9111         strings with some preallocation, cuts down on our calls to realloc
9112         a fair bit. Though if we can get the "move entire string to empty
9113         string" optimization below to kick in here, it would be better.
9114
9115         * dbus/dbus-string.c (_dbus_string_move): just call
9116         _dbus_string_move_len
9117         (_dbus_string_move_len): add a special case for moving
9118         an entire string into an empty string; we can just
9119         swap the string data instead of doing any reallocs.
9120         (_dbus_string_init_preallocated): new function
9121
9122 2003-05-11  Havoc Pennington  <hp@pobox.com>
9123
9124         Write a "test-profile" that does echo client-server with threads;
9125         profile reveals lock contention, memcpy/realloc of buffers, and
9126         UTF-8 validation as hot spots. 20% of lock contention eliminated
9127         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9128         contention is global mempool locks for GList and DBusList.
9129
9130         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9131         x86 implementation
9132
9133         * dbus/dbus-connection.c (struct DBusConnection): use
9134         dbus_atomic_t for the reference count
9135
9136         * dbus/dbus-message.c (struct DBusMessage): declare
9137         dbus_atomic_t values as volatile
9138
9139         * configure.in: code to detect ability to use atomic integer
9140         operations in assembly, from GLib patch
9141
9142         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9143         time, tired of it being wrong in threads and forked processes
9144
9145         * glib/test-profile.c: a little program to bounce messages back
9146         and forth between threads and eat CPU
9147
9148         * dbus/dbus-connection.c: add debug spew macros for debugging
9149         thread locks; include config.h at top; fix deadlock in
9150         dbus_connection_flush()
9151
9152 2003-05-08  Havoc Pennington  <hp@pobox.com>
9153
9154         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9155         data from getting written, and there wasn't a good reason to
9156         use _exit really.
9157
9158         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9159         dbus_verbose lines in test coverage
9160         (main): add list of functions sorted by # of untested blocks
9161         to the coverage report
9162
9163         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9164
9165         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9166
9167         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9168         extend test coverage
9169
9170         * test/data/auth/cancel.auth-script: test canceling an
9171         authentication
9172
9173         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9174         aren't used. in CVS history if we end up needing them.
9175
9176 2003-05-04  Havoc Pennington  <hp@pobox.com>
9177
9178         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9179         unit test
9180
9181         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9182         function, which assumed length was in # of strings, not bytes
9183
9184         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9185         missing coverage
9186
9187         * dbus/dbus-connection.c
9188         (_dbus_connection_queue_received_message): disable function for
9189         now, we are only using it in test mode
9190
9191         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9192         remove a mistaken FIXME
9193
9194 2003-05-04  Havoc Pennington  <hp@pobox.com>
9195
9196         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9197         unlock mutex on successful return, patch from Anders Gustafsson
9198
9199 2003-05-04  Havoc Pennington  <hp@pobox.com>
9200
9201         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9202         Anders Gustafsson
9203
9204 2003-05-04  Havoc Pennington  <hp@pobox.com>
9205
9206         * tools/dbus-launch.c: implement
9207
9208         * bus/main.c (main), bus/bus.c (bus_context_new):
9209         implement --print-pid and --fork
9210
9211 2003-05-03  Havoc Pennington  <hp@redhat.com>
9212
9213         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9214         the address had no value, and add to test suite. Fix and
9215         regression test from Miloslav Trmac
9216
9217 2003-05-03  Havoc Pennington  <hp@pobox.com>
9218
9219         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9220         watch is invalid when handled
9221
9222         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9223         dbus-launch utility to launch the bus from a shell script.  Didn't
9224         actually implement dbus-launch yet, it's just a placeholder still.
9225
9226 2003-05-03  Havoc Pennington  <hp@pobox.com>
9227
9228         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9229         daemon; also documents daemon config file, so replaces
9230         doc/config-file.txt. Corrected some stuff from config-file.txt in
9231         the process of moving it.
9232
9233 2003-05-03  Havoc Pennington  <hp@pobox.com>
9234
9235         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9236         add some man pages
9237
9238 2003-05-03  Colin Walters  <walters@verbum.org>
9239
9240         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9241         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9242
9243         * Makefile.am: Update to use new .pc versioning scheme.
9244
9245 2003-05-02  Havoc Pennington  <hp@redhat.com>
9246
9247         * bus/system.conf.in: allow send/receive to/from message bus
9248         service
9249
9250 2003-04-30  Havoc Pennington  <hp@redhat.com>
9251
9252         * configure.in: print a note when building with unit tests and
9253         without assertions
9254
9255 2003-04-30  Havoc Pennington  <hp@redhat.com>
9256
9257         * Makefile.am: add a check-local that complains if you didn't
9258         configure with --enable-tests
9259
9260 2003-04-29  Havoc Pennington  <hp@redhat.com>
9261
9262         * glib/dbus-gmain.c: docs cleanups
9263
9264         * dbus/dbus-types.h: add docs on int64 types
9265
9266         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9267         public API docs section
9268
9269 2003-04-29  Havoc Pennington  <hp@redhat.com>
9270
9271         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9272         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9273         parallel install API version, not with the D-BUS package version.
9274
9275         * HACKING: move some of README over here
9276
9277         * README: updates, and document API/ABI policy
9278
9279         * configure.in: reindentation
9280
9281 2003-04-29  Havoc Pennington  <hp@redhat.com>
9282
9283         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9284         to use this library" to be sure people have the right
9285         expectations.
9286
9287 2003-04-28  Havoc Pennington  <hp@redhat.com>
9288
9289         * configure.in: add --enable-docs which by default is auto yes if
9290         doxygen and db2html found, no otherwise; but can be forced on/off
9291
9292         * doc/Makefile.am: conditionalize whether to build docs on
9293         --enable-docs
9294
9295 2003-04-28  Havoc Pennington  <hp@redhat.com>
9296
9297         * configure.in: 0.10
9298
9299         * NEWS: update
9300
9301         * bus/system.conf.in: add <includedir>system.d</includedir>
9302
9303         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9304         username was provided but not uid
9305
9306         * bus/config-parser.c (struct BusConfigParser): keep track of
9307         whether the parser is toplevel or was included; change some
9308         of the error handling if it's included.
9309
9310 2003-04-27  Havoc Pennington  <hp@pobox.com>
9311
9312         Unbreak my code...
9313
9314         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9315         report correct status if we finish processing authentication
9316         inside this function.
9317
9318         * bus/activation.c (try_send_activation_failure): use
9319         bus_transaction_send_error_reply
9320
9321         * bus/connection.c (bus_connection_get_groups): return an error
9322         explaining the problem
9323
9324         * bus/bus.c (bus_context_check_security_policy): implement
9325         restriction here that inactive connections can only send the
9326         hello message. Also, allow bus driver to send anything to
9327         any recipient.
9328
9329         * bus/connection.c (bus_connection_complete): create the
9330         BusClientPolicy here instead of on-demand.
9331         (bus_connection_get_policy): don't return an error
9332
9333         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9334         sender field in message being replied to
9335
9336         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9337         causing it to return FALSE always
9338
9339         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9340         we checked sender rather than destination
9341
9342 2003-04-25  Havoc Pennington  <hp@redhat.com>
9343
9344         test suite is slightly hosed at the moment, will fix soon
9345
9346         * bus/connection.c (bus_connections_expire_incomplete): fix to
9347         properly disable the timeout when required
9348         (bus_connection_set_name): check whether we can remove incomplete
9349         connections timeout after we complete each connection.
9350
9351         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9352         probably still broken.
9353
9354         * bus/services.c (bus_registry_acquire_service): implement max
9355         number of services owned, and honor allow/deny rules on which
9356         services a connection can own.
9357
9358         * bus/connection.c (bus_connection_get_policy): report errors here
9359
9360         * bus/activation.c: implement limit on number of pending
9361         activations
9362
9363 2003-04-25  Havoc Pennington  <hp@redhat.com>
9364
9365         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9366         where we used >= 0 instead of != DBUS_UID_UNSET.
9367
9368 2003-04-25  Havoc Pennington  <hp@redhat.com>
9369
9370         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9371         were toggled without add/remove, fix from Anders Gustafsson
9372
9373 2003-04-24  Havoc Pennington  <hp@redhat.com>
9374
9375         * test/data/valid-config-files/basic.conf: add <limit> tags to
9376         this test
9377
9378         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9379         <limit> tag in configuration file.
9380
9381 2003-04-24  Havoc Pennington  <hp@redhat.com>
9382
9383         * bus/dispatch.c: somehow missed some name_is
9384
9385         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9386         (_dbus_timeout_set_interval): new
9387
9388         * bus/connection.c (bus_connections_setup_connection): record time
9389         when each connection is first set up, and expire them after the
9390         auth timeout passes.
9391
9392 2003-04-24  Havoc Pennington  <hp@redhat.com>
9393
9394         * dbus/dbus-message.c (dbus_message_name_is): rename
9395         (dbus_message_service_is): rename
9396         (dbus_message_sender_is): rename
9397         (dbus_message_get_service): rename
9398
9399 2003-04-24  Havoc Pennington  <hp@redhat.com>
9400
9401         * configure.in: add --enable-checks
9402
9403         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9404
9405         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9406         to use thread locks.
9407         (_dbus_connection_handler_destroyed_locked): move some private
9408         functions into proper docs group
9409
9410         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9411         _dbus_return_val_if_fail
9412
9413         Throughout: use dbus_return_if_fail
9414
9415 2003-04-23  James Willcox  <jwillcox@gnome.org>
9416
9417         * glib/dbus-glib.h:
9418         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9419         (dbus_connection_setup_with_g_main),
9420         (dbus_server_setup_with_g_main):
9421         * glib/test-dbus-glib.c: (main):
9422         * glib/test-thread-client.c: (main):
9423         * glib/test-thread-server.c: (new_connection_callback), (main):
9424         * tools/dbus-monitor.c: (main):
9425
9426         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9427         and dbus_server_setup_with_g_main().
9428
9429 2003-04-20  Havoc Pennington  <hp@pobox.com>
9430
9431         * doc/dbus-specification.sgml: document the restrictions on
9432         message and service names
9433
9434 2003-04-22  Havoc Pennington  <hp@redhat.com>
9435
9436         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9437         support, and do some code cleanups to share more code and
9438         speed up array marshal/demarshal.
9439
9440         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9441
9442         * configure.in: generate dbus-arch-deps.h
9443
9444         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9445         64-bit typecodes
9446
9447 2003-04-22  Havoc Pennington  <hp@redhat.com>
9448
9449         * test/data/valid-messages/opposite-endian.message: fix test
9450         to use proper type for rply field
9451
9452         * test/data/invalid-messages: add tests for below validation
9453
9454         * dbus/dbus-message.c (decode_header_data): validate field types,
9455         and validate that named fields are valid names
9456         (decode_name_field): consider messages in the
9457         org.freedesktop.Local. namespace to be invalid.
9458
9459         * dbus/dbus-string.c (_dbus_string_validate_name): new
9460
9461 2003-04-19  Havoc Pennington  <hp@pobox.com>
9462
9463         * bus/driver.c (bus_driver_handle_hello): check limits and
9464         return an error if they are exceeded.
9465
9466         * bus/connection.c: maintain separate lists of active and inactive
9467         connections, and a count of each. Maintain count of completed
9468         connections per user. Implement code to check connection limits.
9469
9470         * dbus/dbus-list.c (_dbus_list_unlink): export
9471
9472         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9473         number of bytes in the message queue for a connection
9474
9475 2003-04-18  Havoc Pennington  <hp@pobox.com>
9476
9477         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9478
9479         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9480         memleaks
9481
9482         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9483         on realloc be sure to update the pointer in the keyring
9484
9485         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9486         offset to avoid writing to unallocated memory
9487
9488         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9489         try the next mechanism, so we properly handle OOM
9490
9491         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9492         on OOM.
9493         (_dbus_keyring_new): fix OOM bug
9494         (_dbus_keyring_new_homedir): always set error; impose a maximum
9495         number of keys we'll load from the file, mostly to speed up the
9496         test suite and make its OOM checks more useful, but also for
9497         general sanity.
9498
9499         * dbus/dbus-auth.c (process_error_server): reject authentication
9500         if we get an error from the client
9501         (process_cancel): on cancel, send REJECTED, per the spec
9502         (process_error_client): send CANCEL if we get an error from the
9503         server.
9504
9505 2003-04-18  Havoc Pennington  <hp@pobox.com>
9506
9507         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9508         debug spew
9509
9510         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9511         handling problem
9512
9513         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9514         about DBUS_TEST_HOMEDIR once
9515
9516         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9517         the environment
9518
9519         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9520         config file so we test the right thing
9521
9522         Throughout: assorted docs improvements
9523
9524 2003-04-18  Havoc Pennington  <hp@pobox.com>
9525
9526         * glib/dbus-gmain.c: adapt to watch changes
9527
9528         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9529
9530         * dbus/dbus-server.h: remove dbus_server_handle_watch
9531
9532         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9533
9534         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9535         like DBusTimeout, so we don't need dbus_connection_handle_watch
9536         etc.
9537
9538 2003-04-17  Havoc Pennington  <hp@redhat.com>
9539
9540         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9541         database usage so it all goes via the DBusUserDatabase cache.
9542
9543 2003-04-17  Havoc Pennington  <hp@redhat.com>
9544
9545         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9546         there was an OOM watch we skipped, we always return TRUE so we
9547         iterate again to have a look at it again. Fixes test suite hang.
9548         Code rearrangement also lets us lose some memset and only iterate
9549         over callbacks once.
9550
9551         * bus/driver.c (bus_driver_handle_message): sense of test for
9552         reply was backward
9553
9554 2003-04-16  Havoc Pennington  <hp@pobox.com>
9555
9556         * doc/dbus-specification.sgml: make spec say serials are unsigned
9557
9558         * dbus/dbus-message.h: change message serials to unsigned
9559
9560         * dbus/dbus-connection.c: adapt to message serials being unsigned
9561
9562 2003-04-15  Havoc Pennington  <hp@pobox.com>
9563
9564         * bus/bus.c: create and keep around a shared DBusUserDatabase
9565         object.
9566
9567         * bus/connection.c (bus_connection_get_groups): don't cache
9568         groups for user in the connection object, since user database
9569         object now does that.
9570
9571 2003-04-16  Havoc Pennington  <hp@redhat.com>
9572
9573         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9574         list of size counters
9575         (_dbus_message_loader_putback_message_link): put back a popped link
9576
9577         * dbus/dbus-connection.c
9578         (dbus_connection_set_max_live_messages_size): rename
9579         max_received_size
9580         (dbus_connection_get_outgoing_size): get size of outgoing
9581         queue
9582         (_dbus_connection_set_connection_counter): remove this cruft
9583
9584 2003-04-14  Havoc Pennington  <hp@redhat.com>
9585
9586         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9587         caching, but at some point we might want to be able to use a
9588         different database.
9589
9590         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9591         SHA1 conf file to test the sha1 auth mechanism, since the regular
9592         test always uses EXTERNAL when available.
9593
9594         * configure.in,
9595         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9596         add conf file that requires use of sha1 auth
9597
9598 2003-04-13  Havoc Pennington  <hp@pobox.com>
9599
9600         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9601         from Philip Blundell to send messages and monitor them.
9602
9603 2003-04-13  Havoc Pennington  <hp@pobox.com>
9604
9605         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9606         callbacks
9607
9608         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9609         users
9610
9611         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9612         fix to only recover unused bytes if we're already authenticated
9613         (_dbus_transport_get_is_authenticated): fix to still mark us
9614         authenticated if there are unused bytes.
9615
9616         * bus/dispatch.c: implement security policy checking
9617
9618         * bus/connection.c (bus_transaction_send_from_driver): new
9619
9620         * bus/bus.c (bus_context_check_security_policy): new
9621
9622         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9623         now we just set the DBusError and it gets converted to an error
9624         reply.
9625
9626         * bus/connection.c (allow_user_function): enable code using actual
9627         data from the config file
9628
9629         * bus/policy.c (list_allows_user): handle wildcard rules for
9630         user/group connection perms
9631
9632 2003-04-13  Havoc Pennington  <hp@pobox.com>
9633
9634         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9635
9636         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9637
9638         * bus/policy.c (bus_policy_append_mandatory_rule)
9639         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9640         (bus_policy_append_group_rule): new functions
9641
9642 2003-04-12  Havoc Pennington  <hp@pobox.com>
9643
9644         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9645
9646         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9647         the pid/gid/uid, just for paranoia.
9648
9649         * test/break-loader.c (randomly_do_n_things): find a byte
9650         containing a type code, and randomly change it to a different
9651         type code.
9652
9653 2003-04-12  Havoc Pennington  <hp@pobox.com>
9654
9655         * bus/policy.h: change BusPolicy to be the thing from the config
9656         file, and rename old BusPolicy to BusClientPolicy
9657
9658         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9659         match change in how policy works
9660
9661         * dbus/dbus-internals.h: mark assert_not_reached as
9662         __attribute((noreturn))__
9663
9664 2003-04-11  Havoc Pennington  <hp@redhat.com>
9665
9666         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9667         the broadcast service. Use boolean return for ServiceExists.
9668
9669 2003-04-11  Havoc Pennington  <hp@redhat.com>
9670
9671         * configure.in: add another directory to look for qt in.
9672
9673 2003-04-11  Havoc Pennington  <hp@redhat.com>
9674
9675         * AUTHORS: add Colin Walters
9676
9677 2003-04-11  Havoc Pennington  <hp@redhat.com>
9678
9679         * NEWS: update
9680
9681         * configure.in: 0.9
9682
9683 2003-04-11  Havoc Pennington  <hp@redhat.com>
9684
9685         * bus/messagebus.in: remove pid file when stopping the
9686         message bus, since the bus won't have privileges to remove it
9687         itself.
9688
9689 2003-04-11  Havoc Pennington  <hp@redhat.com>
9690
9691         * bus/bus.c (bus_context_new): move credentials change after
9692         creating pidfile
9693
9694 2003-04-11  Havoc Pennington  <hp@pobox.com>
9695
9696         * test/decode-gcov.c: add "below average functions" to the
9697         coverage report, and change how some of the code works.
9698
9699         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9700         not in the coverage stats.
9701
9702         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9703         couple places so running the test suite doesn't result in megaspam.
9704
9705 2003-04-11  Havoc Pennington  <hp@pobox.com>
9706
9707         * bus/dispatch.c (check_existent_service_activation): accept a no
9708         memory error in a place we didn't before
9709
9710         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9711         in case the first one failed," since the test suite is less
9712         broken now.
9713
9714 2003-04-10  Havoc Pennington  <hp@pobox.com>
9715
9716         * bus/dispatch.c (check_segfault_service_activation): add test
9717         for launching an executable that just crashes.
9718
9719         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9720         don't leave a million cores. We'll see how portable this is.
9721
9722 2003-04-10  Havoc Pennington  <hp@pobox.com>
9723
9724         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9725         the possible parent failures before we fork, so that we don't
9726         fail to create a babysitter after creating the child.
9727
9728         * bus/activation.c (bus_activation_activate_service): kill child
9729         if we don't successfully complete the activation.
9730
9731 2003-04-10  Havoc Pennington  <hp@redhat.com>
9732
9733         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9734         the connection if it's disconnected
9735
9736         * bus/activation.c (bus_activation_service_created): use new
9737         transaction features to roll back removal of pending activation if
9738         we don't successfully create the service after all. Don't remove
9739         pending activation if the function fails.
9740
9741         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9742         (_dbus_list_insert_after_link): new code to facilitate
9743         services.c fixes
9744
9745         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9746         new functionality, so we can preallocate the ability to insert
9747         into a hash table.
9748
9749         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9750         allowing us to put custom hooks in a transaction to be used for
9751         cancelling said transaction
9752
9753         * doc/dbus-specification.sgml: add some discussion of secondary
9754         service owners, and disallow zero-length service names
9755
9756         * bus/services.c (bus_registry_acquire_service): new function,
9757         splits out part of bus_driver_handle_acquire_service() and fixes
9758         a bug where we didn't remove the service doing the acquiring
9759         from the secondary queue if we failed to remove the current owner
9760         from the front of the queue.
9761
9762 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9763
9764         * doc/dbus-specification.sgml:
9765         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9766
9767 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9768
9769         * bus/.cvsignore:
9770         * glib/.cvsignore:
9771         * test/.cvsignore:
9772         Added files to cvsignore
9773
9774         * dbus/dbus-message.h:
9775         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9776         Make get_named() take two out argument and return a boolean.
9777         (dbus_message_iter_get_args_valist):
9778         Update usage of get_named().
9779         (dbus_message_iter_append_byte):
9780         Fix typo
9781         (dbus_message_iter_append_named)
9782         Fix typo
9783         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9784         More tests.
9785
9786 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9787
9788         * dbus/dbus-marshal.[ch]:
9789         Add array_type_pos argument to _dbus_marshal_validate_arg.
9790         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9791
9792         * dbus/dbus-message.[ch]:
9793         Multi-dimensional arrays have full type specification in the
9794         outermost array. Iter code re-arranged to handle this.
9795         Added some more iter tests.
9796
9797         * doc/dbus-specification.sgml:
9798         Add me to authors.
9799         Remove old FIXME.
9800         Update new array encoding description.
9801         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9802
9803         * test/data/invalid-messages/array-with-mixed-types.message:
9804         * test/data/valid-messages/array-of-array-of-uint32.message:
9805         Change to the new array format.
9806
9807         * test/data/invalid-messages/too-short-dict.message:
9808         Fix bug in test.
9809
9810         * test/data/valid-messages/recursive-types.message:
9811         Fix up and extend test.
9812
9813 2003-04-10  Havoc Pennington  <hp@pobox.com>
9814
9815         * bus/dispatch.c: lots of fixes
9816
9817         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9818         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9819         that was crack, broke the test service.
9820
9821         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9822         handling to avoid piling up errors if we get a failure on the
9823         first address.
9824
9825         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9826         pid in assertion failures.
9827
9828         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9829         to some fixed size of file descriptor array. Don't return TRUE
9830         anytime a timeout exists, that led to lots of busy loop silliness
9831         in the tests.
9832
9833 2003-04-09  Havoc Pennington  <hp@redhat.com>
9834
9835         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9836         I'd checked this in earlier but hadn't.
9837
9838 2003-04-09  Havoc Pennington  <hp@redhat.com>
9839
9840         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9841         the activation test (man this is getting old!)
9842
9843 2003-04-09  Havoc Pennington  <hp@redhat.com>
9844
9845         * test/test-utils.c: use dispatch status function to fix this up
9846
9847         * bus/connection.c (connection_watch_callback): don't dispatch
9848         from here
9849         (connection_timeout_callback): don't dispatch from here
9850         (bus_connections_setup_connection): set the dispatch status function
9851         (bus_connection_disconnected): unset it
9852
9853         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9854         used to add a connection to be dispatched
9855         (_dbus_loop_iterate): do the dispatching at the end of each
9856         iteration
9857
9858         * dbus/dbus-connection.c
9859         (dbus_connection_set_dispatch_status_function): new function
9860         allowing us to fix up main loop usage
9861         (_dbus_connection_last_unref): free all the various function
9862         user data
9863         (dbus_connection_dispatch): call the DispatchStatusFunction
9864         whenever this function returns
9865         (dbus_connection_handle_watch): call DispatchStatusFunction
9866         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9867         (reply_handler_timeout): call DispatchStatusFunction
9868         (dbus_connection_flush): call DispatchStatusFunction
9869
9870 2003-04-09  Havoc Pennington  <hp@redhat.com>
9871
9872         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9873         a memory leak
9874
9875         * bus/dispatch.c (check_service_activated): fix bug in test
9876
9877         * dbus/dbus-mainloop.c (check_timeout): fix this up
9878
9879         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9880         verbose output so we can sort out output from different processes,
9881         e.g. in the activation case.
9882
9883 2003-04-08  Colin Walters  <walters@gnu.org>
9884
9885         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9886         the pid file.
9887         (bus_context_new): Set it.
9888         (bus_context_unref): Use it to delete the pid file.
9889
9890 2003-04-08  Havoc Pennington  <hp@redhat.com>
9891
9892         * test/data/invalid-messages/array-with-mixed-types.message:
9893         regression test that fails for the moment
9894
9895         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9896         tests for convenience
9897
9898         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9899         array of nil, it broke things.
9900
9901         * test/data/invalid-messages/array-of-nil.message: regression test
9902
9903         * test/data/valid-messages/array-of-array-of-uint32.message:
9904         happened to write this so added it to suite
9905
9906 2003-04-08  Havoc Pennington  <hp@redhat.com>
9907
9908         * bus/driver.c (bus_driver_handle_acquire_service): init
9909         retval/reply before checking name
9910
9911         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9912         recursion depth argument
9913
9914         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9915         in the public struct for future extension
9916
9917         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9918         typo
9919
9920         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9921         message
9922
9923         * doc/dbus-specification.sgml: fix typo
9924
9925 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9926
9927         Implemented recursive types, named types and new-style iters
9928
9929         * bus/driver.c:
9930         * glib/test-thread-client.c: (thread_func):
9931         * glib/test-thread-server.c: (handle_test_message):
9932         * test/test-service.c: (handle_echo):
9933         Update to new api
9934
9935         * dbus/Makefile.am:
9936         * dbus/dbus-dict.c:
9937         * dbus/dbus-dict.h:
9938         * dbus/dbus.h
9939         Remove DBusDict
9940
9941         * dbus/dbus-internals.c: (_dbus_type_to_string):
9942         Update for new types.
9943
9944         * dbus/dbus-marshal.[ch]:
9945         Implement recursive types and the new marshalling format.
9946         Remove hardcoded dict marshalling.
9947         Marshal named types.
9948
9949         * dbus/dbus-message-builder.c:
9950         Add BYTE_ARRAY.
9951         Remove references to old types
9952
9953         * dbus/dbus-message.[ch]:
9954         New non-refcounted iter API that supports recursive iters.
9955         Use iters for appending, including support for recursive
9956         iters.
9957         Add byte and named type support.
9958         Update everything to new marshalling formats.
9959         Add tests for new API.
9960
9961         * dbus/dbus-protocol.h:
9962         Remove old array types.
9963         Add types: BYTE, ARRAY, DICT, NAMED
9964
9965         * dbus/dbus-string.c:
9966         * dbus/dbus-sysdeps.c:
9967         Make parse_double locale safe.
9968
9969         * dbus/dbus-test-main.c:
9970         Call setlocale.
9971
9972         * dbus/dbus-test.c:
9973         Kill dict test
9974
9975         * doc/dbus-specification.sgml:
9976         Update spec
9977
9978         * test/data/incomplete-messages/missing-body.message:
9979         * test/data/invalid-messages/bad-boolean.message:
9980         * test/data/invalid-messages/bad-boolean-array.message:
9981         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9982         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9983         * test/data/invalid-messages/too-short-dict.message:
9984         * test/data/valid-messages/dict-simple.message:
9985         * test/data/valid-messages/dict.message:
9986         * test/data/valid-messages/emptiness.message:
9987         * test/data/valid-messages/lots-of-arguments.message:
9988         * test/data/valid-messages/no-padding.message:
9989         * test/data/valid-messages/recursive-types.message:
9990         Add missing NAME fields
9991         Fix up dicts & arrays
9992
9993         * test/data/invalid-messages/dict-with-nil-value.message:
9994         Removed, this is not invalid anymore.
9995
9996         * test/data/valid-messages/recursive-types.message:
9997         Add new test for deeply recursive types.
9998
9999 2003-04-07  Havoc Pennington  <hp@pobox.com>
10000
10001         * bus/driver.c (bus_driver_handle_acquire_service): return an
10002         error if you try to acquire a service that starts with ':'
10003
10004 2003-04-07  Havoc Pennington  <hp@redhat.com>
10005
10006         * doc/dbus-specification.sgml: require that base service names
10007         start with ':' and that the base service is created/deleted
10008         as first and last things a connection does on the bus
10009
10010         * bus/dispatch.c (check_existent_service_activation): lots more
10011         work on the activation test; it doesn't fully pass yet...
10012
10013         * test/test-service.c (main): fix so we don't memleak the
10014         connection to the message bus
10015         (filter_func): accept a message asking us to exit
10016
10017 2003-04-06  Havoc Pennington  <hp@pobox.com>
10018
10019         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10020         from Colin Walters
10021
10022         * configure.in: fixes to Qt detection from Colin Walters
10023
10024         * doc/Makefile.am: Only remove generated docbook dirs if they
10025         exist, from Colin Walters
10026
10027         * dbus/dbus-bus.c: change how we set well-known connections to
10028         NULL, so that it works if a single connection is stored in
10029         two well-known array slots.
10030
10031         * test/Makefile.am: remove a lot of stuff that isn't immediately
10032         useful, it's in CVS history if we want it.
10033
10034         * test/test-service.c: use dbus-mainloop instead of that
10035         watch.[hc] crack
10036
10037 2003-04-06  Havoc Pennington  <hp@pobox.com>
10038
10039         * dbus/Makefile.am: split lists of sources into stuff that goes in
10040         the library, util functions that go in the lib and are also used
10041         elsewhere, and util functions that are used in tests/daemon but
10042         don't go in the lib.
10043
10044         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10045         here so it can be used in test binaries also
10046
10047 2003-04-06  Havoc Pennington  <hp@pobox.com>
10048
10049         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10050         here in the parent process, so we can return an error if it
10051         fails. Also, move some of the code into the child so the parent
10052         is less hosed if we fail midway through.
10053
10054         * bus/bus.c (bus_context_new): move pidfile detection further up
10055         in the function, before we start overwriting sockets and such.
10056
10057         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10058
10059         * configure.in: add --with-system-pid-file and --with-system-socket
10060
10061 2003-04-06  Colin Walters  <walters@verbum.org>
10062
10063         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10064
10065         * bus/system.conf.in: Declare a pidfile.
10066
10067         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10068         create one (if appropriate).
10069
10070         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10071         (struct BusConfigParser) [pidfile]: New.
10072         (element_type_to_name, merge_included, start_busconfig_child)
10073         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10074         (bus_config_parser_unref): Free it.
10075         (bus_config_parser_get_pidfile): New function.
10076
10077         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10078
10079         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10080
10081         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10082
10083         * dbus/dbus-sysdeps.h: Prototype it.
10084
10085 2003-04-06  Havoc Pennington  <hp@pobox.com>
10086
10087         * bus/bus.c (bus_context_new): print the address in here, rather
10088         than in main(), because we need to do it before forking the daemon
10089
10090         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10091         on the service nonexistent error
10092
10093         * bus/driver.c (bus_driver_handle_acquire_service): set the
10094         sender on the AcquireService reply
10095
10096         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10097         server also listen on a UNIX socket so services can connect to it.
10098
10099 2003-04-06  Havoc Pennington  <hp@pobox.com>
10100
10101         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10102         so it detects deadlocks and also we actually init threads when
10103         debugging.
10104
10105 2003-04-06  Havoc Pennington  <hp@pobox.com>
10106
10107         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10108         save the domain socket name, and unlink it when we disconnect the
10109         server. Means that at least when we exit normally, we won't leave
10110         a bunch of junk in /tmp
10111
10112         * dbus/dbus-transport-unix.c
10113         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10114         memory management). (I was making a real change here but then
10115         didn't)
10116
10117 2003-04-06  Havoc Pennington  <hp@pobox.com>
10118
10119         * bus/bus.c (bus_context_new): fix wrong handling of
10120         server_data_slot_unref() in the error case.
10121
10122         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10123         "(condition) != 0" to _dbus_real_assert so that
10124         "_dbus_assert (pointer)" doesn't cause a warning
10125
10126         * bus/main.c (main): accept --print-address option to print out
10127         the message bus address
10128
10129         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10130
10131         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10132         "tmpdir" option to unix: address on client side
10133
10134         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10135         to unix: address
10136
10137         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10138         we can use to create sockets in the test suite.
10139
10140         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10141         cleanly. To be used for testing.
10142
10143         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10144
10145         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10146
10147         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10148         handle trying to call this when there's no servers active
10149
10150 2003-04-05  Havoc Pennington  <hp@pobox.com>
10151
10152         * NEWS: update
10153
10154         * configure.in: 0.8
10155
10156 2003-04-05  Havoc Pennington  <hp@pobox.com>
10157
10158         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10159         crash on startup. Need to get "try starting the daemon"
10160         in the test suite I guess. ;-)
10161
10162         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10163         tracked the number of open connections; it's better done in
10164         application-specific code as you want it to span all servers etc.
10165
10166 2003-04-05  Havoc Pennington  <hp@pobox.com>
10167
10168         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10169         patch from Colin Walters
10170
10171 2003-04-05  Havoc Pennington  <hp@pobox.com>
10172
10173         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10174         reality; in fact multiple mechanisms are allowed.
10175
10176         * dbus/dbus-internals.c (_dbus_real_assert)
10177         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10178         _dbus_assert_not_reached() into functions, so that they don't show
10179         up in basic block counts for test coverage, and don't use up as
10180         much disk space. Does mean slower execution speed though, so
10181         assumes --disable-asserts is the normal production case.
10182
10183 2003-04-05  Havoc Pennington  <hp@pobox.com>
10184
10185         * test/Makefile.am (dist-hook): also dist *.in files
10186
10187         * NEWS: update
10188
10189         * configure.in: 0.7
10190
10191 2003-04-05  Havoc Pennington  <hp@pobox.com>
10192
10193         * dbus/dbus-string.c: docs warning
10194
10195         * dbus/dbus-spawn.c: missing docs
10196
10197         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10198
10199 2003-04-05  Havoc Pennington  <hp@pobox.com>
10200
10201         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10202         magic from GLib
10203
10204         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10205         to -1 once we've reaped the babysitter
10206         (_dbus_babysitter_handle_watch): do as much work as we can, not
10207         just one go of it
10208
10209         * bus/activation.c: add code using DBusBabysitter so that we
10210         handle it when a service fails to start up properly.
10211         (bus_activation_service_created): don't remove the activation
10212         entries as we go, just let them get removed when we free the pending
10213         activation. Unref reply messages after sending them.
10214
10215 2003-04-05  Havoc Pennington  <hp@pobox.com>
10216
10217         * test/decode-gcov.c (main): print per-directory stats in the report
10218
10219         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10220
10221 2003-04-05  Havoc Pennington  <hp@pobox.com>
10222
10223         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10224
10225         * test/decode-gcov.c: hack up a little program to suck data
10226         out of gcov files. Yes this is sort of silly.
10227
10228         * configure.in: define something in config.h and do an
10229         AM_CONDITIONAL when gcov is enabled
10230
10231 2003-04-04  Havoc Pennington  <hp@redhat.com>
10232
10233         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10234         return a "babysitter" object that is used to monitor the status of
10235         the spawned process and reap it when required.
10236
10237         * test/test-segfault.c, test/test-exit.c,
10238         test/test-sleep-forever.c: binaries that do various lame things,
10239         used in the test suite.
10240
10241         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10242
10243 2003-04-03  Havoc Pennington  <hp@pobox.com>
10244
10245         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10246         in preparation for modifying it, dbus-sysdeps is getting
10247         a bit unmanageable.
10248
10249 2003-04-03  Havoc Pennington  <hp@redhat.com>
10250
10251         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10252         have multiple ones
10253
10254         * bus/*.[hc]: adapt to mainloop change
10255
10256 2003-04-03  Havoc Pennington  <hp@redhat.com>
10257
10258         * bus/activation.c (load_directory): fix up memleaks
10259         (bus_activation_entry_free): free the entry
10260
10261         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10262         we get one from the message bus; fix memleaks.
10263
10264         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10265
10266 2003-04-03  Havoc Pennington  <hp@pobox.com>
10267
10268         * bus/config-parser.c (bus_config_parser_unref): free
10269         list of mechanisms, bug discovered by test suite enhancements
10270         (putting system.conf and session.conf into suite)
10271
10272         * test/Makefile.am, test/test-service.c: add placeholder for a
10273         test service that we'll activate as part of test suite. Doesn't
10274         do anything yet.
10275
10276         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10277         setting NULL value, and use system malloc not dbus_malloc()
10278         when we have unavoidable memleakage.
10279
10280         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10281         didn't work, and support DBUS_BUS_ACTIVATION.
10282
10283         * bus/activation.c (child_setup): pass our well-known bus type to
10284         the child
10285
10286         * bus/config-parser.c: support <type> to specify well-known type
10287
10288         * doc/dbus-specification.sgml: document the env variables to
10289         locate well-known buses and find service activator
10290
10291 2003-04-02  Havoc Pennington  <hp@redhat.com>
10292
10293         * test/Makefile.am (all-local): add a rule to copy tests to
10294         builddir, so we can have generated tests. Use this to remove the
10295         silly hack for testing system.conf and session.conf. Will use this
10296         shortly to generate .service files pointing to test binaries.
10297
10298 2003-04-02  Havoc Pennington  <hp@redhat.com>
10299
10300         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10301         current alloc and needed new length, not max of the doubled
10302         allocation and needed new length. Also, when building tests,
10303         don't do the double-allocation stuff, just realloc every time.
10304
10305 2003-04-02  Havoc Pennington  <hp@redhat.com>
10306
10307         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10308         in error messages
10309         (_dbus_string_get_dirname): new
10310         (_dbus_sysdeps_test): new
10311         (_dbus_directory_open): include dirnames in error messages
10312
10313         * bus/config-parser.c: interpret <include> and <includedir> and
10314         <servicedir> relative to config file location if the given
10315         filename is not absolute.
10316
10317         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10318
10319 2003-04-02  Havoc Pennington  <hp@redhat.com>
10320
10321         * bus/connection.c (bus_transaction_send_error_reply): set sender
10322         service for the error, and unref the reply on success
10323
10324         * bus/activation.c: convert to use BusTransaction so OOM can be
10325         handled correctly
10326         (bus_activation_service_created): set sender of the message
10327
10328 2003-04-01  Havoc Pennington  <hp@redhat.com>
10329
10330         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10331         <includedir> (at least mostly)
10332
10333         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10334         first, then the user ID
10335
10336 2003-04-01  Havoc Pennington  <hp@pobox.com>
10337
10338         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10339         function
10340
10341         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10342
10343         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10344
10345         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10346         socket 0777, and unlink any existing socket.
10347
10348         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10349         the configuration file so specifies; set up auth mechanism
10350         restrictions
10351
10352         * bus/config-parser.c (bus_config_parser_content): add support
10353         for <fork> option and fill in code for <auth>
10354
10355         * bus/system.conf.in: add <fork/> to default configuration,
10356         and limit auth mechanisms to EXTERNAL
10357
10358         * doc/config-file.txt (Elements): add <fork>
10359
10360         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10361         (_dbus_change_identity): new function
10362
10363 2003-03-31  Havoc Pennington  <hp@redhat.com>
10364
10365         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10366         (_dbus_listen_unix_socket): fix off-by-one error in null
10367         termination spotted by Nalin
10368
10369 2003-03-31  Havoc Pennington  <hp@redhat.com>
10370
10371         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10372         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10373         having a real home directory available.
10374
10375 2003-03-31  Havoc Pennington  <hp@redhat.com>
10376
10377         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10378
10379         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10380
10381         * configure.in: add support for specifying a style of init script
10382         to install
10383
10384 2003-03-31  Havoc Pennington  <hp@redhat.com>
10385
10386         Fix some annoying DBusString API and fix all affected code.
10387
10388         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10389         max_length argument
10390         (_dbus_string_get_data): change to return string instead of using
10391         an out param
10392         (_dbus_string_get_const_data): ditto
10393         (_dbus_string_get_data_len): ditto
10394         (_dbus_string_get_const_data_len): ditto
10395
10396 2003-03-31  Havoc Pennington  <hp@redhat.com>
10397
10398         * bus/main.c (main): fix up the command line arguments to be nicer
10399
10400 2003-03-31  Havoc Pennington  <hp@redhat.com>
10401
10402         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10403         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10404         final location that lands in the config file
10405
10406         * bus/config-loader-expat.c (bus_config_load): fix type of
10407         XML_Parser variable
10408
10409         * doc/TODO: remove TODO item for dbus_bus_get()
10410
10411         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10412
10413 2003-03-31  Havoc Pennington  <hp@pobox.com>
10414
10415         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10416         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10417         argument since they are always client side
10418
10419         * dbus/dbus-server.c (dbus_server_get_address): new function
10420
10421         * bus/main.c (main): take the configuration file as an argument.
10422
10423         * test/data/valid-config-files/debug-allow-all.conf: new file to
10424         use with dispatch.c tests for example
10425
10426         * bus/test-main.c (main): require test data dir
10427
10428         * bus/bus.c (bus_context_new): change this to take a
10429         configuration file name as argument
10430
10431         * doc/config-file.txt (Elements): add <servicedir>
10432
10433         * bus/system.conf, bus/session.conf: new files
10434
10435         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10436         well-known socket if none set
10437
10438         * configure.in: create system.conf and session.conf
10439
10440 2003-03-30  Havoc Pennington  <hp@pobox.com>
10441
10442         * bus/config-parser.c: hacking
10443
10444         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10445         to shut down, since it could cause weirdness with the DBusList
10446         lock
10447
10448         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10449         link-oriented stack routines
10450         (alloc_link): free the mempool if the first alloc from it fails
10451
10452         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10453
10454         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10455         from GLib
10456         (_dbus_string_skip_white): new
10457
10458         * doc/config-file.txt (Elements): add <includedir>
10459
10460 2003-03-28  Havoc Pennington  <hp@pobox.com>
10461
10462         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10463         (_dbus_string_copy_data): new functions
10464
10465 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10466
10467         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10468         * dbus/dbus-bus.h:
10469         Add dbus_bus_get.
10470
10471         * dbus/dbus-memory.c:
10472         Fix a doc comment.
10473
10474 2003-03-28  Havoc Pennington  <hp@pobox.com>
10475
10476         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10477         I think it may have just been superstition. Not sure.
10478
10479         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10480         failures that were not being handled.
10481
10482         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10483
10484         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10485         row that will fail on out-of-memory.
10486
10487         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10488         function for testing out-of-memory handling.
10489
10490         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10491         allocation functions, they do map exactly to the expat ones.
10492
10493 2003-03-27  Havoc Pennington  <hp@redhat.com>
10494
10495         * bus/config-loader-libxml.c (bus_config_load): add another error
10496         check
10497
10498 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10499
10500         * doc/TODO:
10501         Add note about automatic service activation.
10502
10503         * doc/dbus-specification.sgml:
10504         Rename the specification and clarify a few things.
10505
10506 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10507
10508         * Doxyfile.in:
10509         * dbus/dbus-address.c:
10510         * dbus/dbus-dict.c:
10511         * dbus/dbus-marshal.c:
10512         * dbus/dbus-server-debug-pipe.c:
10513         * dbus/dbus-transport-unix.c:
10514         Fix documentation warnings.
10515
10516 2003-03-26  Havoc Pennington  <hp@pobox.com>
10517
10518         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10519         after every test so it's quick and easy to see which leaked, and
10520         so we test multiple dbus_shutdown() calls
10521
10522         * configure.in: change configure.in XML stuff to also support
10523         expat
10524
10525         * config-loader-libxml.c: some hacking
10526
10527         * config-loader-expat.c: some hacking
10528
10529         * config-parser.c: some hacking, plus tests
10530
10531 2003-03-25  Havoc Pennington  <hp@redhat.com>
10532
10533         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10534
10535         * configure.in: add --with-xml option to specify XML library,
10536         right now only libxml is supported.
10537
10538         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10539         nonworking code between home and work, still just stubs
10540
10541 2003-03-24  Havoc Pennington  <hp@redhat.com>
10542
10543         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10544         file
10545
10546         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10547         NULL argument for "message" if the error is a well-known one,
10548         fill in a generic message in this case.
10549
10550         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10551         favor of DBusError
10552
10553         * bus/test.c (bus_test_flush_bus): add
10554
10555         * bus/policy.c (bus_policy_test): test code stub
10556
10557 2003-03-24  Havoc Pennington  <hp@pobox.com>
10558
10559         * bus/connection.c (bus_connections_setup_connection): set up
10560         the "can this user connect" function, but it always returns
10561         TRUE until we have a config file parser so we can have a config
10562         file that allows connections.
10563
10564 2003-03-23  Havoc Pennington  <hp@pobox.com>
10565
10566         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10567         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10568         the mutex, so we can check for proper memory management
10569         and OOM handling.
10570
10571         * dbus/dbus-dataslot.c: remove the mutex from
10572         DBusDataSlotAllocator and lock it manually when using it,
10573         to simplify fitting it into the global slots framework.
10574
10575         * dbus/dbus-threads.c (init_static_locks): rework how we're
10576         handling global locks so they are easily shut down.
10577
10578         * bus/policy.c (bus_policy_append_rule): fix
10579
10580         * bus/test-main.c (main): check for memleaks
10581
10582         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10583         test suite check for memleaks
10584
10585         * dbus/dbus-memory.c: add support in test mode for tracking
10586         number of outstanding blocks
10587
10588 2003-03-23  Havoc Pennington  <hp@pobox.com>
10589
10590         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10591         policies code
10592
10593         * dbus/dbus-hash.h: add ULONG hash keys
10594
10595         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10596         (_dbus_get_group_id): new function
10597
10598 2003-03-20  Havoc Pennington  <hp@redhat.com>
10599
10600         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10601         new function
10602         (dbus_connection_get_unix_user): new function
10603
10604 2003-03-20  Havoc Pennington  <hp@pobox.com>
10605
10606         * bus/connection.c (bus_connection_send_oom_error): assert that
10607         message has a sender
10608         (connection_execute_transaction): ditto
10609         (bus_connection_preallocate_oom_error): fix to set the sender, and
10610         set recipient to the destination service, not the bus driver
10611
10612         * bus/policy.c: hacking
10613
10614         * dbus/dbus-message.c (dbus_message_service_is): new function
10615         (dbus_message_sender_is): new
10616
10617 2003-03-19  Havoc Pennington  <hp@redhat.com>
10618
10619         * bus/policy.c: start sketching code for policy restrictions on
10620         what connections can do.
10621
10622 2003-03-18  Havoc Pennington  <hp@redhat.com>
10623
10624         * doc/TODO: some notes on high-level todo items. Little nitpick
10625         stuff is all in @todo, so no need to add it here.
10626
10627         * doc/config-file.txt: some notes on how config file might look
10628
10629 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10630
10631         * configure.in: 0.6
10632
10633         * NEWS: Update.
10634
10635 2003-03-17  Havoc Pennington  <hp@redhat.com>
10636
10637         * dbus/dbus-internals.h: add gcc attributes so that
10638         our printf-style functions warn on bad arguments to
10639         format
10640
10641         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10642         format bug
10643
10644         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10645         printf format bug
10646
10647 2003-03-17  Havoc Pennington  <hp@redhat.com>
10648
10649         * bus/test-main.c (main): make it print something as it runs
10650         so make check doesn't look stuck
10651
10652         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10653         from CVS, now obsolete
10654
10655 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10656
10657         * bus/dispatch.c: (bus_dispatch):
10658         Refetch the service name since it may have been reallocated
10659         when dbus_message_set_sender was called.
10660
10661         * dbus/dbus-sysdeps.c: (_dbus_accept):
10662         Add address and address length variables and use them to stop
10663         valgrind from complaining.
10664
10665 2003-03-17  Havoc Pennington  <hp@pobox.com>
10666
10667         All tests pass, no memleaks, no valgrind complaints.
10668
10669         * bus/test.c: refcount handler_slot
10670
10671         * bus/connection.c (bus_connections_new): refcount
10672         connection_data_slot
10673
10674         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10675         bytes so that auth scripts pass.
10676
10677         * bus/dispatch.c: init message_handler_slot so it gets allocated
10678         properly
10679
10680         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10681
10682         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10683         dealloc server_pipe_hash when no longer used for benefit of
10684         leak checking
10685
10686         * dbus/dbus-auth.c (process_command): memleak fix
10687
10688         * bus/dispatch.c (check_hello_message): memleak fix
10689
10690 2003-03-16  Havoc Pennington  <hp@pobox.com>
10691
10692         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10693
10694 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10695
10696         * bus/activation.c (bus_activation_activate_service): Append
10697         the pending activation entry to the list of pending activations.
10698
10699 2003-03-16  Havoc Pennington  <hp@pobox.com>
10700
10701         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10702         connections
10703
10704         * dbus/dbus-address.c (create_entry): fix OOM handling when
10705         failing to alloc entry->method
10706
10707 2003-03-16  Havoc Pennington  <hp@pobox.com>
10708
10709         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10710         the watch
10711
10712         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10713         add some missing dbus_set_result
10714
10715         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10716         alloc the DBusMessageHandler
10717
10718         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10719         the transport here, since we call this from the finalizer; it
10720         resulted in a double-finalize.
10721
10722         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10723         where we tried to use transport->connection that was NULL,
10724         happened when transport was disconnected early on due to OOM
10725
10726         * bus/*.c: adapt to handle OOM for watches/timeouts
10727
10728         * dbus/dbus-transport-unix.c: port to handle OOM during
10729         watch handling
10730
10731         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10732         reference to unused bytes instead of a copy
10733
10734         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10735         out of memory
10736
10737         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10738         FALSE on OOM
10739
10740         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10741         of memory
10742
10743 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10744
10745         * doc/dbus-specification.sgml:
10746         Document reply message for ActivateService.
10747
10748 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10749
10750         * bus/activation.c: (bus_pending_activation_entry_free),
10751         (bus_pending_activation_free), (bus_activation_new),
10752         (bus_activation_unref), (bus_activation_service_created),
10753         (bus_activation_activate_service):
10754         * bus/activation.h:
10755         * bus/bus.c: (bus_context_new):
10756         * bus/desktop-file.c: (new_section):
10757         * bus/driver.c: (bus_driver_send_service_deleted),
10758         (bus_driver_handle_activate_service):
10759         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10760         * bus/services.h:
10761         * dbus/dbus-connection.c:
10762         (dbus_connection_send_with_reply_and_block):
10763         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10764         * dbus/dbus-protocol.h:
10765         Make activation work better. Now pending activations will be queued
10766         and the daemon won't try to activate services that are already registered.
10767
10768 2003-03-16  Havoc Pennington  <hp@pobox.com>
10769
10770         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10771         connection data
10772
10773         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10774         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10775
10776 2003-03-16  Havoc Pennington  <hp@pobox.com>
10777
10778         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10779         this. always run the test suite before commit...
10780
10781         * bus/*: adapt to DBusConnection API changes
10782
10783         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10784         requires renaming stuff to avoid dbus_connection_dispatch name
10785         conflict.
10786
10787         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10788         function
10789
10790         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10791         separate from _dbus_message_loader_return_buffer()
10792
10793         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10794         this, because it's now always broken to use; the number of
10795         messages in queue vs. the number still buffered by the message
10796         loader is undefined/meaningless. Should use
10797         dbus_connection_get_dispatch_state().
10798         (dbus_connection_dispatch): rename from
10799         dbus_connection_dispatch_message
10800
10801 2003-03-16  Havoc Pennington  <hp@pobox.com>
10802
10803         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10804         implementation
10805
10806 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10807
10808         * dbus/dbus-connection.c:
10809         (dbus_connection_send_with_reply_and_block):
10810         Decrease connection->n_incoming when removing an entry
10811         from the list.
10812         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10813         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10814         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10815         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10816         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10817         (dbus_dict_get_byte_array):
10818         Handle NULL arrays and strings. Also add support for byte arrays.
10819
10820         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10821         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10822         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10823         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10824         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10825         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10826         * dbus/dbus-marshal.h:
10827         Add support for marshalling and demarshalling empty arrays and strings.
10828
10829         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10830         (dbus_message_append_string_array),
10831         (dbus_message_iter_get_boolean),
10832         (dbus_message_iter_get_boolean_array),
10833         (dbus_message_iter_get_int32_array),
10834         (dbus_message_iter_get_uint32_array),
10835         (dbus_message_iter_get_double_array),
10836         (dbus_message_iter_get_byte_array),
10837         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10838         (check_message_handling):
10839         Add support for getting empty arrays and dicts.
10840
10841         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10842         Don't do any validation at all for now, that's better than just checking
10843         for ASCII.
10844
10845         * test/data/valid-messages/emptiness.message:
10846         New test message with lots of empty arrays.
10847
10848 2003-03-16  Havoc Pennington  <hp@pobox.com>
10849
10850         * dbus/dbus-connection.c
10851         (_dbus_connection_queue_received_message_link): new function that
10852         can't fail due to OOM
10853
10854         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10855         new function pops a message together with a list link
10856         containing it.
10857
10858         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10859         message queuing functions to avoid needing to alloc memory
10860
10861 2003-03-16  Havoc Pennington  <hp@pobox.com>
10862
10863         Oops - test code was only testing failure of around 30 of the
10864         mallocs in the test path, but it turns out there are 500+
10865         mallocs. I believe this was due to misguided linking setup such
10866         that there was one copy of dbus_malloc etc. in the daemon and one
10867         in the shared lib, and only daemon mallocs were tested. In any
10868         case, the test case now tests all 500+ mallocs, and doesn't pass
10869         yet, though there are lots of fixes in this patch.
10870
10871         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10872         this so that it doesn't need to allocate memory, since it
10873         has no way of indicating failure due to OOM (and would be
10874         annoying if it did).
10875
10876         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10877
10878         * bus/Makefile.am: rearrange to create two self-contained
10879         libraries, to avoid having libraries with overlapping symbols.
10880         that was resulting in weirdness, e.g. I'm pretty sure there
10881         were two copies of global static variables.
10882
10883         * dbus/dbus-internals.c: move the malloc debug stuff to
10884         dbus-memory.c
10885
10886         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10887         empty.
10888
10889         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10890
10891         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10892         on failure.
10893
10894         * bus/dispatch.c (bus_dispatch_add_connection): free
10895         message_handler_slot when no longer using it, so
10896         memory leak checkers are happy for the test suite.
10897
10898         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10899
10900         * bus/bus.c (new_connection_callback): disconnect in here if
10901         bus_connections_setup_connection fails.
10902
10903         * bus/connection.c (bus_connections_unref): fix to free the
10904         connections
10905         (bus_connections_setup_connection): if this fails, don't
10906         disconnect the connection, just be sure there are no side
10907         effects.
10908
10909         * dbus/dbus-string.c (undo_alignment): unbreak this
10910
10911         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10912         leaking
10913         (_dbus_auth_new): fix the order in which we free strings
10914         on OOM failure
10915
10916         * bus/connection.c (bus_connection_disconnected): fix to
10917         not send ServiceDeleted multiple times in case of memory
10918         allocation failure
10919
10920         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10921         get the base service name
10922         (dbus_bus_register_client): don't return base service name,
10923         instead store it on the DBusConnection and have an accessor
10924         function for it.
10925         (dbus_bus_register_client): rename dbus_bus_register()
10926
10927         * bus/dispatch.c (check_hello_message): verify that other
10928         connections on the bus also got the correct results, not
10929         just the one sending hello
10930
10931 2003-03-15  Havoc Pennington  <hp@pobox.com>
10932
10933         Make it pass the Hello handling test including all OOM codepaths.
10934         Now to do other messages...
10935
10936         * bus/services.c (bus_service_remove_owner): fix crash when
10937         removing owner from an empty list of owners
10938         (bus_registry_ensure): don't leave service in the list of
10939         a connection's owned services if we fail to put the service
10940         in the hash table.
10941
10942         * bus/connection.c (bus_connection_preallocate_oom_error): set
10943         error flag on the OOM error.
10944
10945         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10946         handle _dbus_transport_set_connection failure
10947
10948         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10949         to create watches up front and simply enable/disable them as
10950         needed.
10951         (unix_connection_set): this can now fail on OOM
10952
10953         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10954         of enabling/disabling a watch or timeout.
10955
10956         * bus/loop.c (bus_loop_iterate): don't touch disabled
10957         watches/timeouts
10958
10959         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10960
10961 2003-03-15  Havoc Pennington  <hp@pobox.com>
10962
10963         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10964         write useful test code, after all that futzing around ;-)
10965
10966         Test does not yet pass because we can't handle OOM in
10967         _dbus_transport_messages_pending (basically,
10968         dbus_connection_preallocate_send() does not prealloc the write
10969         watch). To fix this, I think we need to add new stuff to
10970         set_watch_functions, namely a SetEnabled function so we can alloc
10971         the watch earlier, then enable it later.
10972
10973         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10974         dbus-memory.c to the convenience lib
10975
10976         * bus/test.c: rename some static functions to keep them clearly
10977         distinct from stuff in connection.c. Handle client disconnection.
10978
10979 2003-03-14  Havoc Pennington  <hp@pobox.com>
10980
10981         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10982         transport, tests more of the real codepath. Set up clients
10983         with bus_setup_debug_client.
10984
10985         * bus/test.c (bus_setup_debug_client): function to set up debug
10986         "clients" on the main loop
10987
10988         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10989         support
10990
10991         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10992         server type
10993
10994         * dbus/dbus-server-debug.c: support a debug server based on pipes
10995
10996         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10997         (_dbus_close): new function
10998
10999         * configure.in: check for socketpair
11000
11001 2003-03-14  Havoc Pennington  <hp@redhat.com>
11002
11003         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11004         cheesy hack
11005
11006         * dbus/dbus-transport-debug.c: rework this a good bit to be
11007         less complicated. hopefully still works.
11008
11009         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11010         manually
11011
11012         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11013         after running it
11014
11015         * dbus/dbus-message.c (dbus_message_copy): rename from
11016         dbus_message_new_from_message, fix it up to copy
11017         all the message fields, add test case
11018
11019         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11020         not quite passing yet
11021
11022 2003-03-14  Havoc Pennington  <hp@pobox.com>
11023
11024         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11025         until no work remains" in test code. (the large diff here
11026         is just code movement, no actual changes)
11027
11028         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11029         1, no point waiting around for test code.
11030         (_dbus_server_debug_accept_transport): unref the timeout
11031         after adding it (right?)
11032
11033         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11034
11035 2003-03-13  Havoc Pennington  <hp@redhat.com>
11036
11037         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11038         out of memory
11039
11040         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11041         of memory
11042
11043         * dbus/dbus-connection.h: Make AddWatchFunction and
11044         AddTimeoutFunction return a bool so they can fail on out-of-memory
11045
11046         * bus/bus.c (bus_context_new): set up timeout handlers
11047
11048         * bus/connection.c (bus_connections_setup_connection): set up
11049         timeout handlers
11050
11051         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11052         can fail
11053
11054         * bus/bus.c (bus_context_new): adapt to changes
11055
11056         * bus/connection.c: adapt to changes
11057
11058         * test/watch.c: adapt to DBusWatch changes
11059
11060         * bus/dispatch.c (bus_dispatch_test): started adding this but
11061         didn't finish
11062
11063 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11064
11065         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11066
11067 2003-03-13  Havoc Pennington  <hp@pobox.com>
11068
11069         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11070         set up a test framework as for the library
11071
11072 2003-03-12  Havoc Pennington  <hp@pobox.com>
11073
11074         Throughout: purge global variables, introduce BusActivation,
11075         BusConnections, BusRegistry, etc. objects instead.
11076
11077         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11078         message bus object
11079
11080         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11081         going to redo this a bit differently I think
11082
11083 2003-03-12  Havoc Pennington  <hp@redhat.com>
11084
11085         Mega-patch that gets the message bus daemon initially handling
11086         out-of-memory. Work still needed. Also lots of random
11087         moving stuff to DBusError instead of ResultCode.
11088
11089         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11090
11091         * dbus/dbus-connection.c
11092         (dbus_connection_send_with_reply_and_block): use DBusError
11093
11094         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11095         DBusResultCode
11096
11097         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11098         code here, as the only failure possible is OOM.
11099
11100         * bus/connection.c (bus_connection_disconnect):
11101         rename bus_connection_disconnected as it's a notification only
11102
11103         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11104         "name" on get_args failure, should be done by get_args;
11105         don't disconnect client for bad args, just return an error.
11106         (bus_driver_handle_service_exists): ditto
11107
11108         * bus/services.c (bus_services_list): NULL-terminate returned array
11109
11110         * bus/driver.c (bus_driver_send_service_lost)
11111         (bus_driver_send_service_acquired): send messages from driver to a
11112         specific client to the client's unique name, not to the broadcast
11113         service.
11114
11115         * dbus/dbus-message.c (decode_header_data): reject messages that
11116         contain no name field
11117         (_dbus_message_get_client_serial): rename to
11118         dbus_message_get_serial and make public
11119         (_dbus_message_set_serial): rename from set_client_serial
11120         (_dbus_message_set_reply_serial): make public
11121         (_dbus_message_get_reply_serial): make public
11122
11123         * bus/connection.c (bus_connection_foreach): allow stopping
11124         iteration by returning FALSE from foreach function.
11125
11126         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11127         (dbus_connection_free_preallocated_send)
11128         (dbus_connection_preallocate_send): new API for sending a message
11129         without possibility of malloc failure.
11130         (dbus_connection_send_message): rename to just
11131         dbus_connection_send (and same for whole function family)
11132
11133         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11134
11135         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11136
11137         * bus/activation.c: handle/return errors
11138
11139         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11140
11141         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11142         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11143         (_dbus_result_from_errno): move to this file
11144
11145 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11146
11147         * dbus/dbus-marshal.c:
11148         (_dbus_marshal_set_string):
11149         Take a length argument so we can marshal the correct string
11150         length.
11151
11152         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11153         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11154         (_dbus_marshal_test):
11155         * dbus/dbus-marshal.h:
11156         Add support for marshalling and demarshalling dicts.
11157
11158         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11159         Add support for TYPE DICT.
11160
11161         * dbus/dbus-message.c: (set_string_field):
11162         Adjust header padding.
11163
11164         (dbus_message_append_args_valist), (dbus_message_append_dict),
11165         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11166         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11167         (check_message_handling), (check_have_valid_message):
11168         * dbus/dbus-message.h:
11169         Add functions for setting and getting dicts.
11170
11171         * dbus/dbus-protocol.h:
11172         Add DBUS_TYPE_DICT.
11173
11174         * dbus/dbus.h:
11175         Add dbus-dict.h
11176
11177         * doc/dbus-specification.sgml:
11178         Add information about how dicts are marshalled.
11179
11180         * test/data/invalid-messages/dict-with-nil-value.message:
11181         * test/data/invalid-messages/too-short-dict.message:
11182         * test/data/valid-messages/dict-simple.message:
11183         * test/data/valid-messages/dict.message:
11184         Add sample messages containing dicts.
11185
11186 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11187
11188         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11189
11190 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11191
11192         * dbus/Makefile.am:
11193         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11194         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11195         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11196         (dbus_dict_set_double), (dbus_dict_set_string),
11197         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11198         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11199         (dbus_dict_set_string_array), (_dbus_dict_test):
11200         * dbus/dbus-dict.h:
11201         Fix according to comments from Havoc.
11202
11203 2003-03-06  Michael Meeks  <michael@server.home>
11204
11205         * configure.in: if we don't have kde-config, disable have_qt.
11206
11207 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11208
11209         * dbus/Makefile.am:
11210         Add dbus-dict.[ch]
11211
11212         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11213         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11214         (dbus_dict_remove), (dbus_dict_get_value_type),
11215         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11216         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11217         (dbus_dict_put_double), (dbus_dict_put_string),
11218         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11219         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11220         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11221         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11222         (dbus_dict_get_double), (dbus_dict_get_string),
11223         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11224         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11225         (dbus_dict_get_string_array), (_dbus_dict_test):
11226         * dbus/dbus-dict.h:
11227         Add DBusDict implementation
11228
11229         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11230         * dbus/dbus-test.h:
11231         Add _dbus_dict_test
11232
11233 2003-03-04  Havoc Pennington  <hp@pobox.com>
11234
11235         * test/data/auth/*: adapt to changes
11236
11237         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11238         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11239         userid
11240
11241         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11242         more stuff from being in a context name, to make the protocol
11243         simpler to deal with
11244
11245         * dbus/dbus-errors.c (dbus_error_has_name): new function
11246         (dbus_error_is_set): new function
11247
11248         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11249         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11250
11251         * dbus/dbus-connection.c (dbus_connection_flush): also read
11252         messages during a flush operation
11253
11254         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11255
11256 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11257
11258         * configure.in: Check for gethostbyname on Solaris.
11259
11260         * dbus/dbus-transport.c: (_dbus_transport_open):
11261         Remove duplicate "tcp" entry.
11262
11263         * doc/dbus-specification.sgml:
11264         Clarify some things.
11265
11266 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11267
11268         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11269         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11270         (_dbus_keyring_test):
11271         * dbus/dbus-md5.c: (_dbus_md5_compute):
11272         * dbus/dbus-sha.c: (_dbus_sha_compute):
11273         Plug memory leaks.
11274
11275 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11276
11277         * README: Add some things.
11278
11279 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11280
11281         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11282         after case DBUS_TYPE_BOOELAN.
11283
11284 2003-03-02  Havoc Pennington  <hp@pobox.com>
11285
11286         * test/break-loader.c (randomly_set_extreme_ints): add test that
11287         sets really huge and small integers
11288
11289         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11290         that length of boolean array fits in the string, and that
11291         string has room for boolean value in single-bool case.
11292
11293         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11294         optional value to "ALIGN" command which is what to fill the
11295         alignment with.
11296
11297         * test/data/valid-messages/no-padding.message: add regression
11298         test for the message padding problem
11299
11300 2003-03-02  Havoc Pennington  <hp@pobox.com>
11301
11302         * dbus/dbus-message.c (decode_header_data): fix to always init
11303         message_padding, from Benjamin Dauvergne
11304
11305 2003-03-02  Havoc Pennington  <hp@pobox.com>
11306
11307         * configure.in: 0.5
11308
11309         * NEWS: Update.
11310
11311 2003-03-01  Joe Shaw  <joe@assbarn.com>
11312
11313         * configure.in: Check for "struct cmsgcred" and try to access its
11314         members for BSD-like unices.
11315
11316         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11317         _dbus_read_credentials_unix_socket().
11318         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11319         read() for reading the credential byte off the unix socket.  Use
11320         struct cmsgcred on systems that support it.
11321
11322 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11323
11324         * glib/Makefile.am:
11325         * configure.in:
11326         Make gthreads-2.0 dependency optional. Don't build thread test if
11327         its not found.
11328
11329 2003-02-27  Havoc Pennington  <hp@pobox.com>
11330
11331         * dbus/dbus-connection.c
11332         (dbus_connection_send_message_with_reply_and_block): fix doh!
11333         doh! doh! bug that resulted in never removing a reply from the
11334         queue, no wonder we called get_reply_serial so much ;-)
11335
11336         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11337         and client serial instead of demarshaling them every time
11338
11339 2003-02-27  Havoc Pennington  <hp@pobox.com>
11340
11341         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11342         more inlined, using dbus-string-private.h, speeds things up
11343         substantially
11344
11345         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11346         when freeing the string
11347         (_dbus_string_steal_data): fix for align offset
11348         (undo_alignment): new function
11349
11350 2003-02-26  Havoc Pennington  <hp@redhat.com>
11351
11352         All kinds of audit fixes from Owen, plus initial attempt to
11353         handle unaligned memory returned from malloc.
11354
11355         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11356         leave room for align_offset and nul byte
11357         (fixup_alignment): function to track an align_offset and
11358         ensure real->str is aligned
11359         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11360         to allow a nul byte plus align offset
11361         (_dbus_string_lock): fix overflow issue
11362         (_dbus_string_init_const_len): add assertions on sanity of len,
11363         assign allocated to be ALLOCATION_PADDING larger than len
11364         (set_length): fixup the overflow handling
11365         (_dbus_string_get_data_len): fix overflow in assertion
11366         (open_gap): detect overflow in size of gap to be opened
11367         (_dbus_string_lengthen): add overflow check
11368         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11369         (_dbus_string_append): add overflow check
11370         (_dbus_string_append_unichar): overflow
11371         (_dbus_string_delete): fix overflow in assertion
11372         (_dbus_string_copy_len): overflow in assertion
11373         (_dbus_string_replace_len): overflows in assertions
11374         (_dbus_string_find): change to implement in terms of
11375         _dbus_string_find_to
11376         (_dbus_string_find_to): assorted fixage
11377         (_dbus_string_equal_c_str): assert c_str != NULL,
11378         fix logic so the function works
11379         (_dbus_string_ends_with_c_str): fix overflow thingy
11380         (_dbus_string_base64_encode): overflow fix
11381         (_dbus_string_validate_ascii): overflow
11382         (_dbus_string_validate_nul): overflow
11383
11384 2003-02-26  Havoc Pennington  <hp@redhat.com>
11385
11386         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11387
11388 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11389
11390         * configure.in:
11391         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11392
11393         * dbus/dbus-connection.c:
11394         * dbus/dbus-connection.h:
11395         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11396         Add dbus_connection_set_wakeup_main_function and use it when queueing
11397         incoming and outgoing messages.
11398
11399
11400         * dbus/dbus-dataslot.c:
11401         Threadsafe usage of DBusDataSlotAllocator
11402
11403         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11404         dbus_new can fail.
11405
11406         * dbus/dbus-server-unix.c:
11407         Add todo comment
11408
11409         * glib/dbus-gmain.c:
11410         Implement the new wakeup functions for glib.
11411
11412         * glib/Makefile.am:
11413         * glib/test-thread-client.c:
11414         * glib/test-thread-server.c:
11415         * glib/test-thread.h:
11416         Initial cut at some thread test code. Not really done yet.
11417
11418 2003-02-26  Havoc Pennington  <hp@pobox.com>
11419
11420         * dbus/dbus-connection.c
11421         (dbus_connection_send_message_with_reply_and_block): fix crash
11422         where we ref'd the outgoing message instead of the returned reply
11423
11424         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11425         at the end of this function, so if we didn't need to read for
11426         authentication, we reinstall it for receiving messages
11427
11428         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11429         a NULL sender for peer-to-peer case
11430
11431         * dbus/dbus-transport-unix.c (check_read_watch): handle
11432         !authenticated case correctly
11433
11434         * glib/dbus-gmain.c: add support for DBusServer
11435
11436         * dbus/dbus-server.c: add data slot support
11437
11438         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11439         return values and handle errors
11440
11441         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11442         DBusConnection
11443
11444         * Doxyfile.in (INPUT): add glib subdir
11445
11446         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11447         setup_with_g_main instead of hookup_with_g_main; write docs
11448
11449 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11450
11451         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11452         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11453         * dbus/dbus-message.c: (dbus_message_append_boolean),
11454         (dbus_message_append_boolean_array),
11455         (dbus_message_get_args_valist), (_dbus_message_test):
11456         * dbus/dbus-message.h:
11457         * doc/dbus-specification.sgml:
11458         Various fixes as pointed out by Havoc.
11459
11460         * test/data/invalid-messages/bad-boolean-array.message:
11461         * test/data/invalid-messages/bad-boolean.message:
11462         Add invalid boolean value test cases.
11463
11464 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11465
11466         * dbus/dbus-internals.c: (_dbus_type_to_string):
11467         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11468         (_dbus_marshal_validate_arg):
11469         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11470         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11471         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11472         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11473         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11474         (dbus_message_iter_get_double),
11475         (dbus_message_iter_get_boolean_array), (message_iter_test):
11476         * dbus/dbus-message.h:
11477         * dbus/dbus-protocol.h:
11478         * doc/dbus-specification.sgml:
11479         * test/data/valid-messages/lots-of-arguments.message:
11480         Add support for boolean and boolean array types.
11481
11482 2003-02-23  Havoc Pennington  <hp@pobox.com>
11483
11484         * dbus/dbus-keyring.c: finish most of this implementation and
11485         simple unit test
11486
11487         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11488         these barf if the error isn't cleared to NULL
11489
11490         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11491         (_dbus_create_directory): new function
11492
11493         * dbus/dbus-errors.c (dbus_set_error): fix warning
11494
11495         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11496         (_dbus_string_hex_decode): new function
11497         (test_hex_roundtrip): test code
11498
11499         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11500
11501         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11502
11503         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11504         the save-to-temp/rename trick to atomically write the new file
11505         (_dbus_string_parse_uint): new function
11506
11507 2003-02-22  Havoc Pennington  <hp@pobox.com>
11508
11509         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11510
11511 2003-02-22  Havoc Pennington  <hp@pobox.com>
11512
11513         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11514         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11515
11516         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11517
11518         * dbus/test/data/sha-1: add US government test suite for SHA-1
11519
11520 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11521
11522         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11523         Make string arrays NULL-terminated.
11524
11525         * dbus/dbus-memory.c: (dbus_free_string_array):
11526         * dbus/dbus-memory.h:
11527         New function for freeing NULL-terminated string arrays.
11528
11529         * dbus/dbus-message-builder.c: (append_quoted_string),
11530         (_dbus_message_data_load):
11531         Add support for array types.
11532
11533         * dbus/dbus-message.c: (check_message_handling):
11534         Add more types as test cases.
11535
11536         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11537         (_dbus_string_parse_double):
11538         Add the start offset to the end offset.
11539
11540         * test/data/valid-messages/lots-of-arguments.message:
11541         New test message with lots of arguments.
11542
11543 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11544
11545         * dbus/dbus-message.c: (dbus_message_append_nil),
11546         (dbus_message_append_int32), (dbus_message_append_uint32),
11547         (dbus_message_append_double), (dbus_message_append_string),
11548         (dbus_message_append_int32_array),
11549         (dbus_message_append_uint32_array),
11550         (dbus_message_append_double_array),
11551         (dbus_message_append_byte_array),
11552         (dbus_message_append_string_array):
11553         Fix all out-of-memory handling in these functions.
11554
11555 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11556
11557         * dbus/dbus-message.c: (dbus_message_append_nil):
11558         Fix a silly.
11559
11560 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11561
11562         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11563         (dbus_message_append_nil), (dbus_message_append_int32_array),
11564         (dbus_message_append_uint32_array),
11565         (dbus_message_append_double_array),
11566         (dbus_message_append_byte_array),
11567         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11568         (dbus_message_iter_get_int32_array),
11569         (dbus_message_iter_get_uint32_array),
11570         (dbus_message_iter_get_double_array),
11571         (dbus_message_iter_get_byte_array),
11572         (dbus_message_iter_get_string_array):
11573
11574         * dbus/dbus-message.h:
11575         Add functions for appending and getting arrays.
11576
11577 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11578
11579         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11580         element size at least 8 bytes, fixes mempool tests on
11581         64-bit machines.
11582
11583 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11584
11585         * dbus/dbus-transport-unix.c (unix_do_iteration):
11586         Unlock the connection mutex during a blocking select call.
11587         Add todo about how we need a way to wake up the select.
11588
11589         * dbus/dbus-connection-internal.h:
11590         * dbus/dbus-connection.c:
11591         Add _dbus_connection_lock and _dbus_connection_unlock.
11592
11593 2003-02-19  Havoc Pennington  <hp@pobox.com>
11594
11595         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11596         Doxyfile.in, not Doxyfile
11597
11598         * dbus/dbus-keyring.c: do some hacking on this
11599
11600         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11601
11602         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11603         dbus_error_init
11604         (dbus_set_error): remove dbus_error_init, check for message ==
11605         NULL *before* we sprintf into it, and add @todo about including
11606         system headers in this file
11607
11608         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11609
11610         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11611
11612         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11613         get various bits of user information based on either username
11614         or user ID
11615         (_dbus_homedir_from_username): new function
11616
11617 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11618
11619         * configure.in:
11620         Add check for nonposix getpwnam_r
11621
11622         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11623         Align the pool element size to a sizeof (void *) boundary.
11624
11625         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11626         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11627         General Solaris fixes.
11628
11629         * test/data/valid-messages/simplest-manual.message:
11630         Explicitly state that we want little-endian packing.
11631
11632 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11633
11634         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11635
11636         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11637         Added to create a transport connecting using a tcp/ip socket.
11638
11639         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11640         to a tcp socket at given host and port.
11641         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11642         hostname and port.
11643
11644         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11645
11646         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11647         Added to create a server listening on a TCP/IP socket.
11648
11649 2003-02-19  Havoc Pennington  <hp@pobox.com>
11650
11651         Throughout: mop up all the Doxygen warnings and undocumented
11652         stuff.
11653
11654         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11655         to search any paths.
11656
11657         * dbus/dbus-threads.c: move global mutex initializers to
11658         dbus-internals.h, multiple prototypes was confusing doxygen
11659         besides being kind of ugly
11660
11661         * Doxyfile (PREDEFINED): have Doxygen define
11662         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11663         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11664         (do not abuse the feature! it's for stuff like the autogenerated
11665         macros in dbus-md5.c, not just for things you don't feel like
11666         documenting...)
11667
11668 2003-02-18  Havoc Pennington  <hp@pobox.com>
11669
11670         * dbus/dbus-string.c (_dbus_string_zero): new function
11671
11672         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11673         wrap it in some dbus-friendly API
11674
11675         * dbus/dbus-types.h: add 16-bit types
11676
11677 2003-02-18  Joe Shaw  <joe@assbarn.com>
11678
11679         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11680         credentials from our currently running process.
11681         (get_word): Fix a buglet where we were copying the entire length
11682         instead of relative to our position.
11683
11684         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11685         keys on the stack... it's 640k of data.
11686
11687         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11688         read the credentials byte off the socket, even if we don't have
11689         SO_PEERCRED.
11690         (_dbus_poll): Implement poll() using select() for systems which
11691         don't have it.
11692
11693         * glib/test-dbus-glib.c (main): Print out an error if no
11694         parameters are given.
11695
11696         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11697         can fallback to a secondary auth mechanism if the first fails.
11698
11699 2003-02-18  Havoc Pennington  <hp@pobox.com>
11700
11701         * AUTHORS: add Alex
11702
11703 2003-02-17  Havoc Pennington  <hp@pobox.com>
11704
11705         * doc/dbus-specification.sgml: lots of cosmetic
11706         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11707         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11708         s/server/bus/ (except in authentication section). Add a section
11709         "Message Bus Message Routing"
11710
11711 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11712
11713         Release 0.4
11714
11715         * NEWS: Update
11716
11717 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11718
11719         * doc/dbus-specification.sgml:
11720         Specification updates.
11721
11722 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11723
11724         * bus/activation.c: (bus_activation_init), (child_setup),
11725         (bus_activation_activate_service):
11726         * bus/activation.h:
11727         * bus/main.c: (main):
11728         Set DBUS_ADDRESS environment variable.
11729
11730         * dbus/dbus-errors.c: (dbus_set_error):
11731         Don't use va_copy since that's a C99 feature.
11732
11733         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11734         (_dbus_spawn_async):
11735         * dbus/dbus-sysdeps.h:
11736         Add child_setup_func to _dbus_spawn_async.
11737
11738         * doc/dbus-specification.sgml:
11739         Update specification.
11740
11741         * test/spawn-test.c: (setup_func), (main):
11742         Fix test.
11743
11744 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11745
11746         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11747         Added todo.
11748
11749 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11750
11751         * doc/.cvsignore:
11752         * doc/Makefile.am:
11753         * doc/dbus-test-plan.sgml:
11754         Add test plan document.
11755
11756         * test/Makefile.am:
11757         Fix distcheck.
11758
11759 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11760
11761         * dbus/dbus-message.c: (decode_header_data),
11762         (_dbus_message_loader_return_buffer):
11763         Set the header padding amount when loading a message.
11764
11765 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11766
11767         * bus/dispatch.c: (send_one_message):
11768         Only send broadcast messages to registered connections.
11769
11770         * dbus/dbus-message.c: (dbus_message_name_is):
11771         * dbus/dbus-message.h:
11772         New convenience function.
11773
11774         * dbus/dbus-transport-debug.c: (do_reading):
11775         Only dispatch one message per run.
11776
11777         * test/Makefile.am:
11778         * test/bus-test.c: (new_connection_callback), (die),
11779         (test_hello_client1_handler), (test_hello_client2_handler),
11780         (test_hello_replies), (main):
11781
11782         * test/bus-test-loop.[ch]:
11783         Add these.
11784
11785 2003-02-16  Havoc Pennington  <hp@pobox.com>
11786
11787         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11788         backward conditional
11789
11790 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11791
11792         * dbus/dbus-connection.c:
11793         Implement sent_message_with_reply. (with_reply_and block is still
11794         busted).
11795         Made dispatch_message not lose message if OOM.
11796
11797         * dbus/dbus-errors.h:
11798         Add NoReply error (for reply timeouts).
11799
11800 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11801
11802         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11803         Actually free keys and values when destroying hashtable.
11804
11805 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11806
11807         * dbus/dbus-auth.c: (client_try_next_mechanism):
11808         Plug a leak.
11809
11810         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11811         Return TRUE if there's no thread implementation around.
11812
11813         * glib/dbus-gmain.c: (free_source),
11814         (dbus_connection_hookup_with_g_main):
11815         Make sure to remove the GSource when the connection is finalized.
11816
11817 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11818
11819         * bus/dispatch.c: (bus_dispatch_message_handler):
11820         * dbus/dbus-errors.h:
11821         Return an error if someone tries to send a message to a service
11822         that doesn't exist.
11823
11824 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11825
11826         * bus/activation.c: (load_directory), (bus_activation_init),
11827         (bus_activation_activate_service):
11828         * bus/activation.h:
11829         * bus/driver.c:
11830         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11831         More work on the activation handling.
11832
11833         * dbus/dbus-errors.h:
11834         Add some error messages
11835
11836         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11837         * dbus/dbus-message.h:
11838         New function that creates an error message.
11839
11840         * dbus/dbus-protocol.h:
11841         Add ACTIVATE_SERVER message.
11842
11843         * dbus/dbus-server-unix.c: (unix_handle_watch),
11844         (_dbus_server_new_for_domain_socket):
11845         Call _dbus_fd_set_close_on_exec.
11846
11847         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11848         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11849         (_dbus_fd_set_close_on_exec):
11850         * dbus/dbus-sysdeps.h:
11851         Add _dbus_fd_set_close_on exec function. Also add function that checks
11852         that all open fds are set to close-on-exec and warns otherwise.
11853
11854         * dbus/dbus-transport-unix.c:
11855         (_dbus_transport_new_for_domain_socket):
11856         Call _dbus_fd_set_close_on_exec.
11857
11858 2003-02-16  Havoc Pennington  <hp@pobox.com>
11859
11860         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11861         allow people to avoid setting SIGPIPE to SIG_IGN
11862         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11863         we've been asked not to
11864
11865 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11866
11867         * dbus/dbus-list.c: (_dbus_list_append_link),
11868         (_dbus_list_prepend_link):
11869         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11870         (dbus_realloc):
11871         Warning fixes.
11872
11873 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11874
11875         * bus/Makefile.am:
11876         * bus/activation.c: (bus_activation_entry_free),
11877         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11878         * bus/activation.h:
11879         * bus/main.c: (main):
11880         Add simple activation support, doesn't work yet though.
11881
11882 2003-02-15   Zack Rusin  <zack@kde.org>
11883
11884         * qt/dbus-qthread.cpp:  small casting fix
11885
11886 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11887
11888         * dbus/dbus-errors.c: (dbus_set_error):
11889         * dbus/dbus-errors.h:
11890         Add a few errors and make dbus_set_error void.
11891
11892         * dbus/dbus-sysdeps.c:
11893         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11894         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11895         * dbus/dbus-sysdeps.h:
11896         Add _dbus_spawn_async.
11897
11898         * test/spawn-test.c: (main):
11899         Test for _dbus_spawn_async.
11900
11901 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11902
11903         * dbus/dbus-internals.h:
11904         Fix build without tests.
11905
11906         * dbus/dbus-list.c: (alloc_link):
11907         Fix a segfault when a malloc fails.
11908
11909         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11910         (dbus_malloc0), (dbus_realloc):
11911         Add support for malloc debugging.
11912
11913 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11914
11915         * dbus/dbus-threads.c:
11916         * dbus/dbus-threads.h:
11917         Add condvars. Remove static mutext from API.
11918         Implement static mutexes by initializing them from threads_init.
11919
11920         * glib/dbus-gthread.c:
11921         * qt/dbus-qthread.cpp:
11922         Update with the thread api changes.
11923
11924
11925         * dbus/dbus-list.c:
11926         * dbus/dbus-list.h:
11927         Turn StaticMutex into normal mutex + init function.
11928         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11929         _dbus_list_append_link, _dbus_list_prepend_link
11930
11931
11932         * dbus/dbus-sysdeps.c:
11933         * dbus/dbus-sysdeps.h:
11934         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11935         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11936
11937         * dbus/dbus-protocol.h:
11938         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11939
11940         * dbus/dbus-message.c:
11941         Make ref/unref atomic.
11942         Fix some docs.
11943
11944         * dbus/dbus-connection-internal.h:
11945         * dbus/dbus-connection.c:
11946         * dbus/dbus-connection.h:
11947         Make threadsafe.
11948         Change _peek to _borrow,_return & _steal_borrowed.
11949         Change disconnect callback to event.
11950         Make dbus_connection_dispatch_messages reentrant.
11951
11952         * dbus/dbus-transport.c:
11953         Don't ref the connection on calls to the transport
11954         implementation.
11955
11956         * dbus/dbus-message-handler.c:
11957         Make threadsafe.
11958
11959         * glib/dbus-gmain.c:
11960         Don't use peek_message anymore
11961
11962         * test/Makefile.am:
11963         * test/debug-thread.c:
11964         * test/debug-thread.h:
11965         Simple thread implementation that asserts() on deadlocks in
11966         single-threaded code.
11967
11968         * test/bus-test.c:
11969         (main) Call debug_threads_init.
11970
11971         * test/watch.c:
11972         Use disconnect message instead of disconnect callback.
11973
11974         * bus/connection.c:
11975         * bus/connection.h:
11976         Don't call dbus_connection_set_disconnect_function. Instead export
11977         bus_connection_disconnect.
11978
11979         * bus/dispatch.c:
11980         Call bus_connection_disconnect when we get a disconnected message.
11981
11982 2003-02-15  Havoc Pennington  <hp@pobox.com>
11983
11984         * dbus/dbus-message.c (dbus_message_new): fool around with the
11985         docs
11986
11987 2003-02-14  Havoc Pennington  <hp@pobox.com>
11988
11989         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11990
11991         * dbus/dbus-memory.c: fail if the debug functions indicate we
11992         should
11993
11994         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11995         (_dbus_decrement_fail_alloc_counter): debug functions to
11996         simulate memory allocation failures
11997
11998 2003-02-14  Havoc Pennington  <hp@pobox.com>
11999
12000         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12001         to DBusError
12002
12003 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12004
12005         * bus/driver.c: (bus_driver_handle_hello):
12006         * bus/driver.h:
12007         * bus/services.c: (bus_service_lookup):
12008         Reorder message sending so we get a more sane order.
12009
12010         * test/bus-test.c: (message_handler):
12011         Fix tyop.
12012
12013 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12014
12015         * bus/driver.c: (bus_driver_send_service_deleted),
12016         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12017         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12018         (bus_driver_send_welcome_message),
12019         (bus_driver_handle_list_services),
12020         (bus_driver_handle_acquire_service),
12021         (bus_driver_handle_service_exists):
12022         * dbus/dbus-bus.c: (dbus_bus_register_client),
12023         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12024         * dbus/dbus-errors.c: (dbus_result_to_string):
12025         * dbus/dbus-errors.h:
12026         * dbus/dbus-message.c: (dbus_message_append_args),
12027         (dbus_message_append_args_valist), (dbus_message_get_args),
12028         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12029         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12030         (dbus_message_iter_get_byte_array),
12031         (dbus_message_iter_get_string_array), (message_iter_test),
12032         (check_message_handling), (_dbus_message_test):
12033         * dbus/dbus-message.h:
12034         * test/bus-test.c: (main):
12035         Change fields to arguments in messages, so that they won't be
12036         confused with header fields.
12037
12038         * glib/test-dbus-glib.c: (main):
12039         Remove append_fields from hello message.
12040
12041 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12042
12043         * dbus/dbus-errors.c:
12044         * dbus/dbus-message.c:
12045         * dbus/dbus-string.c:
12046         Documentation fixes.
12047
12048 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12049
12050         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12051         (remove_timeout):
12052         Implement support for timeouts in dbus-glib.
12053
12054 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12055
12056         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12057         * dbus/dbus-message.c: (process_test_subdir):
12058         * test/break-loader.c: (find_breaks_based_on):
12059         Plug some memory leaks.
12060
12061 2003-02-13  Richard Hult  <rhult@codefactory.se>
12062
12063         * bus/main.c: Fix build.
12064
12065         * dbus/dbus-errors.h:
12066         * dbus/dbus-errors.c: Fix copyright for Anders.
12067
12068 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12069
12070         * bus/Makefile.am:
12071         Add utils.[ch]
12072
12073         * bus/connection.c: (bus_connection_foreach):
12074         Fix a warning.
12075
12076         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12077         (unescape_string), (new_section), (parse_section_start),
12078         (parse_key_value), (report_error), (bus_desktop_file_load),
12079         (bus_desktop_file_get_string):
12080         * bus/desktop-file.h:
12081         Use DBusError for error reporting.
12082
12083         * bus/dispatch.c: (send_one_message),
12084         (bus_dispatch_message_handler):
12085         * bus/driver.c: (bus_driver_send_service_deleted),
12086         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12087         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12088         (bus_driver_send_welcome_message),
12089         (bus_driver_handle_list_services),
12090         (bus_driver_handle_acquire_service),
12091         (bus_driver_handle_service_exists):
12092         * bus/loop.c: (bus_loop_run):
12093         * bus/main.c:
12094         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12095
12096         * bus/utils.c: (bus_wait_for_memory):
12097         * bus/utils.h:
12098         New files with general utility functions.
12099
12100         * dbus/dbus-internals.h:
12101         Remove _DBUS_HANDLE_OOM.
12102
12103 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12104
12105         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12106         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12107         * dbus/dbus-errors.h:
12108         Add DBusError structure.
12109
12110 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12111
12112         * test/data/valid-messages/standard-acquire-service.message:
12113         * test/data/valid-messages/standard-hello.message:
12114         * test/data/valid-messages/standard-list-services.message:
12115         * test/data/valid-messages/standard-service-exists.message:
12116         Add some standard messages.
12117
12118 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12119
12120         * bus/driver.c: (bus_driver_send_welcome_message),
12121         (bus_driver_handle_list_services),
12122         (bus_driver_handle_acquire_service),
12123         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12124         Update for API changes in libdbus.
12125
12126         * dbus/dbus-message.c: (dbus_message_new_reply):
12127         * dbus/dbus-message.h:
12128         Remove the name argument. The spec states that replies shouldn't
12129         have a name.
12130
12131 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12132
12133         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12134         (report_error), (bus_desktop_file_load), (lookup_section),
12135         (lookup_line), (bus_desktop_file_get_raw),
12136         (bus_desktop_file_get_string):
12137         * bus/desktop-file.h:
12138         Some fixes, and new functions for getting a key value from a section.
12139
12140 2003-02-13  Havoc Pennington  <hp@pobox.com>
12141
12142         * test/data/auth/fail-after-n-attempts.auth-script: new test
12143
12144         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12145         reject the client.
12146
12147 2003-02-13  Havoc Pennington  <hp@pobox.com>
12148
12149         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12150         dbus_credentials_match were backward
12151
12152         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12153         NO_CREDENTIALS and ROOT_CREDENTIALS
12154
12155         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12156         into here. Never process more commands after we've reached an
12157         end state; store further data as unused bytes.
12158
12159         * test/data/auth/*: add more auth tests
12160
12161         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12162         command to match exact string and EXPECT_UNUSED to match unused
12163         bytes
12164
12165         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12166
12167 2003-02-12  Havoc Pennington  <hp@pobox.com>
12168
12169         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12170         \r off of popped lines
12171
12172         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12173         scripts
12174
12175         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12176         SEND, append \r\n
12177
12178 2003-02-12  Havoc Pennington  <hp@pobox.com>
12179
12180         * dbus/Makefile.am: remove break-loader from the build, since it
12181         moved.
12182
12183         * configure.in: add --enable-gcov to turn on coverage profiling
12184         flags and disable optimization
12185
12186 2003-02-10  Havoc Pennington  <hp@pobox.com>
12187
12188         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12189         initial cut at test framework for DBusAuth from laptop.
12190         Doesn't quite work yet but it compiles and I need to get
12191         it off the 266mhz laptop. ;-)
12192
12193         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12194         fix a memleak in error case
12195
12196 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12197
12198         * bus/Makefile.am:
12199         * bus/desktop-file.c:
12200         * bus/desktop-file.h:
12201         Add a desktop file parser.
12202
12203 2003-02-11  Zack Rusin  <zack@kde.org>
12204
12205         * qt/message.[h|cpp]: sample implementation
12206         of the KDE wrapper for DBusMessage
12207
12208 2003-02-09  Zack Rusin  <zack@kde.org>
12209
12210         * test/bus-test.c: make_it_compile
12211         * doc/dbus-specification.sgml: minimal semantic fix
12212
12213 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12214
12215         Release 0.3
12216
12217         * NEWS: Update
12218
12219 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12220
12221         * dbus/Makefile.am:
12222         * dbus/dbus-break-loader.c:
12223         * test/Makefile.am:
12224         * test/break-loader.c:
12225         Move dbus-break-loader to test/ and rename it to break-loader.
12226
12227 2003-02-02  Havoc Pennington  <hp@pobox.com>
12228
12229         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12230         for code to manage cookies in your home directory
12231
12232         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12233
12234         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12235         to authenticate, then disconnect the client.
12236
12237 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12238
12239         * dbus/dbus-message.c (dbus_message_append_fields):
12240         Correct docs.
12241
12242 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12243
12244         * doc/dbus-specification.sgml:
12245         Update address format section.
12246
12247 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12248
12249         * test/Makefile.am:
12250         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12251         (message_handler), (new_connection_callback), (loop_quit),
12252         (loop_run), (main):
12253         Add bus test.
12254
12255 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12256
12257         * bus/driver.c: (bus_driver_handle_service_exists):
12258         Simplify the code a bit.
12259
12260         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12261         Fix a silly.
12262
12263 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12264
12265         * bus/Makefile.am:
12266         Add libdbus-daemon.la and link to it.
12267
12268 2003-02-01  James Willcox  <jwillcox@gnome.org>
12269
12270         * bus/driver.c: (bus_driver_handle_own_service):
12271         Actually include the service reply code in the message.
12272
12273 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12274
12275         * bus/driver.c: (bus_driver_handle_service_exists):
12276         Don't unref the incoming message.
12277
12278 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12279
12280         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12281
12282 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12283
12284         * dbus/dbus-server.c: (dbus_server_listen):
12285         * dbus/dbus-transport.c: (_dbus_transport_open):
12286         ifdef out the calls to the debug transport and server.
12287
12288 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12289
12290         * dbus/dbus-watch.c (dbus_watch_get_flags):
12291         Add note in the docs that ERROR or HANGUP won't be returned
12292         and are assumed always on.
12293
12294         * glib/dbus-gmain.c (add_watch):
12295         Always add IO_ERR | IO_HUP
12296
12297         * dbus/dbus-message.h:
12298         Add semicolon after dbus_message_iter_get_string_array().
12299         Makes qt code build again
12300
12301 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12302
12303         * bus/driver.c: (create_unique_client_name),
12304         (bus_driver_handle_hello):
12305         Don't take a name, just use a numeric id to identify
12306         each client.
12307
12308         * dbus/Makefile.am:
12309         * dbus/dbus-bus.c: (dbus_bus_register_client),
12310         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12311         * dbus/dbus-bus.h:
12312         Add new convenience functions for communicating with the bus.
12313
12314         * dbus/dbus-message.h:
12315
12316         * dbus/dbus-protocol.h:
12317         Fix a typo.
12318
12319 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12320
12321         * dbus/dbus-message.c (dbus_message_append_fields):
12322         Add some more doc comments.
12323
12324 2003-02-01  Havoc Pennington  <hp@pobox.com>
12325
12326         * dbus/dbus-break-loader.c (randomly_modify_length): change
12327         a 4-byte value in the message as if it were a length
12328
12329         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12330         execute bit on saved files
12331
12332 2003-02-01  Havoc Pennington  <hp@pobox.com>
12333
12334         * dbus/dbus-break-loader.c (main): new program to find messages
12335         that break the loader.
12336
12337         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12338         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12339
12340         * dbus/dbus-string.c (_dbus_string_set_byte): new
12341
12342 2003-01-31  Havoc Pennington  <hp@pobox.com>
12343
12344         * dbus/dbus-message.c: refactor the test code to be more general,
12345         in preparation for writing a "randomly permute test cases to
12346         try to break the loader" program.
12347
12348 2003-01-31  Havoc Pennington  <hp@pobox.com>
12349
12350         * doc/dbus-specification.sgml: work on the specification
12351
12352         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12353         the protocol version of the message.
12354
12355         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12356         no longer specifies that.
12357         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12358         1/2/3/4)
12359
12360         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12361         "break" for DBUS_TYPE_NIL, remove @todo
12362
12363 2003-01-31  Havoc Pennington  <hp@pobox.com>
12364
12365         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12366         just set_is_error/get_is_error as this is a commonly-used
12367         function, and write docs.
12368
12369 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12370
12371         * dbus/dbus-address.c: (dbus_address_entry_free):
12372         Free key and value lists.
12373
12374         * dbus/dbus-internals.c: (_dbus_type_to_string):
12375         Add the types we didn't have.
12376
12377         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12378         (_dbus_marshal_validate_arg):
12379         Add NIL types.
12380
12381         * dbus/dbus-message.c: (dbus_message_set_sender):
12382         Remove todo about being able to set sender to NULL.
12383
12384         (dbus_message_set_is_error_reply),
12385         (dbus_message_get_is_error_reply):
12386         * dbus/dbus-message.h:
12387         New functions.
12388
12389         * dbus/dbus-protocol.h:
12390         Add error reply flag.
12391
12392         * test/data/valid-messages/opposite-endian.message:
12393         Add NIL type to test.
12394
12395 2003-01-31  Havoc Pennington  <hp@pobox.com>
12396
12397         * doc/dbus-specification.sgml: fully specify the header.  Add
12398         flags and major protocol version, and change header/body len to
12399         unsigned.
12400
12401         * dbus/dbus-message-builder.c (append_saved_length): append length
12402         as uint32
12403
12404         * dbus/dbus-message.c (dbus_message_create_header): change header
12405         length and body length to unsigned. Add the new fields from the
12406         spec
12407         (_dbus_message_loader_return_buffer): unsigned header/body len
12408
12409 2003-01-30  Havoc Pennington  <hp@pobox.com>
12410
12411         * dbus/dbus-auth.c: rework to use only REJECTED, no
12412         MECHANISMS
12413
12414         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12415         use REJECTED, suggested by Mark McLoughlin
12416
12417 2003-01-30  Havoc Pennington  <hp@pobox.com>
12418
12419         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12420         a better way to report errors here. e.g.  "unix address lacks
12421         path" or something. also "no such file" when the path doesn't
12422         exist, etc.
12423
12424         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12425         leaking list nodes
12426         (dbus_parse_address): add @todo about documenting address format,
12427         and allowing , and ; to be escaped
12428
12429 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12430
12431         * dbus/Makefile.am:
12432         Add dbus-address.[ch]
12433
12434         * dbus/dbus-address.c: (dbus_address_entry_free),
12435         (dbus_address_entries_free), (create_entry),
12436         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12437         (dbus_parse_address), (_dbus_address_test):
12438         * dbus/dbus-address.h:
12439         New files for dealing with address parsing.
12440
12441         * dbus/dbus-connection.c:
12442         Document timeout functions.
12443
12444         * dbus/dbus-message.c:
12445         Document dbus_message_new_from_message.
12446
12447         * dbus/dbus-server-debug.c:
12448         Document.
12449
12450         * dbus/dbus-server.c: (dbus_server_listen):
12451         Parse address and use correct server implementation.
12452
12453         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12454         * dbus/dbus-string.h:
12455         New function with test.
12456
12457         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12458         * dbus/dbus-test.h:
12459         Add address tests.
12460
12461         * dbus/dbus-transport-debug.c:
12462         Document.
12463
12464         * dbus/dbus-transport.c: (_dbus_transport_open):
12465         Parse address and use correct transport implementation.
12466
12467 2003-01-30  Havoc Pennington  <hp@pobox.com>
12468
12469         * dbus/dbus-message.c: use message->byte_order instead of
12470         DBUS_COMPILER_BYTE_ORDER throughout.
12471         (dbus_message_create_header): pad header to align the
12472         start of the body of the message to 8-byte boundary
12473
12474         * dbus/dbus-marshal.h: make all the demarshalers take const
12475         DBusString arguments.
12476
12477         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12478         validate message args here, so we don't have to do slow validation
12479         later, and so we catch bad messages as they are incoming. Also add
12480         better checks on header_len and body_len. Also fill in
12481         message->byte_order
12482
12483         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12484         implemented properly)
12485         (_dbus_string_validate_nul): new function to check all-nul
12486
12487         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12488         get_arg_end_pos and remove all validation
12489         (_dbus_marshal_validate_arg): actually do validation here.
12490
12491 2003-01-29  Havoc Pennington  <hp@pobox.com>
12492
12493         * dbus/dbus-message.c (check_message_handling): fix assertion
12494         failure on set_client_serial
12495
12496 2003-01-28  Havoc Pennington  <hp@pobox.com>
12497
12498         * dbus/dbus-server-debug.c: Add doc section comments
12499
12500         * dbus/dbus-transport-debug.c: add doc section comments
12501
12502 2003-01-28  Havoc Pennington  <hp@redhat.com>
12503
12504         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12505         the reverse order from how I had it
12506         (_dbus_string_base64_encode): reverse encoding order. I was
12507         basically byteswapping everything during encoding.
12508
12509 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12510
12511         * dbus/dbus-connection-internal.h:
12512         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12513         (_dbus_connection_remove_timeout):
12514         Add functions for adding and removing timeouts.
12515
12516         * dbus/dbus-message.c: (dbus_message_new_from_message):
12517         Add new function that takes a message and creates an exact
12518         copy of it, but with the refcount set to 1.
12519         (check_message_handling):
12520         Fix build error.
12521
12522         * dbus/dbus-server-protected.h:
12523         * dbus/dbus-server.c: (_dbus_server_init_base),
12524         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12525         (dbus_server_set_timeout_functions):
12526         (_dbus_server_remove_timeout):
12527         New functions so that a server can add and remove timeouts.
12528
12529         (dbus_server_listen):
12530         Add commented out call to dbus_server_debug_new.
12531
12532         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12533         Actually set the handler, doh.
12534
12535         * dbus/dbus-transport.c: (_dbus_transport_open):
12536         Add commented out call to dbus_transport_debug_client_new.
12537
12538         * dbus/Makefile.am:
12539         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12540
12541 2003-01-28  Havoc Pennington  <hp@pobox.com>
12542
12543         * dbus/dbus-message.c (check_message_handling): function to check
12544         on the loaded message, iterates over it etc.
12545
12546 2003-01-28  Havoc Pennington  <hp@pobox.com>
12547
12548         * test/Makefile.am (dist-hook): fix make distdir
12549
12550         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12551
12552 2003-01-27  Havoc Pennington  <hp@pobox.com>
12553
12554         * dbus/dbus-mempool.c (time_for_size): replace printf with
12555         _dbus_verbose
12556
12557         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12558         empty lines; fix the SAVE_LENGTH stuff to be
12559         START_LENGTH/END_LENGTH so it actually works; couple other
12560         bugfixes
12561
12562         * test/Makefile.am (dist-hook): add dist-hook for .message files
12563
12564         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12565         can be constant or locked.
12566         (_dbus_string_free): allow freeing a const string as
12567         documented/intended
12568
12569         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12570
12571         * dbus/dbus-test-main.c (main): take an argument which is the
12572         directory containing test data
12573
12574         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12575         argument to this and load all the messages in test/data/
12576         checking that they can be loaded or not loaded as appropriate.
12577
12578 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12579
12580         * bus/dispatch.c: (bus_dispatch_message_handler):
12581         Dispatch messages sent to services.
12582
12583         * bus/driver.c: (bus_driver_send_service_deleted),
12584         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12585         (bus_driver_send_service_acquired):
12586         Add helper functions for sending service related messages.
12587
12588         (bus_driver_send_welcome_message):
12589         Send HELLO_REPLY instead of WELCOME.
12590
12591         (bus_driver_handle_list_services):
12592         Send LIST_SERVICES_REPLY instead of SERVICES.
12593
12594         (bus_driver_handle_own_service),
12595         (bus_driver_handle_service_exists):
12596         New message handlers.
12597
12598         (bus_driver_handle_message):
12599         Invoke new message handlers.
12600
12601         (bus_driver_remove_connection):
12602         Don't remove any services here since that's done automatically
12603         by bus_service_remove_owner now.
12604
12605         * bus/driver.h:
12606         New function signatures.
12607
12608         * bus/services.c: (bus_service_add_owner):
12609         Send ServiceAcquired message if we're the only primary owner.
12610
12611         (bus_service_remove_owner):
12612         Send ServiceAcquired/ServiceLost messages.
12613
12614         (bus_service_set_prohibit_replacement),
12615         (bus_service_get_prohibit_replacement):
12616         Functions for setting prohibit replacement.
12617
12618         (bus_service_has_owner):
12619         New function that checks if a connection is in the owner queue of
12620         a certain service.
12621
12622         * bus/services.h:
12623         Add new function signatures.
12624
12625         * dbus/dbus-list.c: (_dbus_list_test):
12626         Add tests for _dbus_list_remove_last and traversing the list backwards.
12627
12628         * dbus/dbus-list.h:
12629         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12630         go any further, so return NULL then.
12631
12632         * dbus/dbus-protocol.h:
12633         Add new messages, service flags and service replies.
12634
12635 2003-01-26  Havoc Pennington  <hp@pobox.com>
12636
12637         * dbus/dbus-message-builder.c: implement, completely untested.
12638
12639         * test/data/*: add data to be used in testing.
12640         ".message" files are our simple loadable text format.
12641         ".message-raw" will be binary dumps of messages.
12642
12643         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12644
12645 2003-01-26  Havoc Pennington  <hp@pobox.com>
12646
12647         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12648
12649         * dbus/dbus-errors.c (dbus_result_to_string): add
12650         file errors
12651
12652         * dbus/dbus-message-builder.c: new file, will contain code to load
12653         up messages from files. Not implemented yet.
12654
12655 2003-01-26  Havoc Pennington  <hp@pobox.com>
12656
12657         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12658         the sender by setting to NULL
12659
12660 2003-01-26  Havoc Pennington  <hp@pobox.com>
12661
12662         The unit tests pass, but otherwise untested.  If it breaks, the
12663         tests should have been better. ;-)
12664
12665         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12666         the connection.
12667
12668         * dbus/dbus-message.c: redo everything so we maintain
12669         message->header as the only copy of the various fields.
12670         This avoids the possibility of out-of-memory in some cases,
12671         for example dbus_message_lock() can't run out of memory anymore,
12672         and avoids extra copying. Figured I may as well go ahead and do
12673         this since it was busted for dbus_message_lock to not return
12674         failure on OOM, and dbus_message_write_header was totally
12675         unchecked for OOM. Also fixed some random other bugs.
12676
12677         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12678         that strings are nul-terminated. Also, end_pos can be equal
12679         to string length just not greater than, I think.
12680         (_dbus_marshal_set_int32): new function
12681         (_dbus_marshal_set_uint32): new function
12682         (_dbus_marshal_set_string): new function
12683
12684         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12685         a warning, init timeout_list to NULL
12686         (dbus_connection_send_message): don't use uninitialized variable
12687         "serial"
12688
12689         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12690
12691 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12692
12693         * bus/driver.c: (bus_driver_handle_hello),
12694         (bus_driver_send_welcome_message):
12695         Plug leaks
12696
12697 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12698
12699         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12700         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12701         (dbus_connection_unref):
12702         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12703         * dbus/dbus-message.c: (dbus_message_unref),
12704         Plug memory leaks.
12705
12706         (dbus_message_get_fields):
12707         Remove debugging printout.
12708
12709         (_dbus_message_loader_return_buffer):
12710         Don't store the header string.
12711
12712         (_dbus_message_test):
12713         Plug leaks.
12714
12715 2003-01-26  Richard Hult  <rhult@codefactory.se>
12716
12717         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12718         the file descriptor list, since it can change under us.
12719
12720 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12721
12722         * glib/dbus-gmain.c: (dbus_connection_prepare),
12723         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12724         (remove_watch), (dbus_connection_hookup_with_g_main):
12725         Rewrite the glib handling to use its own GSource instead of a
12726         GIOChannel so we can catch messages put in the queue while waiting
12727         for a reply.
12728
12729 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12730
12731         * bus/Makefile.am:
12732         * bus/connection.c: (connection_disconnect_handler),
12733         (connection_watch_callback), (bus_connection_setup):
12734         * bus/dispatch.c: (send_one_message),
12735         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12736         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12737         * bus/dispatch.h:
12738         * bus/driver.c: (bus_driver_send_service_deleted),
12739         (bus_driver_send_service_created), (bus_driver_handle_hello),
12740         (bus_driver_send_welcome_message),
12741         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12742         (bus_driver_handle_message):
12743         * bus/driver.h:
12744         Refactor code, put the message dispatching in its own file. Use
12745         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12746         is disconnected.
12747
12748 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12749
12750         * dbus/dbus-internals.h:
12751         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12752
12753         * dbus/dbus-message.c: (dbus_message_get_sender):
12754         * dbus/dbus-message.h:
12755         Implement dbus_message_get_sender.
12756
12757         * dbus/dbus-protocol.h:
12758         Add message and service defines.
12759
12760 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12761
12762         * dbus/dbus-connection.c: (dbus_connection_send_message):
12763         * dbus/dbus-message-internal.h:
12764         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12765         (dbus_message_write_header):
12766         Remove _dbus_messag_unlock and don't set the client serial on a
12767         message if one already exists.
12768
12769 2003-01-24  Havoc Pennington  <hp@pobox.com>
12770
12771         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12772         list_pool
12773
12774         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12775         on OOM
12776
12777 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12778
12779         * dbus/dbus-list.c: (alloc_link), (free_link):
12780         Use a memory pool for the links.
12781
12782 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12783
12784         * bus/connection.c: (bus_connection_foreach):
12785         * bus/connection.h:
12786         Add new bus_connection_foreach function.
12787
12788         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12789         Add function that broadcasts a message to all clients.
12790
12791         (bus_driver_send_service_created), (bus_driver_handle_hello),
12792         (bus_driver_send_welcome_message),
12793         (bus_driver_handle_list_services), (bus_driver_message_handler):
12794         Implement functions that take care of listing services, and notifying
12795         clients when new services are created.
12796
12797         * bus/services.c: (bus_services_list):
12798         * bus/services.h:
12799         Add new function that returns an array of strings with the currently
12800         registered services.
12801
12802         * glib/dbus-glib.h:
12803         * glib/dbus-gmain.c:
12804         Update copyright year.
12805
12806 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12807
12808         * dbus/dbus-connection.c: (dbus_connection_send_message):
12809         Unlock the message in case it was sent earlier.
12810
12811         (dbus_connection_send_message_with_reply_and_block):
12812         Remove the reply message from the list.
12813
12814         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12815         Set array_len and new_pos correctly.
12816
12817         (_dbus_marshal_test):
12818         Remove debug output.
12819
12820         * dbus/dbus-message-internal.h:
12821         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12822         New function that returns the reply serial.
12823
12824         (_dbus_message_unlock):
12825         New function that unlocks a message and resets its header.
12826
12827         (dbus_message_append_string_array),
12828         (dbus_message_get_fields_valist),
12829         (dbus_message_iter_get_field_type),
12830         (dbus_message_iter_get_string_array),
12831         (dbus_message_get_fields),
12832         (dbus_message_append_fields_valist):
12833         Handle string arrays.
12834
12835         (dbus_message_set_sender):
12836         Make this function public since the bus daemon needs it.
12837
12838         (decode_header_data):
12839         Set the reply serial to -1 initially.
12840
12841         * dbus/dbus-message.h:
12842         Add dbus_message_set_sender.
12843
12844 2003-01-24  Havoc Pennington  <hp@pobox.com>
12845
12846         * doc/dbus-specification.sgml: add some stuff
12847
12848 2003-01-22  Havoc Pennington  <hp@pobox.com>
12849
12850         * doc/dbus-specification.sgml: Start to document the protocol.
12851
12852 2003-01-22  Havoc Pennington  <hp@pobox.com>
12853
12854         * dbus/dbus-connection.c
12855         (dbus_connection_send_message_with_reply_and_block): add some @todo
12856
12857         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12858
12859 2003-01-21  Havoc Pennington  <hp@pobox.com>
12860
12861         (patch untested because can't compile)
12862
12863         * bus/driver.c (create_unique_client_name): make this function
12864         never recycle client names. Also, caller should initialize
12865         the DBusString.
12866
12867         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12868
12869 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12870
12871         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12872         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12873         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12874         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12875         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12876         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12877         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12878         * dbus/dbus-marshal.h:
12879         * dbus/dbus-protocol.h:
12880         Add support for marshalling and demarshalling integer, double
12881         and string arrays.
12882
12883 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12884
12885         * bus/Makefile.am:
12886         Add driver.[ch]
12887
12888         * bus/connection.c: (connection_disconnect_handler):
12889         Remove the connection from the bus driver's list.
12890
12891         (connection_watch_callback): Dispatch messages.
12892
12893         (free_connection_data): Free connection name.
12894
12895         (bus_connection_setup): Add connection to the bus driver's list.
12896         (bus_connection_remove_owned_service):
12897         (bus_connection_set_name), (bus_connection_get_name):
12898         Add functions for setting and getting the connection's name.
12899
12900         * bus/connection.h:
12901         Add function headers.
12902
12903         * bus/driver.c: (create_unique_client_name),
12904         (bus_driver_handle_hello_message),
12905         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12906         (bus_driver_add_connection), (bus_driver_remove_connection):
12907         * bus/driver.h:
12908         * bus/main.c:
12909         * bus/services.c: (bus_service_free):
12910         * bus/services.h:
12911         New file that handles communication and registreation with the bus
12912         itself.
12913
12914 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12915
12916         * dbus/dbus-connection.c: (dbus_connection_send_message):
12917         Add a new client_serial parameter.
12918
12919         (dbus_connection_send_message_with_reply):
12920         Remove a @todo since we've implemented the blocking function.
12921
12922         (dbus_connection_send_message_with_reply_and_block):
12923         New function that sends a message and waits for a reply and
12924         then returns the reply.
12925
12926         * dbus/dbus-connection.h:
12927         Add new functions.
12928
12929         * dbus/dbus-errors.c: (dbus_result_to_string):
12930         * dbus/dbus-errors.h:
12931         Add new DBUS_RESULT.
12932
12933         * dbus/dbus-message-internal.h:
12934         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12935         (_dbus_message_set_sender), (dbus_message_write_header),
12936         (dbus_message_new_reply), (decode_header_data),
12937         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12938         * dbus/dbus-message.h:
12939         Add new functions that set the reply serial and sender.
12940         Also marshal and demarshal them correctly and add test.
12941
12942         * dbus/dbus-protocol.h:
12943         Add new DBUS_MESSAGE_TYPE_SENDER.
12944
12945         * glib/dbus-glib.h:
12946         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12947         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12948         (dbus_connection_hookup_with_g_main):
12949         * glib/test-dbus-glib.c: (main):
12950         Rewrite to use GIOChannel and remove the GSource crack.
12951
12952         * test/echo-client.c: (main):
12953         * test/watch.c: (check_messages):
12954         Update for changed APIs
12955
12956 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12957
12958         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12959
12960         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12961         Create a DBusTimeoutList.
12962         (dbus_connection_set_timeout_functions): Add new function to
12963         set timeout callbacks
12964
12965         * dbus/dbus-connection.h: Add public DBusTimeout API.
12966
12967         * dbus/dbus-message.c: (dbus_message_get_service):
12968         * dbus/dbus-message.h:  New function.
12969
12970         * dbus/dbus-server.c: Fix small doc typo.
12971
12972         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12973
12974 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12975
12976         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12977         of the string, just as long as specified.
12978
12979 2003-01-19  Havoc Pennington  <hp@pobox.com>
12980
12981         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12982         new function
12983
12984         * dbus/dbus-server.c (dbus_server_set_max_connections)
12985         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12986         keep track of current number of connections, and add API for
12987         setting a max (but haven't implemented enforcing the max yet)
12988
12989 2003-01-18  Havoc Pennington  <hp@pobox.com>
12990
12991         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12992         reading/writing if read_watch != NULL or write_watch != NULL.
12993
12994         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12995         the message loader code to actually load message->header and
12996         message->body into the newly-created message.
12997
12998         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12999         in OOM case
13000
13001         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13002         (dbus_connection_get_max_message_size)
13003         (dbus_connection_set_max_live_messages_size)
13004         (dbus_connection_get_max_live_messages_size): implement some
13005         resource limitation functions
13006
13007         * dbus/dbus-resources.c: new file implementing some of the
13008         resource limits stuff
13009
13010         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13011         missing docs, add @todo to handle OOM etc.
13012
13013         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13014         docs
13015
13016 2003-01-18  Havoc Pennington  <hp@pobox.com>
13017
13018         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13019         connection if it hasn't been already.
13020
13021         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13022         replace with DisconnectFunction.
13023
13024 2003-01-18  Havoc Pennington  <hp@pobox.com>
13025
13026         Building --disable-verbose-mode --disable-asserts --disable-tests
13027         cuts the library from 112K to 45K or so
13028
13029         * configure.in: check for varargs macro support,
13030         add --enable-verbose-mode, --enable-asserts.
13031
13032         * dbus/dbus-internals.h (_dbus_assert): support
13033         DBUS_DISABLE_ASSERT
13034         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13035
13036 2003-01-18  Havoc Pennington  <hp@pobox.com>
13037
13038         * dbus/dbus-test.c: include config.h so that tests actually run
13039
13040         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13041         so the failure mode when that assumption fails will be plenty
13042         obvious.
13043
13044 2003-01-18  Havoc Pennington  <hp@pobox.com>
13045
13046         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13047
13048         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13049         the distribution
13050
13051         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13052         since we don't want to use those in make check
13053
13054 2003-01-15  Havoc Pennington  <hp@redhat.com>
13055
13056         Release 0.2
13057
13058         * NEWS: update
13059
13060 2003-01-15  Havoc Pennington  <hp@redhat.com>
13061
13062         * test/Makefile.am: fix so that test source code ends up in the
13063         distribution on make distcheck
13064
13065 2003-01-15  Havoc Pennington  <hp@redhat.com>
13066
13067         Release 0.1.
13068
13069         * NEWS: update
13070
13071 2003-01-15  Havoc Pennington  <hp@redhat.com>
13072
13073         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13074         fix build when --disable-tests
13075
13076         * Makefile.am (EXTRA_DIST): put HACKING in here
13077
13078         * HACKING: document procedure for making a tarball release.
13079
13080 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13081
13082         * bus/connection.c: (connection_error_handler),
13083         (bus_connection_setup):
13084         * bus/main.c: (main):
13085         Make sure that the DBusConnectionData struct is NULLed
13086         out to prevent a segfault.
13087
13088         * dbus/dbus-errors.c: (dbus_result_to_string):
13089         * dbus/dbus-errors.h:
13090         * dbus/dbus-message.c: (dbus_message_get_fields),
13091         (dbus_message_get_fields_valist), (_dbus_message_test):
13092         * dbus/dbus-message.h:
13093         Make dbus_message_get_fields return a result code so we can
13094         track invalid fields as well as oom.
13095
13096 2003-01-11  Havoc Pennington  <hp@pobox.com>
13097
13098         * configure.in: change --enable-test/--enable-ansi action-if-given
13099         to enable_foo=$enableval instead of enable_foo=yes
13100
13101 2003-01-08  Havoc Pennington  <hp@pobox.com>
13102
13103         * dbus/dbus-string.c (_dbus_string_align_length): new function
13104
13105         * dbus/dbus-test-main.c: move main() for test app here
13106         * dbus/dbus-test.c
13107         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13108         symbol to run tests, because dbus-test isn't in the main
13109         library
13110
13111         Code review nitpicks.
13112
13113         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13114         for people with narrow emacs ;-). Assert client_serial was filled
13115         in. Assert message->name != NULL.
13116         (dbus_message_append_fields): have "first_field_type" arg separate
13117         from va list, needed for C++ binding that also uses varargs IIRC
13118         and helps with type safety
13119         (dbus_message_new): add @todo about using DBusString to store
13120         service/name internally
13121         (dbus_message_new): don't leak ->service and ->name on OOM later
13122         in the function
13123         (dbus_message_unref): free the service name
13124         (dbus_message_get_fields): same change to varargs
13125         i.e. first_field_type
13126         (_dbus_message_loader_return_buffer): assert that the message data
13127         is aligned (if not it's a bug in our code). Put in verbose griping
13128         about why we set corrupted = TRUE.
13129         (decode_header_data): add FIXME that char* is evil.  Was going to
13130         add FIXME about evil locale-specific string.h strncmp, but just
13131         switched to wacky string-as-uint32 optimization. Move check for
13132         "no room for field name" above get_const_data_len() to avoid
13133         assertion failure in get_const_data_len if we have trailing 2
13134         bytes or the like. Check for service and name fields being
13135         provided twice. Don't leak service/name on error. Require field
13136         names to be aligned to 4 bytes.
13137
13138         * dbus/dbus-marshal.c: move byte swap stuff to header
13139         (_dbus_pack_int32): uscore-prefix
13140         (_dbus_unpack_int32): uscore-prefix
13141         (_dbus_unpack_uint32): export
13142         (_dbus_demarshal_string): add @todo complaining about use of
13143         memcpy()
13144         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13145         handling allowing corrupt data to go unchecked
13146
13147 2003-01-08  Havoc Pennington  <hp@redhat.com>
13148
13149         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13150         to the select() as needed for authentication. (should be using
13151         _dbus_poll() not select, but for another day)
13152
13153         * dbus/dbus.h: include dbus/dbus-protocol.h
13154
13155 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13156
13157         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13158         dbus-connection.h
13159
13160 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13161
13162         * dbus/dbus-internals.c: (_dbus_type_to_string):
13163         New function that returns a string describing a type.
13164
13165         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13166         * dbus/dbus-marshal.h:
13167         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13168         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13169         (dbus_message_iter_get_byte_array):
13170         * dbus/dbus-message.h:
13171         Add new convenience functions for appending and getting message fields.
13172         Also add demarshalling routines for byte arrays.
13173
13174 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13175
13176         * dbus/dbus-connection-internal.h:
13177         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13178         (_dbus_connection_get_next_client_serial),
13179         (dbus_connection_send_message):
13180         * dbus/dbus-internals.h:
13181         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13182         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13183         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13184         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13185         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13186         (_dbus_verbose_bytes), (_dbus_marshal_test):
13187         * dbus/dbus-marshal.h:
13188         * dbus/dbus-message-internal.h:
13189         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13190         (dbus_message_write_header), (_dbus_message_lock),
13191         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13192         (dbus_message_get_name), (dbus_message_append_int32),
13193         (dbus_message_append_uint32), (dbus_message_append_double),
13194         (dbus_message_append_string), (dbus_message_append_byte_array),
13195         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13196         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13197         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13198         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13199         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13200         (decode_header_data), (_dbus_message_loader_return_buffer),
13201         (message_iter_test), (_dbus_message_test):
13202         * dbus/dbus-message.h:
13203         * dbus/dbus-protocol.h:
13204         * dbus/dbus-test.c: (main):
13205         * dbus/dbus-test.h:
13206         * glib/test-dbus-glib.c: (message_handler), (main):
13207         * test/echo-client.c: (main):
13208         * test/watch.c: (check_messages):
13209         Make messages sendable and receivable for real.
13210
13211 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13212
13213         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13214         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13215         * dbus/dbus-message.c: (dbus_message_append_int32),
13216         (dbus_message_append_uint32), (dbus_message_append_double),
13217         (dbus_message_append_string), (dbus_message_append_byte_array):
13218         Handle OOM restoration.
13219
13220 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13221
13222         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13223         (_dbus_demarshal_string), (_dbus_marshal_test):
13224         * dbus/dbus-marshal.h:
13225         * dbus/dbus-message.c: (dbus_message_get_name),
13226         Document these functions.
13227
13228         (dbus_message_append_int32), (dbus_message_append_uint32),
13229         (dbus_message_append_double), (dbus_message_append_string),
13230         (dbus_message_append_byte_array):
13231         * dbus/dbus-message.h:
13232         Add functions for adding message fields of different types.
13233
13234         * dbus/dbus-protocol.h:
13235         Add the different types.
13236
13237 2003-01-05  Havoc Pennington  <hp@pobox.com>
13238
13239         * bus/connection.c: implement routines for handling connections,
13240         first thing is keeping a list of owned services on each connection
13241         and setting up watches etc.
13242
13243         * bus/services.c: implement a mapping from service names to lists
13244         of connections
13245
13246         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13247
13248         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13249         to use static mutexes for global data
13250
13251         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13252         collection of functions to set/get application-specific data
13253         on the DBusConnection.
13254
13255 2003-01-04  Havoc Pennington  <hp@pobox.com>
13256
13257         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13258         (_dbus_poll): new function
13259
13260         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13261         copied from GLib
13262
13263         * bus/loop.c: initial code for the daemon main loop
13264
13265 2003-01-04  Havoc Pennington  <hp@pobox.com>
13266
13267         * test/watch.c (error_handler): make it safe if the error handler
13268         is called multiple times (if we s/error handler/disconnect
13269         handler/ we should just guarantee it's called only once)
13270
13271         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13272         error handler on disconnect (it's quite possible we should
13273         just change the error handler to a "disconnect handler," I'm
13274         not sure we have any other meaningful errors)
13275
13276         * configure.in: check for getpwnam_r
13277
13278         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13279         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13280         mechanism as in SASL spec, using socket credentials
13281
13282         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13283         (_dbus_send_credentials_unix_socket): new function
13284
13285         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13286         dbus_accept()
13287         (_dbus_write): only check errno if <0 returned
13288         (_dbus_write_two): ditto
13289
13290 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13291
13292         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13293         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13294         (_dbus_marshal_test):
13295         * dbus/dbus-marshal.h:
13296         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13297         to _dbus_marshal_utf8_string. Also fix some tests.
13298
13299 2002-12-28  Harri Porten  <porten@kde.org>
13300
13301         * configure.in: added check for C++ compiler and a very cheesy
13302         check for the Qt integration
13303
13304         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13305
13306         * qt/Makefile.am: added
13307
13308         * qt/.cvsignore: added
13309
13310         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13311         latter, added #ifdef QT_THREAD_SUPPORT guard.
13312
13313         * dbus/Makefile.am: added missing headers for make dist
13314
13315 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13316
13317         * dbus/Makefile.am: fixup export-symbols-regex.
13318
13319 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13320
13321         * acinclude.m4: Add this file and put the
13322         PKG_CHECK_MODULE macro in it.
13323
13324 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13325
13326         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13327         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13328         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13329         (_dbus_marshal_test):
13330         Make the demarshalling routines align the pos argument.
13331         Add string marshalling tests and fix the obvious bugs
13332         discovered.
13333
13334 2002-12-26  Havoc Pennington  <hp@pobox.com>
13335
13336         * dbus/dbus-auth.c: fixes fixes fixes
13337
13338         * dbus/dbus-transport-unix.c: wire up support for
13339         encoding/decoding data on the wire
13340
13341         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13342         (_dbus_auth_decode_data): append to target string
13343         instead of nuking it.
13344
13345 2002-12-26  Havoc Pennington  <hp@pobox.com>
13346
13347         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13348         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13349         doh
13350
13351         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13352         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13353         now). Main point is because I wanted unpack_uint32 to implement
13354         _dbus_verbose_bytes
13355         (_dbus_verbose_bytes): new function
13356
13357         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13358
13359         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13360         mechanism to handle a corrupt message stream
13361         (_dbus_message_loader_new): fix preallocation to only prealloc,
13362         not prelengthen
13363
13364         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13365         (_dbus_string_test): enhance tests for copy/move and fix the
13366         functions
13367
13368         * dbus/dbus-transport-unix.c: Hold references in more places to
13369         avoid reentrancy problems
13370
13371         * dbus/dbus-transport.c: ditto
13372
13373         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13374         leak reference count in no-message case
13375
13376         * test/watch.c (do_mainloop): handle adding/removing watches
13377         during iteration over the watches. Also, ref the connection/server
13378         stored on a watch, so we don't try to mangle a destroyed one.
13379
13380         * dbus/dbus-transport-unix.c (do_authentication): perform
13381         authentication
13382
13383         * dbus/dbus-auth.c (get_state): add a state
13384         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13385         (_dbus_auth_get_unused_bytes): append the unused bytes
13386         to the passed in string, rather than prepend
13387
13388         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13389         the auth conversation DBusAuth
13390
13391         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13392         (_dbus_transport_new_for_domain_socket): when creating a
13393         transport, pass in whether it's a client-side or server-side
13394         transport so we know which DBusAuth to create
13395
13396 2002-12-03  Havoc Pennington  <hp@pobox.com>
13397
13398         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13399         _after_ finalizing the derived members
13400         (unix_connection_set): unref watch if we fail to add it
13401
13402         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13403         transport first, so that the connection owned by the
13404         transport will be valid as the transport finalizes.
13405
13406         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13407         if necessary, and remove watches from the connection.
13408
13409         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13410
13411 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13412
13413         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13414         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13415         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13416         (_dbus_marshal_test):
13417         * dbus/dbus-marshal.h:
13418         Add string marshal functions and have the demarshal functions
13419         return the new position.
13420
13421 2002-12-25  Havoc Pennington  <hp@pobox.com>
13422
13423         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13424         it is a simple protocol that just maps directly to SASL.
13425
13426         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13427         initial implementation, not actually used yet.
13428
13429         * dbus/dbus-string.c (_dbus_string_find): new function
13430         (_dbus_string_equal): new function
13431         (_dbus_string_base64_encode): new function
13432         (_dbus_string_base64_decode): new function
13433
13434 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13435
13436         * dbus/Makefile.am:
13437         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13438         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13439         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13440         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13441         * dbus/dbus-marshal.h:
13442         * dbus/dbus-protocol.h:
13443         * dbus/dbus-test.c: (main):
13444         * dbus/dbus-test.h:
13445         Add un-optimized marshalling/demarshalling routines.
13446
13447 2002-12-25  Harri Porten  <porten@kde.org>
13448
13449         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13450
13451 2002-12-24  Zack Rusin  <zack@kde.org>
13452
13453         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13454         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13455         main loop stuff
13456
13457 2002-12-24  Havoc Pennington  <hp@pobox.com>
13458
13459         * glib/dbus-gthread.c: fix include
13460
13461         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13462         I think glib API needs to change, though, as you don't
13463         want to use DBusMessageFunction, you want to use the
13464         DBusMessageHandler object. Probably
13465         dbus_connection_open_with_g_main_loop()
13466         and dbus_connection_setup_g_main_loop() or something like that
13467         (but think of better names...) that just create a connection
13468         that has watch/timeout functions etc. already set up.
13469
13470         * dbus/dbus-connection.c
13471         (dbus_connection_send_message_with_reply): new function just to
13472         show how the message handler helps us deal with replies.
13473
13474         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13475
13476         * dbus/dbus-string.c (_dbus_string_test): free a string that
13477         wasn't
13478
13479         * dbus/dbus-hash.c: use memory pools for the hash entries
13480         (rebuild_table): be more paranoid about overflow, and
13481         shrink table when we can
13482         (_dbus_hash_test): reduce number of sprintfs and write
13483         valid C89. Add tests for case where we grow and then
13484         shrink the hash table.
13485
13486         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13487
13488         * dbus/dbus-connection.c (dbus_connection_register_handler)
13489         (dbus_connection_unregister_handler): new functions
13490
13491         * dbus/dbus-message.c (dbus_message_get_name): new
13492
13493         * dbus/dbus-list.c: fix docs typo
13494
13495         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13496         an object representing a handler for messages.
13497
13498 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13499
13500         * glib/dbus-glib.h:
13501         * glib/dbus-gthread.c: (dbus_gthread_init):
13502         Don't use the gdbus prefix for public functions.
13503
13504 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13505
13506         * Makefile.am:
13507         * configure.in:
13508         Add GLib checks and fixup .pc files
13509
13510         * glib/Makefile.am:
13511         * glib/dbus-glib.h:
13512         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13513         (gdbus_connection_check), (gdbus_connection_dispatch),
13514         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13515         (dbus_connection_gsource_new):
13516         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13517         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13518         * glib/test-dbus-glib.c: (message_handler), (main):
13519         Add GLib support.
13520
13521 2002-12-15  Harri Porten  <porten@kde.org>
13522
13523         * autogen.sh: check for libtoolize before attempting to use it
13524
13525         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13526         struct.
13527
13528         * .cvsignore: ignore more stamp files
13529
13530         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13531
13532         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13533         without make install.
13534
13535 2002-12-15  Havoc Pennington  <hp@pobox.com>
13536
13537         * dbus/dbus-threads.c: add thread stubs that a higher library
13538         layer can fill in. e.g. the GLib wrapper might fill them in with
13539         GThread stuff. We still need to use this thread API to
13540         thread-safe-ize the library.
13541
13542 2002-12-12  Havoc Pennington  <hp@pobox.com>
13543
13544         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13545         below new interfaces and include fewer system headers.
13546
13547         * dbus/dbus-sysdeps.c (_dbus_read): new function
13548         (_dbus_write): new function
13549         (_dbus_write_two): new function
13550         (_dbus_connect_unix_socket): new function
13551         (_dbus_listen_unix_socket): new function
13552
13553         * dbus/dbus-message-internal.h: change interfaces to use
13554         DBusString
13555
13556 2002-12-11  Havoc Pennington  <hp@pobox.com>
13557
13558         * dbus/dbus-types.h: add dbus_unichar
13559
13560         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13561
13562         * dbus/dbus-connection.c (dbus_connection_send_message): return
13563         TRUE on success
13564
13565         * dbus/dbus-transport.c: include dbus-watch.h
13566
13567         * dbus/dbus-connection.c: include dbus-message-internal.h
13568
13569         * HACKING: add file with coding guidelines stuff.
13570
13571         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13572         handling here, for security purposes (as in vsftpd). Not actually
13573         using this class yet.
13574
13575         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13576         system/libc usage here, as in vsftpd, for ease of auditing (and
13577         should also simplify portability). Haven't actually moved all the
13578         system/libc usage into here yet.
13579
13580 2002-11-25  Havoc Pennington  <hp@pobox.com>
13581
13582         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13583         always print the first verbose message.
13584
13585 2002-11-24  Havoc Pennington  <hp@pobox.com>
13586
13587         * test/echo-client.c, test/echo-server.c: cheesy test
13588         clients.
13589
13590         * configure.in (AC_CHECK_FUNCS): check for writev
13591
13592         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13593         function
13594
13595         * dbus/dbus-list.c (_dbus_list_foreach): new function
13596
13597         * dbus/dbus-internals.c (_dbus_verbose): new function
13598
13599         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13600         representing a server that listens for connections.
13601
13602         * dbus/.cvsignore: create
13603
13604         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13605         public API for reporting errors
13606
13607         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13608         public object representing a connection that
13609         sends/receives messages. (Same object used for
13610         both client and server.)
13611
13612         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13613         Basic abstraction for different kinds of stream
13614         that we might read/write messages from.
13615
13616 2002-11-23  Havoc Pennington  <hp@pobox.com>
13617
13618         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13619         _DBUS_INT_MAX
13620
13621         * dbus/dbus-test.c (main): add list test, and include
13622         dbus-test.h as intended
13623
13624         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13625         (_dbus_hash_table_remove_int): return value indicates
13626         whether the entry existed to remove
13627
13628         * dbus/dbus-list.c: add linked list utility class,
13629         with docs and tests
13630
13631         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13632         array sometimes.
13633
13634 2002-11-23  Havoc Pennington  <hp@pobox.com>
13635
13636         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13637         DBUS_END_DECLS to nothing, that should fix this once and for all
13638
13639         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13640
13641         * dbus/dbus-message.c, dbus/dbus-hash.c:
13642         add some missing @brief
13643
13644 2002-11-23  Havoc Pennington  <hp@pobox.com>
13645
13646         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13647         to avoid confusing Doxygen
13648
13649         * dbus/dbus-hash.c: @} not }@
13650
13651         * dbus/dbus-message.c (struct DBusMessage): split out
13652         internals docs
13653
13654 2002-11-23  Havoc Pennington  <hp@pobox.com>
13655
13656         * configure.in: pile on more warning flags if using gcc
13657
13658         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13659         to document static functions
13660
13661         * configure.in: add summary to end of configure so it
13662         looks nice and attractive
13663
13664         * dbus/dbus-hash.c: finish implementation and write unit
13665         tests and docs
13666
13667         * configure.in: add --enable-tests to enable unit tests
13668
13669         * dbus/dbus-test.c: test program to run unit tests
13670         for all files in dbus/*, initially runs a test for
13671         dbus-hash.c
13672
13673         * dbus/dbus-internals.h: file to hold some internal utility stuff
13674
13675 2002-11-22  Havoc Pennington  <hp@redhat.com>
13676
13677         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13678         "ported" away from Tcl
13679
13680         * dbus/dbus-types.h: header for types such as dbus_bool_t
13681
13682 2002-11-22  Havoc Pennington  <hp@redhat.com>
13683
13684         * dbus/dbus.h: fixups for doc warnings
13685
13686         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13687         macros
13688         (QUIET): make it quiet so we can see warnings
13689
13690         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13691
13692 2002-11-22  Havoc Pennington  <hp@redhat.com>
13693
13694         * Makefile.am: include "Doxyfile" target in all-local
13695
13696         * configure.in: generate the Doxyfile
13697
13698         * Doxyfile.in: move Doxyfile here, so we can use
13699         configure to generate a Doxyfile with the right
13700         version number etc.
13701
13702 2002-11-22  Havoc Pennington  <hp@redhat.com>
13703
13704         * dbus/dbus-message.c: move inline docs into .c file
13705
13706         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13707         so all docs are under doc/
13708         (MAN_EXTENSION): generate man pages. Use extension
13709         ".3dbus" which matches ".3qt" on my system,
13710         I guess this is OK, I don't know really.
13711         (FILE_PATTERNS): look for .c files not .h, makes sense
13712         for plain C I think
13713
13714 2002-11-22  Havoc Pennington  <hp@pobox.com>
13715
13716         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13717         because any app can be a server, and any app can be a client,
13718         the bus is a special kind of server.
13719
13720 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13721
13722         * Doxyfile : adding. Still needs Makefile rules to be generated
13723         automatically (just run "doxygen" in the toplevel dir for now to
13724         generate docs)
13725
13726         * dbus/dbus-message.h : Adding sample docs (javadoc since
13727         resembles gtk-doc a little more)
13728
13729         * dbus/dbus.h : Adding sample docs
13730
13731 2002-11-21  Havoc Pennington  <hp@redhat.com>
13732
13733         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13734         so we can allow ourselves to include files directly,
13735         instead of having to use dbus.h
13736
13737         * dbus/dbus.h: fill in
13738
13739         * dbus/dbus-message.h: sketch out a sample header file.
13740         Include griping if you include it directly instead of
13741         via dbus.h
13742
13743         * dbus/dbus-macros.h: new file with macros for extern "C",
13744         TRUE/FALSE, NULL, etc.
13745
13746         * doc/file-boilerplate.c: put include guards in here
13747
13748 2002-11-21  Havoc Pennington  <hp@redhat.com>
13749
13750         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13751
13752         * COPYING: include the GPL as well, and license code
13753         under both AFL and GPL.
13754
13755 2002-11-21  Havoc Pennington  <hp@redhat.com>
13756
13757         * acconfig.h: get rid of this
13758
13759         * autogen.sh (run_configure): add --no-configure option
13760
13761         * configure.in: remove AC_ARG_PROGRAM to make
13762         autoconf complain less. add AC_PREREQ.
13763         add AC_DEFINE third arg.
13764
13765 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13766
13767         * doc/Makefile.am:
13768         Fix references so we can distcheck.
13769
13770 2002-11-21  Havoc Pennington  <hp@redhat.com>
13771
13772         * Initial module creation
13773