* doc/TODO:
[platform/upstream/dbus.git] / ChangeLog
1 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
2
3         * doc/TODO:
4         * dbus/dbus-bus.c:
5         * dbus-errors.c:
6         * dbus/dbus-marshal-validate.c:
7           Removed TODO items which were fixed or are no longer relevent
8
9 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
10
11         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
12         Remove stray files from the stripped bindings
13
14 2006-07-16  Havoc Pennington  <hp@redhat.com>
15
16         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
17         Improve the error message on reply timeout
18
19 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
20
21         * Remove all bindings
22
23 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
24
25         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
26         and set pending_reply out arg to NULL is connection is disconnected
27         (connection_timeout_and_complete_all_pending_calls_unlocked): New
28         static method for cleaning up pending calls on disconnect
29         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
30         calls queued timeouts on disconnect 
31
32          * dbus/dbus-pending-call.ci (_dbus_pending_call_set_connection):
33         Remove 
34
35 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
36
37         * bus/activation.[ch] (bus_activation_list_services): new function to 
38         get the list of services that can be activated
39
40         * bus/dispatch.c: test coverage for the new bus method
41         ListActivatableNames
42
43         * bus/driver.c: new bus method ListActivatableNames to get the list of
44         services that can be activated
45
46         * doc/dbus-specification.xml: ListActivatableNames method documentation
47
48 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
49         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
50         source files
51
52 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
53         * dbus/dbus-message-factory.c:
54         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
55
56 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
57         * dbus/dbus-connection-internal.h:
58         * dbus/dbus-connection.c:
59         * file dbus/dbus-pending-call.c:
60         * dbus/dbus-pending-call.h:
61         Make DBusPendingCall an opaque type even to D-Bus internals
62
63 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
64
65         * dbus/dbus-connection.h: remove connection_disconnect and replace with
66         connection_close
67
68         * dbus/dbus-connection.c: include dbus-bus.h
69         (_dbus_connection_read_write_dispatch): make static
70
71 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
72
73         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
74         function
75         (dbus_connection_dispatch): On disconnect unref any shared connections
76
77         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
78         for cleaning up shared connections on disconnect
79         (internal_bus_get): get a hard refrence to shared connections when
80         they are created
81         
82         * doc/TODO: Remove items which are no longer relevent or have been fixed
83         Split 1.0 todo items with a 0.90 freeze todo list
84  
85 2006-06-14  Ross Burton  <ross@openedhand.com>
86
87         * glib/dbus-gobject.c:
88         Free a leaking GArray (surely not!) in dbus_g_method_return.
89
90 2006-06-14  Ross Burton  <ross@openedhand.com>
91
92         * tools/Makefile.am:
93         * tools/dbus-monitor.c:
94         Don't use the GLib bindings in dbus-monitor (patch from Ralf
95         Habacker).
96         
97 2006-06-14  Ross Burton  <ross@openedhand.com>
98
99         * tools/dbus-print-message.c:
100         Also print the object path when outputting signals or method calls.
101
102 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
103
104         * qt/src/Makefile.am: install the qdbus.h header.
105         This allows people to actually use the installed code.
106
107 2006-06-12  Ross Burton  <ross@openedhand.com>
108
109         * glib/dbus-gproxy.c:
110         Don't leak a GArray when firing signals (thank Rob Taylor for review).
111
112 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
113
114         * Released 0.62
115
116 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
117
118         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
119         break pedantic builds. Closes bug 6043 (patch approved by
120         Havoc back in February).
121
122 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
123
124         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
125         that took a QDBusMessage parameter.
126         * qt/src/qdbusbus.h: Add a default flag for RequestName.
127         * qt/tools/dbus.cpp: Don't use automatic call because we might
128         be calling an async method: request a reply.
129
130 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
131
132         * test/qt/*: Update the testcases, including testing the new
133         functionality of sending null QByteArray and QString over the
134         bus. Add new headertest test and restore the old
135         qdbusxmlparser test.
136
137 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
138
139         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
140         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
141
142         * qt/examples/Makefile.am:
143         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
144         form.
145
146         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
147         QByteArray() (nulls) over the bus.
148         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
149         the one that has the signature suffix stripped.
150         * qt/src/qdbusreply.h: Make some methods const.
151
152 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
153
154         Patch from Timo Hoenig <thoenig@suse.de>.
155
156         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
157         required during build to EXTRA_DIST.
158         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
159         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
160         * configure.in: Fix "make dist", take care that the Makefile for
161         qt/dbus is being generated.
162
163 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
164
165         * bus/bus.c: Fix eavesdropping on method calls
166
167 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
168
169         * configure.in:
170         * dbus/dbus-userdb-util.c:
171         Add Solaris console owner patch from Artem Kachitchkine
172
173 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
174
175         * qt/Makfile.am:
176         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
177         reorganisation. Thanks to Timo Hoenig for pointing this out.
178
179 2006-06-06  Robert McQueen  <robot101@debian.org>
180
181         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
182           call to dbus_g_type_get_struct.
183
184 2006-06-06  Robert McQueen  <robot101@debian.org>
185
186         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
187           pointers were put into a GPtrArray-based specialised collection, and
188           then freed along with the array. GValues which you add into
189           collections or maps which have the NOCOPY flag set are assumed to not
190           belong to the caller, so rather than the existing pointer-stealing
191           semantics, they are copied instead. Given that the main consumers of
192           this abstraction are the bindings themselves, I don't think this is
193           too bad, but others should watch their choice of take vs set_static.
194
195 2006-06-06  Robert McQueen  <robot101@debian.org>
196
197         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
198           of g_slist_prepend not being used. Fixed copying of slist-based
199           specialised collections, then wrote a test case and found that it was
200           all broken. Went on to fix iterating and appending too. Good thing
201           nobody uses this code yet.
202
203 2006-06-06  Robert McQueen  <robot101@debian.org>
204
205         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
206           the iterators use gvalue_take_ptrarray_value (the GValues themselves
207           are discarded without unsetting, so it makes no difference whether
208           we take or set_static). Remove cases for G_TYPE_POINTER because
209           there really is nothing useful we can do with them in our
210           specialised types - we *need* boxed copy/free functions at the very
211           least.
212
213 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
214
215         * qt/dbus: Add directory. I had forgotten to add this
216         yesterday after the move...
217
218         * qt/examples/Makefile.am:
219         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
220
221         * qt/tools/Makefile.am:
222         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
223         Added feature to get and set properties.
224         Added validation of service, object path and interface names.
225
226         * qt/tools/dbusidl2cpp.cpp: Two new features:
227         1) Allow specifying both the header and the source file names,
228         by separating them with a colon.
229         2) Don't write an interface output if the -p switch wasn't
230         given, but the -a was.
231
232         * qt/src/*: Fix usage of Iterators and ConstIterators.
233         Fix shadowing of variables by other variables (-Wshadow).
234         Fix keyword-cleanliness in headers.
235         Fix ASCII-cast (QLatin1String, QLatin1Char).
236         Fix validation of member names.
237         Add extra checking of introspection data during XML parsing.
238         Various bug fixes.
239
240 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
241
242         * dbus/Makefile.am:
243         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
244         qt/dbus/qdbus.h now.
245
246 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
247
248         * configure.in: Make --disable-qt actually do
249           something. Patch inspired by Zack Rusin.
250
251 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
252
253         * qt/: Update to Subversion r548032.
254         This includes a big reorganisation of the files inside the
255         subdir.
256
257 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
258
259         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
260         clear:  
261         "Failed to connect to socket <host>:<port> <error>" instead of
262         "Failed to connect to socket <host>: <error>:<port>"
263
264         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
265         for a tcp transport. 
266
267 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
268
269         * qt/*: Update the QtDBus bindings up to revision 546310 in
270         Subversion.
271         This adds the dbuscpp2xml tool, that parses a C++ header and
272         outputs a D-BUS Introspection XML.
273
274 2006-05-21  Havoc Pennington  <hp@redhat.com>
275
276         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
277         is not NULL when it shouldn't be. Also a couple of possible fixes
278         for #4637 though I don't understand why the bug happens, to be
279         honest... also the object constructor has an assert name != NULL
280         and the name is only currently NULL for peer-to-peer proxies that 
281         I don't think anyone uses? So it should be asserting.
282         Anyway, for now at least see if we get an earlier assertion failure.
283
284         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
285         apparently broken code to be sure the tests fail and someone 
286         will fix them...
287
288 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
289
290         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
291         and arrays when they had a single element: has_next returns
292         false, even before you read the element. So, instead, check
293         the array length.
294
295 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
296
297         * qt/qdbusmessage.cpp:
298         * qt/qdbustypehelper_p.h:
299         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
300         the list is a const-reference
301
302 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
303
304         * Adding old doc patch that never got applied
305         
306         * dbus/bus.c (dbus_bus_add_match): Add documentation
307
308         * doc/dbus-specification.xml: Add documentation for the match rules
309           and the AddMatch and RemoveMatch methods
310
311 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
312
313         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
314         call (r535506)
315
316         * qt/dbusidl2cpp.cpp:
317         * qt/qdbusabstractadaptor.cpp:
318         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
319         sibling of the QDBusAbstractAdaptor objects instead of the
320         parent. (r535848)
321
322         * qt/dbusidl2cpp.cpp:
323         * qt/qdbusabstractinterface.cpp:
324         * qt/qdbusabstractinterface.h:
325         * qt/qdbusabstractinterface_p.h:
326         * qt/qdbusinterface.cpp: Make properties in interfaces
327         actually work. The code that was generated would not compile,
328         due to moc calls to functions that did not exist. They now
329         shall. (r536571)
330
331 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
332
333         * Makefile.am:
334         * configure.in:
335         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
336         Thanks to Brad Hards for providing the patch
337
338 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
339
340         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
341         call. (r535506)
342
343 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
344
345         * qt/examples/dbus.cpp: Enhance error messages and use
346         QDBusInterfacePtr.
347
348 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
349
350         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
351         and disable the copy operators. (r533772, r534746)
352
353         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
354
355         * qt/qdbusabstractinterface.cpp:
356         * qt/qdbusabstractinterface.h: Change the default call mode to
357         not use the event loop. Add convenience call() methods that
358         take a CallMode parameter. (r534042)
359
360         * qt/qdbusconnection.h: Change the default call mode to not
361         use the event loop. (r534042)
362
363         * qt/qdbusinterface.cpp:
364         * qt/qdbusinterface.h: Add a method to tell us if the
365         interface is valid (since we don't return a null pointer
366         anymore) (r534099)
367
368         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
369         (r534101)
370
371         * qt/qdbusinternalfilters.cpp: Decouple the introspection
372         function in two so taht we get the chance to introspect
373         without having a QDBusMessage (r534102)
374
375         * qt/qdbusbus.h:
376         * qt/qdbusconnection.cpp:
377         * qt/qdbusconnection_p.h:
378         * qt/qdbusintegrator.cpp: Keep a list of our own names to
379         avoid a round-trip to the server when attempting to introspect
380         one of our own objects. Also make sure the filter functions
381         match the empty interface as well. (r534108)
382         Don't keep the connection names. Instead, trust the unique
383         connection name (r534111)
384         Remove event loop usage (r534112)
385
386 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
387
388         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
389         Brad Hards.
390
391 2006-04-28  Robert McQueen  <robot101@debian.org>
392
393         * glib/dbus-gproxy.c: Fix properties so that they can be given in
394         any order, making it easier for people who inherit from this
395         object.
396
397 2006-04-28  Robert McQueen  <robot101@debian.org>
398
399         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
400         of memory from within pointer arrays and lists. Fixes bug #6300.
401
402 2006-04-28  Robert McQueen  <robot101@debian.org>
403
404         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
405         generating struct signatures. Fixes bug #6083.
406
407 2006-04-28  Robert McQueen  <robot101@debian.org>
408
409         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
410         to qdbusconnection_p.moc.
411
412 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
413
414         * README, INSTALL: Doc fixes
415         Patch from Brad Hards <bradh at frogmouth.net>
416
417 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
418
419         * qt/examples/dbus.cpp: Use the new merged-interface mode for
420         the dynamic meta object. No need to guess which interface to
421         call.
422
423 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
424
425         * qt/qdbusconnection_p.h:
426         * qt/qdbusmetaobject.cpp:
427         * qt/qdbusmetaobject_p.h:
428         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
429         for the dynamic meta object. No need to guess which
430         interface to call.
431         * qt/qdbusabstractinterface_p.h:
432         * qt/qdbusconnection.cpp:
433         * qt/qdbusintegrator.cpp:
434         * qt/qdbusinterface.cpp:
435         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
436         Add a QDBusRef that looks and behaves like DCOPRef.
437
438 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
439
440         * dbus/dbus-connection.c: Interfaces are optional in method
441         calls, so don't give up if the interface parameter is NULL.
442         Patch reviewed by Havoc Pennington.
443
444 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
445
446         * qt/qdbusreply.h: Add default constructor and operator=
447           (r532625)
448         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
449           in public headers (r532952)
450         * qt/qdbusabstractinterface.cpp:
451         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
452           make it the default (r532951)
453
454 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
455
456         * dbus/dbus-connection.c: Fix asserts
457         Patch from Tim Moloney <t.moloney at verizon.net>
458
459 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
460
461         * mono/Connection.cs, mono/Message.cs: Check Target type
462         Patch from Aaron Bockover (abockover at novell.com)
463
464 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
465
466         * INSTALL: fine-tune the requirements for the Qt4 binding.
467
468 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
469
470         * tools/dbus-print-message.c: Added support for printing of all 
471           remaining data types. Fixed logic for indentation of compound
472           data types.
473         
474 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
475
476         * INSTALL: fill out content of file providing DBus specific
477           build installations, followed by generic Auto* INSTALL file
478           content
479         
480 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
481
482         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
483           Patch by Stefan Eilers. (r529537)
484
485 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
486
487         * qt/qdbusinternalfilters.cpp: Don't show the parent's
488           contents (r528208)
489
490 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
491
492         * qt/Makefile.am: fix the dependency for
493           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
494           not in qdbusconnection.cpp.
495           Thanks to Jakub Stachowski <stachowski@hypair.net> for
496           spotting this.
497
498 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
499
500         * qt/examples/listnames.cpp:
501         * qt/examples/Makefile.am: Three ways to list the names on the
502           bus.
503
504 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
505
506         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
507           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
508
509 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
510
511         Merge from Subversion:
512         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
513           something that exists (r526315)
514         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
515           slots/signals (r526316)
516         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
517           also return an unknown-method error if the parameters don't
518           match for org.freedesktop.DBus.Properties. (r526842)
519         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
520         * qt/qdbusintegrator.cpp: Restore the proper order of
521           delivery: don't make method returns be delivered on priority
522           (r528150)
523
524 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
525
526         * configure.in qt/Makefile.am: add qt/examples
527         * qt/examples: Add QtDBus example programs:
528           - hello: Hello, World
529           - ping: Simple method-calling program
530           - pong: Simple object-exporting program (not using adaptors)
531           - complexping: Interactive method-calling program 
532                 (also gets and sets properties).
533           - complexpong: Sample program exporting methods, signals and
534                 properties, using adaptors.
535           - dbus: Simple implementation of a generic method-calling
536                 program, similar to 'dbus-send', but with semantics
537                 similar to 'dcop'.
538           - chat: Simplistic chat program, implemented using signals
539                 and the system bus. Looks like IRC.
540
541 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
542
543         * configure.in: Detect QtGui (necessary for one of the
544           example programs). Note: this increases the minimum required
545           version of Qt to 4.1.3.
546
547 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
548
549         * test/qt/*: Sync with KDE Subversion revision 523647.
550         Update the testcases to the new API. Remove testcases for
551         classes that are no longer public or have been removed.
552
553 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
554
555         * qt/*: 
556         * dbus/qdbus.h: Sync with KDE Subversion revision
557         523647. Hopefully, this will be the last of the
558         source-incompatible changes. Documentation has been improved;
559         support for QList<basic-types> has been added; QDBusObject is
560         gone; QDBus(Abstract)Interface is now a QObject with
561         auto-generated meta-object; QDBusIntrospection is marked
562         private, since QMetaObject can be used now; lots of bugfixes.
563
564 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
565
566         Patch from Milosz Derezynski <internalerror at gmail.com>
567         
568         * configure.in:
569         Output the service directory in the configure summary
570
571         * dbus-1.pc.in:
572         Add session_bus_services_dir
573
574 2006-03-10  Ross Burton  <ross@openedhand.com>
575
576         * tools/dbus-print-message.c:
577         Add support for object paths and signatures.
578
579 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
580
581         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
582         config reload.
583         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
584         information caches
585         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
586         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
587         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
588         * dbus/dbus-userdb.h: Add function to flush all user/group information
589         caches.
590
591 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
592
593         * qt/dbusidl2cpp.cpp:
594         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
595         for dcopidl2cpp, found in the KDE installations (or the more
596         modern kalyptus): generate Qt4 C++ code for the input XML
597         introspection. Currently no IDL parsing.
598
599 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
600
601         * test/qt/*: Update the self-tests.
602
603 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
604
605         * qt/*: 
606         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
607         represents the first feature-complete version of the Qt4
608         bindings since I took ove maintainership.
609
610 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
611
612         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
613         dir. This is C++, so we can't use the DBus ones.
614
615 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
616
617         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
618         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
619
620 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
621
622         * dbus/dbus-connection.c: 
623         (_dbus_connection_block_pending_call):
624         Check to see if our data has already been read off the connection
625         by another blocking pending call before we block in poll.
626         (check_for_reply_and_update_dispatch_unlocked):
627         Code taken from _dbus_connection_block_pending_call - checks for
628         an already read reply and updates the dispatch if there is one.
629
630         * test/name-test/test-pending-call-dispatch.c:
631         New test for making sure we don't get stuck polling a 
632         dbus connection which has no data on the socket when
633         blocking out of order on two or more pending calls.
634
635 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
636
637         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
638         make/automake don't detect that we're talking about the same
639         .lo file if I specify the full path to the source files.
640
641 2006-02-26  Havoc Pennington  <hp@redhat.com>
642
643         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
644
645         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
646         session bus variable is unset, suggest "man dbus-launch" and "man
647         dbus-daemon" to figure out how to fix the problem
648
649 2006-02-25  Havoc Pennington  <hp@redhat.com>
650
651         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
652         should make this thing use the new glib options parser
653
654 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
655
656         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
657         .lo files taking moc sources.
658
659 2006-02-25  Havoc Pennington  <hp@redhat.com>
660
661         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
662         and install it as a public header
663
664 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
665
666         * Released 0.61
667
668 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
669         
670         * proxies.py: Fix the callchain
671
672 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
673         
674         * patch from Sjoerd Simons <sjoerd at debian.org>:      
675
676         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
677         dbus/dbus-sysdeps.c
678
679         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
680         call _dbus_group_info_free_allocated which causes infinite loop,
681         correctly call _dbus_group_info_free
682
683 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
684
685         * qt/qdbusinterface_p.h:
686         * qt/qdbusinterface.cpp: Use the standard
687         org.freedesktop.DBus.Method.NoReply annotation for the "async"
688         calls instead of creating one for us.
689
690         * qt/qdbusconnection_p.h:
691         * qt/qdbusintegrator.cpp: Remove debugging code.
692
693         * qt/qdbusintegrator.cpp:
694         * qt/qdbusmessage.cpp:
695         * qt/qdbusmessage_p.h:
696         * qt/qdbusmessage.h: Change the behaviour of automatic
697         reply-sending: now a reply is always sent, unless the caller
698         didn't request one or if the user slot has already sent one.
699
700 2006-02-16  Robert McQueen  <robot101@debian.org>
701
702         * configure.in: Patch from Debian packages by Sjoerd Simons
703         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
704         arguments so it's possible to build both bindings in the
705         same tree.
706
707         * qt/Makefile.am: Fix truncated value so that make dist works.
708
709 2006-02-16  Robert McQueen  <robot101@debian.org>
710
711         * acinclude.m4, configure.in: Patch from Brad Hards
712         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
713         improving quoting, re-ordering a few checks, and a few other
714         aesthetic tidy-ups.
715
716 2006-02-16  Robert McQueen  <robot101@debian.org>
717
718         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
719         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
720         assertion that the next element to read from the iter is fixed in
721         size. This is not the case when you are at the end of the iter,
722         because the next element type is INVALID.
723
724         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
725         a bogus assert which means that you may not initialise a 0-length
726         string unless you provide a non-NULL pointer. This prevented
727         you from marshalling messages containing zero-length arrays in
728         some cases.
729
730         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
731         from Rob to correct bogus asserts when trying to demarshal an
732         array and get_fixed_array got you 0 elements. Append nothing to
733         the GArray in this case.
734
735         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
736         an empty array via the glib bindings. Without all of the above
737         patches, this new test fails.
738
739 2006-02-16  Robert McQueen  <robot101@debian.org>
740
741         * glib/dbus-gmain.c: Make the previous commit compile.
742
743         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
744         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
745         specify sender_keyword="foo", path_keyword="bar" when adding
746         a signal listener, so that you can bind to signals generically
747         but still do something useful in your callback.
748
749         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
750         chars so that they're not cast to chars and made negative. Thanks
751         to Jakub Stachowski for reporting this and testing the fix.
752
753 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
754
755         * dbus/dbus-glib.h:
756         * glib/dbus-gmain.h:
757         (dbus_g_connection_open): new method for openning
758         a connection to an arbitrary address in the glib bindings
759
760         * ChangeLog: checkin last entry which doesn't seem to be commited
761
762 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
763
764         * tools/dbus-launch.c: Fixed sh syntax output
765
766 2006-02-13  Robert McQueen  <robot101@debian.org>
767
768         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
769         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
770         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
771         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
772         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
773         missing piece of the glib bindings jigsaw puzzle. This modifies
774         the existing specialised types to have N type parameters (rather
775         than the current 1 or 2 for arrays and dictionaries respectively).
776         You can then use this to get a glib type to represent any arbitrary
777         D-Bus struct type using dbus_g_type_get_struct. The only
778         implementation of these types is with GValueArrays as before,
779         but it's now possible to store these in arrays, emit them in
780         signals, etc.
781
782 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
783
784         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
785         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
786         <thiago.macieira at trolltech.com>
787
788 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
789
790         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
791         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
792
793 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
794
795         * bus/connection.c (bus_connections_expect_reply): Make
796         pending reply limit not common to all connections (Bug #5416)
797         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
798
799 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
800
801         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
802
803 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
804
805         * gcj/Makefile.am: point to correct jar command (Bug #4529)
806         patch from Doug Goldstein <cardoe at gentoo.org>
807
808 2006-02-09  Joe Shaw  <joeshaw@novell.com>
809
810         * mono/Arguments.cs: Fix a magic number in the mono bindings
811         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
812
813 2006-01-27  Robert McQueen  <robot101@debian.org>
814
815         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
816         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
817         when generating the client-side methods, instead of overloading
818         CSymbol which broke everything horribly. My apologies.
819
820 2006-01-27  Robert McQueen  <robot101@debian.org>
821
822         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
823         by me and Rob Taylor to add a simple_free function to D-Bus map
824         and collection types, which allows those types which can be freed
825         with a GDestroyNotify (such as GHashTables and GArrays, but not
826         GPtrArrays) to be stored as the values in hashtables.
827
828         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
829         Patch by Rob Taylor to add nested dicts to the glib tests to check
830         the above code works, and appears not to leak when called repeatedly.
831
832 2006-01-27  Robert McQueen  <robot101@debian.org>
833
834         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
835         to free a D-Bus allocated string with dbus_free () instead of
836         g_free ().
837
838 2006-01-27  Iain Holmes  <iain@openedhand.com>
839
840         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
841         method from being called multiple times.
842
843 2006-01-19  Robert McQueen  <robot101@debian.org>
844
845         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
846         <rob.taylor@collabora.co.uk> to add support for generating bindings
847         to arrays that are represented as GPtrArrays rather than GArrays (ie
848         size-variable things, such as strings, objects, structs, etc).
849
850 2006-01-05  Robert McQueen  <robot101@debian.org>
851
852         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
853         <ricardo.kekki@movial.fi> to make it possible to inherit from
854         DBusGProxy, by splitting the DBusGProxy struct into a public part and
855         a private part, and moving the setting of the DBusGProxyManager into a
856         connection property, allowing proper GObject construction.
857
858 2006-01-05  Robert McQueen  <robot101@debian.org>
859
860         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
861         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
862         annotations when generating glib client bindings.
863
864 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
865
866         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
867
868         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
869
870 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
871
872         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
873
874 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
875
876         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
877
878 2005-12-19  Ross Burton  <ross@openedhand.com>
879
880         * doc/dbus-tutorial.xml:
881         Document the Glib client-side bindings, and list all possible annotations.
882
883 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
884
885         * dbus/bus.c (dbus_bus_release_name): Add documentation
886
887 2005-12-06  Robert McQueen  <robot101@debian.org>
888
889         * python/service.py: s/sucessful/successful/ so we're allocating to
890         and reading from the same variable. Oops.
891
892 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
893
894         * Released 0.60
895
896 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
897
898         * test/qt/Makefile.am: build from srcdir
899
900         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
901         Note - this code is wrong and needs to be fixed by the Qt binding
902         developers.  The flags should be treated as bitfields and not enums.
903
904         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
905
906 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
907
908         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
909           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
910           in production code
911
912 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
913
914         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
915         method for getting messages off the bus in the absence of a
916         mainloop.  This method is much like 
917         dbus_connection_read_write_dispatch except it does not dispatch
918         the messages to a registered filter function.  Instead it
919         allows a developer to process messages by directly popping
920         them off the bus.
921
922 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
923
924         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
925         the parser to continue instead of returning error
926         (bus_desktop_file_load): Do not free parser data when
927         parse_section_start or parse_key_value fails because it was 
928         already freed by parser_free (patch from Carlos Garcia Campos  
929         <carlosgc at gnome.org>)
930
931 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
932
933         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
934         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
935         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
936         test/test-segfault.c, test/test-utils.c,
937         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
938         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
939         Various cleanup of dead code and compiler warnings (patch from
940         Kjartan Maraas <kmaraas at gnome.org>) 
941
942 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
943
944         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
945         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
946
947 2005-11-27  Robert McQueen  <robot101@debian.org>
948
949         * python/dbus_bindings.pyx: Repair my previous commit which reverted
950         part of the preceding one. Oops. Merge patch by Johan Hedberg
951         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
952         on big-endian platforms.
953
954         * test/python/test-client.py: Add some 16-bit integers to the test
955         values.
956
957 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
958
959         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
960         method return message for property getters
961
962 2005-11-27  Robert McQueen  <robot101@debian.org>
963
964         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
965         with type v of an instance of dbus.Variant(foo, type='x') caused
966         it to be boxed twice before sending over the bus.
967
968         * python/dbus_bindings.pyx, python/service.py,
969         test/python/test-client.py: Update the constants for the new
970         request_name flags, and update comments/test cases now that queueing
971         is the default action.
972
973 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
974
975         * configure.in:
976         - Change version to 0.60 for impending release
977         - upped the sonames because of ABI and API breakage
978
979 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
980
981         * configure.in: Add test/name-test/Makefile to the generated
982         Makefile list
983
984         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
985         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
986         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
987         not to queue an ower if it can't be the primary owner
988
989         * bus/bus.h: Add new internal BusOwner struct
990
991         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
992         to bus_registry_ensure and don't set the prohibit_replacement flag
993         since they are now set per BusOwner and not per name.
994         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
995         that returns the list of connections in a name's connection queue
996         
997         * bus/services.c (struct BusService): remove prohibit_replacement field
998         (struct BusOwner): new struct for keeping track of queued connections
999         and their associated flags for the queue
1000         (struct BusRegistry): add a BusOwner memory pool
1001         (bus_registry_new): initialize the BusOwner memory pool
1002         (bus_registry_unref): free the BusOwner memory pool
1003         (_bus_service_find_owner_link): new internal method for
1004         searching the queue for a specific connection
1005         (bus_owner_set_flags): new method for adding setting the flags on a
1006         bus owner
1007         (bus_owner_new): new method that creates a BusOwner object from the
1008         pool and sets its flags
1009         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1010         (bus_registry_ensure): Add the flags parameter
1011         (bus_registry_acquire_service): Switch from using raw connections to
1012         using the BusOwner struct
1013         Add new state machine for dealing with the new set of flags
1014         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1015         cancel_ownership, free_ownership_cancel_data, 
1016         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1017         restore_ownership, free_ownership_restore_data, 
1018         add_restore_ownership_to_transaction): Switch to using BusOwner 
1019         instead of raw connections
1020         (bus_service_add_owner): Add flags parameter
1021         Switch to using BusOwner instead of raw connections
1022         Add state machine for dealing with the new set of flags
1023         (bus_service_swap_owner): Swaps the first and second owners in the
1024         queue.  Used to make sure proper signals are sent when a service looses 
1025         or gains primary ownership.  We never insert an owner at the top of the
1026         queue.  Instead we insert it in the second position and then swap.
1027         (bus_service_remove_owner): Remove the owner from the queue sending
1028         out the NameLost and NameOwnerChanged signals if the we were the 
1029         primary owner
1030         (bus_service_get_primary_owners_connection): New method that extracts
1031         the connection from the primary owner
1032         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1033         connection
1034         (bus_service_get_allow_replacement): Changed from the old 
1035         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1036         primary owner and returns if it can be replaced or not
1037         (bus_service_set_prohibit_replacement): removed
1038         (bus_service_has_owner): returns TRUE if and owner with
1039         the specified connection exists in the queue
1040         
1041         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1042         method that only compiles if tests are enabled.  Allows us to get the 
1043         unique name of a connection so we can check it against the queue when
1044         doing regression tests
1045
1046         * bus/activation.c (bus_activation_send_pending_auto_activate),
1047         bus/dispatch.c (bus_dispatch),  
1048         bus/driver.c (bus_driver_handle_get_service_owner, 
1049         bus_driver_handle_get_connection_unix_user, 
1050         bus_driver_handle_get_connection_unix_process_id,
1051         bus_driver_handle_get_connection_selinux_security_context),
1052         bus/signals.c (connection_is_primary_owner): 
1053         use bus_service_get_primary_owners_connection instead of
1054         bus_service_get_primary_owner
1055
1056         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1057         _dbus_listen_unix_socket): Calculate the length of the socket
1058         path and use that instead of using a fixed length which was
1059         causing socket names to contain many trailing Nul bytes.
1060
1061         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1062         (dbus_g_method_get_sender): New method for extracting the sender 
1063         from a DBusGMethodInvocation
1064         (dbus_g_method_return_get_reply): changed name to 
1065         dbus_g_method_get_reply
1066         (dbus_g_method_return_send_reply): changed name to
1067         dbus_g_method_send reply
1068
1069         * doc/dbus-specification.xml: New docs that describe how the new
1070         queueing system works and talks about the changes to the how
1071         we specify socket names
1072
1073         * glib/examples/example-service.c, 
1074         glib/examples/example-signal-emitter.c,
1075         glib/examples/statemachine/statemachine-server.c:
1076         Changed the RequestName flags to the new system
1077
1078         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1079         regression test suite for testing various states of the new
1080         queueing system
1081         
1082 2005-11-15  Robert McQueen  <robot101@debian.org>
1083
1084         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1085         Taylor to add two methods, dbus_g_method_return_get_reply and
1086         dbus_g_method_return_send_reply, to allow you to get the reply
1087         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1088         and send it. The GLib bindings can't marshal a return value of
1089         something like a(s) if the array is empty - ultimately they should be
1090         made to heed the signature of the out arguments as the Python bindings
1091         now can, but this is a workable interim solution which might have
1092         other applications.
1093
1094 2005-11-15  Robert McQueen  <robot101@debian.org>
1095
1096         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1097         method to org.freedesktop.DBus to release a bus name or give up
1098         waiting in the queue for it.
1099
1100         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1101         dbus_bus_release_name method to send the ReleaseName method calls.
1102         Add constants for the return values to dbus/dbus-shared.h.
1103
1104         * doc/dbus-specification.xml: Document the new ReleaseName method
1105         in the specification.
1106
1107         * python/dbus_bindings.pyx: Add a low-level python binding for the
1108         release name method.
1109
1110         * python/exceptions.py, python/service.py: Make freeing BusName
1111         objects release the name. Add a NameExistsException, and fix a
1112         bug with creating UnknownMethodException.
1113
1114         * test/python/test-client.py: Add tests for freeing BusName
1115         objects causing names to be released.
1116
1117 2005-11-14  Robert McQueen  <robot101@debian.org>
1118
1119         * python/service.py: Include the traceback in the error reply when we
1120         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1121
1122 2005-11-14  David Zeuthen  <davidz@redhat.com>
1123
1124         Patch from Timo Hoenig <thoenig@suse.de>.
1125
1126         * bus/bus.c: I've recently investigated why the automatic reload
1127         of configuration files does not work as expected.
1128
1129         Currently, reloading configuration files does only work when
1130         running dbus-daemon with --nodaemon.  If we are running as daemon
1131         we're hitting a dnotify bug once we fork the process.
1132
1133         We're initializing the dnotify fds before calling fork().  Once
1134         the child process forked it does still have the fds (and they
1135         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1136         getting SIGIO as changes are made to the configuration files.
1137
1138         The attached patch moves the initialization of the dnotify fds to
1139         process_config_postinit().  This is safe for all current code
1140         paths and solves the dnotify disfunction.  If we're running
1141         dbus-daemon as daemon the fds for dnotify are now being
1142         initialized after fork() for the child process.
1143
1144         * configure.in: The current configure.in check for dnotify probes
1145         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1146         match for 'xlinux', too. Additionally I have adapted the configure
1147         option's style to match with the others.
1148
1149 2005-11-14  Robert McQueen  <robot101@debian.org>
1150
1151         * python/decorators.py, python/service.py: Add a new argument to the
1152         dbus.service.method decorator called sender_keyword, which if set,
1153         specifies the name of an argument which will be provided the bus
1154         name of the method caller.
1155
1156         * test/python/test-client.py, test/python/test-service.py: Add a
1157         method and test to check the sender_keyword functionality.
1158
1159 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1160
1161         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1162         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1163         Simons <sjoerd at luon.net>)
1164
1165         * AUTHORS: Add Robert McQueen for his work on the Python
1166         Bindings and other parts of D-Bus
1167
1168 2005-11-07  Robert McQueen  <robot101@debian.org>
1169
1170         * python/decorators.py: Change emit_signal function to use the
1171         signature annotation of the signal when marhsalling the arguments from
1172         the service. Fix a bug where the code checking signature length
1173         against argument length referenced the wrong variable.
1174
1175         * python/introspect_parser.py: Avoid adding the type signature of
1176         signal arguments to any methods which occur after them in the
1177         introspection data (!) by making the parser a little more careful
1178         about its current state.
1179
1180         * python/service.py: Remove debug prints from last commit (again :D).
1181
1182         * test/python/test-client.py, test/python/test-service.py: Add test
1183         signals with signature decorators to test the strict marshalling code
1184         gives errors at the right time. Could do with checking the signals
1185         actually get emitted too, given that the test does nothing with
1186         signals at the moment...
1187
1188 2005-11-07  Robert McQueen  <robot101@debian.org>
1189
1190         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1191         instances to stop madness of creating new instances representing
1192         the same bus connection all the time, rendering any tracking of
1193         match rules and bus names quite meaningless. Caught a bug where
1194         the private argument to SessionBus() and friends was being passed
1195         in as use_default_mainloop by mistake. Still some problems with
1196         multiple dbus_binding.Connection instances representing the same
1197         low-level connection (eg when you use both SessionBus() and
1198         StarterBus() in same process), but it's a lot better now than it
1199         was.
1200
1201         * python/dbus_bindings.pyx: Add constants with the return values
1202         for bus_request_name().
1203
1204         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1205         and retrieve the same instances for the same name, so deletion can be
1206         done with refcounting. Also now throws some kind of error if you
1207         don't actually get the name you requested, unlike previously...
1208
1209         * test/python/test-client.py: Add tests for instance caching of buses
1210         and bus name objects.
1211
1212 2005-11-04  Robert McQueen  <robot101@debian.org>
1213
1214         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1215         marshalling of boolean values. Add some booleans to the values in
1216         the test client.
1217
1218         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1219         argument to the dbus.service.method decorator, which allows you to
1220         name arguments to take two callback functions for replying with
1221         return values or an exception.
1222
1223         * test/python/test-client.py, test/python/test-service.py: Add test
1224         case using asynchronous method reply functions, both return values and
1225         errors, and from within both the function itself and from a mainloop
1226         callback.
1227
1228         * python/decorators.py, python/service.py: Perform checking that the
1229         number of method/signal arguments matches the number of types in the
1230         signature at class loading time, not when you first introspect the
1231         class.
1232
1233         * python/service.py: Remove debug print left by the last commit.
1234
1235 2005-11-03  Robert McQueen  <robot101@debian.org>
1236
1237         * python/service.py: Heavy refactoring of method invocation, with
1238         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1239         in favour of a new _message_cb that uses seperate functions for
1240         looking up the method to call, marshalling the return values, and
1241         sending exceptions as errors, and is easier to follow as a
1242         consequence.  Fixes some corner cases about returning things that
1243         don't match your declared out_signature, allows exceptions to define
1244         _dbus_error_name and have it be sent over the bus as the error name,
1245         and paves the way for cool stuff like heeding the message no reply
1246         flag, asynchronous method implementations, informing the method of the
1247         sender, and including backtraces in the error messages.
1248
1249         * test/python/test-client.py: Catch and print exceptions thrown in the
1250         async callback tests, rather than passing them to the low-level
1251         bindings to be ignored in a noisy and frustrating manner.
1252
1253 2005-11-03  Robert McQueen  <robot101@debian.org>
1254
1255         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1256         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1257         tweak others to be consistent.
1258
1259         * test/python/test-client.py: Tweak output of testInheritance.
1260
1261 2005-10-29  Robert McQueen  <robot101@debian.org>
1262
1263         * python/service.py: Major changes to allow multiple inheritance
1264         from classes that define D-Bus interfaces:
1265         
1266          1. Create a new Interface class which is the parent class of
1267             Object, and make the ObjectType metaclass into InterfaceType.
1268         
1269          2. Patch written with Rob Taylor to replace use of method_vtable
1270             with code that walks the class's __MRO__ (method resolution order)
1271             to behave like Python does when invoking methods and allow
1272             overriding as you'd expect. Code is quite tricky because
1273             we have to find two methods, the one to invoke which has the
1274             right name and isn't decorated with the /wrong/ interface,
1275             and the one to pick up the signatures from which is decorated
1276             with the right interface.
1277         
1278             The same caveats apply as to normal multiple inheritance -
1279             this has undefined behaviour if you try and inherit from two
1280             classes that define a method with the same name but are
1281             decorated with different interfaces. You should decorate
1282             your overriding method with the interface you want.
1283         
1284          3. Replace grungy introspection XML generation code in the metaclass
1285             with dictionaries that cope correctly with multiple inheritance
1286             and the overriding of methods. This also uses the signature
1287             decorations to provide correct introspection data, including
1288             the debut appearance of the types of your return values. :D
1289
1290         * test/python/test-client.py, test/python/test-service.py: Add a test
1291         case to try invoking an method that overrides one inherited from a
1292         D-Bus interface class.
1293
1294 2005-10-29  Robert McQueen  <robot101@debian.org>
1295
1296         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1297         Add checking for the end of struct character when marshalling a
1298         struct in MessageIter.append_strict.
1299
1300         * python/examples/example-service.py,
1301         python/examples/gconf-proxy-service.py,
1302         python/examples/gconf-proxy-service2.py: Update to use gobject
1303         mainloop directly rather than appearing to depend on gtk.
1304
1305         * python/test/test-client.py, python/test/test-server.py: Remove
1306         obsolete and broken test scripts for old bindings. We have up to date
1307         and working tests in test/python/.
1308
1309 2005-10-29  Robert McQueen  <robot101@debian.org>
1310
1311         * python/decorators.py: Add optional arguments to the method and
1312         signal decorators to allow you to specify the signature of arguments
1313         and return values. Preserve the doc strings of signal functions in the
1314         decorated version, for pydoc and friends.
1315
1316         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1317         parse_signature_block function with an iterable dbus.Signature()
1318         type. Fix a bug in MessageIter.append_strict where you could append
1319         anything by claiming it was a string.
1320
1321         * python/service.py: Use the out_signature decoration on methods to
1322         marshal return values, meaning you no longer require dbus.Array()
1323         or dbus.Dictionary() to indicate the type when returning empty
1324         arrays or dictionaries. Fix a bug where exceptions which are defined
1325         in __main__ are not turned into error replies.
1326
1327         * test/python/test-client.py, test/python/test-service.py: Add test
1328         for correct marshalling of return values according to out_signature.
1329         Fix a bug in the async call test where the error_handler is missing a
1330         self argument.
1331
1332 2005-10-29  Robert McQueen  <robot101@debian.org>
1333
1334         * glib/Makefile.am, glib/examples/Makefile.am,
1335         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1336         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1337
1338         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1339
1340         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1341         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1342         the command line.
1343
1344 2005-10-27  Ross Burton  <ross@openedhand.com>
1345
1346         * dbus/dbus-marshal-header.c:
1347         Remove dead code.
1348
1349         * glib/dbus-gobject.c:
1350         Stop compiler warning.
1351
1352 2005-10-25  Ross Burton  <ross@openedhand.com>
1353
1354         * dbus/dbus-auth.c:
1355         * dbus/dbus-server-unix.c:
1356         * dbus/dbus-transport-unix.c:
1357         * glib/dbus-gmain.c:
1358         * glib/dbus-gobject.c:
1359         Add some const keywords.
1360
1361 2005-10-25  Ross Burton  <ross@openedhand.com>
1362
1363         * doc/dbus-specification.xml:
1364         Document the NoReply annotation.
1365
1366         * glib/dbus-binding-tool-glib.h:
1367         * glib/dbus-binding-tool-glib.c:
1368         Respect the NoReply annotation.
1369
1370 2005-10-24  Robert McQueen <robot101@debian.org>
1371
1372         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1373         derive from unicode instead of str, and encode/decode UTF-8 when
1374         marshalling/unmarshalling bus messages
1375
1376         * python/introspect_parser.py: encode introspection data as UTF-8
1377         before passing the buffer into libxml2
1378
1379         * test/python/test-client.py: add unicode test strings
1380
1381         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1382         ignore generated python test files
1383
1384 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1385
1386         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1387         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1388         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1389
1390         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1391         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1392         when constructing struct signatures
1393
1394         * python/_dbus.py (Bus): handle private connections using the
1395         private keyword in the constructor. defaults to private=False
1396         (Bus::close): new method to close a connection to the bus
1397
1398         * python/dbus_bindings.pyx (Connection::close): renamed method
1399         was previously called disconnect
1400         (bus_get): now supports getting a private connection
1401
1402         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1403         keyword is set to True.  if it is, execute the method without waiting
1404         for a reply
1405         (ProxyObject::_introspect_execute_queue): new method for executing
1406         all the pending methods that were waiting for the introspect to
1407         finish.  this is called when introspect either succeeds or fails
1408         (ProxyObject::_introspect_error_handler): call queued methods
1409
1410 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1411
1412         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1413         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1414
1415         * python/service.py (Object::_message_cb): handle exceptions correctly
1416         by sending them over the wire to the calling app.  This makes sure
1417         the client returns immediately instead of waiting the 15 seconds to
1418         timeout.
1419
1420         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1421         Add a test to benchmark how long it takes to introspect a service and 
1422         call a method which returns a large element (pretty fast)
1423
1424         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1425         method which pushes a lot of data
1426
1427 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1428
1429         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1430         reclaim memory outside of the loop and use del istead of just setting
1431         the key to None
1432
1433 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * python/service.py (ObjectType::_reflect_on_signal): Always close
1436         signal tag even when there are no arguments
1437
1438 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1439
1440         * configure.in: Set mono, mono-docs and Qt3 to default
1441         to no instead of auto when building.  These bindings do not
1442         have full time maintainers and will not be supported for the
1443         1.0 release.
1444
1445 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1446
1447         patches from Michael Krivoruchko <misha at sun.com>: 
1448         
1449         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1450         _dbus_connection_message_sent, 
1451         _dbus_connection_send_preallocated_unlocked_no_update, 
1452         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1453         is NULL when calling _dbus_verbose
1454
1455         * configure.in: check for functions getpeerucred and getpeereid
1456
1457         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1458         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1459         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1460         Patch was only tested on Solaris 10 x86 so it might be issues
1461         with other platforms (i.e. BSDs and MacOSX)
1462         
1463
1464 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1465
1466         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1467         instead of marshal basic so we can handle recursive types in a variant
1468
1469         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1470         in variants
1471
1472         * test/glib/test-service-glib.c, test-service-glib.xml
1473         (my_object_echo_variant [EchoVariant], 
1474         my_object_process_variant_of_array_of_ints123
1475         [ProcessVariantOfArrayOfInts123]): 
1476         Add two test methods
1477
1478         * python/introspect_parser.py: New module for parsing introspect
1479         data.
1480
1481         * python/dbus_bindings.pyx:
1482         (various places): when throwing errors fix to use errormsg instead 
1483         of message local variable because Pyrex can get confused with other 
1484         message variables (initial patch by Robert McQueen 
1485         <robert.mcqueen at collabora.co.uk>)
1486         (MessageIter::parse_signature_block): new method for getting the next
1487         block in a signiture.
1488         (MessageIter::append_strict): new method for appending values strictly
1489         using the passed in signature instead of guessing at the type
1490         (MessageItter:: append_dict, append_struct, append_array): use 
1491         signatures to marshal children if the signature is available
1492         
1493         * python/exceptions.py (IntrospectionParserException): new exception
1494
1495         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1496         introspected signatures if available, else we fall back to the
1497         old way of doing things.
1498         (ProxyObject::_introspect_reply_handler ): parse introspection data
1499         
1500         * python/service.py (ObjectType::_reflect_on_method): Properly
1501         terminate <method> if there are no args in the reflection data
1502
1503         * test/python/test-client.py: add tests for talking with the GLib
1504         test server.  This gives us better coverage for introspection since
1505         python to python will always generate arguments as variants.  It also
1506         allows us to test the robustness of the GLib bindings and interlanguage
1507         communications.
1508
1509         
1510 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1511
1512         * bus/driver.c (bus_driver_handle_introspect): Add signals
1513         to the introspect data. (patch from Daniel P. Berrange 
1514         <dan at berrange.com>)
1515
1516         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1517         
1518         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1519         _dbus_connection_run_builtin_filters): Changed these to
1520         be unlock_no_update functions and call 
1521         _dbus_connection_send_unlocked_no_update instead of
1522         dbus_connection_send to avoid locking errors.
1523         
1524         * doc/TODO: Removed the make Ping test TODO
1525         
1526 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1527
1528         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1529         We now copy the message from a DBusError and then free 
1530         the error object befor throwing the error
1531
1532         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1533         DBusBindingOutputMode enum which was causing a warning.
1534         #include <time.h> so using time_t is explicitly defined
1535
1536 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1537
1538         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1539         - dbus/dbus-bus.c
1540         (internal_bus_get): new method that take over the heavy lifting
1541         of dbus_bus_get and adds the ability to get a private connection
1542         to the bus
1543         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1544         interface as in previous versions
1545         (dbus_bus_get_private): new method that is a wrapper to 
1546         internal_bus_get to get a private connection to the bus
1547
1548         - dbus/dbus-bus.h
1549         (dbus_bus_get_private): add as a public libdbus interface
1550
1551         - dbus-1.pc.in: output system_bus_default_address and 
1552         sysconfdir variables so apps can use them when compiling
1553
1554 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1555         * dbus/qt: New Qt bindings
1556
1557 2005-09-12  Waldo Bastian  <bastian@kde.org>
1558
1559         * dbus/dbus-marshal-validate.c,
1560         doc/dbus-specification.xml, test/Makefile.am,
1561         test/test-names.c: allow hyphens in bus names.
1562
1563 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1564
1565         * test/data/auth/fallback.auth-script: we don't
1566         retry the EXTERNAL method when we know its going
1567         to fail anymore.
1568
1569 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1570
1571         * dbus/dbus-connection-internal.h: rename
1572         (add|remove|toggle)_(watch|timeout) to unlocked()
1573         
1574         * dbus/dbus-connection.c: ditto.
1575         
1576         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1577         Update some callers for the renaming.
1578
1579 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1580
1581         * dbus/dbus-auth.c: (record_mechanisms): don't
1582         retry the first auth mechanism because we know
1583         we're just going to get rejected again.
1584         
1585         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1586         Fix thinko ... and what a nasty little bugger to
1587         track down you were ...
1588
1589         * dbus/dbus-connection.c:
1590         (_dbus_connection_add_watch),
1591         (_dbus_connection_remove_watch): add note about
1592         these needing the connection to be locked.
1593         (_dbus_connection_get_dispatch_status_unlocked):
1594         set status to DATA_REMAINS when we queue the
1595         disconnected message.
1596         
1597         * bus/dispatch.c:
1598         (bus_dispatch): fix warning.
1599         (check_existent_service_no_auto_start):
1600         Expect ChildSignaled error too.
1601         (check_existent_hello_from_self): fix another
1602         couple of warnings.
1603         
1604 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1605
1606         Patches from James Willcox <snorp@snorp.net>
1607
1608         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1609
1610         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1611         support array "out" parameters.
1612
1613         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1614         for 16-bit int support.
1615
1616 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1617
1618         * Released 0.50
1619
1620         * Patch from Steve Grubb:
1621         - bus/activation.c (bus_activation_service_reload_test): clean up
1622         some indentation
1623         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1624         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1625         buffer overflows in the test suite.  This is non critical because
1626         it can not be exploited and this code is only run when doing a 
1627         make check.
1628
1629         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1630         - configure.in: Don't check and link against kdecore, only qt headers
1631         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1632         - gcj/org/freedesktop/dbus/Makefile.am:
1633         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1634         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1635         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1636         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1637         - tools/Makefile.am: Add platform extentions to binaries 
1638         (i.e. .exe on windows)
1639
1640         * configure.in: 
1641         - Make it so if no suitable version of python is found we only 
1642         disable building python instead of exiting the configure script
1643         - Require version 2.4 of glib for glib bindings
1644         - Up version to 0.50
1645
1646         * python/__init__.py: Sync version with libdbus to (0,50,0)
1647         
1648 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1649
1650         * dbus/dbus-object-tree.c (find_subtree_recurse):
1651         a couple of optimizations (bug #710):
1652         - do a binary search in the tree
1653         - insert a new child at the right place directly, no need for
1654           qsort anymore
1655         - do the "double alloc" thing when allocating children
1656
1657 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1658
1659         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1660
1661         * python/dbus_bindings.pyx: Memory management foo
1662         (global): remove hacky _user_data_references global list
1663         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1664         tuples. Unref user_data
1665         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1666         (Connection::__del__): Remove and replace with __dealloc__ method
1667         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1668         to keep tuple from being deallocated instead of the global var hack
1669         (Connection::register_object_path): Stuff user_data into a tuple.
1670         Use Py_INCREF to keep tuple from being deallocated instead of the 
1671         global var hack
1672         (Connection::register_fallback): Stuff user_data into a tuple.
1673         Use Py_INCREF to keep tuple from being deallocated instead of the 
1674         global var hack
1675         (GIL_safe_pending_call_notification): Don't unref the message
1676         because it gets unreffed when going out of scope.  Py_XDECREF
1677         the user_data
1678         (PendingCall::__del__): Remove and replace with __dealloc__ method
1679         (PendingCall::set_notify): ref the pending call because we will
1680         need it to stick around for when the notify callback gets called
1681         (Message::__del__): Remove and replace with __dealloc__ method
1682
1683         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1684         gthreads_init to match up with the dbus call
1685
1686         * python/glib.py (init_threads): Changed to threads_init to match
1687         up with gobject.threads_init().  init_threads is kept for backwards
1688         compat but will most likely be deprecated in the future
1689
1690         * test/python/test-client.py: 
1691         - revamp to use Python's unittest functionality
1692         - add async call tests
1693         - setup threads in glib and dbus so we make sure locks are working
1694         
1695 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1696
1697         * python/dbus_bindings.pyx 
1698         (_pending_call_notification, cunregister_function_handler, 
1699         cmessage_function_handler): All callback functions have been rearranged 
1700         to workaround a bug in Pyrex when working with the GIL which is Python's 
1701         global lock when dealing with threads.  They have been split into
1702         a wrapper function (which assumes the name of the old function) and
1703         a _GIL_safe_<function name> function which contains the functionality
1704         of the old function.  This ensures that Pyrex does not write code
1705         the lock is released.
1706         
1707
1708 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1709
1710         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1711         GIL global lock when calling back into Python
1712
1713 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1714
1715         * Release 0.36.2
1716
1717         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1718
1719         * bus/policy.c (bus_policy_allow_user): change default "user is
1720         allowed" to be "user has same uid as the bus itself"; any
1721         allow/deny rules will override.
1722
1723         * bus/session.conf.in: don't allow all users, since now by default
1724         the user that ran the bus can connect.
1725
1726 2005-08-26  Colin Walters  <walters@verbum.org>
1727
1728         * tools/dbus-print-message.c (print_message): Flush stdout
1729         after printing a message, so that redirecting to a file, then
1730         hitting Ctrl-C works.
1731
1732 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1733
1734         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1735         (EmptyMessage): new class that subclasses Message.  This is a workaround
1736         to a Pyrex bug that fails to call __del__ when the Message object goes out
1737         of scope.  For some reason subclassing Message fixes this bug
1738         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1739         - s/Message(_create=0)/EmptyMessage everywhere else
1740         
1741         * test/python/test-{server|client}.py: add the python/.libs directory
1742         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1743         get picked up from the system
1744
1745 2005-08-25  Colin Walters  <walters@verbum.org>
1746
1747         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1748         to Ryan Lortie for the suggestion.
1749
1750 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1751
1752         * test/python: Add python regression test
1753
1754         * configure.in: Add test/python/Makefile
1755
1756         * test/Makefile.am: Add the python directory to SUBDIRS
1757
1758 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1759
1760         * Release 0.36.1
1761
1762         * python/_dbus.py: 
1763         (Interface::connect_to_signal): propigate keywords for match on args
1764         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1765
1766         * python/proxies.py (ProxyObject::connect_to_signal):
1767         propigate keywords for match on args
1768
1769         * Makefile.am: point everything to pyexecdir since python borks
1770         on multilib
1771
1772 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1773
1774         * Release 0.36
1775
1776 2005-08-23  Colin Walters  <walters@verbum.org>
1777
1778         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1779
1780 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1781
1782         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1783         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1784         of defining DBusConnection ourselves.
1785
1786 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1787
1788         * python/dbus.pth: New path file to fix up problems when installing
1789         c libraries to lib64 and python files to lib.
1790
1791         * python/Makefile.am: install dbus.pth in the correct spot
1792
1793 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1794         * ChangeLog: clean up my last entry a bit
1795
1796         * doc/introspect.xsl: New stylesheet for converting introspection data
1797         into browser renderable xhtml. Contributed by Lennart Poettering.
1798
1799         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1800         Poettering.
1801
1802         * doc/dbus-tutorial.xml: 
1803         - Add Colin Walter to the Authors section for authoring the GLib
1804         section
1805         - Add descriptions of the new signature and type functionality
1806         in the Python complex type mapping section
1807         - Add a sidenote on the new args matching functionality in 
1808         the Python bindings
1809         - Fixed up some of the examples to use the gobject.MainLoop
1810         instead of gtk.main
1811         
1812         * python/_dbus.py:
1813         (Bus::_create_args_dict): New. Converts a hash of arg matches
1814         to a more useable format
1815         (Bus::add_signal_receiver): add a **keywords parameter for catching
1816         arg match parameters
1817         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1818         arg match parameters
1819         
1820         * python/matchrules.py:
1821         (MatchTree::exec_matches): Check for arg matches
1822         (SignalMatchRule::add_args_match): New method
1823         (SignalMatchRule::execute): Added args_list parameter as an optimization
1824         so we don't have to marshal the args more than once
1825         (SignalMatchRule::match_args_from_list): New method that checks to see
1826         if the rule's arg matches match an argument list.  Only arguments
1827         set in the rule are checked.
1828         (SignalMatchRule::match_args_from_rule): New method that checks to see
1829         if the rule's arg matches match another rule's.  All args have to match
1830         in order for this method to return true.  If either rule has more args
1831         then it is not a match.
1832         (SignalMatchRule::is_match): Add args match
1833         (SignalMatchRule::repr): Add args to the final output if they exist
1834
1835 2005-08-17  Ross Burton  <ross@burtonini.com>
1836
1837         * glib/dbus-gproxy.c:
1838         (dbus_g_proxy_call_no_reply): unref the message once sent.
1839         (dbus_g_proxy_call): protect against NULL proxy.
1840
1841 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1842
1843         * python/__init__.py: Version updated (0, 43, 0)
1844         
1845         * python/dbus_bindings.pyx: 
1846         - Fixed type objects to have self passed into __init__
1847         - Added the Variant type
1848         - Add the ability to specify types or signatures for Array, Variant 
1849         and Dictionary
1850         (Connection::send_with_reply_handlers): return a PendingCall object
1851         (_pending_call_notification): handle the case when an error is returned 
1852         without an error message in the body
1853         (MessageIter::get_boolean): return True or False instead of an integer
1854         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1855         and add checks for objects with embeded signatures or types (Array, 
1856         Variant and Dictionary)
1857         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1858         (MessageIter::append_dict): handle embeded types or signatures
1859         (MessageIter::append_array): handle embeded types or signatures
1860         (MessageIter::append_variant): new method
1861         
1862         * python/proxies.py:
1863         (DeferedMethod): New. Dummy executable object used when queuing calls 
1864         blocking on introspection data
1865         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1866         or shorter timeouts for method calls
1867         (ProxyObject): Add first pass at an introspection state machine
1868         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1869         introspection. 
1870         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1871         the usual mechanisms for sending messages.  This is to avoid a deadlock
1872         where the Intospect call would be queued waiting for the Introspect 
1873         call to finish ;-)
1874         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1875         when introspection returns with no error
1876         (ProxyObject::_introspect_error_handler): New.  This method is called 
1877         when introspection encounters an error
1878         (ProxyObject::__getattr__): Code to handle different introspection 
1879         states.  Queue async calls or block blocking calls if we are 
1880         introspecting.  Pass through as normal if we are not or are done with 
1881         introspecting.
1882         
1883         * python/service.py: Import signal and method from decorators.py
1884
1885         * python/types.py: Add Variant type
1886
1887 2005-08-16  Colin Walters  <walters@verbum.org>
1888
1889         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1890         DBusError message is NULL.
1891
1892 2005-08-09  Havoc Pennington  <hp@redhat.com>
1893
1894         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1895         malloc'd copy of the name parameter
1896
1897 2005-08-09  Havoc Pennington  <hp@redhat.com>
1898
1899         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1900         warning if the reply serial is set to 0
1901
1902 2005-08-04  Colin Walters  <walters@verbum.org>
1903
1904         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1905         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1906         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1907         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1908         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1909         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1910         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1911         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1912         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1913         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1914         
1915         Prefix name with _ to ensure they're not exported.  All callers
1916         updated.
1917
1918         * glib/dbus-gvalue.c (typecode_to_gtype)
1919         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1920         (signature_iter_to_g_type_dict)
1921         (signature_iter_to_g_type_array)
1922         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1923         (dbus_gtypes_from_arg_signature):
1924         Move to dbus-gsignature.c.
1925
1926         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1927         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1928         (dbus_binding_tool_output_glib_client): Ditto.
1929
1930         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1931         and dbus-gsignature.h
1932
1933         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1934         unused variable.
1935
1936 2005-08-03  Colin Walters  <walters@verbum.org>
1937
1938         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1939         catch any incompatible changes accidentally made.
1940
1941 2005-08-03  Havoc Pennington  <hp@redhat.com>
1942
1943         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1944         typo, from Julien Puydt
1945
1946         * bus/connection.c (bus_connection_disconnected): we were always
1947         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1948
1949 2005-08-01  Colin Walters  <walters@verbum.org>
1950
1951         Patch from Joe Markus Clarke:   
1952         
1953         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1954         use-after-free.
1955
1956 2005-08-01  Colin Walters  <walters@verbum.org>
1957         
1958         Patch from Joe Markus Clarke:   
1959         
1960         * tools/dbus-send.c (main): 
1961         
1962         Don't use C99 style initializers (bug #3933).
1963         
1964 2005-08-01  Colin Walters  <walters@verbum.org>
1965
1966         Patch from Joe Markus Clarke:   
1967
1968         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1969         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1970         * glib/dbus-gobject.c (write_interface):
1971
1972         Don't use C99 style initializers (bug #3933).
1973
1974 2005-07-31  Havoc Pennington  <hp@redhat.com>
1975
1976         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1977         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1978
1979 2005-07-30  Havoc Pennington  <hp@redhat.com>
1980
1981         * fix a bunch of Doxygen warnings and mistakes
1982
1983 2005-07-30  Havoc Pennington  <hp@redhat.com>
1984
1985         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1986         DBUS_BUILD_TESTS since it's now used in production code
1987
1988 2005-07-29  Havoc Pennington  <hp@redhat.com>
1989
1990         * test/glib/test-profile.c (write_junk): initialize the junk
1991         buffer so valgrind doesn't have a breakdown
1992
1993 2005-07-29  Havoc Pennington  <hp@redhat.com>
1994
1995         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1996         (match_rule_matches): remove unused arg
1997         (test_matching): add tests for match_rule_matches()
1998
1999         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2000         do arg0='foo' arg5='bar' in the match rules
2001         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2002
2003         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2004
2005 2005-07-29  Ross Burton  <ross@openedhand.com>
2006
2007         * dbus/dbus-connection.c:
2008         Don't create a DBusCondVar which is never used.
2009
2010 2005-07-27  Ross Burton  <ross@openedhand.com>
2011
2012         * dbus/dbus-message.c:
2013         Reduce the size of the maximum cached message to 10K.
2014
2015 2005-07-25  Ross Burton  <ross@openedhand.com>
2016
2017         * glib/dbus-gproxy.c:
2018         Remove matches when all proxies are unregistered.
2019
2020 2005-07-24  Colin Walters  <walters@verbum.org>
2021
2022         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2023         typedata; recursive arrays won't have it.
2024
2025         * test/glib/test-dbus-glib.c:
2026         * test/glib/test-service-glib.c:
2027         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2028         
2029 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2030
2031         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2032         proxies.py, service.py: Cleanup of code after running it through the
2033         pyflakes code checker mostly dealing with undefined names.  
2034         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2035
2036 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2037
2038         * NEWS: Update to 0.35.2
2039
2040 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2041
2042         * python/_dbus.py: Remove import of the dbus.services
2043         module as it no longer exists (patch from Dimitur Kirov)
2044
2045         * python/service.py (Object::__init__): Fixed typo
2046         s/name/bus_name (patch from Dimitur Kirov)
2047
2048         * python/examples/example-signal-emitter.py: import dbus.glib
2049         to get the main loop and use glib mainloop instead of gtk so
2050         X doesn't have to be running.
2051
2052         * python/examples/example-signal-recipient.py: import dbus.glib
2053         to get the main loop and use glib mainloop instead of gtk so
2054         X doesn't have to be running. Import the decorators module
2055         directly.
2056
2057         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2058         didn't pick up on but are needed to build
2059
2060         * configure.in: upped version to 0.35.2
2061
2062         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2063         added Colin Walters' SELinux API rename patch from head 
2064         s/unix sercurity context/selinux security context/
2065
2066 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2067
2068         * python/Makefile.am: dbus_binding.pxd.in should be included 
2069         in EXTRA_DIST not dbus_binding.pxd
2070         fix up $(srcdir) hopefully for the last time
2071
2072         * NEWS: Update to 0.35.1
2073
2074 2005-07-16  Colin Walters  <walters@verbum.org>
2075
2076         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2077         from bus_driver_handle_get_connection_unix_security_context.  Update for
2078         error usage.
2079         (message_handlers): Update for renames.
2080
2081         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2082         _dbus_string_init failure correctly.
2083         (bus_selinux_append_context): Convert SID to context.  Append it
2084         as a byte array.
2085         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2086         hasn't been called.
2087
2088         * bus/selinux.h: Update prototype.
2089
2090         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2091         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2092
2093 2005-07-15  Colin Walters  <walters@verbum.org>
2094
2095         * doc/TODO: Add note about convenience wrappers.
2096
2097 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2098
2099         * NEWS: Update to 0.35
2100
2101 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2102
2103         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2104         so distcheck doesn't fail
2105
2106         * glib/examples/Makefile.am: Add example-service.xml and 
2107         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2108
2109         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2110         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2111
2112         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2113         compiler looks in the right places during distcheck
2114
2115 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2116
2117         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2118         to fail
2119
2120 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2121
2122         * python/examples/example-service.py,
2123         python/examples/example-signal-emitter.py: Fixed up examples
2124         for API changes
2125
2126 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2127
2128         * python/__init__.py: Upped to version (0,42,0) because of
2129         the API change
2130
2131 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2132
2133         * ChangeLog: fix date in last entry
2134
2135         * configure.in, bus/system.conf.in: add the ability to configure 
2136         the system bus user at compiletime with the --with-dbus-user flag
2137         (patch from Kristof Vansant)
2138
2139 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2140
2141         * bus/dispatch.c, test/test-service.c: Add testcase
2142         for sending messages to oneself (TODO item).
2143
2144         * python/service.py (class Object): Swap ordering of bus_name 
2145         and object_path parameters to better support inheritance.
2146
2147         * doc/dbus-tutorial.xml: change Python docs to reflect change
2148         in parameter ordering and fix the inheritance section.
2149
2150         * doc/TODO: remove sending message to oneself TODO item
2151
2152 2005-07-15  Ross Burton  <ross@openedhand.com>
2153
2154         * glib/dbus-gproxy.c:
2155         Fix a leak when calling methods via the proxy.
2156
2157 2005-07-15  Colin Walters  <walters@verbum.org>
2158
2159         * bus/selinux.c (bus_selinux_append_context): Wrap in
2160         HAVE_SELINUX.
2161
2162 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2163
2164         * python/_dbus.py (Bus::remove_signal_receiver):
2165         don't add a callback to the match if none has been passed in
2166         
2167         * python/matchrules.py (SignalMatchTree::remove): if the rule
2168         being matched does not have a callback treat it as a wildcard
2169         fix matching logic
2170
2171         * doc/dbus-tutorial.xml: Add Python tutorial
2172
2173 2005-07-14  Colin Walters  <walters@verbum.org>
2174
2175         * bus/driver.c
2176         (bus_driver_handle_get_connection_unix_security_context): New function.
2177         (message_handlers): Add.
2178
2179         * bus/selinux.c (bus_selinux_append_context): New function; appends
2180         security context to message.
2181
2182         * bus/selinux.h: Prototype.
2183
2184         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2185
2186 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2187
2188         * bus/activation.c: clean up all tabs to be 8 spaces 
2189         (bus_activation_activate_service): make sure we clean up
2190         if activation fails
2191
2192         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2193         (check_shell_fail_service_auto_start): New function
2194         tests to make sure we get fail properly when trying to auto start a service
2195         with a faulty command line
2196         (check_shell_service_success_auto_start): New function tests to make sure
2197         auto started services get the arguments on the command line
2198
2199         * test/test-shell-service.c: Added service for testing auto-starting with 
2200         command line arguments
2201
2202         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2203         test/data/valid-service-files/debug-shell-echo-success.service.in:
2204         Added service files for testing auto-starting with command line arguments
2205
2206         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2207
2208 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2209
2210         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2211         
2212         * dbus/Makefile.am: added new files to build.
2213
2214         * bus/activation.c (bus_activation_activate_service): support
2215         activation commands with parameters.
2216
2217         * test/shell-test.c: added test program for the shell parsing
2218         code.
2219
2220 2005-07-13  David Zeuthen  <davidz@redhat.com>
2221
2222         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2223         64 bit signed and unsigned parameters
2224
2225 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2226
2227         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2228
2229         * python/service.py (class Name): renamed BusName to make it clearer
2230         what the object is for (a name on the bus)
2231
2232         * python/examples/example-service.py,
2233         python/examples/example-signal-emitter.py: change the Name object to
2234         BusName
2235
2236 2005-07-12  Colin Walters  <walters@verbum.org>
2237
2238         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2239
2240         * tools/dbus-launch.c: Include sys/select.h.
2241
2242 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2243         * python/dbus_bindings.pyx.in: removed
2244
2245         * python/dbus_bindings.pyx: Added.
2246         - Fixed some memleaks (patch from 
2247         Sean Meiners <sean.meiners@linspireinc.com>)
2248         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2249         own pxd file (Pyrex definition)
2250         - Broke out glib dependancies into its own pyx module
2251         
2252         * python/dbus_bindings.pdx: Added.
2253         - Defines C class Connection for exporting to other modules
2254
2255         * python/dbus_glib_bindings.pyx: Added.
2256         - New module to handle lowlevel dbus-glib mainloop integration
2257
2258         * python/glib.py: Added.
2259         - Registers the glib mainloop when you import this module
2260
2261         * python/services.py: Removed (renamed to service.py)
2262         
2263         * python/service.py: Added.
2264         - (class Server): renamed Name
2265
2266         * python/__init__.py: Bump ro version (0,41,0)
2267         -don't import the decorators or service module
2268         by default.  These now reside in the dbus.service namespace
2269
2270         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2271         setup function on creation 
2272
2273         * python/examples/example-service.py,
2274         python/examples/example-signal-emitter.py: update examples
2275
2276         * python/examples/gconf-proxy-service.py,
2277         python/examples/gconf-proxy-service2.py: TODO fix these up
2278
2279         * doc/TODO: Addition
2280         - Added a Python Bindings 1.0 section
2281         - added "Add match on args or match on details to match rules"
2282
2283
2284 2005-07-12  Colin Walters  <walters@verbum.org>
2285
2286         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2287         (statemachine-glue.h): 
2288         * glib/examples/Makefile.am (example-service-glue.h) 
2289         (example-signal-emitter-glue.h): 
2290         * glib/Makefile.am (dbus-glib-error-switch.h): 
2291         Add libtool --mode=execute so we use the built library instead
2292         of any installed one.
2293
2294 2005-07-11  Colin Walters  <walters@verbum.org>
2295
2296         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2297         (dbus_g_value_types_init): Remove assertion.
2298         (dbus_g_value_get_g_type, dbus_g_value_open)
2299         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2300         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2301         functions related to DBusGValue.  Now we marshal/demarshal
2302         structures as GValueArray.
2303         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2304         structures.
2305         (signature_iter_to_g_type_array): Don't call
2306         signature_iter_to_g_type_struct.
2307         (signature_iter_to_g_type_struct): Delete.
2308         (dbus_gvalue_to_signature): Delete.
2309         (dbus_gvalue_to_signature): New function with same name as other
2310         one; we can convert structures to signatures.
2311         (demarshal_valuearray): New function.
2312         (get_type_demarshaller): Use it.
2313         (demarshal_recurse): Delete.
2314         (marshal_proxy): New function.
2315         (marshal_map): Warn if we can't determine signature from type.
2316         (marshal_collection_ptrarray): Ditto.
2317         (marshal_collection_array): Ditto.
2318         (get_type_marshaller): Use marshal_valuearray.
2319         (marshal_recurse): Delete.
2320         (_dbus_gvalue_test): Add some tests.
2321
2322         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2323         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2324         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2325         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2326         (dbus_g_value_free): Remove prototypes.
2327
2328         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2329         G_TYPE_VALUE_ARRAY.
2330
2331         * glib/examples/example-service.c:
2332         * glib/examples/example-client.c: Implement GetTuple.
2333
2334         * test/glib/test-dbus-glib.c:
2335         * test/glib/test-service-glib.c:
2336         * test/glib/test-service-glib.xml: Add structure tests.
2337
2338 2005-07-10  Colin Walters  <walters@verbum.org>
2339
2340         * doc/TODO: Knock off some GLib items with this patch.
2341
2342         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2343         (_dbus_gvalue_signals_error): New functions.
2344
2345         * glib/dbus-gvalue-utils.h: Prototype them.
2346
2347         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2348         and change to not output const/retval flags for input args.  All
2349         callers updated.
2350         (invoke_object_method): Refactor to handle return values.  Add
2351         some more comments in various places.  Remove debug g_print.
2352
2353         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2354
2355         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2356         Handle G_TYPE_NONE.
2357         (compute_gsignature): New function; refactored from code from
2358         compute_marshaller and compute_marshaller_name.  Enhance to
2359         handle return values and async ops more cleanly.  Update for
2360         async ops returning NONE instead of BOOLEAN.
2361         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2362         and output appropriate string.
2363         (generate_glue): Handle return value annotation.  Also don't dump
2364         constness flag for input arguments.
2365
2366         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2367         files shared between installed library and utilities.
2368         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2369         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2370         binding tool can access gtype utility functions.
2371
2372         * test/glib/test-service-glib.c: 
2373         * test/glib/test-service-glib.xml: 
2374         * test/glib/test-dbus-glib.c: Add some tests for return values.
2375
2376 2005-07-09  Colin Walters  <walters@verbum.org>
2377
2378         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2379         argument if available, not method.
2380
2381         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2382         (invoke_object_method): First, remove some redundant
2383         GValues (object_value, error_value) in favor of working on
2384         array directly.  Second, rework constness to be less buggy.
2385         Now we iterate directly over the argument metadata instead
2386         of parallel iterating over output signature and metadata.
2387
2388         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2389
2390         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2391         annotation on input args.
2392         
2393 2005-07-09  Colin Walters  <walters@verbum.org>
2394
2395         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2396         Define.
2397
2398         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2399         annotation.
2400
2401         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2402         (method_dir_signature_from_object_info): Handle arg_iterate change.
2403         (write_interface): Ditto.
2404         (lookup_object_info): Don't barf if format_version is > 0.
2405         (invoke_object_method): Handle arg constness.
2406
2407         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2408         (arg_info_new): Create.
2409         (arg_info_unref): Destroy.
2410         (arg_info_get_annotations, arg_info_get_annotation) 
2411         (arg_info_add_annotation): New functions.
2412
2413         * glib/dbus-gidl.h: Prototype them.
2414
2415         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2416         args, disallow them in properties.
2417         (parse_annotation): Handle arg annotations.
2418
2419         * test/glib/test-service-glib.xml: 
2420         * test/glib/test-service-glib.c: Update to make some methods
2421         const.
2422
2423 2005-07-08  Colin Walters  <walters@verbum.org>
2424
2425         * test/glib/test-service-glib.xml: 
2426         * test/glib/test-service-glib.c:
2427         * test/glib/test-dbus-glib.c: Test a{sv}.
2428
2429         * glib/examples/statemachine/statemachine.c:
2430         * glib/examples/statemachine/statemachine-server.c:
2431         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2432         add progress bar, etc.
2433
2434         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2435         needed anymore due to generic array/map marshalling.
2436         (dbus_g_value_types_init): Don't register basic arrays or the
2437         string/string hash.
2438         (dbus_gtype_from_signature_iter): Don't try to recurse into
2439         variants.
2440         (dbus_gtype_to_signature): Check collection/map before type
2441         metadata.
2442         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2443         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2444         generic map creation/append functions instead of hash table
2445         specifically.
2446         (get_type_demarshaller): Handle maps.
2447         (demarshal_collection): Dispatch on collection type to either
2448         demarshal_collection_ptrarray or demarshal_collection_array.
2449         (get_type_marshaller): Handle maps.
2450         (marshal_collection): Dispatch collection type to either
2451         marshal_collection_ptrarray or marshal_collection_array.
2452         (_dbus_gvalue_test): New test.
2453
2454         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2455         (hash_free_from_gtype): Use it to free GValues.
2456         (hashtable_append): New function.
2457         (ptrarray_append): Fix prototype.
2458         (slist_append): Ditto.
2459         (_dbus_gvalue_utils_test): Extend tests.
2460
2461         * glib/dbus-gtype-specialized.c
2462         (dbus_g_type_specialized_init_append): Renamed from
2463         dbus_g_type_specialized_collection_init_append.  Remove const from
2464         value, since we steal it.
2465         (dbus_g_type_specialized_map_append): New function.
2466
2467         * glib/dbus-gtype-specialized.h: Update prototypes.
2468         Add DBusGTypeSpecializedMapAppendFunc.
2469
2470         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2471         _dbus_gvalue_test.
2472         
2473         * glib/dbus-gtest.h: Prototype it.
2474
2475 2005-07-08  Ross Burton  <ross@openedhand.com>
2476
2477         * dbus/dbus-glib.h:
2478         Add DBysGAsyncData for the async bindings.
2479
2480         * glib/dbus-binding-tool-glib.c:
2481         Re-enable the async bindings.
2482
2483         * test/glib/test-dbus-glib.c:
2484         Add a test for the generated async bindings.
2485
2486 2005-07-08  Colin Walters  <walters@verbum.org>
2487
2488         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2489         connection concept.
2490         
2491 2005-07-08  Colin Walters  <walters@verbum.org>
2492         
2493         * tools/Makefile.am: Kill of print-introspect in favor of using
2494         dbus-send --print-reply=literal.
2495
2496         * test/glib/test-service-glib.xml: 
2497         * test/glib/test-service-glib.c (my_object_get_objs): New test
2498         for "ao".
2499
2500         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2501         (main): Test GetObjs.
2502
2503         * glib/examples/statemachine/Makefile.am:
2504         * glib/examples/statemachine/sm-marshal.list:
2505         * glib/examples/statemachine/statemachine-client.c:
2506         * glib/examples/statemachine/statemachine-server.c:
2507         * glib/examples/statemachine/statemachine-server.xml:
2508         * glib/examples/statemachine/statemachine.c:
2509         * glib/examples/statemachine/statemachine.h:
2510         * glib/examples/statemachine/statemachine.xml:
2511
2512         New example.
2513
2514         * glib/examples/example-service.c (main): Move invocation
2515         of dbus_g_object_type_install_info earlier, to emphasize it
2516         should only be done once.
2517
2518         * glib/examples/example-signal-emitter.c (main): Ditto.
2519
2520         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2521
2522         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2523         (dbus_gvalue_marshal): Update prototypes.
2524
2525         * glib/dbus-gvalue.c: Update all marshalling functions to take
2526         const GValue instead of GValue.
2527         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2528         types.
2529         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2530         change.
2531         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2532         Return a newly-allocated string.
2533         (demarshal_proxy, demarshal_object_path, demarshal_object)
2534         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2535         we get the wrong types from message.
2536         (get_type_demarshaller): New function, extracted from
2537         dbus_gvalue_demarshal.
2538         (demarshal_collection): New function, demarshals generic
2539         collection.
2540         (dbus_gvalue_demarshal): Just invoke result of
2541         get_type_demarshaller.  Throw error if we don't have one.
2542         (marshal_garray_basic): Abort on OOM.
2543         (get_type_marshaller): New function, extracted from
2544         dbus_gvalue_marshal.
2545         (collection_marshal_iterator, marshal_collection): New functions;
2546         implements generic marshalling for an iteratable specialized
2547         collection.
2548         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2549
2550         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2551         G_TYPE_STRING.
2552         (ptrarray_value_from_gvalue): Ditto.
2553         (ptrarray_append, ptrarray_free): New functions.
2554         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2555         (slist_append, slist_end_append, slist_free): New functions.
2556         (dbus_g_type_specialized_builtins_init): Add append fuctions
2557         for GPtrArray and GSList.  Register GSList.
2558         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2559
2560         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2561         New.
2562         (dbus_g_type_specialized_collection_init_append)
2563         (dbus_g_type_specialized_collection_append)
2564         (dbus_g_type_specialized_collection_end_append): Prototype.
2565         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2566         end_append_func.
2567
2568         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2569         (dbus_g_type_specialized_collection_append) 
2570         (dbus_g_type_specialized_collection_end_append): New functions.
2571         (dbus_g_type_map_value_iterate): Take const GValue.
2572         (dbus_g_type_collection_value_iterate): Ditto.
2573
2574         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2575         _dbus_gvalue_utils_test.
2576         
2577         * glib/dbus-gtest.h: Prototype it.
2578
2579         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2580         using uninitialized owner_list.
2581         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2582         public API.
2583         (dbus_g_proxy_end_call_internal): Update to use error set
2584         from dbus_gvalue_demarshal instead of setting it here.
2585         (dbus_g_proxy_begin_call): Move return_if_fail here.
2586
2587         * glib/dbus-gobject.c (write_interface): Update for
2588         dbus_gtype_to_signature returning new string.
2589
2590         * configure.in: Add glib/examples/statemachine.
2591
2592 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2593
2594         * configure.in: Add a configure option, --with-console-auth-dir
2595         
2596         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2597         new setting.  Patch from Kay Sievers.
2598
2599 2005-07-06  Colin Walters  <walters@verbum.org>
2600
2601         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2602         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2603         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2604         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2605         Delete in favor of dbus_g_proxy_begin_call and
2606         dbus_g_proxy_cancel_call.
2607         (DBusGProxyCall, DBusGProxyCallNotify): New.
2608         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2609         data, and destroy function.  This replaces
2610         dbus_g_pending_call_set_notify.
2611         (dbus_g_proxy_cancel_call): Prototype.
2612         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2613
2614         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2615         pending_calls map.
2616         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2617         internal proxy for calls to the bus. Remove
2618         pending_nameowner_calls, now the internal proxy keeps track.
2619         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2620         pending_nameowner_calls.
2621         (got_name_owner_cb): Update prototype, and use
2622         dbus_g_proxy_end_call.
2623         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2624         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2625         favor of using internal proxy.
2626         (dbus_g_proxy_manager_unregister): Update to use
2627         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2628         (dbus_g_proxy_init): Initialize pending calls map.
2629         (dbus_g_proxy_constructor): New.
2630         (dbus_g_proxy_class_init): Add get/set property functions,
2631         constructor, and add NAME, PATH, and INTERFACE properties.
2632         (cancel_pending_call): New function.
2633         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2634         cancel them.
2635         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2636         (GPendingNotifyClosure): New structure.
2637         (d_pending_call_notify, d_pending_call_free): Moved here from
2638         dbus-glib.c.
2639         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2640         ordering.
2641         (manager_begin_bus_call): New internal function for talking to
2642         internal bus proxy.
2643         (dbus_g_proxy_new): Construct object using GObjet properties.
2644         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2645         Create closure of same, and insert call into map of pending calls.
2646         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2647         call.  Look up pending call in current set.  Remove it when we've
2648         completed.
2649         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2650         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2651         and destroy function directly.
2652         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2653         (dbus_g_proxy_call): Invoke with NULL callback.
2654         (dbus_g_proxy_cancel_call): New function, replaces
2655         dbus_g_pending_call_cancel.
2656
2657         * glib/dbus-gparser.c (validate_signature): Fix call to
2658         dbus_set_g_error.
2659
2660         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2661         New quark for attaching metadata to GType.
2662         (info_hash): Delete.
2663         (lookup_object_info): Look up using quark.
2664         (dbus_g_object_type_install_info): Check that a type is classed,
2665         not that it's an object.  Also just install type data using quark
2666         instead of using global hash.
2667
2668         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2669         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2670         (GPendingNotifyClosure): Delete.
2671         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2672         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2673
2674         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2675         client method generation until we can fix it...
2676         
2677         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2678         (load_from_service_thread_func): Ditto.
2679
2680         * tools/dbus-names-model.c (struct NamesModel): Hold
2681         DBusGProxyCall.
2682         (have_names_notify): Update prototype, use
2683         dbus_g_proxy_cancel_call.
2684         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2685
2686         * tools/dbus-monitor.c (filter_func): Update for print_message
2687         API change.
2688
2689         * test/glib/test-dbus-glib.c: Add more tests for async
2690         invocations.  Update many begin_call/end_call pairs to just use
2691         dbus_g_proxy_call.
2692
2693         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2694         allows us to dump print-introspect.c.
2695
2696         * tools/dbus-print-message.h (print_message): Add literal argument
2697         to print_message which is intended to allow printing arguments without
2698         metadata like "string=".
2699
2700         * tools/dbus-print-message.c (print_iter): Add literal argument.
2701         (print_message): Allow printing string messages literally.
2702
2703 2005-07-05  Colin Walters  <walters@verbum.org>
2704
2705         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2706         Remove value refcount leak, original patch from Jorn Baayen
2707         <jorn@openedhand.com>.  Also remove useless extra value in favor
2708         of prepending to value array directly.
2709
2710 2005-07-02  Colin Walters  <walters@verbum.org>
2711
2712         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2713
2714 2005-07-01  Colin Walters  <walters@verbum.org>
2715
2716         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2717         
2718         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2719         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2720         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2721         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2722
2723 2005-06-30  Colin Walters  <walters@verbum.org>
2724
2725         * test/glib/test-dbus-glib.c:
2726         * test/glib/test-service-glib.c:
2727         * test/glib/test-service-glib.xml: Update tests for new error
2728         setting bits, also add async tests (patch from Ross Burton).
2729
2730         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2731         DBUS_GLIB_THREADS_LIBS.
2732
2733         * glib/dbus-gproxy.c (get_name_owner)
2734         (dbus_g_pending_call_end_valist): Ditto.
2735
2736         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2737         domain (GQuark) to DBusGErrorInfo.  
2738         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2739         quark in error_metadata.  Take message interface as default
2740         error message interface.
2741         (gerror_to_dbus_error_message): Pass message interface.
2742         (dbus_set_g_error): Resurrected.
2743         (dbus_g_error_info_free): New function.
2744         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2745         of _peek to actually create the object class if it hasn't been
2746         created yet.
2747         (dbus_g_error_domain_register): New function.
2748
2749         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2750
2751         * glib/dbus-gparser.c (validate_signature): Ditto.
2752
2753         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2754         (dbus_g_error_domain_register): Prototype.
2755
2756         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2757         Update tests.
2758
2759 2005-06-29  Colin Walters  <walters@verbum.org>
2760
2761         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2762         DBUS_TYPE_G_OBJECT_PATH.
2763
2764         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2765         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2766         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2767         (dbus_g_object_path_get_g_type): New function.
2768         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2769         to DBUS_TYPE_G_OBJECT_PATH by default.
2770         (demarshal_proxy): Remove unused name variable.
2771         (demarshal_object_path, marshal_object_path): New functions.
2772         (demarshal_proxy_array, marshal_proxy_array): Delete.
2773         
2774         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2775         DBUS_TYPE_G_OBJECT_PATH to char *.
2776         (dbus_g_type_get_lookup_function): Map builtin
2777         DBUS_TYPE_G_OBJECT_PATH.
2778
2779         * test/glib/test-dbus-glib.c
2780         * test/glib/test-service-glib.c (my_object_objpath): 
2781         Adapt tests to new object path marshalling.
2782
2783 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2784
2785         * configure.in: force check for Python >= 2.4
2786
2787 2005-06-29  Colin Walters  <walters@verbum.org>
2788         
2789         Patch from Ross Burton <ross@openedhand.com>
2790         
2791         * glib/dbus-gobject.c (invoke_object_method): Unset object
2792         value in all cases, not only in async case.
2793
2794 2005-06-29  Colin Walters  <walters@verbum.org>
2795
2796         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2797         name_call for keeping track of any outgoing GetNameOwner call.
2798         Also add for_owner and associated.
2799         (struct _DBusGProxyManager): Add owner_names, which is hash table
2800         that maps a base name to a list of names it owns (that we're
2801         interested in).  Add pending_nameowner_calls which is a list of
2802         all outstanding GetNameOwner; avoids us having to iterate over
2803         every proxy.  Add unassociated_proxies which keeps track of name
2804         proxies with no associated name owner.
2805         (dbus_g_proxy_manager_unref): Destroy owner_names.
2806         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2807         name refcounts.
2808         (find_name_in_info, name_owner_foreach)
2809         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2810         (dbus_g_proxy_manager_monitor_name_owner)
2811         (dbus_g_proxy_manager_unmonitor_name_owner)
2812         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2813         New functions; they manipulate the owner_names mapping.
2814         (got_name_owner_cb): New function.
2815         (get_name_owner): New function, extracted from
2816         dbus_g_proxy_new_for_name_owner.
2817         (dbus_g_proxy_manager_register): For now we need to keep track of
2818         all NameOwnerChanged.  Also if the proxy is for a name, if we
2819         don't already know the name owner, queue a new GetNameOwner
2820         request and add it to our list of unassociated proxies.  Otherwise
2821         inc the refcount.
2822         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2823         cancel any pending GetNameOwner call, etc.
2824         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2825         the owner_names mapping to look up the current names for the
2826         signal source, and dispatch to any proxies for that name.
2827         (dbus_g_proxy_new): Initialize new members.
2828         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2829         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2830         (dbus_g_pending_call_end_valist): New function, extracted from
2831         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2832         but want to use the GLib infrastructure.  Also note how many
2833         arguments in reply were over.
2834         (dbus_g_pending_call_end): New function, just call
2835         dbus_g_pending_call_end_valist.
2836         (dbus_g_proxy_end_call_internal): Just call
2837         dbus_g_pending_call_end_valist.
2838
2839         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2840         of builtin marshaller for STRING_STRING_STRING.
2841
2842         * test/glib/test-dbus-glib.c: 
2843         * test/glib/test-service-glib.c:
2844         * test/glib/test-service-glib.xml:
2845         Extend tests to cover name proxies, destruction of owner proxies,
2846         etc.
2847         
2848         * glib/examples/example-signal-recipient.c
2849         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2850         
2851         * tools/dbus-send.c (main): Print D-BUS error name in addition
2852         to message.
2853
2854 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2855
2856         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2857         cmessage_function_handler): Patch from 
2858         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2859         by using the Py_GILState_Ensure/Release to synchronize with the
2860         python runtime.
2861         
2862 2005-06-28  Ray Strode  <rstrode@redhat.com>
2863
2864         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2865         babysitter helper process on last unref, bug #2813.
2866
2867 2005-06-27  Colin Walters  <walters@verbum.org>
2868
2869         * test/glib/test-dbus-glib.c: 
2870         * test/glib/test-service-glib.c:
2871         * test/glib/test-service-glib.xml:
2872         Test hash table signal emitting.
2873
2874         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2875         types to their fundamental basis types, since this is what
2876         marshallers operate on.  Also add an entry for VOID__BOXED.
2877         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2878
2879 2005-06-26  Havoc Pennington  <hp@redhat.com>
2880
2881         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2882         from Don Park
2883
2884 2005-06-26  Colin Walters  <walters@verbum.org>
2885
2886         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2887         (dbus_g_error_set): New public function from its ashes; used by
2888         both service-side method implementation and GLib bindings
2889         internals.
2890         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2891         (_dbus_glib_test): Add some tests.
2892
2893         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2894
2895         * test/glib/test-service-glib.c (my_object_throw_error): Use
2896         dbus_g_error_set.
2897
2898         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2899         errors thrown by dbus_g_error_set.
2900
2901         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2902
2903         * glib/dbus-gparser.c (validate_signature): Ditto.
2904
2905         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2906         (dbus_g_proxy_end_call_internal): Ditto.
2907
2908         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2909         converts DBUS_ERROR_x to DBUS_GERROR_x.
2910         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2911
2912         * doc/TODO: Remove error TODO.
2913
2914         * doc/dbus-tutorial.xml: Update with documentation about error
2915         handling.
2916
2917         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2918         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2919         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2920
2921 2005-06-22  Colin Walters  <walters@verbum.org>
2922         
2923         Patch from Ross Burton <ross@openedhand.com>
2924
2925         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2926
2927 2005-06-20  Colin Walters  <walters@verbum.org>
2928
2929         * configure.in: Add glib/examples.
2930
2931         * glib/Makefile.am: Add examples/
2932
2933         * glib/examples/.cvsignore
2934         * glib/examples/Makefile.am
2935         * glib/examples/example-client.c
2936         * glib/examples/example-service.c
2937         * glib/examples/example-service.xml
2938         * glib/examples/example-signal-emitter.c
2939         * glib/examples/example-signal-emitter.xml
2940         * glib/examples/example-signal-recipient.c:
2941         New files; GLib binding examples, ported from
2942         python/examples.
2943
2944 2005-06-20  Colin Walters  <walters@verbum.org>
2945
2946         * dbus/dbus-glib.h: 
2947         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2948         dbus_g_proxy_call.
2949
2950         * glib/dbus-binding-tool-glib.c: 
2951         * doc/dbus-tutorial.xml: 
2952         * test/glib/test-dbus-glib.c: Update for rename.
2953         
2954 2005-06-20  Colin Walters  <walters@verbum.org>
2955
2956         Patch suggested by Ross Burton <ross@openedhand.com>
2957
2958         * glib/dbus-gobject.c (export_signals): Free signal name.
2959         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2960         memory leak.  Add a bit of documentation.
2961         (dbus_g_method_return_error): Free context, and note we do
2962         so.
2963
2964 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2965
2966         * dbus/dbus-glib.h:
2967         * glib/dbus-gobject.c:
2968         * glib/dbus-gproxy.c:
2969         * glib/dbus-gvalue.c: Predeclare structs as 
2970         typedef struct _Something Something instead of 
2971         typedef struct Something Something, so we can 
2972         redeclare the prototypes. Other GNOME libraries 
2973         do this already.
2974
2975 2005-06-17  Colin Walters  <walters@verbum.org>
2976
2977         * tools/dbus-names-model.c (have_names_notify): Fix call
2978         to dbus_g_proxy_end_call.
2979         
2980 2005-06-17  Colin Walters  <walters@verbum.org>
2981
2982         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2983         spew warnings if we get malformed remote signals.
2984
2985         * glib/dbus-gobject.c (propsig_iterate): New function.
2986         (lookup_object_info): New function, extracted from
2987         lookup_object_and_method.
2988         (introspect_properties, introspect_signals): Delete; these
2989         are merged into write_interface.
2990         (write_interface): Write out signals and properties here;
2991         dump the org.gtk.object stuff and use the interface given
2992         in the introspection data blob.  Also fix up property XML.
2993         (lookup_values): New function.
2994         (introspect_interfaces): Gather a mapping from interface to a
2995         list of its methods, signals, and properties, then write out
2996         each interface.
2997         (lookup_object_and_method): Use lookup_object_info.
2998         (struct DBusGSignalClosure): Add interface.
2999         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3000         we can just use the constant data.
3001         (dbus_g_signal_closure_finalize): Don't free signal name.
3002         (signal_emitter_marshaller): Use interface from signal closure.
3003         (export_signals): Only export signals mentioned in introspection
3004         blob.
3005         (dbus_g_connection_register_g_object): Warn if we have no
3006         introspection data for an object.
3007         (funcsig_equal): Remove unused variable.
3008         (dbus_g_object_register_marshaller): Take varargs instead of
3009         list.
3010         (dbus_g_object_register_marshaller_array): New function,
3011         extracted from old dbus_g_object_register_marshaller.
3012
3013         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3014         signals and property data.
3015         (write_quoted_string): New function, extracted from generate_glue.
3016         (generate_glue): Write signals and properties to introspection
3017         blob.
3018
3019         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3020         exported_signals and exported_properties.
3021         (dbus_g_object_register_marshaller): Update prototype.
3022         (dbus_g_object_register_marshaller_array): Prototype.
3023         
3024         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3025
3026         * test/glib/test-service-glib.c: Add new test signals and method
3027         to emit them.
3028
3029         * test/glib/test-service-glib.xml: Add some test signals.
3030
3031         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3032         and my-object-marshal.h
3033         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3034         my-object-marshal.c.
3035         (my-object-marshal.c, my-object-marshal.h): Implement.
3036
3037         * test/glib/.cvsignore: Update.
3038
3039         * doc/TODO: Remove two GLib TODO items fixed by this
3040         patch.
3041
3042 2005-06-16  Colin Walters  <walters@verbum.org>
3043
3044         * doc/TODO: Update for GLib bindings.
3045         
3046 2005-06-16  Colin Walters  <walters@verbum.org>
3047
3048         * glib/dbus-binding-tool-glib.c:
3049         * glib/dbus-gobject.c:
3050         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3051         from Ross Burton, for his GLib bindings work.
3052
3053 2005-06-16  Colin Walters  <walters@verbum.org>
3054
3055         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3056         to iterate instead of walking to G_TYPE_INVALID.
3057
3058         Patch based on a patch from Ryan Gammon.
3059
3060 2005-06-16  Colin Walters  <walters@verbum.org>
3061
3062         * bus/bus.c (bus_context_new): Set parser to NULL
3063         after we unref it (Patch from Chris Boscolo, #2174).
3064         
3065 2005-06-16  Colin Walters  <walters@verbum.org>
3066
3067         * python/dbus_bindings.pyx.in: Import size_t,
3068         __int64_t, __uint64_t, and __signed.
3069
3070         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3071         Define cmsg struct, output it.
3072         (_dbus_read_credentials_unix_socket):
3073         Use cmsg struct.
3074         
3075         Patch from Joe Markus Clarke for FreeBSD support.
3076         
3077 2005-06-16  Colin Walters  <walters@verbum.org>
3078
3079         * tools/dbus-send.c (append_array): Use strtok.
3080         (append_dict): New function.
3081         (type_from_name): New function, extracted from main.
3082         (main): Handle sending dicts.
3083
3084         * tools/dbus-print-message.c (print_iter): Print dict
3085         entries.
3086         
3087 2005-06-16  Colin Walters  <walters@verbum.org>
3088
3089         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3090         values as the empty string (#2948).
3091         
3092 2005-06-16  Colin Walters  <walters@verbum.org>
3093
3094         * dbus/Makefile.am:
3095         * mono/doc/Makefile.am:
3096         * test/glib/Makefile.am:
3097
3098         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3099
3100 2005-06-16  Colin Walters  <walters@verbum.org>
3101
3102         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3103         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3104
3105         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3106         Increment pointer after swapping fixed array.  Add assertion
3107         for array length.
3108                 
3109 2005-06-15  Colin Walters  <walters@verbum.org>
3110
3111         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3112         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3113         
3114 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3115
3116         * NEWS: Update to 0.34
3117
3118 2005-06-15  David Zeuthen  <davidz@redhat.com>
3119
3120         * configure.in (LT_CURRENT): Revert back to 1 as the library
3121         hasn't changed and we've certainly not committed to protocol
3122         stability yet.  All this does is to break ABI. See commit note
3123         from hp@redhat.com 2005-05-05 for details.
3124         
3125 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3126
3127         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3128         (_dbus_connection_run_builtin_filters): New method
3129         (dbus_connection_dispatch): Run the builtin filters which in turn
3130         runs the peer filter which handles Ping messages.
3131
3132         * doc/TODO: 
3133          - Ping isn't handled: This patch fixes it
3134          
3135          - Add a test case for the Ping message: added TODO item
3136
3137 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3138
3139         * dbus/dbus-message.c:
3140         (dbus_message_has_path): New method
3141         (dbus_message_has_interface): New method
3142         (dbus_message_has_member): New method
3143
3144         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3145         New method
3146
3147         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3148         the keyring directory is private to the user
3149
3150         * doc/TODO:
3151          - The convenience functions in dbus-bus.h should perhaps have
3152          the signatures that they would have if they were autogenerated
3153          stubs. e.g. the acquire service function. We should also evaluate
3154          which of these functions to include, in light of the fact that
3155          GLib/Qt native stubs will probably also exist.: Punted
3156
3157          - add dbus_message_has_path(), maybe has_member/interface:
3158          fixed in this patch
3159
3160          - in dbus-keyring.c, enforce that the keyring dir is not
3161          world readable/writable: Fixed in this patch
3162
3163 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3164
3165         * dbus/dbus-marshal-validate.h: Added a new validation
3166         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3167         out of memory errors when validating signitures
3168
3169         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3170         in places where we previously used DBUS_VALID and a FALSE return 
3171         value to indicate OOM
3172         
3173         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3174         Use a stack to track the number of elements inside containers.  The 
3175         stack values are then used to validate that dict entries have only two
3176         elements within them.
3177         (validate_body_helper): check the reason for failure when validating
3178         varients
3179         
3180         * dbus/dbus-message.c (load_message): use 
3181         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3182         DBUS_VALID and a FALSE return value to indicate OOM
3183
3184         * doc/TODO: remove "- validate dict entry number of fields" as this
3185         patch fixes it
3186
3187 2005-06-14  David Zeuthen  <davidz@redhat.com>
3188
3189         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3190         watches (if applicable) and add new watches
3191
3192         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3193         (main): Setup SIGIO signal handler if using D_NOTIFY
3194
3195         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3196
3197         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3198         (merge_included): Also merge conf_dirs list
3199         (bus_config_parser_unref): Clear conf_dirs list
3200         (include_dir): Add directory to conf_dirs list
3201         (bus_config_parser_get_conf_dirs): New function
3202
3203         * bus/dir-watch.[ch]: New files
3204
3205         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3206
3207         * configure.in: Add checks for D_NOTIFY on Linux
3208
3209 2005-06-14  Colin Walters  <walters@verbum.org>
3210
3211         * glib/dbus-binding-tool-glib.c:
3212         * glib/dbus-gobject.c:
3213         * glib/dbus-gvalue.c: Fix indentation and brace style.
3214         
3215 2005-06-14  Ross Burton <ross@openedhand.com>.
3216
3217         * glib/dbus-glib.h: Make DBusGMethodInvocation
3218         a private structure.  Rearrange prototypes a bit.
3219         
3220         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3221         documentation for first_arg_type.
3222         
3223         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3224         here, add documentation.  Move dbus_g_method_return
3225         and dbus_g_method_return_error into public API
3226         section.
3227
3228 2005-06-14  Colin Walters  <walters@verbum.org>
3229
3230         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3231         Add missing return statements, noticed by Ross Burton.
3232         
3233 2005-06-13  Ross Burton <ross@openedhand.com>.
3234
3235         * glib/dbus-gobject.c: Handle errors on message
3236         demarshalling by sending error message back.
3237         * glib/dbus-gvalue.c: Initialize return variables.
3238
3239 2005-06-13  Colin Walters  <walters@verbum.org>
3240
3241         * glib/Makefile.am: Fix thinko in last patch.
3242
3243 2005-06-13  Colin Walters  <walters@verbum.org>
3244
3245         * glib/Makefile.am: Move dbus-gtype-specialized.c
3246         and dbus-gtype-specialized.h into a _HEADERS variable,
3247         install them.
3248
3249 2005-06-12  Colin Walters  <walters@verbum.org>
3250
3251         Async signals and various bugfixes and testing by
3252         Ross Burton <ross@openedhand.com>.
3253
3254         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3255         (dbus_gvalue_genmarshal_name_from_type)
3256         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3257         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3258         (dbus_g_value_types_init, dbus_gtype_from_signature)
3259         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3260         (dbus_gtypes_from_arg_signature): New function prototypes.
3261         (dbus_gvalue_demarshal): Take context and error arguments.
3262         (dbus_gvalue_demarshal_variant): New function.
3263         (dbus_gvalue_demarshal_message): New function.
3264         (dbus_gvalue_store): Delete.
3265
3266         * glib/dbus-gvalue.c:
3267
3268         File has been almost entirely rewritten; now we special-case
3269         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3270         hash tables correctly, etc.  Full support for recursive values
3271         is not yet complete.
3272
3273         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3274         argument of signal to G_TYPE_POINTER since we now pass a
3275         structure.
3276         (lookup_g_marshaller): Delete in favor of
3277         _dbus_gobject_lookup_marshaller.
3278         (marshal_dbus_message_to_g_marshaller): Use
3279         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3280         to handle remote signal callbacks.
3281         (dbus_g_proxy_new_from_proxy): New function; creates a new
3282         DBusGProxy by copying an existing one.
3283         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3284         (dbus_g_proxy_get_path): New functions.
3285         (dbus_g_proxy_marshal_args_to_message): New function;
3286         factored out of existing code.
3287         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3288         from a varargs array.
3289         (dbus_g_proxy_begin_call_internal): New function.
3290         (dbus_g_proxy_end_call_internal): New function.
3291         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3292         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3293         after collecting args into value array.
3294         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3295         invoke dbus_g_proxy_end_call_internal.
3296         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3297         end_call_internal.
3298         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3299         types.
3300         (array_free_all): New function.
3301         (dbus_g_proxy_add_signal): Take GTypes.
3302
3303         * glib/dbus-gobject.h:
3304         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3305         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3306         Prototype.
3307
3308         * glib/dbus-gobject.c: Add a global marshal_table hash which
3309         stores mappings from type signatures to marshallers.  Change lots
3310         of invocations of dbus_gtype_to_dbus_type to
3311         dbus_gtype_to_signature.
3312         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3313         (introspect_signals): Fix test for query.return_type.
3314         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3315         (invoke_object_method): Many changes.  Handle asynchronous
3316         invocations.  Convert arguments with
3317         dbus_gvalue_demarshal_message.  Handle errors.  Use
3318         DBusSignatureIter instead of strlen on args. Handle all arguments
3319         generically.  Special-case variants.
3320         (dbus_g_method_return, dbus_g_method_return_error): New function.
3321         (DBusGSignalClosure): New structure, closes over signal
3322         information.
3323         (dbus_g_signal_closure_new): New function.
3324         (dbus_g_signal_closure_finalize): New function.
3325         (signal_emitter_marshaller): New function; is special marshaller
3326         which emits signals on bus.
3327         (export_signals): New function; introspects object signals and
3328         connects to them.
3329         (dbus_g_object_type_install_info): Take GType instead of
3330         GObjectClass.
3331         (dbus_g_connection_register_g_object): Invoke export_signals.
3332         (dbus_g_connection_lookup_g_object): New function.
3333         (DBusGFuncSignature) New structure; used for mapping type
3334         signatures to marshallers.
3335         (funcsig_hash): New function; hashes DBusGFuncSignature.
3336         (funcsig_equal): New function; compares DBusGFuncSignature.
3337         (_dbus_gobject_lookup_marshaller): New function.
3338         (dbus_g_object_register_marshaller): New function; used to
3339         register a marshaller at runtime for a particular signature.
3340
3341         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3342
3343         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3344         which notes a server method implementation should be
3345         asynchronous.
3346
3347         * glib/dbus-binding-tool-glib.c
3348         (dbus_binding_tool_output_glib_server): Call
3349         dbus_g_value_types_init.
3350         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3351         variants specially.
3352         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3353         of a lookup function.
3354         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3355         (write_untyped_out_args): New method; write output arguments.
3356         (write_formal_declarations_for_direction): Function for
3357         writing prototypes.
3358         (write_formal_parameters_for_direction): Function for
3359         writing implementations.
3360         (write_typed_args_for_direction): Function for writing
3361         arguments prefixed with GTypes.
3362         (write_async_method_client): Write out async version
3363         of method.
3364
3365         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3366         (dbus_g_type_get_marshal_name): Move mapping from GType
3367         to marshal name into here.
3368         (dbus_g_type_get_c_name): Move into here.
3369         (compute_marshaller): Convert signature to type with
3370         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3371         (compute_marshaller_name): Ditto.
3372         (compute_marshaller): Handle async signal annotations.
3373         (gather_marshallers): Return if we don't have a known
3374         prefix.
3375         (generate_glue): Collect introspection blob here, and
3376         write all of the blob at the end.  This allows an object
3377         with multiple interfaces to work.
3378         Mark async methods in introspection blob.
3379
3380         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3381         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3382         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3383
3384         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3385         avoids people accidentally using DBUS_TYPE_* which should
3386         not be necessary anymore.
3387         Do include dbus-gtype-specialized.h, which are utilities
3388         for GLib container types.
3389         Add various #defines for types such as
3390         DBUS_TYPE_G_BOOLEAN_ARRAY.
3391         (DBusGValueIterator, DBusGValue): Define, not fully used
3392         yet.
3393         (dbus_g_value_get_g_type): Type for recursive value.
3394         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3395         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3396         (dbus_g_value_free): Prototypes.
3397         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3398         (dbus_g_proxy_set_interface): Prototype.
3399         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3400         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3401         types.
3402         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3403         Accessors.
3404         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3405         doing async invocations.
3406         (dbus_g_method_return, dbus_g_method_return_error):
3407         Prototypes.
3408         * doc/dbus-tutorial.xml: Update GLib section.
3409         
3410         * tools/dbus-viewer.c (load_child_nodes): Update
3411         for new invocation type of dbus_g_proxy_end_call.
3412         (load_from_service_thread_func): Ditto.
3413
3414         * tools/print-introspect.c (main): Ditto.
3415
3416         * tools/dbus-names-model.c (have_names_notify)
3417         (names_model_reload, names_model_set_connection)
3418         Use GTypes.
3419
3420         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3421         needed since Python bindings use GLib bindings.
3422
3423         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3424         Add --prefix argument.
3425
3426         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3427         unneeded --ignore-unsupported arg.
3428         
3429         * test/glib/test-service-glib.c: 
3430         * test/glib/test-service-glib.xml:
3431         * test/glib/test-dbus-glib.c: Add many more tests.
3432
3433 2005-06-06  David Zeuthen  <davidz@redhat.com>
3434
3435         * doc/TODO: Add item about need to remove deprecated functions.
3436
3437         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3438
3439         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3440         to repair the ABI which was broken with the last commit.
3441
3442 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3443
3444         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3445         (dbus_connection_disconnect): renamed to dbus_connection_close 
3446         for API symmetry with dbus_connection_open
3447         (_dbus_connection_open_internal): 
3448         s/dbus_connection_disconnect/dbus_connection_close
3449
3450         * dbus/dbus-bus.c (dbus_bus_get):
3451         s/dbus_connection_disconnect/dbus_connection_close
3452
3453         * bus/connection.c (bus_connections_unref, 
3454         bus_connections_setup_connection, bus_connections_expire_incomplete):
3455         s/dbus_connection_disconnect/dbus_connection_close
3456
3457         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3458         kill_client_connection_unchecked, check_hello_connection):
3459         s/dbus_connection_disconnect/dbus_connection_close
3460
3461         * bus/bus.c (new_connection_callback):
3462         s/dbus_connection_disconnect/dbus_connection_close
3463
3464         * tools/dbus-send.c (main):
3465         s/dbus_connection_disconnect/dbus_connection_close
3466
3467         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3468         s/dbus_connection_disconnect/dbus_connection_close
3469         
3470         * test/test-service.c (path_message_func, filter_func):
3471         s/dbus_connection_disconnect/dbus_connection_close
3472         
3473         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3474         
3475 2005-05-25  Colin Walters  <walters@verbum.org>
3476
3477         * dbus/dbus-protocol.h: Move various bus service #defines such
3478           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3479           dbus/dbus-shared.h.
3480         * dbus/dbus-shared.h: Various defines moved here.
3481         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3482
3483 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3484
3485         * python/__init__.py: Python bindings deserve a minor version
3486         update.  Upped to (0, 40, 2)
3487
3488 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3489
3490         * python/decorators.py: add explicitly_pass_message decorator
3491         for passing in the dbus message as keyword for edge case signal
3492         handling
3493
3494         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3495         to conform with what dbus expects for match rules
3496         (SignalMatchRule.execute): add the dbus message as a keyword
3497         if the signal handler has requested it
3498
3499         * python/examples/example/signal-recipient.py: added some more
3500         examples on how to hook up to signals
3501
3502 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3503
3504         * python/decorators.py: import dbus_bindings
3505
3506         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3507         SignalMatchNode): new classes that implement wildcard signal
3508         callback matching using a tree lookup. Heavily modified from a
3509         patch sent by Celso Pinto (fd.o bug #3241)
3510
3511         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3512         use new match classes to handle signals.
3513
3514 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3515         
3516         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3517
3518 2005-05-18  Havoc Pennington  <hp@redhat.com>
3519
3520         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3521         gettext. Not really worth requiring yet perhaps, but any
3522         production quality 1.0 would require it so we should go ahead and
3523         get things set up. We do have a couple token calls to
3524         bindtextdomain in the code already.
3525
3526 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3527
3528         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3529         when using recursive g_main_loops
3530
3531         * python/_dbus.py (class Bus): add the ProxyObjectClass
3532         alias for ProxyObject to make it easier for the Twisted 
3533         networking framework to integrate dbus.
3534
3535         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3536         alias for ProxyMethod to make it easier for the Twisted 
3537         networking framework to integrate dbus. 
3538
3539 2005-05-11  Ross Burton  <ross@openedhand.com>
3540
3541         * glib/dbus-glib-tool.c: Add --prefix argument.
3542         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3543         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3544         Add prefix argument.
3545         (generate_glue): Pass prefix argument down.
3546         (dbus_binding_tool_output_glib_server): Pass prefix to
3547         glib-genmarshal.
3548         
3549 2005-05-11  Colin Walters  <walters@verbum.org>
3550
3551         * tools/dbus-send.c (append_array): New function.
3552         (append_arg): Broken out from main.
3553         (main): Add cheesy hack to send arrays and variants.
3554         (usage): Update.
3555         * tools/dbus-print-message.c (print_iter): Broken out
3556         from main.
3557
3558 2005-05-11  Colin Walters  <walters@verbum.org>
3559
3560         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3561         New function, returns signature string for signature iter.
3562         * dbus/dbus-signature.h: Prototype it.
3563         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3564         New function, returns signature string for message iter.
3565         (dbus_message_iter_get_array_len): New function, returns
3566         length of array.
3567         (dbus_message_iter_get_fixed_array): Fix assertion; this
3568         function should be used when the iter is pointing to the
3569         contents of an array
3570         * dbus/dbus-message.h: Prototypes.
3571         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3572         New function; returns length of an array.
3573         * dbus/dbus-marshal-recursive.h: Prototype it.
3574         
3575 2005-05-11  Colin Walters  <walters@verbum.org>
3576
3577         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3578         compilation error.
3579         
3580 2005-05-08  Havoc Pennington  <hp@redhat.com>
3581
3582         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3583         daemon's pid, not the parent's pid, to the file descriptor.
3584         Reported by Taj Morton.
3585
3586 2005-05-05  Havoc Pennington  <hp@redhat.com>
3587
3588         * configure.in (LT_*): add notes on how the libtool versioning
3589         works to save thinking. Increment soname to indicate protocol
3590         breakage (though really the library interface hasn't changed I
3591         guess)
3592
3593         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3594         verify the GUID received from server matches what we were
3595         expecting, if we had an expectation
3596
3597         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3598         (_dbus_auth_get_guid_from_server): new function
3599         (send_begin): parse the OK args
3600
3601         * doc/dbus-specification.xml: add GUID to the auth protocol
3602
3603 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3604
3605         * Fix my name in previous changelog ;)
3606
3607         * python/proxies.py (ProxyObject.__getattr__): add further patch
3608         from Anthony Baxter to throw an AttributeError when python 
3609         __special__ functions are called instead of marshling them over 
3610         the bus (Bug#1685 comment 3).
3611
3612 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3613
3614         * python/Makefile.am: changed to use pyexecdir for the binding
3615         shared libraries (Bug#2494)
3616
3617         * python/exceptions.py: bring exceptions over from the bindings
3618         so they can be used in applications (Bug#2036)
3619         Make all exceptions derive from DBusException
3620
3621         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3622         of classes so that print obj doesn't throw an exception (Bug #1685)
3623
3624 2005-05-03  Ross Burton  <ross@openedhand.com>
3625
3626         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3627         Return if we get an error during registration.  Set up a
3628         weak reference on object to unregister if object is destroyed.
3629         (unregister_gobject): New function.
3630         
3631 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3632
3633         * python/dbus_bindings.pyx.in: 
3634         - added new type classes for hinting to the marashaler what type 
3635         to send over the wire
3636         - added int16 and uint16 marshalers
3637         - Fixed a bug in the type constants that caused int32 to go out
3638         as uint16 over the wire
3639         * python/dbus.py: split up into different files and renamed _dbus.py
3640         * python/__init__.py, python/_util.py, python/decorators.py, 
3641         python/exceptions.py, python/proxies.py, python/services.py,
3642         python/types.py: new files split off from dbus.py
3643         * python/Makefile.am: Add new files, remove dbus.py and 
3644         install all python files to <python module dir>/dbus
3645         * python/examples/*: Added #!/usr/bin/env python to the top of
3646         every example.  Patch provided by Tatavarty Kalyan
3647
3648 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3649
3650         * NEWS: Update to 0.33
3651
3652 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3653
3654         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3655         method for doing async calls
3656         (_pending_call_notification): New C function for handling pendning call
3657         callbacks
3658         (set_notify): New method for setting pending call notification
3659         
3660         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3661         Async capabilities added to remote method calls
3662         (Sender): class removed
3663         (RemoteService): class removed
3664         (ObjectTree): class removed for now
3665         (RemoteObject): Renamed to ProxyObject
3666         (RemoteMethod): Renamed to ProxyMethod
3667         (method): Decorator added for decorating python methods as dbus methods
3668         (signal): Decorator added for decorating python methods as signal emitters
3669         (ObjectType): Metaclass added for generating introspection data and the
3670         method callback vtable
3671         (Interface): Wrapper class added to wrap objects in a dbus interface
3672         (Object): Uses ObjectType as its metaclass and exports Introspect
3673         of the org.freedesktop.DBus.Introspectable interface
3674         (ValidationException, UnknownMethodException): new exceptions
3675
3676         * python/examples/*: Modified to fit with the new bindings
3677
3678 2005-04-23  Havoc Pennington  <hp@redhat.com>
3679
3680         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3681         reported by Tony Houghton
3682
3683         * test/test-service.c (main): test
3684         dbus_connection_get_object_path_data()
3685
3686         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3687         the exact_match
3688         (_dbus_object_tree_get_user_data_unlocked): new function used by
3689         dbus_connection_get_object_path_data()
3690         (do_register): add assertion test for get_user_data_unlocked
3691         (object_tree_test_iteration): more tests
3692
3693         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3694         new function from Dan Reed to let you get the user data from 
3695         dbus_connection_register_object_path()
3696
3697 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3698
3699         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3700         in numerous places that did not account for the NULL terminator
3701         (signature_from_seed): changed the manual string copy loop to 
3702         just use strcpy instead
3703         make check should now pass
3704
3705 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3706
3707         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3708         so that it allows messages that are not signals to pass in 
3709         NULL as the interface.
3710
3711 2005-04-18  David Zeuthen  <davidz@redhat.com>
3712
3713         * glib/dbus-gmain.c (io_handler_destroy_source): 
3714         (timeout_handler_destroy_source, connection_setup_free): 
3715         Also unref the source to avoid memory leaks.
3716
3717 2005-04-13  David Zeuthen  <davidz@redhat.com>
3718
3719         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3720         more reasonable, yet still totally arbitrary, value :-). 
3721
3722 2005-04-13  David Zeuthen  <davidz@redhat.com>
3723
3724         * doc/TODO: Added an "important for 1.0" item about selinux
3725         allow/deny messages
3726
3727 2005-04-13  David Zeuthen  <davidz@redhat.com>
3728
3729         * bus/selinux.c: Add c-file-style to top of file
3730         (log_audit_callback): Don't free the data here anymore
3731         (bus_selinux_check): Don't take spid and tpid since appending
3732         that to auxdata may OOM.
3733         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3734         to the caller if we are OOM by taking an error object.
3735         (bus_selinux_allows_send): -do-
3736
3737         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3738         and bus_selinux_allows_send
3739
3740         * bus/bus.c (bus_context_check_security_policy): Pass error and
3741         pass on OOM thrown by bus_selinux_allows_send()
3742
3743         * bus/services.c (bus_registry_acquire_service): Pass error and
3744         pass on OOM thrown by bus_selinux_allows_acquire_service()
3745
3746 2005-04-13  Havoc Pennington  <hp@redhat.com>
3747
3748         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3749         message at a time to avoid monopolizing the main loop, bug 
3750         #2953 from Benjamin Otte
3751
3752 2005-04-09  Havoc Pennington  <hp@redhat.com>
3753
3754         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3755         possible overlap, fix from Daniel Reed
3756         (fixup_alignment): fix signedness warnings
3757         (_dbus_string_append_unichar): ditto
3758
3759 2005-04-09  Havoc Pennington  <hp@redhat.com>
3760
3761         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3762
3763         * glib/dbus-glib-tool.c (main): fix warning
3764
3765         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3766
3767         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3768         add a new function that can be used in simple applications that
3769         don't have a main loop and are willing to block
3770
3771 2005-04-05  David Zeuthen  <davidz@redhat.com>
3772
3773         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3774
3775         * glib/dbus-gmain.c:
3776         (io_handler_destroy_source): Remove from list of IO handlers
3777         of the ConnectionSetup object
3778         (timeout_handler_destroy_source): -do- for timeout handlers
3779         (io_handler_source_finalized): Don't remove from list since
3780         we now do that in io_handler_destroy_source(). Renamed from
3781         io_handler_source_destroyed
3782         (timeout_handler_source_destroyed): -do- for timeout handlers
3783         (connection_setup_free): It is now safe to iterate over all
3784         IO and timeout handlers as the _destroy_source removes them
3785         from the list synchronously
3786
3787 2005-03-30  Havoc Pennington  <hp@redhat.com>
3788
3789         * configure.in: change check to gtk 2.4
3790
3791         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3792         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3793         to 2.4
3794
3795 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3796
3797         * News: Update 0.32
3798
3799         * HACKING: Fixed realease instructions.  configure.in should be updated to
3800           the next release by the person who made the last release.
3801
3802 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3803
3804         * python/lvalue_cast_post_process.py - removed.  Patch has been
3805           submitted to Pyrex maintainers that fixes gcc4.0 errors
3806
3807         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3808
3809 2005-03-24  Daniel Reed  <n@ml.org>
3810
3811         * tools/Makefile.am: Make print-introspect and
3812         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3813
3814 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3815
3816         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3817
3818         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3819           had in Red Hat packages for a while but for some reason never 
3820           got merged upstream
3821           (_dbus_is_a_number): New checks if a string
3822           can be converted to a number and does the conversion if it can
3823           (_dbus_user_database_lookup): Add check to see if the given username
3824           is a udi.  This allows udi's to be used instead of usernames in the
3825           config file.
3826           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3827           is a gdi.  This allows gdi's to be used instead of groupnames in the
3828           config file.
3829
3830 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3831
3832         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3833           code so that it compiles with gcc4.0
3834
3835         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3836           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3837           results back to dbus_binding.c
3838
3839 2005-03-20  Colin Walters  <walters@verbum.org>
3840
3841         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3842
3843         * configure.in: Require GTK+ 2.6.
3844         
3845 2005-03-20  Colin Walters  <walters@verbum.org>
3846
3847         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3848
3849 2005-03-17  Tom Parker  <palfrey@tevp.net>
3850
3851         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3852         print DBUS_UID_UNSET; instead print passed username.  Also
3853         be sure to actually use gid looked up in cache.
3854         
3855         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3856         for DBUS_GID_UNSET and groupname.
3857
3858 2005-03-17  Colin Walters  <walters@verbum.org>
3859
3860         * bus/print-introspect.c: Move to tools/.
3861         * bus/run-with-tmp-session-bus.sh: Ditto.
3862         
3863         * glib/Makefile.am (dbus-glib-bindings.h): Move
3864         generation to tools/Makefile.am.
3865
3866         * test/glib/run-test.sh: Update to handle move
3867         of run-with-tmp-session-bus.sh.
3868
3869         * test/glib/test-service-glib.c: Update to handle
3870         move of dbus-glib-bindings.h.
3871
3872         * tools/print-introspect.c: Moved here
3873         from bus/, and ported to GLib bindings.
3874
3875         * tools/run-with-tmp-session-bus.sh: Moved here
3876         from bus/.
3877
3878         * tools/Makefile.am: Generate dbus-glib-bindings.h
3879         and dbus-bus-introspect.xml here.
3880
3881         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3882         Update.
3883
3884 2005-03-17  Colin Walters  <walters@verbum.org>
3885
3886         * bus/driver.c (write_args_for_direction): Use
3887         _dbus_string_get_const_data to retrieve string;
3888         _dbus_string_get_const_data_len doesn't actually return
3889         a NULL-terminated substring.
3890
3891         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3892         (main): Change to use org_freedesktop_DBus_request_name
3893         instead of using g_proxy_begin_call/end_call.
3894
3895 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3896
3897         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3898         generating the finalizer.  Fixes from Ben Maurer.
3899
3900 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3901
3902         * mono/BusDriver.cs: Update method names: ListServices
3903         becomes ListNames; GetOwner becomes GetNameOwner.
3904
3905         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3906         onto the eval stack when removing the delegate.
3907
3908 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3909
3910         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3911         LT_CURRENT.  Set it to the autoconf variable.
3912                                                                                 
3913         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3914         classes that disconnects the signal handler delegate from the
3915         service object.  Fixes a big leak of proxy objects on the
3916         client side of things.  Patch from Ben Maurer
3917         <bmaurer@ximian.com>
3918
3919 2005-03-12  Colin Walters  <walters@verbum.org>
3920
3921         * bus/driver.c (write_args_for_direction): New function,
3922         parses a type signature into arguments and outputs to
3923         XML.
3924         (bus_driver_handle_introspect): Use it instead of
3925         hardcoding XML for certain signatures.
3926         
3927         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3928         dependency on dbus-daemon.
3929
3930         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3931         argument, pass it to dbus_binding_tool_output_glib_client.
3932
3933         * glib/dbus-binding-tool-glib.c
3934         (generate_client_glue): Protect against multiple inclusion.
3935         (dbus_binding_tool_output_glib_client): Add
3936         G_BEGIN_DECLS/G_END_DECLS.
3937
3938         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3939         Change to just take iface prefix directly.
3940         (write_formal_parameters): Clarify error message.
3941         (check_supported_parameters): New function; checks to see type
3942         signatures of method parameters are supported.
3943         (generate_client_glue): Handle ignore_unsupported flag.
3944         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3945         parameter.
3946
3947         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3948         --ignore-unsupported by default until glib bindings
3949         support arrays.
3950
3951 2005-03-11  Colin Walters  <walters@verbum.org>
3952
3953         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3954         install it.
3955
3956         * bus/print-introspect.c: New file; prints introspection
3957         data for a given name and object path.
3958
3959         * bus/run-with-tmp-session-bus.sh: New file, refactored
3960         from test/glib/run-test.sh.  Creates a temporary session
3961         bus and runs another program.
3962
3963         * test/glib/run-test.sh: Refactor to invoke
3964         run-with-tmp-session-bus.sh.
3965
3966         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3967         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3968         macros instead of hardcoding.
3969
3970         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3971
3972 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3973
3974         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3975         this unref; it doesn't match up evenly in some codepaths.
3976         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3977         this evenly matches with the ref near the top of this function.
3978
3979 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3980
3981         * dbus/dbus-object-tree.c
3982         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3983         and we try to unregister a path that's not registered, still go
3984         through the process of unlocking and don't just return.
3985
3986 2005-03-09  Colin Walters  <walters@verbum.org>
3987
3988         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3989         to this are generated for client-side wrappers.  Invokes a
3990         D-BUS method and returns reply values.  
3991
3992         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3993         function; writes signature string for argument direction.
3994         (write_args_for_direction): Change to pass input values directly
3995         instead of via address, and fix indentation.
3996         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3997         make generated wrappers inlineable.
3998
3999         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4000         note about using dbus_type_is_fixed.
4001
4002         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4003         dbus/dbus-signature.c as dbus_type_is_fixed.
4004
4005         All callers updated.
4006
4007         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4008         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4009
4010         * dbus/dbus-signature.h: Prototype.
4011
4012         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4013         error printf code.
4014
4015         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4016         appropriate instead of just freeing it.
4017         (main): Free returned strings using g_free.
4018
4019         * test/glib/Makefile.am (test-service-glib-glue.h)
4020         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4021
4022         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4023         simply maps a simple D-BUS type to GType.
4024         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4025         GType.
4026         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4027         initialize the value with it.
4028         (dbus_gvalue_binding_type_from_type): Unused, delete.
4029         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4030         various types instead of unmarshalling to value data directly.
4031         Remove can_convert boolean.
4032         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4033         returning directly instead of using can_convert boolean.
4034         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4035         Stores a GValue in a pointer to a value of its corresponding C
4036         type.
4037
4038         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4039         add dbus_gvalue_store.
4040
4041 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4042
4043         Fix a bunch of lifecycle and memory management problems
4044         in the mono bindings.
4045
4046         * mono/Arguments.cs (Arguments): Implement IDisposable
4047
4048         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4049         strictly a static class.
4050
4051         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4052         delegates into this file.
4053         (Connection): Implement IDisposable.
4054         (Dispose): Disconnect the connection and set the raw connection
4055         pointer to IntPtr.Zero.
4056         (~Connection): Call Dispose().
4057         (RegisterObjectPath): Added.  Manages the registration of object
4058         paths so we can cleanly disconnect them at dispose/finalize time.
4059         (UnregisterObjectPath): Ditto.
4060         (set_RawConnection): Unregister all of the object paths when
4061         changing the underlying DBusConnection.  Add them back onto the
4062         new connection, if any.
4063
4064         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4065         more unmanaged resources anymore, so it's not necessary.  Move all
4066         the DBusObjectPathVTable stuff out of here.
4067         (Handler): Save references to our delegates so that they don't get
4068         finalized.  Call Connection.RegisterObjectPath() instead of
4069         dbus_connection_register_object_path() directly.
4070         (Message_Called): Dispose the message after we're finished with
4071         it.
4072
4073         * mono/Message.cs (Message): Implement IDisposable.
4074         (Dispose): Dispose the Arguments, and set the RawMessage to
4075         IntPtr.Zero.
4076         (SendWithReplyAndBlock): We own the ref to the reply that comes
4077         back from dbus_connection_send_with_reply_and_block() so add a
4078         comment about that and unref it after we've constructed a managed
4079         MethodReturn class around it.  Fixes a big, big leak.
4080
4081         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4082         method.
4083         (BuildSignalHandler): After we've sent the Signal message, dispose
4084         of it.
4085         (BuildMethod): Dispose of the method call and reply messages after
4086         we've sent the message and extracted the data we want from the
4087         reply.
4088
4089         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4090         anymore.
4091         (Service_FilterCalled): Dispose of the message after we're
4092         finished with it.
4093
4094 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4095
4096         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4097         After we attach our pending call to the connection, unref
4098         it.  Fixes a leak.
4099  
4100         * mono/Connection.cs (set_RawConnection): Disconnect our
4101         filter and match callbacks from the old connection and
4102         reconnect them to the new connection, if any.
4103
4104         * mono/DBusType/Array.cs: "Code" is a static member, so
4105         don't use "this" to refer to it.  Fix for stricter checking
4106         in Mono 1.1.4.
4107  
4108         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4109         object path that we pass into unmanaged code.
4110  
4111         * mono/DBusType/String.cs (Append): Don't leak the string
4112         that we pass into unmanged code.
4113
4114 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4115         * NEWS: Update for 0.31
4116
4117         * configure.in: Release 0.31
4118         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4119
4120         * qt/Makefile.am: fixed build
4121
4122         * dbus/Makefile.am: soname bump for libdbus
4123
4124         * glib/Makefile.am: soname bump for libdbus-glib
4125
4126 2005-03-05  Havoc Pennington  <hp@redhat.com>
4127
4128         * dbus/dbus-sysdeps.c:
4129         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4130         value
4131         (_dbus_generate_random_bytes_buffer): fix return value
4132
4133         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4134         checks actually work, from Tom Parker <fdo@tevp.net>
4135
4136 2005-03-01  Colin Walters  <walters@verbum.org>
4137
4138         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4139         functions copied from dbus-glib-tool.c.
4140         (main): Convert lots of error code to use them.
4141         Also add some testing for introspection bits.
4142
4143 2005-03-01  Colin Walters  <walters@verbum.org>
4144         
4145         * doc/TODO: Remove introspection signature TODO.
4146
4147 2005-02-27  Colin Walters  <walters@verbum.org>
4148
4149         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4150         Change return value to const char * instead of int so we can do
4151         full signatures.
4152         (struct PropertyInfo, struct ArgInfo): Store char *.
4153         (property_info_new, arg_info_new): Update parameters, strdup.
4154         (property_info_unref, arg_info_unref): Free.
4155
4156         * glib/dbus-gidl.h: Update prototypes.
4157
4158         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4159         (validate_signature): New function, just validates signature and
4160         sets GError.
4161         (parse_property, parse_arg): Invoke validate_signature.  Store
4162         signature instead of just type code.
4163
4164         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4165         function to return a primary type for a signature, dropping
4166         information about types in container types.
4167         (dbus_gvalue_genmarshal_name_from_type)
4168         (dbus_gvalue_binding_type_from_type)
4169         (dbus_gvalue_ctype_from_type): Update to take full signature
4170          instead of type code.
4171         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4172
4173         * glib/dbus-gvalue.h: Update prototypes for above.
4174
4175         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4176         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4177         (introspect_properties, introspect_signals, write_interface):
4178         Update to handle signatures, and remove usage of
4179         _dbus_gutils_type_to_string.
4180         (handle_introspect): Print out type codes instead of e.g. "string"
4181         in hardcoded introspection XML; also use x_AS_STRING constants
4182         instead of hardcoding in string.
4183
4184         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4185         to string.  Remove usage of _dbus_gutils_type_to_string.
4186
4187         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4188
4189         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4190         deletion.
4191         
4192         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4193         (compute_marshaller_name, generate_glue): Handle signature change
4194         to string.
4195         (write_formal_parameters, write_args_for_direction): Ditto, and
4196         remove FIXME.
4197
4198         * tools/dbus-tree-view.c (type_to_string): Delete.
4199         (info_set_func_text): Update to print full signatures.
4200
4201         * test/glib/test-service-glib.xml: Change types to new
4202         introspection format.
4203
4204 2005-02-26  Havoc Pennington  <hp@redhat.com>
4205
4206         * doc/TODO: remove the "guid" item
4207
4208         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4209         (with_bus_thread_func): use open_private
4210
4211         * dbus/dbus-connection.c (dbus_connection_open_private): new
4212         function that works like the old dbus_connection_open()
4213         (dbus_connection_open): now returns an existing connection if
4214         possible
4215
4216         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4217         through the GUID to the transport
4218
4219         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4220         GUID in hex-encoded form.
4221
4222         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4223         pass GUID argument in to the transport
4224
4225         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4226         guid argument
4227
4228         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4229
4230         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4231
4232 2005-02-25  Havoc Pennington  <hp@redhat.com>
4233
4234         * doc/dbus-specification.xml: document the GUID thing
4235
4236         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4237         globally unique ID for the server, and put a "guid=hexencoded"
4238         field in the address
4239
4240         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4241
4242         * dbus/dbus-message.c: ditto
4243
4244         * dbus/dbus-dataslot.c: ditto
4245
4246         * dbus/dbus-list.c: ditto
4247
4248         * dbus/dbus-internals.h: wait, just include
4249         dbus-threads-internal.h here
4250         
4251         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4252         use in main library
4253
4254         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4255
4256 2005-02-24  Colin Walters  <walters@verbum.org>
4257
4258         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4259
4260 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4261
4262         * glib/Makefile.am: added dbus-gobject.h to sources list
4263         so distcheck doesn't fail
4264         
4265 2005-02-24  Havoc Pennington  <hp@redhat.com>
4266
4267         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4268         you must disconnect before unref, since locking and other things
4269         are screwed up otherwise. Fix assorted other locking stuff.
4270
4271         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4272         fix compilation
4273
4274         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4275         into a private header and don't export from the library
4276
4277         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4278
4279 2005-02-24  Colin Walters  <walters@verbum.org>
4280         
4281         * dbus/dbus-signature.c: New file; implements various functions
4282         related to type signatures.  Includes an interator for parsing,
4283         validation functions.
4284         (dbus_type_is_basic): Moved here from
4285         dbus-marshal-basic.c:_dbus_type_is_basic.
4286         (dbus_type_is_container): Moved here from
4287         dbus-marshal-basic.c:_dbus_type_is_container.
4288
4289         All callers of _dbus_type_is_container and _dbus_type_is_basic
4290         updated, and include dbus-signature.h.
4291
4292         * dbus/dbus-signature.h: New file; prototypes for the above.
4293
4294         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4295         dbus-signature.h.
4296
4297         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4298         function factored out of _dbus_first_type_in_signature.
4299         (_dbus_first_type_in_signature_c_str): New function; returns first
4300         type code for a type signature character.
4301
4302         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4303         handle function moves.
4304
4305         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4306
4307         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4308         function; skips to next complete type in type signature.
4309         Implemented using previous skip_one_complete_type.  Now
4310         skip_one_complete_type just delegates to
4311         _dbus_type_signature_next.
4312
4313         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4314         to dbus-signature.c
4315         (_dbus_type_is_container): Ditto.
4316
4317         * doc/dbus-specification.xml: Update introspection sample to
4318         use real type signatures.
4319
4320         * dbus/dbus-test.h: Prototype signature test.
4321
4322         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4323         signature tests.
4324
4325         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4326
4327 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4328
4329         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4330         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4331
4332 2005-02-21  Colin Walters  <walters@verbum.org>
4333
4334         * dbus/dbus-test-main.c (main): Take optional specific test
4335         argument.
4336
4337         * dbus/dbus-test.c (run_test): New function, runs a test function
4338         with no data directory.
4339         (run_data_test): Like above, but takes data directory.
4340         (dbus_internal_do_not_use_run_tests): Take
4341         specific test argument.  Replace lots of cut n' paste code
4342         with run_test and run_data_test.
4343
4344         * dbus/dbus-test.h: Update prototype for
4345         dbus_internal_do_not_use_run_tests.
4346
4347 2005-02-20  Havoc Pennington  <hp@redhat.com>
4348
4349         Fix bugs reported by Daniel P. Berrange
4350         
4351         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4352         (protected_change_watch): new function
4353         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4354         (_dbus_server_add_watch): change to work like the
4355         dbus-connection.c equivalents; like those, probably kind of
4356         busted, but should at least mostly work for now
4357         (dbus_server_disconnect): drop the lock if we were already
4358         disconnected, patch from Daniel P. Berrange
4359
4360         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4361         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4362         same stuff
4363
4364         * doc/TODO: todo about unscrewing this mess
4365
4366 2005-02-19  Colin Walters  <walters@verbum.org>
4367
4368         * glib/dbus-binding-tool-glib.c
4369         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4370
4371         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4372         as errno.h and sys/stat.h.
4373         (lose): New function, prints error with
4374         newline and exits.
4375         (lose_gerror): Similar, but takes GError for message.
4376         (main): Add --output argument to specify output file to write to,
4377         instead of always printing to stdout.  In this mode, determine
4378         timestamps on source files to see whether any are newer than the
4379         target file.  If not, exit.  Also convert a number of error
4380         messages to use lose (since it's shorter), and switch to using
4381         g_io_channel_shutdown.
4382
4383 2005-02-19  Havoc Pennington  <hp@redhat.com>
4384
4385         * glib/dbus-gobject.c
4386         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4387
4388         * glib/dbus-glib.c: fix doxygen warnings
4389
4390         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4391         is found on an <arg>
4392
4393 2005-02-17  Colin Walters  <walters@verbum.org>
4394
4395         * glib/dbus-gobject.h: Don't export
4396         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4397         
4398         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4399         (invoke_object_method): Handle it.
4400
4401         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4402         Handle rename.
4403         
4404 2005-02-17  Colin Walters  <walters@verbum.org>
4405
4406         * bus/.cvsignore, doc/.cvsignore
4407         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4408         Update.
4409
4410 2005-02-17  Colin Walters  <walters@verbum.org>
4411         
4412         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4413         Rename to DBUS_SERVICE_DBUS.
4414         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4415         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4416         Change the value from "org.freedesktop.Local"
4417         to "org.freedesktop.DBus.Local".
4418         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4419         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4420         DBUS_INTERFACE_INTROSPECTABLE.
4421         Change the value from "org.freedesktop.Introspectable"
4422         to "org.freedesktop.DBus.Introspectable".
4423         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4424         DBUS_INTERFACE_PROPERTIES.
4425         Change the value from "org.freedesktop.Properties"
4426         to "org.freedesktop.DBus.Properties".
4427         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4428         DBUS_INTERFACE_PEER.
4429         Change the value from "org.freedesktop.Peer"
4430         to "org.freedesktop.DBus.Peer".
4431         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4432         DBUS_INTERFACE_LOCAL.
4433         Change the value from "org.freedesktop.Local"
4434         to "org.freedesktop.DBus.Local".
4435
4436         All other users of those constants have been changed.
4437
4438         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4439
4440         * glib/dbus-gobject.c (handle_introspect): Use constants.
4441
4442         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4443
4444 2005-02-17  Colin Walters  <walters@verbum.org>
4445
4446         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4447         (parse_node, parse_interface, parse_method, parse_signal)
4448         (parse_property, parse_annotation): Lose if we're currently in an
4449         annotation.
4450         (parse_annotation): New function.
4451         (parser_start_element, parser_end_element): Handle annotation.
4452         (parse_method, parse_interface): Remove support for c_name attribute,
4453         switch to annotations.
4454
4455         * glib/dbus-gidl.h (interface_info_get_binding_names)
4456         (method_info_get_binding_names)
4457         (interface_info_get_binding_name, method_info_get_binding_name)
4458         (interface_info_set_binding_name, method_info_set_binding_name):
4459         Remove.
4460         (interface_info_get_annotations, method_info_get_annotations)
4461         (interface_info_get_annotation, method_info_get_annotation)
4462         (interface_info_add_annotation, method_info_add_annotation):
4463         Prototype.
4464
4465         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4466         for "bindings".
4467         (struct MethodInfo): Ditto.
4468         Straightfoward conversion of binding methods into annotation methods
4469         as prototyped.
4470
4471         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4472
4473         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4474
4475         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4476         Use new annotation API.
4477
4478         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4479         annotation element.
4480         
4481         * doc/dbus-specification.xml: Discuss introspection annotations,
4482         include list of well-known annotations.
4483
4484         * test/glib/test-service-glib.xml: Make validate against new DTD.
4485
4486 2005-02-17  Colin Walters  <walters@verbum.org>
4487
4488         This patch is based on initial work from
4489         Paul Kuliniewicz <kuliniew@purdue.edu>.
4490
4491         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4492         initialization of GValue from dbus type to here.
4493         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4494         for the "glib-genmarshal" program from a DBus type.
4495         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4496         into the C name for it we use in the glib bindings.
4497         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4498         glib C type (not GValue).
4499         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4500
4501         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4502         from dbus-gobject.c.
4503
4504         * glib/dbus-gutils.h: Prototype it.
4505
4506         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4507         (marshal_dbus_message_to_g_marshaller): Use new shared function
4508         dbus_glib_marshal_dbus_message_to_gvalue_array.
4509
4510         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4511         Will be changed once we have annotations.
4512
4513         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4514         GStaticRWLock.  Callers updated.
4515         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4516         (string_table_next): New function for iterating over zero-terminated
4517         string value array.
4518         (string_table_lookup): New function; retrieves specific entry in
4519         array.
4520         (get_method_data): New function; look up method data in object data chunk.
4521         (object_error_domain_prefix_from_object_info)
4522         (object_error_code_from_object_info): New functions, but not implemented yet.
4523         (method_interface_from_object_info): New function; retrieve interface name.
4524         (method_name_from_object_info): New function; retrieve method name.
4525         (method_arg_info_from_object_info): New function; retrieve argument data.
4526         (arg_iterate): New function; iterates over serialized argument data.
4527         (method_dir_signature_from_object_info): New function; returns a
4528         GString holding type signature for arguments for just one
4529         direction (input or output).
4530         (method_input_signature_from_object_info)
4531         (method_output_signature_from_object_info): New functions.
4532         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4533         converts dbus message arguments into a GValue array.  Used for both
4534         signal handling and method invocation.
4535         (struct DBusGlibWriteIterfaceData): New utility structure.
4536         (write_interface): New function; generate introspection XML for
4537         an interface.
4538         (introspect_interfaces): New function; gathers all interface->methods,
4539         generates introspection XML for them.
4540         (handle_introspect): Invoke introspect_interfaces.
4541         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4542         (lookup_object_and_method): New function; examines an incoming message
4543         and attempts to match it up (via interface, method name, and argument
4544         signature) with a known object and method.
4545         (gerror_domaincode_to_dbus_error_name): New function; converts a
4546         GError domain and code into a DBus error name.  Needs GError data
4547         added to object introspection to work well.
4548         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4549         GError.
4550         (invoke_object_method): New function to invoke an object method
4551         looked up via lookup_object_and_method.  Parses the incoming
4552         message, turns it into a GValue array, then invokes the marshaller
4553         specified in the DBusGMethodInfo.  Creates a new message with
4554         either return values or error message as appropriate.
4555         (gobject_message_function): Invoke lookup_object_and_method and
4556         invoke_object_method.
4557
4558         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4559         (enum DBusBindingOutputMode): New enum for binding output modes.
4560         (pretty_print): Print binding names.
4561         (dbus_binding_tool_error_quark): GError bits.
4562         (version): Fix typo.
4563         (main): Create GIOChannel for output.  Parse new --mode argument,
4564         possible values are "pretty-print", "glib-server", "glib-client".
4565         Use mode to invoke appropriate function.
4566         
4567         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4568
4569         * glib/dbus-glib-tool.h: New header, just includes GError bits
4570         for now.
4571
4572         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4573         maps binding style to name.
4574         (struct MethodInfo): Ditto.
4575         (get_hash_keys, get_hash_key): Utility function, returns keys for
4576         a GHashTable.
4577         (interface_info_new, method_info_new): Initialize bindings.
4578         (interface_info_unref, method_info_unref): Destroy bindings.
4579         (method_info_get_binding_names, method_info_get_binding_name)
4580         (interface_info_get_binding_names, interface_info_get_binding_name):
4581         Functions for retrieving binding names.
4582         (method_info_set_binding_name, interface_info_set_binding_name):
4583         Functions for setting binding names.
4584
4585         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4586         for glib binding generation.
4587
4588         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4589         and client-side glib glue generation.
4590
4591         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4592         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4593         dbus-glib-tool.h.
4594
4595         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4596         of using GClosureMarshal directly.
4597         (struct DBusGObjectInfo): Add n_infos member.
4598
4599         * test/glib/test-service-glib.xml: New file; contains introspection data
4600         for MyTestObject used in test-service-glib.c.
4601
4602         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4603         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4604         (my_object_uppercase, my_object_many_args): New test methods.
4605         (main): Use dbus_g_object_class_install_info to include generated object
4606         info.
4607
4608         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4609         as well as client-side bindings.
4610
4611         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4612         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4613         using both the dbus_gproxy stuff directly as well as the generated bindings.
4614
4615 2005-02-15  Havoc Pennington  <hp@redhat.com>
4616
4617         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4618         complete a pending call, don't run filters first.
4619
4620         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4621         dbus_pending_call_steal_reply
4622
4623         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4624         _dbus_connection_block_pending_call
4625         (dbus_pending_call_get_reply): change to steal_reply and return a
4626         ref
4627
4628         * dbus/dbus-connection.c
4629         (dbus_connection_send_with_reply_and_block): port to work in terms
4630         of DBusPendingCall
4631         (_dbus_connection_block_pending_call): replace block_for_reply
4632         with this
4633
4634 2005-02-14  Havoc Pennington  <hp@redhat.com>
4635
4636         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4637         properly handle looking up group information by name; fix 
4638         from j@bootlab.org
4639
4640 2005-02-13  Havoc Pennington  <hp@redhat.com>
4641
4642         * dbus/dbus-connection.c (dbus_connection_return_message) 
4643         (dbus_connection_borrow_message): hold dispatch lock while message
4644         is outstanding
4645         (_dbus_connection_block_for_reply): hold dispatch lock while we
4646         block for the reply, so nobody steals our reply
4647         (dbus_connection_pop_message): hold the dispatch lock while we
4648         pluck the message
4649
4650 2005-02-13  Havoc Pennington  <hp@redhat.com>
4651
4652         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4653         (_dbus_connection_release_dispatch)
4654         (_dbus_connection_acquire_io_path)
4655         (_dbus_connection_release_io_path): make the mutex and condvar
4656         control access to the "acquired" flag. Drop the connection lock
4657         while waiting on the condvar. Hopefully these are baby steps in
4658         roughly the right direction.
4659
4660 2005-02-13  Havoc Pennington  <hp@redhat.com>
4661
4662         * dbus/dbus-connection.c: use separate mutexes for the condition
4663         variables; this is some kind of baseline for sanity, but the
4664         condition variables still aren't used correctly afaict
4665
4666 2005-02-13  Havoc Pennington  <hp@redhat.com>
4667
4668         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4669         fix a double-unlock
4670
4671         * dbus/dbus-connection.c
4672         (_dbus_connection_detach_pending_call_unlocked): add this
4673
4674         Initial semi-correct pass through to fix thread locking; there are
4675         still some issues with the condition variable paths I'm pretty
4676         sure
4677         
4678         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4679         lock/unlock calls
4680
4681         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4682         rename to add _unlocked
4683         (struct DBusConnection): move "dispatch_acquired" and
4684         "io_path_acquired" to use only one bit each.
4685         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4686         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4687         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4688         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4689         (_dbus_connection_remove_timeout) 
4690         (_dbus_connection_toggle_timeout): drop lock when calling out to
4691         user functions; done in a hacky/bad way.
4692         (_dbus_connection_send_and_unlock): add a missing unlock
4693         (_dbus_connection_block_for_reply): add a missing unlock
4694
4695         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4696         drop lock in a hacky probably unsafe way to call out to user
4697         function
4698
4699 2005-02-12  Havoc Pennington  <hp@redhat.com>
4700
4701         * tools/dbus-tree-view.c (info_set_func_text): display more
4702         details on args
4703
4704         * bus/driver.c (bus_driver_handle_list_services): list the bus
4705         driver
4706
4707         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4708
4709         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4710         (method_info_get_n_args): new function
4711
4712 2005-02-12  Havoc Pennington  <hp@redhat.com>
4713
4714         * bus/driver.c (bus_driver_handle_introspect): add introspection
4715         for bus driver
4716
4717 2005-02-12  Havoc Pennington  <hp@redhat.com>
4718
4719         * bus/driver.c: put the signature of each bus driver method in the
4720         table of handlers and check it on incoming calls; this isn't
4721         really useful, but going to add introspect support in a minute.
4722
4723 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4724
4725         * mono/Connection.cs: The unpredictability of finalizers in mono
4726         prevents us from deterministically disconnecting the filters from
4727         the Service class's finalizer, so move tracking of filters and
4728         matches here.  Add API for that.
4729
4730         * mono/Service.cs: Remove the code, add code which calls the
4731         methods now on the Connection class.
4732
4733 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4734
4735         * python/dbus.py (class Sender): added to support dbus signals better
4736         (Bus::add_signal_receiver): added expand_args parameter which defaults
4737         to True.  When expand args is True the signal handler will pass the 
4738         message arguments as parameters to the signal handler.  If False
4739         revert to previous behavior where the signal handler must get the
4740         argument list from the message.  This is to help port applications
4741         like HAL that have a tendancy to send variable length argument lists.
4742         self._match_rule_to_receivers is now a dict of dicts.
4743         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4744         removing it from a list
4745         (Bus::_signal_func): change signal handlers so that interface,
4746         signal_name, service, path and message are packed into a Sender
4747         object and that is passed to the handler.  If expand_args is True
4748         extract the args list from the message and append it to the parameter
4749         list
4750         
4751         * python/dbus_bindings.pyx.in (class Signature): added to support 
4752         signiature types
4753         (MessageIter::__init__): changed iteration limit to match D-BUS
4754         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4755         STRUCT and VARIENT type support
4756         (MessageIter::python_value_to_dbus_sig): made recursive to support
4757         recursive types
4758         (MessageIter::append*): added Signature, dict, tuple 
4759         support
4760
4761         * python/examples/example-client.py: added examples of getting tuples
4762         and dicts
4763
4764         * python/examples/example-service.py: added examples of sending tuples
4765         and dicts
4766
4767         * python/examples/example-signal-recipient.py: Fixed to handle new
4768         signal callback format
4769
4770 2005-02-10  Havoc Pennington  <hp@redhat.com>
4771
4772         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4773         (call dbus_g_proxy_add_signal)
4774
4775         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4776         escape the hostname
4777         (_dbus_server_new_for_domain_socket): escape the path
4778
4779         * dbus/dbus-address.c (dbus_address_escape_value): new
4780         (dbus_address_unescape_value): new
4781         (dbus_parse_address): unescape values
4782
4783         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4784
4785         * doc/dbus-specification.xml: explain how to escape values in
4786         addresses
4787
4788 2005-02-10  Havoc Pennington  <hp@redhat.com>
4789
4790         * dbus/dbus-message-factory.c (generate_special): modify test to
4791         avoid using a non-basic dict key
4792
4793         * dbus/dbus-marshal-validate-util.c: add test for the below
4794
4795         * doc/dbus-specification.xml: require that dict keys are a basic
4796         type
4797
4798         * dbus/dbus-marshal-validate.c
4799         (_dbus_validate_signature_with_reason): require that dict key is a
4800         basic type
4801
4802 2005-02-10  Havoc Pennington  <hp@redhat.com>
4803
4804         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4805         change to be _and_unlock instead of _unlocked
4806
4807         * dbus/dbus-connection.c
4808         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4809         have no_update so we can find this bug quickly in future
4810
4811 2005-02-10  Havoc Pennington  <hp@redhat.com>
4812
4813         * dbus/dbus-message-util.c (verify_test_message): tests for string
4814         array
4815
4816         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4817         support for arrays of string/signature/path
4818
4819 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4820
4821         * dbus/dbus-connection.c
4822         (_dbus_connection_queue_received_message_link,
4823         _dbus_connection_message_sent): Add the path to
4824         the verbose output.
4825         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4826         _dbus_connection_send_preallocated_unlocked(), updated the
4827         dispatch status, and unlocks.  Fixes a bug where certain
4828         situations (like a broken pipe) could cause a Disconnect message
4829         to not be sent, tricking the bus into thinking a service was still
4830         there when the process had quit.
4831         (_dbus_connection_send_preallocated): Call
4832         _dbus_connection_send_preallocated_and_unlock().
4833         (_dbus_connection_send_and_unlock): Added.  Calls
4834         _dbus_connection_send_preallocated_and_unlock().
4835         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4836         (dbus_connection_send_with_reply): Update the dispatch status and
4837         unlock.
4838
4839         * mono/Service.cs (~Service): Added.  Removes the filter so that
4840         we don't get unmanaged code calling back into a GCed delegate.
4841         (RemoveFilter); Added.
4842
4843 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4844
4845         * dbus/dbus-message.c (dbus_message_iter_open_container):
4846         - Removed check for iterator type being an array because
4847         get_arg_type does not work with writer iterators
4848         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4849
4850 2005-02-07  Havoc Pennington  <hp@redhat.com>
4851
4852         * doc/dbus-specification.xml: some more language cleanups; add
4853         stuff about how to deal with invalid protocol and extension
4854         points; add _ to allowed chars in auth commands; add EXTENSION_
4855         auth command prefix
4856
4857 2005-02-06  Havoc Pennington  <hp@redhat.com>
4858
4859         * s/expected/required/ in a couple places for clarity
4860
4861 2005-02-07  Colin Walters  <walters@verbum.org>
4862
4863         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4864         sender or proposed_recipient.
4865
4866 2005-02-06  Havoc Pennington  <hp@redhat.com>
4867
4868         * dbus/dbus-message-factory.c (generate_special): more tests
4869
4870         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4871         array length that exceeds the maximum
4872
4873 2005-02-05  Havoc Pennington  <hp@redhat.com>
4874
4875         * dbus/dbus-message-factory.c (generate_special): more test cases,
4876         increasing coverage
4877
4878         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4879         reason why a signature was invalid
4880
4881         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4882         skip the length of the string before we look at it in validation
4883
4884         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4885         equal_substring
4886
4887         * dbus/dbus-message.c (_dbus_message_loader_new): default
4888         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4889
4890 2005-02-05  Havoc Pennington  <hp@redhat.com>
4891
4892         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4893         if the signature of a variant was empty
4894         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4895         struct with no element type)
4896
4897         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4898         mangled messages to break things
4899
4900 2005-02-04  Havoc Pennington  <hp@redhat.com>
4901
4902         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4903         g_quark_try_string() so it actually can return 0
4904         (dbus_g_proxy_connect_signal): ditto
4905
4906 2005-02-04  Havoc Pennington  <hp@redhat.com>
4907
4908         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4909         bogus warning
4910         (tristring_from_message): assert cleanly on null path/interface
4911         (should not be possible though I decided later)
4912         (dbus_g_proxy_dispose): move proxy manager unregistration here
4913         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4914         g_return_if_fail() checks
4915
4916 2005-02-04  Havoc Pennington  <hp@redhat.com>
4917
4918         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4919
4920         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4921         (with some minor changes)
4922
4923         * doc/dbus-specification.xml: add deprecated attribute to
4924         introspection format
4925
4926 2005-01-31  Havoc Pennington  <hp@redhat.com>
4927
4928         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4929         think it's sort of right
4930
4931 2005-01-30  Havoc Pennington  <hp@redhat.com>
4932
4933         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4934
4935 2005-01-30  Havoc Pennington  <hp@redhat.com>
4936
4937         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4938
4939         * autogen.sh: change to autotools 1.9
4940
4941         * glib/dbus-gproxy.c: completely change how signals work
4942         (dbus_g_proxy_add_signal): new function to specify signature of a
4943         signal
4944         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4945         and g_warning if the incoming message has the wrong signature.
4946
4947 2005-01-30  Havoc Pennington  <hp@redhat.com>
4948
4949         * tools/dbus-names-model.c (have_names_notify): fix this
4950
4951         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4952         up the string array handling a bit 
4953
4954 2005-01-30  Havoc Pennington  <hp@redhat.com>
4955
4956         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4957         (dbus_g_pending_call_cancel): new function
4958
4959         * dbus/dbus-glib.h: move GType decls for connection/message here;
4960         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4961         here, just kind of rationalizing how we handle all that
4962
4963         * tools/dbus-names-model.c: new file for a tree model listing the
4964         services on a bus
4965
4966         * tools/dbus-tree-view.c (model_new): use proper typing on the
4967         model rows
4968
4969 2005-01-30  Havoc Pennington  <hp@redhat.com>
4970
4971         * glib/dbus-gmain.c: add a custom GSource back that just checks
4972         whether the message queue has anything in it; otherwise, there are 
4973         cases where we won't see messages in the queue since there was no 
4974         IO visible to the glib main loop
4975
4976         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4977         increase default message timeout to 25 seconds
4978
4979 2005-01-30  Havoc Pennington  <hp@redhat.com>
4980
4981         * test/glib/test-profile.c (no_bus_stop_server): remove the
4982         warning about the g_warning that I just fixed
4983
4984         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4985         custom source, seems to be a lot easier to understand and work
4986         better.
4987
4988 2005-01-30  Havoc Pennington  <hp@redhat.com>
4989
4990         I think this main loop thing is conceptually broken, but here are 
4991         some band aids. I'll maybe rewrite it in a minute.
4992         
4993         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4994         custom GSource, so don't pass it in; confusing
4995         (gsource_server_finalize, gsource_connection_finalize): add
4996         finalize handlers that remove all the watches.  
4997
4998 2005-01-30  Havoc Pennington  <hp@redhat.com>
4999
5000         * glib/dbus-gobject.c (introspect_properties): fix the XML
5001         generated
5002
5003         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5004         which effectively detects the use of freed messages
5005
5006         * glib/dbus-gobject.c (handle_introspect): modify and return the
5007         reply message instead of the incoming message
5008
5009         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5010         gee, maybe it should SEND THE XML instead of just making a string
5011         and freeing it again ;-)
5012
5013         * tools/dbus-print-message.c (print_message): improve printing of
5014         messages
5015
5016         * configure.in: add debug-glib.service to the output
5017
5018 2005-01-30  Havoc Pennington  <hp@redhat.com>
5019
5020         dbus-viewer introspected and displayed the bus driver
5021         
5022         * dbus/dbus-object-tree.c 
5023         (object_tree_test_iteration): add tests for a handler registered on "/"
5024
5025         * dbus/dbus-object-tree.c
5026         (_dbus_decompose_path): fix to handle path "/" properly
5027         (run_decompose_tests): add tests for path decomposition
5028         
5029         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5030         properly
5031
5032         * glib/dbus-gobject.c (handle_introspect): fix quotes
5033
5034         * test/glib/run-test.sh: support launching the bus, then running
5035         dbus-viewer
5036
5037         * test/glib/test-service-glib.c (main): put in a trivial gobject
5038         subclass and register it on the connection
5039
5040         * bus/driver.c (bus_driver_handle_introspect): implement
5041         introspection of the bus driver service
5042
5043         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5044         identifiers, doctype decl
5045
5046         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5047         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5048         returning the service unchanged.
5049         (bus_driver_handle_message): remove old check for reply_serial in
5050         method calls, now the message type deals with that
5051         (bus_driver_handle_message): handle NULL interface
5052
5053         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5054
5055         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5056         -1 for len
5057
5058         * tools/dbus-viewer.c: add support for introspecting a service on
5059         a bus
5060
5061         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5062         (dbus_g_pending_call_unref): add
5063
5064 2005-01-29  Havoc Pennington  <hp@redhat.com>
5065
5066         * tools/dbus-tree-view.c: add support for displaying properties.
5067         (run dbus-viewer with an introspect xml file as arg, then resize
5068         the window so the tree elements show up, not sure what that is)
5069
5070         * glib/dbus-gobject.c (handle_introspect): return
5071         org.freedesktop.Properties and org.freedesktop.Introspectable
5072         interfaces when we are introspected.
5073
5074         * doc/dbus-specification.xml: allow empty interface name when 
5075         Get/Set a property
5076
5077 2005-01-29  Havoc Pennington  <hp@redhat.com>
5078
5079         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5080         though it uses glib, it could be extended for any binding in
5081         principle
5082
5083         * glib/dbus-gobject.c (gobject_message_function): change to the
5084         new way properties work
5085
5086         * dbus/dbus-protocol.h: add the new interfaces
5087
5088         * doc/dbus-specification.xml: document the introspection format,
5089         Introspectable interface, and add an org.freedesktop.Properties
5090         interface.
5091
5092         * glib/dbus-gparser.c: add support for a <property> element
5093
5094         * glib/dbus-gidl.c: add PropertyInfo
5095
5096         * glib/dbus-gobject.c (handle_introspect): put the outermost
5097         <node> outside the signal and property descriptions.
5098         (introspect_properties): export properties as <property> rather
5099         than as method calls
5100
5101 2005-01-28  Havoc Pennington  <hp@redhat.com>
5102
5103         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5104         related to authentication protocol
5105
5106 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5107
5108         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5109                 - BUS_ACTIVATION -> BUS_STARTER
5110                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5111                 - class MessageIter (__init__): Added recursion checking 
5112                 so we throw a nice error instead of just disconnecting from the
5113                 bus.
5114                 (get): Added arg_type parameter for recursion.
5115                 Removed the nil type
5116                 Added signiture type placeholder (not implemented)
5117                 Added struct type placeholder (not implemented)
5118                 Added varient type placeholder (not implemented)
5119                 Commented out dict type for now     
5120                 (get_element_type): renamed from get_array_type
5121                 (get_*): changed to use the dbus_message_iter_get_basic API
5122                 (get_*_array): removed in favor of recursive get_array method
5123                 (get_array): new recursive method which calls get to marshal
5124                 the elements of the array
5125                 (value_to_dbus_sig): New method returns the corrasponding
5126                 dbus signiture to a python value
5127                 (append): Comment out dict handling for now
5128                 Handle lists with the new recursive API
5129                 Comment out None handling for now
5130                 (append_nil): removed
5131                 (append_*): changed to use dbus_message_iter_append_basic API
5132                 (append_*_array): removed in favor of recursive append_array 
5133                 method
5134                 (__str__): Make it easier to print out recursive iterators
5135                 for debugging
5136                 - class Message (__str__): moved type inspection to the
5137                 MessageIter class' __str__ method
5138                 (get_iter): Added an append parameter wich defaults to False
5139                 If True use the new API's to create an append iterator
5140
5141         * python/dbus.py: Update to use new bindings API
5142                 - TYPE_ACTIVATION -> TYPE_STARTER
5143                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5144                 - class ActivationBus -> class StarterBus
5145                 - class RemoteObject (__call__): get an append iterator
5146                 - (_dispatch_dbus_method_call): get an append iterator
5147                 - class Object (emit_signal): get an append iterator
5148
5149         * python/examples/: Fixed up the examples to work with the new API
5150                 
5151 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5152
5153         * configure.in: Bump version up to 0.30.
5154
5155         * HACKING: Add a release item to bump the version number up after 
5156         a release.
5157
5158 2005-01-28  Havoc Pennington  <hp@redhat.com>
5159
5160         * doc/dbus-specification.xml: update to describe 16-bit types and
5161         dict entries
5162
5163         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5164         assertion
5165
5166         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5167         type
5168
5169         * dbus/dbus-marshal-recursive.c: implement
5170
5171 2005-01-27  Havoc Pennington  <hp@redhat.com>
5172
5173         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5174
5175         * configure.in: find the right type for 16 and 32 bit ints as well
5176         as 64
5177
5178         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5179         the 16-bit types so people don't have to stuff them in 32-bit or
5180         byte arrays.
5181
5182 2005-01-27  Havoc Pennington  <hp@redhat.com>
5183
5184         * dbus/dbus-message.c: byteswap the message if you init an
5185         iterator to read/write from it
5186         
5187         * dbus/dbus-marshal-byteswap.c: new file implementing 
5188         _dbus_marshal_byteswap()
5189
5190         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5191
5192 2005-01-26  Havoc Pennington  <hp@redhat.com>
5193         
5194         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5195         build, apparently - nobody noticed?)
5196         
5197 2005-01-26  Havoc Pennington  <hp@redhat.com>
5198
5199         * dbus/dbus-marshal-recursive.h: remove todo comment
5200
5201 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5202
5203         * Land the mono binding changes to conform to the new APIs.
5204
5205         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5206         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5207
5208         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5209         type code as a string.
5210         (InitAppending): Rename dbus_message_append_iter_init() to
5211         dbus_message_iter_init_append().
5212
5213         * mono/BusDriver.cs: Rename ServiceEventHandler to
5214         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5215         Rename ServiceOwnerChanged to NameOwnerChanged.
5216
5217         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5218         underlying C call.
5219
5220         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5221
5222         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5223         dbus_bus_acquire_service() to dbus_bus_request_name().
5224
5225         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5226         of Type.UnderlyingSystemType to get the correct element type for
5227         the array.
5228         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5229         dbus_message_get_{element|arg}_type() instead of
5230         dbus_message_iter_init_array_iterator().
5231         (Append): Replace dbus_message_iter_append_array() with
5232         dbus_message_iter_open_container() and
5233         dbus_message_iter_close_container().
5234
5235         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5236         types have been removed.
5237         
5238         * mono/DBusType/*.cs: Replace calls of
5239         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5240         but specify the type in the DllImport extern declaration.  Ditto
5241         for dbus_message_iter_append_[type]() ->
5242         dbus_message_iter_append_basic().
5243
5244         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5245         NameOwnerChangedHandler.
5246
5247 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5248
5249         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5250                 - get_base_service -> get_unique_name
5251                 - bus_get_base_service -> bus_get_unique_name
5252                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5253                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5254                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5255                 - bus_activate_service -> bus_start_service_by_name
5256                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5257                 - bus_acquire_service -> bus_request_name
5258                 - dbus_bus_acquire_service -> dbus_bus_request_name
5259                 - bus_service_exists -> bus_name_has_owner
5260                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5261
5262         * python/dbus.py: Rename of methods
5263                 - activate_service -> start_service_by_name
5264                 - bus_acquire_service -> bus_request_name
5265                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5266                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5267
5268         
5269 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5270
5271         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5272         signature for the method that can't be found.
5273
5274         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5275         the message has any arguments, we need to call
5276         _dbus_type_reader_get_current_type(), not
5277         _dbus_type_reader_has_next().
5278
5279 2005-01-24  Havoc Pennington  <hp@redhat.com>
5280
5281         * dbus/dbus-message-factory.c: more testing of message validation
5282
5283         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5284         header
5285
5286 2005-01-23  Havoc Pennington  <hp@redhat.com>
5287
5288         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5289         get this all working, not many tests in the framework yet though
5290
5291 2005-01-22  Havoc Pennington  <hp@redhat.com>
5292
5293         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5294         tutorial, based on work from David Wheeler.
5295
5296 2005-01-21  Havoc Pennington  <hp@redhat.com>
5297
5298         * dbus/dbus-bus.c: add more return_if_fail checks
5299
5300         * dbus/dbus-message.c (load_message): have the "no validation"
5301         mode (have to edit the code to toggle the mode for now though)
5302
5303         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5304         skips all validation; I want to use this at least for benchmark
5305         baseline, I'm not sure if it should be a publicly-available switch.
5306
5307 2005-01-21  Havoc Pennington  <hp@redhat.com>
5308
5309         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5310         toplevel doxygen group as the low-level API stuff
5311
5312         * dbus/dbus.h: note that libdbus is the low-level API
5313
5314 2005-01-20  Havoc Pennington  <hp@redhat.com>
5315
5316         * update-dbus-docs.sh: script to update docs on the web site, only
5317         works for me though. neener.
5318
5319 2005-01-20  Havoc Pennington  <hp@redhat.com>
5320
5321         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5322         code can reveal bugs in it
5323
5324 2005-01-20  Havoc Pennington  <hp@redhat.com>
5325
5326         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5327         select() version, patches from Tor Lillqvist
5328
5329 2005-01-20  Havoc Pennington  <hp@redhat.com>
5330
5331         * doc/dbus-tutorial.xml: replace > with &gt;
5332
5333         * bus/services.c (bus_registry_acquire_service): validate the name
5334         and return a better error if it's no good.
5335
5336         * doc/dbus-specification.xml: note NO_AUTO_START change
5337
5338         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5339         from AUTO_START, we're toggling the default
5340
5341         * bus/dispatch.c: adapt the tests to change of auto-start default
5342
5343 2005-01-18  Havoc Pennington  <hp@redhat.com>
5344
5345         * rename dbus-daemon-1 to dbus-daemon throughout
5346
5347 2005-01-18  Havoc Pennington  <hp@redhat.com>
5348
5349         * Throughout, grand renaming to strip out the use of "service",
5350         just say "name" instead (or "bus name" when ambiguous).  Did not
5351         change the internal code of the message bus itself, only the
5352         programmer-facing API and messages.
5353         
5354         * doc/dbus-specification.xml: further update the message bus section
5355         
5356         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5357         in error case
5358
5359 2005-01-17  Havoc Pennington  <hp@redhat.com>
5360
5361         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5362         ever
5363
5364         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5365         "invalid name character" not only non-ASCII
5366
5367         * doc/dbus-specification.xml: further update spec, message bus 
5368         parts are still out-of-date but the marshaling etc. stuff is now
5369         accurate-ish
5370
5371 2005-01-17  Havoc Pennington  <hp@redhat.com>
5372
5373         * doc/dbus-specification.xml: partially update spec
5374
5375 2005-01-17  Havoc Pennington  <hp@redhat.com>
5376
5377         * Throughout, align variant bodies according to the contained
5378         type, rather than always to 8. Should save a fair bit of space in
5379         message headers.
5380         
5381         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5382         fix handling of case where p == end
5383
5384         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5385
5386 2005-01-17  Havoc Pennington  <hp@redhat.com>
5387
5388         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5389
5390         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5391         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5392         are marshaling/unmarshaling a boolean.
5393
5394 2005-01-16  Havoc Pennington  <hp@redhat.com>
5395
5396         This is about it on what can be disabled/deleted from libdbus
5397         easily, back below 150K anyhow. Deeper cuts are more work than 
5398         just turning the code off as I've done here.
5399         
5400         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5401         signed int convenience funcs
5402
5403         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5404         verbose mode
5405
5406         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5407         things out of libdbus
5408
5409         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5410         
5411         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5412         tests-enabled-only, though it should probably be deleted)
5413
5414         * dbus/dbus-message-util.c: same stuff
5415
5416         * dbus/dbus-auth-util.c: same stuff
5417
5418 2005-01-16  Havoc Pennington  <hp@redhat.com>
5419
5420         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5421
5422         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5423         way for stripping down dbus-userdb.c stuff included in libdbus.
5424         Rename _dbus_parse_uid for consistency.
5425
5426 2005-01-16  Havoc Pennington  <hp@redhat.com>
5427
5428         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5429         name the assertion failed in
5430
5431         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5432         (_dbus_return_val_if_fail): assert that the name of the function
5433         containing the check doesn't start with '_', since we only want to 
5434         use checks on public functions
5435         
5436         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5437         checks to assertions
5438
5439         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5440         change checks to asserts for private function
5441
5442         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5443         to asserts for private function
5444
5445         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5446         broken assertion that was breaking make check
5447         (_dbus_type_reader_array_is_empty): remove this rather than fix
5448         it, was only used in assertions
5449
5450 2005-01-16  Havoc Pennington  <hp@redhat.com>
5451
5452         * test/unused-code-gc.py: hacky script to find code that's used
5453         only by the bus (not libdbus) or used only by tests or not used at
5454         all. It has some false alarms, but looks like we can clean up a
5455         lot of size from libdbus.
5456
5457         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5458         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5459         
5460 2005-01-16  Havoc Pennington  <hp@redhat.com>
5461
5462         * Add and fix docs according to Doxygen warnings throughout
5463         source.
5464         
5465         * dbus/dbus-marshal-recursive.c
5466         (_dbus_type_reader_array_is_empty): change this to just call
5467         array_reader_get_array_len() and make it static
5468
5469         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5470         from get_array_type
5471         (dbus_message_iter_init_append): rename from append_iter_init
5472
5473         * dbus/dbus-marshal-recursive.c
5474         (_dbus_type_reader_get_element_type): rename from
5475         _dbus_type_reader_get_array_type
5476
5477 2005-01-15  Havoc Pennington  <hp@redhat.com>
5478
5479         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5480
5481         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5482         when DBUS_DISABLE_ASSERT
5483         (_dbus_marshal_set_basic): be sure we align for the string length
5484
5485         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5486         this look faster
5487
5488         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5489         inline macro version
5490         (_dbus_string_set_byte): provide inline macro version
5491
5492 2005-01-15  Havoc Pennington  <hp@redhat.com>
5493
5494         * Land the new message args API and type system.
5495
5496         This patch is huge, but the public API change is not 
5497         really large. The set of D-BUS types has changed somewhat, 
5498         and the arg "getters" are more geared toward language bindings;
5499         they don't make a copy, etc.
5500
5501         There are also some known issues. See these emails for details
5502         on this huge patch:
5503         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5504         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5505         
5506         * dbus/dbus-marshal-*: all the new stuff
5507
5508         * dbus/dbus-message.c: basically rewritten
5509
5510         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5511         freed blocks to be all non-nul bytes so using freed memory is less
5512         likely to work right
5513
5514         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5515         DBUS_FAIL_MALLOC=N environment variable, so you can do
5516         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5517         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5518         thorough.
5519
5520         * qt/message.cpp: port to the new message args API
5521         (operator<<): use str.utf8() rather than str.unicode()
5522         (pretty sure this is right from the Qt docs?)
5523
5524         * glib/dbus-gvalue.c: port to the new message args API
5525
5526         * bus/dispatch.c, bus/driver.c: port to the new message args API
5527
5528         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5529         "locked" flag to TRUE and align_offset to 0; I guess we never
5530         looked at these anyhow, but seems cleaner.
5531
5532         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5533         move allocation padding macro to this header; use it to implement
5534         (_DBUS_STRING_STATIC): ability to declare a static string.
5535
5536         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5537         change to return TRUE if the interface is not set.
5538
5539         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5540         to dbus-marshal-validate.[hc]
5541
5542         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5543         dbus-internals.c
5544
5545         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5546         to dbus-marshal-*.[hc]
5547
5548         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5549         function here from dbus-marshal.c
5550
5551 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5552
5553         * NEWS: Update for 0.23.
5554
5555         * configure.in: Release 0.23.
5556
5557 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5558
5559         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5560         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5561         behind.
5562
5563         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5564         uninstall"
5565
5566         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5567         is an enum, get the enum's underlying type.  Another mono
5568         1.1.3 fix.
5569
5570 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5571
5572         Patch from Sjoerd Simons <sjoerd@luon.net>
5573
5574         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5575         DESTDIR.  It breaks stuff.
5576
5577 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5578
5579         Patch from Tambet Ingo <tambet@ximian.com>
5580
5581         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5582         calling type.GetElementType().  The code previously depended on
5583         broken Mono behavior, which was fixed in Mono 1.1.3.
5584
5585         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5586         Activator.CreateInstance() so that the class's constructor is
5587         called with the right parameters.
5588
5589 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5590
5591         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5592
5593         * dbus/dbus-connection.c
5594         (_dbus_connection_queue_received_message_link): Call
5595         _dbus_connection_remove_timeout() instead of the _locked()
5596         variant, since it's always called from
5597         _dbus_connection_handle_watch(), which handles the locking.
5598         Removed the _locked() variant since it's no longer used.
5599
5600 2005-01-03  Havoc Pennington  <hp@redhat.com>
5601
5602         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5603         return
5604         
5605 2004-12-26  Havoc Pennington  <hp@redhat.com>
5606
5607         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5608
5609 2005-01-03  Havoc Pennington  <hp@redhat.com>
5610
5611         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5612         floating point
5613
5614         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5615
5616 2005-01-02  Havoc Pennington  <hp@redhat.com>
5617
5618         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5619
5620 2005-01-01  Havoc Pennington  <hp@redhat.com>
5621
5622         * configure.in: add -Wfloat-equal
5623
5624 2005-01-01  Havoc Pennington  <hp@redhat.com>
5625
5626         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5627         for a variety of reasons '==' doesn't do this.
5628
5629 2004-12-31  Havoc Pennington  <hp@redhat.com>
5630
5631         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5632         I keep wishing I had
5633
5634 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5635
5636         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5637
5638 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5639
5640         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5641         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5642         dbus-protocol.h.  Because they are defines and not enums they are not
5643         autogenerated.
5644
5645 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5646
5647         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5648         dbus_bus_activate_service
5649
5650         * python/dbus.py (Bus.activate_service): activate a service on the
5651         bus.
5652
5653 2004-12-24  Havoc Pennington  <hp@redhat.com>
5654
5655         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5656         file format has also changed and I haven't adapted to that yet
5657         
5658         * Makefile.am: load .gcno files from latest gcc
5659
5660 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5661         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5662
5663         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5664         lowlevel binding
5665
5666         * python/dbus.py (get_unix_user): Added binding to 
5667         call dbus_bindings.bus_get_unix_user
5668
5669         * python/extract.py: Modified the proto_pat regex to
5670         handle unsigned long
5671
5672 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5673
5674         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5675         better POSIX compliance.
5676
5677 2004-12-19  Havoc Pennington  <hp@redhat.com>
5678
5679         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5680         (_dbus_string_insert_8_aligned): new functions
5681
5682         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5683
5684 2004-12-18  Havoc Pennington  <hp@redhat.com>
5685
5686         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5687         macro
5688
5689         * dbus/dbus-message.c: fix a comment, and add a still-unused
5690         not-implemented function
5691
5692         * dbus/dbus-marshal.h: fix comment
5693
5694         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5695
5696 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5697
5698         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5699         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5700         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5701         Type.UnderlyingSystemType to get the actual system type
5702         underneath.  This code previously depended on the broken Mono
5703         behavior, which was fixed in 1.1.3.
5704
5705 2004-11-27  Havoc Pennington  <hp@redhat.com>
5706
5707         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5708         are disabled
5709         (_dbus_string_get_const_data): inline when asserts are disabled
5710
5711         * dbus/dbus-message.c: record the _dbus_current_generation of
5712         creation so we can complain if dbus_shutdown() is used improperly.
5713         Do this only if checks are enabled.
5714
5715         * dbus/dbus-connection.c: ditto
5716         
5717 2004-11-26  Havoc Pennington  <hp@redhat.com>
5718
5719         * test/glib/test-profile.c: add with_bus mode to profile echoes
5720         that go through the bus.
5721
5722         * test/glib/run-test.sh: add ability to run test-profile
5723
5724         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5725         config file reload.
5726
5727 2004-11-26  Havoc Pennington  <hp@redhat.com>
5728
5729         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5730         thing was implemented
5731
5732 2004-11-26  Havoc Pennington  <hp@redhat.com>
5733
5734         * test/glib/test-profile.c: tweak a bit, add support for some
5735         made-up minimal malloc overhead with plain sockets, since in 
5736         real life some sort of buffers are unavoidable thus we could 
5737         count them in the theoretical best case
5738
5739 2004-11-26  Havoc Pennington  <hp@redhat.com>
5740
5741         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5742         where I was trying to cache one too many messages
5743
5744 2004-11-26  Havoc Pennington  <hp@redhat.com>
5745
5746         * dbus/dbus-message.c: reimplement message cache as an array which 
5747         makes the cache about twice as fast and saves maybe 1.5% overall
5748
5749 2004-11-26  Havoc Pennington  <hp@redhat.com>
5750
5751         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5752         message cache lock here
5753
5754 2004-11-26  Havoc Pennington  <hp@redhat.com>
5755
5756         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5757         the "char byte_order" next to each other to save 4 bytes
5758         (dbus_message_new_empty_header): reduce preallocation, since the
5759         message cache should achieve a similar effect
5760         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5761         message cache that keeps a few DBusMessage around in a pool,
5762         another 8% speedup or so.
5763
5764         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5765
5766 2004-11-25  Havoc Pennington  <hp@redhat.com>
5767
5768         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5769         to write, without reading or blocking, try it before the poll()
5770         and skip the poll() if nothing remains to write. This is about a
5771         3% speedup in the echo client/server
5772
5773 2004-11-25  Havoc Pennington  <hp@redhat.com>
5774
5775         The primary change here is to always write() once before adding
5776         the write watch, which gives us about a 10% performance increase.
5777         
5778         * dbus/dbus-transport-unix.c: a number of modifications to cope
5779         with removing messages_pending
5780         (check_write_watch): properly handle
5781         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5782         messages_pending stuff
5783         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5784         AUTHENTICATED cases
5785         (unix_handle_watch): after writing, see if the write watch can be
5786         removed
5787         (unix_do_iteration): assert that write_watch/read_watch are
5788         non-NULL rather than testing that they aren't, since they 
5789         aren't allowed to be NULL. check_write_watch() at the end so 
5790         we add the watch if we did not finish writing (e.g. got EAGAIN)
5791
5792         * dbus/dbus-transport-protected.h: remove messages_pending call,
5793         since it resulted in too much inefficient watch adding/removing; 
5794         instead we now require that the transport user does an iteration 
5795         after queueing outgoing messages, and after trying the first
5796         write() we add a write watch if we got EAGAIN or exceeded our 
5797         max bytes to write per iteration setting
5798
5799         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5800         function
5801
5802         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5803         freed and then accessed, valgrind flagged this bug, fix it
5804
5805         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5806         as the last valid field plus 1, where really it is equal to the
5807         last valid field. Corrects some message corruption issues.
5808
5809         * dbus/dbus-mainloop.c: verbosity changes
5810
5811         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5812         instead of aborting in one of the test codepaths
5813
5814         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5815         caused not printing the pid ever again if a verbose was missing
5816         the newline at the end
5817         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5818
5819         * dbus/dbus-connection.c: verbosity changes; 
5820         (dbus_connection_has_messages_to_send): new function
5821         (_dbus_connection_message_sent): no longer call transport->messages_pending
5822         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5823         try to write() immediately, so we can avoid the write watch. This
5824         is the core purpose of this patchset
5825         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5826         dump the outgoing message queue, so nobody will get confused
5827         trying to send them or thinking stuff is pending to be sent
5828
5829         * bus/test.c: verbosity changes
5830
5831         * bus/driver.c: verbosity/assertion changes
5832
5833         * bus/dispatch.c: a bunch of little tweaks to get it working again
5834         because this patchset changes when/where you need to block.
5835
5836 2004-11-23  Havoc Pennington  <hp@redhat.com>
5837
5838         * test/glib/test-profile.c: modify to accept a plain_sockets
5839         argument in which case it will bench plain sockets instead of
5840         libdbus, for comparison purposes.
5841
5842 2004-11-22  Havoc Pennington  <hp@redhat.com>
5843
5844         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5845         threads for more time, so sysprof can get a grip on it.
5846
5847         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5848         pointless variable
5849
5850 2004-11-13  Havoc Pennington  <hp@redhat.com>
5851
5852         * test/glib/test-profile.c: fix this thing up a bit
5853
5854         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5855         preallocation sizes by a fair bit; not sure if this will be an
5856         overall performance win or not, but it does reduce reallocs.
5857
5858         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5859         the test hack that forced constant realloc if asserts are
5860         disabled, so we can profile sanely. Sprinkle in some
5861         _DBUS_UNLIKELY() which are probably pointless, but before I
5862         noticed the real performance problem I put them in.
5863         (_dbus_string_validate_utf8): micro-optimize this thing a little
5864         bit, though callgrind says it didn't help; then special-case
5865         ascii, which did help a lot; then be sure we detect nul bytes as
5866         invalid, which is a bugfix.
5867         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5868         superstition; use memset to nul the padding instead of a manual
5869         loop.
5870         (_dbus_string_get_length): inline this as a
5871         macro; it showed up in the profile because it's used for loop
5872         tests and so forth
5873
5874 2004-11-10  Colin Walters  <walters@verbum.org>
5875
5876         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5877         for extra paranoia.
5878
5879 2004-11-09  Colin Walters  <walters@verbum.org>
5880
5881         * dbus/dbus-string.c (_dbus_string_get_length): New
5882         function, writes DBusString to C buffer.
5883
5884         * dbus/dbus-string.h: Prototype it.
5885
5886         * dbus/dbus-message.c (dbus_message_type_to_string): New
5887         function, converts message type into C string.
5888
5889         * dbus/dbus-message.h: Prototype it.
5890
5891         * bus/selinux.c (bus_selinux_check): Take source pid,
5892         target pid, and audit data.  Pass audit data to
5893         avc_has_perm.
5894         (log_audit_callback): New function, appends extra
5895         audit information.
5896         (bus_selinux_allows_acquire_service): Also take
5897         service name, add it to audit data.
5898         (bus_selinux_allows_send): Also take message
5899         type, interface, method member, error name,
5900         and destination, and add them to audit data.
5901         (log_cb): Initialize func_audit.
5902         
5903         * bus/selinux.h (bus_selinux_allows_acquire_service)
5904         (bus_selinux_allows_send): Update prototypes 
5905
5906         * bus/services.c (bus_registry_acquire_service): Pass
5907         service name to bus_selinux_allows_acquire_service.
5908
5909         * bus/bus.c (bus_context_check_security_policy): Pass
5910         additional audit data.  Move assignment of dest
5911         to its own line.
5912
5913 2004-11-07  Colin Walters  <walters@verbum.org>
5914
5915         * dbus/dbus-transport-unix.c (do_authentication): Always
5916         initialize auth_completed.
5917         
5918 2004-11-07  Colin Walters  <walters@verbum.org>
5919
5920         * bus/bus.c (load_config): Break into three
5921         separate functions: process_config_first_time_only,
5922         process_config_every_time, and process_config_postinit.
5923         (process_config_every_time): Move call of
5924         bus_registry_set_service_context_table into
5925         process_config_postinit.
5926         (process_config_postinit): New function, does
5927         any processing that needs to happen late
5928         in initialization (and also on reload).
5929         (bus_context_new): Instead of calling load_config,
5930         open config parser here and call process_config_first_time_only
5931         and process_config_every_time directly.  Later, after
5932         we have forked but before changing UID,
5933         invoke bus_selinux_full_init, and then call
5934         process_config_postinit.
5935         (bus_context_reload_config): As in bus_context_new,
5936         load parse file inside here, and call process_config_every_time
5937         and process_config_postinit.
5938
5939         * bus/services.h, bus/services.c
5940         (bus_registry_set_service_context_table): Rename
5941         from bus_registry_set_sid_table.  Take string hash from config
5942         parser, and convert them here into SIDs.
5943
5944         * bus/config-parser.c (struct BusConfigParser): Have
5945         config parser only store a mapping of service->context
5946         string.
5947         (merge_service_context_hash): New function.
5948         (merge_included): Merge context string hashes instead
5949         of using bus_selinux_id_table_union.
5950         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5951         simply create a new string hash.
5952         (bus_config_parser_unref): Unref it.
5953         (start_selinux_child): Simply insert strings into hash,
5954         don't call bus_selinux_id_table_copy_over.
5955
5956         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5957         (bus_selinux_id_table_copy_over): Delete.
5958
5959 2004-11-03  Colin Walters  <walters@verbum.org>
5960
5961         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5962         variables.
5963         
5964 2004-11-03  Colin Walters  <walters@verbum.org>
5965
5966         * bus/test-main.c (test_pre_hook): Fix test logic,
5967         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5968
5969 2004-11-02  Colin Walters  <walters@redhat.com>
5970
5971         * bus/selinux.c (bus_selinux_init): Split into two functions,
5972         bus_selinux_pre_init and bus_selinux_post_init.
5973         (bus_selinux_pre_init): Just determine whether SELinux is
5974         enabled.
5975         (bus_selinux_post_init): Do everything else.
5976
5977         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5978         config file, and bus_selinux_post_init after.  This ensures that
5979         we don't lose the policyreload notification thread that
5980         bus_selinux_init created before forking previously.
5981         
5982         * bus/test-main.c (test_pre_hook): Update for split.
5983
5984 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5985
5986         Patch from Johan Fischer <linux@fischaz.com>
5987         
5988         * mono/doc/Makefile.am (install-data-local): Added directory
5989         install for DESTDIR
5990
5991 2004-10-29  Colin Walters  <walters@redhat.com>
5992
5993         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5994         parameter for fd to write pid to.       
5995
5996         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5997         
5998         * bus/bus.c (bus_context_new): Pass print_pid_fd
5999         to _dbus_become_daemon (bug #1720)
6000
6001 2004-10-29  Colin Walters  <walters@redhat.com>
6002
6003         Patch from Ed Catmur <ed@catmur.co.uk>
6004
6005         * mono/doc/Makefile.am (install-data-local): Handle
6006         DESTDIR.
6007
6008 2004-10-29  Colin Walters  <walters@redhat.com>
6009
6010         * bus/.cvsignore, qt/.cvsignore: Update.
6011
6012 2004-10-29  Colin Walters  <walters@redhat.com>
6013
6014         Patch from Kristof Vansant <de_lupus@pandora.be>
6015
6016         * configure.in: Detect Slackware.
6017         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6018         * bus/rc.messagebus.in: New file.
6019
6020 2004-10-29  Colin Walters  <walters@redhat.com>
6021
6022         * tools/dbus-monitor.c (filter_func): Return
6023         DBUS_HANDLER_RESULT_HANDLED in filter function
6024         for now.  See:
6025         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6026
6027 2004-10-29  Colin Walters  <walters@redhat.com>
6028
6029         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6030
6031         * bus/services.c (bus_registry_acquire_service): 
6032         Correctly retrieve service name from DBusString
6033         for printing.
6034
6035 2004-10-29  Colin Walters  <walters@redhat.com>
6036
6037         * dbus/dbus-glib.h: Update documentation to not
6038         refer to internal APIs.
6039
6040 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6041
6042         * mono/Arguments.cs (GetDBusTypeConstructor):
6043         type.UnderlyingSystemType will return "System.Byte" if you do it
6044         on "byte[]", which is not what we want.  So check the type.IsArray
6045         property and use System.Array instead.
6046
6047 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6048
6049         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6050         the DBusUserInfo structure since this is passed into the function.
6051         This would cause a double free when the function that allocated
6052         the structure would try to free it when an error occured.
6053
6054         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6055         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6056         for service activation to avoid 32bit/64bit parallel install issues
6057
6058 2004-10-21  Colin Walters  <walters@verbum.org>
6059
6060         * AUTHORS: Fix my email address, the @gnu.org one
6061         has been bouncing for some time.  Also add J5.
6062         
6063 2004-10-21  Colin Walters  <walters@verbum.org>
6064
6065         * dbus/dbus-transport-unix.c (do_authentication): Return
6066         authentication status to callers.
6067         (unix_handle_watch): If we completed authentication this round,
6068         don't do another read.  Instead wait until the next iteration,
6069         after we've read any pending data in the auth buffer.
6070         (unix_do_iteration): Ditto.
6071         (unix_handle_watch): Updated for new do_authentication prototype.
6072
6073 2004-10-18  Colin Walters  <walters@verbum.org>
6074
6075         * bus/selinux.c (bus_selinux_enabled): Handle
6076         --disable-selinux case.
6077         
6078 2004-10-18  Colin Walters  <walters@verbum.org>
6079
6080         * bus/selinux.h: Add bus_selinux_enabled.
6081         
6082         * bus/selinux.c (bus_selinux_enabled): Implement it.
6083         
6084         * bus/config-parser.c (struct include): Add
6085         if_selinux_enabled member.
6086         (start_busconfig_child): Parse if_selinux_enabled
6087         attribute for include.
6088         (bus_config_parser_content): Handle it.
6089
6090         * bus/session.conf.in, bus/system.conf.in: Add
6091         inclusion of context mapping to default config files;
6092         conditional on SELinux being enabled.
6093         
6094         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6095         
6096         * test/data/invalid-config-files/badselinux-1.conf, 
6097         test/data/invalid-config-files/badselinux-2.conf:
6098         Test files for bad syntax.
6099         
6100 2004-10-17  Colin Walters  <walters@verbum.org>
6101
6102         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6103         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6104         format specifier mismatches.
6105
6106 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6107
6108         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6109         format string.
6110
6111         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6112         pointer (bug #1540, Leonardo Boiko).
6113
6114 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6115
6116         * mono/BusDriver.cs: Changed BusDriver struct to remove
6117         the ServiceCreated and ServiceDeleted events and replace them
6118         with the new ServiceOwnerChanged event.
6119
6120         * mono/example/BusListener.cs: Added a new example program,
6121         which listens for and reports any ServiceOwnerChanged events
6122         on the bus driver.
6123
6124         * mono/example/Makefile.am (DESTDIR): Build changes for the
6125         new BusListener.cs example.
6126
6127 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6128
6129         * bus/signals.c (bus_match_rule_parse): validate the components of
6130         match rules (bug #1439).
6131
6132         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6133
6134 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6135
6136         * doc/dbus-specification.xml: document ServiceOwnerChanged
6137         signal.
6138         
6139         * bus/driver.c, bus/driver.h, bus/services.c: Use
6140         ServiceOwnerChanged signal instead of ServiceCreated and
6141         ServiceDeleted.
6142         
6143         * bus/dispatch.c: update testcase for the new signal.
6144
6145 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6146
6147         Patch from Nat Friedman <nat@novell.com>
6148
6149         * mono/Makefile.am: A number of small build fixes to allow "make
6150         distcheck" to succeed.
6151
6152         * mono/example/Makefile.am: "make distcheck" fixes.
6153
6154         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6155         key in @srcdir@.
6156
6157         * test/Makefile.am: "make distcheck" fixes.
6158
6159 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6160
6161         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6162
6163         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6164
6165         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6166         messages after the first one (bug #1389).
6167         
6168         * bus/dispatch.c (check_double_hello_message): add a test case for
6169         the double hello message bug.
6170         (check_existent_service_activation): fix check of spawning error.
6171         
6172 2004-09-16  David Zeuthen  <david@fubar.dk>
6173
6174         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6175
6176 2004-09-12  David Zeuthen  <david@fubar.dk>
6177
6178         Patch from Kay Sievers <kay.sievers@vrfy.org>
6179
6180         * bus/bus.c (bus_context_new):
6181         * bus/bus.h:
6182         * bus/main.c (usage)
6183         (main):
6184         Add commandline option --nofork to override configuration file
6185         setting.
6186
6187 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6188
6189         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6190         compilers don't like it (bug #974).
6191
6192 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6193
6194         * qt/connection.*: Applied patch by Jérôme Lodewyck
6195         <lodewyck@clipper.ens.fr> to integrate an existing
6196         connection into the Qt eventloop
6197
6198 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6199
6200         * mono/BusDriver.cs: Added.  This is a class for interacting with
6201         the org.freedesktop.DBus service.
6202
6203         * mono/Message.cs: Added a mechanism to expose the message that is
6204         currently being dispatched via the static Message.Current
6205         property.  Added Message.Sender and Message.Destination
6206         properties.
6207
6208         * mono/Handler.cs: Expose the dispatched message via
6209         Message.Current when handling method calls.
6210
6211         * mono/Service.cs: Expose the dispatched message via
6212         Message.Current when handling signal emissions.
6213         
6214         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6215         Connection.BaseService property.
6216
6217 2004-08-28  Havoc Pennington  <hp@redhat.com>
6218
6219         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6220
6221         More fixes from Steve Grubb
6222         
6223         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6224         (_dbus_listen_tcp_socket): fix fd leak
6225
6226         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6227         EINTR to a bit lower in the code
6228
6229 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6230
6231         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6232         TRUE if we are inquiring about the existence of the built-in
6233         org.freedesktop.DBus service.
6234
6235 2004-08-25  John Palmieri  <johnp@redhat.com>
6236         * bus/config-parser.c:
6237         (struct PolicyType): Add POLICY_CONSOLE
6238         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6239         (start_busconfig_child): Sets up console element when
6240         <policy at_console=""> is encountered in a policy file
6241         (append_rule_from_element): Convert console elements to console
6242         rules.
6243
6244         * bus/policy.c: 
6245         (bus_policy_create_client_policy): Add console rules to the client
6246         policy based on if the client is at the console
6247         (bus_policy_append_console_rule): New function for adding a
6248         console rule to a policy
6249         (bus_policy_merge): Handle console rule merging
6250
6251         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6252         where we check for console user files
6253         
6254         * dbus/dbus-sysdeps.c:
6255         (_dbus_file_exists): New function which checks if the given
6256         file exists
6257         (_dbus_user_at_console): New function which does the system
6258         specific process of checking if the user is at the console
6259
6260         * dbus/dbus-userdb.c:
6261         (_dbus_is_console_user): New function converts a UID to user name
6262         and then calls the system specific _dbus_user_at_console to 
6263         see if the user is at the console and therefor a console user
6264
6265 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6266
6267         * bus/config-parser.c (set_limit):
6268         * bus/dbus-daemon-1.1.in:
6269         * test/data/valid-config-files/many-rules.conf: set the
6270         max_match_rules_per_connection limt from the config file. 
6271
6272         * doc/busconfig.dtd: update the DTD.
6273
6274         * bus/driver.c: remove some unused variables.
6275
6276 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6277
6278         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6279         it's been replaced by dbus_g_bus_get
6280
6281 2004-08-23  Colin Walters  <walters@redhat.com>
6282
6283         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6284
6285         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6286
6287         * bus/selinux.c: Create a thread for policy reload notification.
6288         (bus_selinux_get_policy_root): Implement.
6289
6290         * bus/config-parser.c (start_busconfig_child)
6291         (bus_config_parser_content): Support SELinux-root relative
6292         inclusion.
6293
6294         * configure.in <HAVE_SELINUX>: Add -lpthread.
6295         
6296         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6297         (test_post_hook): Move memory checking into here.
6298         (test_pre_hook, test_post_hook): Move SELinux checks in
6299         here, but conditional on a DBUS_TEST_SELINUX environment
6300         variable.  Unfortunately we can't run the SELinux checks
6301         as a normal user, since they won't have any permissions
6302         for /selinux.  So this will have to be tested manually
6303         for now, until we have virtualization for most of
6304         libselinux.
6305         
6306 2004-08-23  Havoc Pennington  <hp@redhat.com>
6307
6308         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6309         drop supplementary groups, suggested by Steve Grubb
6310
6311 2004-08-20  Colin Walters  <walters@redhat.com>
6312
6313         * bus/config-parser.c (start_busconfig_child): Remove some unused
6314         variables.
6315         
6316         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6317         warning.
6318
6319 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6320
6321         * configure.in: If --enable-mono is passed in, if we can't find
6322         mono error out.
6323
6324         * mono/Makefile.am: Use /gacutil to install assemblies into the
6325         GAC and not /root.
6326
6327 2004-08-12  Havoc Pennington  <hp@redhat.com>
6328
6329         * NEWS: update for 0.22
6330
6331         * configure.in: release 0.22
6332
6333 2004-08-11  Colin Walters  <walters@redhat.com>
6334
6335         * tools/dbus-send.c (main, usage): Add --reply-timeout
6336         argument.
6337
6338 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6339
6340         * bus/bus.c (process_config_first_time_only): get rid of an unused
6341         DBusError that was causing a memoy leak (bug #989).
6342
6343         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6344         fix compilation on Solaris/Forte C (bug #974)
6345
6346         * bus/main.c (main): plug two minuscule memleaks.
6347
6348 2004-08-10  Havoc Pennington  <hp@redhat.com>
6349
6350         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6351
6352 2004-08-09  Havoc Pennington  <hp@redhat.com>
6353
6354         * COPYING: switch to Academic Free License version 2.1 instead of
6355         2.0, to resolve complaints about patent termination clause.
6356
6357 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6358
6359         * README: added documentation for the --enable-python 
6360         configure switch.
6361
6362 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6363
6364         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6365         _unref in the SELinux support.
6366
6367         * doc/busconfig.dtd: update DTD for SELinux support.
6368
6369         * bus/config-loader-libxml.c: fix error handler and parser
6370         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6371
6372         * configure.in: remove the warning about libxml2.
6373
6374         * dbus/dbus-bus.c: silence doxygen warning.
6375
6376 2004-07-31  Colin Walters  <walters@redhat.com>
6377
6378         * configure.in: Move #error in SELinux check to its own line.
6379
6380 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6381
6382         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6383         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6384         dbus_error_set.
6385
6386         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6387         broken by the change in the _SET_OOM macros.
6388
6389 2004-07-31  Colin Walters  <walters@redhat.com>
6390
6391         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6392         BUS_SET_OOM.
6393
6394 2004-07-31  Colin Walters  <walters@redhat.com>
6395
6396         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6397         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6398         AC_MSG_CHECKING.
6399
6400 2004-07-24  Havoc Pennington  <hp@redhat.com>
6401
6402         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6403
6404         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6405         functionality
6406
6407         * configure.in: add --enable-selinux
6408         
6409         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6410
6411         * bus/main.c (main): initialize and shut down selinux
6412
6413         * bus/connection.c: store SELinux ID on each connection, to avoid 
6414         repeated getting of the string context and converting it into 
6415         an ID
6416
6417         * bus/bus.c (bus_context_get_policy): new accessor, though it
6418         isn't used
6419         (bus_context_check_security_policy): check whether the security
6420         context of sender connection can send to the security context of
6421         recipient connection
6422
6423         * bus/config-parser.c: add parsing for <selinux> and <associate>
6424         
6425         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6426         implement dbus_connection_get_unix_fd()
6427
6428         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6429         function, used by the selinux stuff
6430         
6431 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6432
6433         * bus/config-loader-libxml.c: complete the implementation of
6434         libxml backend for config file loader. Doesn't work with full OOM
6435         test yet. 
6436         
6437         * configure.in: change error when selecting libxml into a warning.
6438         
6439         * test/data/invalid-config-files: add two non-well-formed XML
6440         files. 
6441         
6442         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6443         
6444         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6445         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6446         be necessary to read all the buffer. (bug #894)
6447
6448         * bus/activation.c (bus_activation_activate_service): fix a
6449         potential assertion failure (bug #896). Small optimization in the
6450         case of auto-activation messages.
6451
6452         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6453         add test case for byte-through-vararg bug (#901). patch by Kimmo
6454         Hämäläinen. 
6455
6456 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6457
6458         * python/dbus.py:
6459         * python/dbus_bindings.pyx.in:
6460         Add dbus.init_gthreads (), allow emit_signal to pass
6461         arguments to the signal.
6462         
6463 2004-07-24  Havoc Pennington  <hp@redhat.com>
6464
6465         * AUTHORS: add some people, not really comprehensively, let me
6466         know if I missed you
6467
6468 2004-07-24  Havoc Pennington  <hp@redhat.com>
6469
6470         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6471         Owen
6472
6473         * test/Makefile.am (DIST_SUBDIRS): here also
6474
6475 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6476
6477         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6478         breaking build on Solaris, reported by Farhad Saberi on the ML.
6479
6480         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6481         va_arg invocation to account for integer promotion in the case of
6482         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6483
6484         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6485         _dbus_list_get_first_link, not _dbus_list_get_first.
6486
6487         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6488
6489         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6490         handler functions so that the asserts in _dbus_object_subtree_unref
6491         do not fail.
6492
6493         * dbus/dbus-transport-unix.c (do_reading):
6494         _dbus_transport_queue_messages return value is of type
6495         dbus_bool_t, not DBusDispatchStatus.
6496         
6497 2004-07-19  David Zeuthen  <david@fubar.dk>
6498
6499         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6500
6501         * bus/dispatch.c:
6502         (check_get_connection_unix_user): Debug says GetProperty; but the
6503         method is called GetConnectionUnixUser
6504         (check_get_connection_unix_process_id): New function
6505         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6506         also call check_get_connection_unix_process_id()
6507         
6508         * bus/driver.c:
6509         (bus_driver_handle_get_connection_unix_process_id): New function,
6510         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6511         interface
6512         
6513         * dbus/dbus-auth.c:
6514         (handle_server_data_external_mech): Set pid from the credentials
6515         obtained from the socket
6516         
6517         * dbus/dbus-connection.c:
6518         (dbus_connection_get_unix_process_id): New function
6519         
6520         * dbus/dbus-connection.h: 
6521         Add prototype for dbus_connection_get_unix_process_id
6522         
6523         * dbus/dbus-transport.c:
6524         (_dbus_transport_get_unix_process_id): New function
6525         
6526         * dbus/dbus-transport.h:
6527         Add prototype for _dbus_transport_get_unix_process_id
6528         
6529 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6530
6531         * dbus/dbus-message.c: Message counter fix, patch by Christian
6532         Hammond <chipx86@gnupdate.org>
6533
6534 2004-07-18  Seth Nickell  <seth@gnome.org>
6535
6536         * python/dbus.py:
6537         * python/dbus_bindings.pyx.in:
6538         * python/tests/test-client.py:
6539
6540         Add dbus.ByteArray and dbus_bindings.ByteArray
6541         types so that byte streams can be passed back.
6542
6543         Give jdahlin the heaps of credit that are so
6544         rightfully his.
6545         
6546 2004-07-12  Seth Nickell  <seth@gnome.org>
6547
6548         * python/dbus.py:
6549
6550         Add message argument to the default object_method_handler
6551         function.
6552         
6553         * python/dbus_bindings.pyx.in:
6554
6555         Automatically return NIL when passed an empty list
6556         (we can't pass back a list since lists are typed
6557         and we don't have any idea what type the the client
6558         intended the list to be... :-( )
6559         
6560 2004-07-10  Seth Nickell  <seth@gnome.org>
6561
6562         * python/examples/Makefile.am:
6563
6564         Fix distcheck breakage caused by new examples.
6565
6566 2004-07-10  Seth Nickell  <seth@gnome.org>
6567
6568         * python/dbus.py:
6569
6570         Add "message" argument to service-side dbus.Object
6571         methods. This will break existing services written
6572         using the python bindings, but will allow extraction
6573         of all the message information (e.g. who its from).
6574
6575         Add improved "object oriented" signal handling/emission.
6576         
6577         * python/examples/example-service.py:
6578
6579         Nix this example.
6580         
6581         * python/examples/example-signal-emitter.py:
6582         * python/examples/example-signal-recipient.py:
6583
6584         Two new examples that show how to emit and receive
6585         signals using the new APIs.
6586         
6587         * python/examples/example-signals.py:
6588         * python/examples/gconf-proxy-service.py:
6589         * python/examples/gconf-proxy-service2.py:
6590
6591         Add "message" argument to service methods.
6592
6593 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6594
6595         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6596         * dbus/bus.c (dbus_bus_get_unix_user)
6597         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6598         method of org.freedesktop.DBus interface.
6599
6600         * bus/dispatch.c: test case
6601
6602 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6603
6604         * python/Makefile.am: switched include directory from glib/ to dbus/
6605         since dbus-glib.h moved
6606  
6607 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6608
6609         * configure.in: prevent building the gcj stuff and libxml loader
6610         since they are broken.
6611
6612 2004-06-20  Havoc Pennington  <hp@redhat.com>
6613
6614         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6615         codes from the dbus error names
6616         
6617         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6618         as dbus/dbus-glib.h and that breakage is now visible due to 
6619         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6620         
6621         * glib/dbus-glib.h: s/gproxy/g_proxy/
6622
6623         * dbus/dbus-shared.h: new header to hold stuff shared with
6624         binding APIs
6625         
6626         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6627         than dbus-errors.h
6628
6629         * glib/dbus-glib.h (dbus_set_g_error): move to
6630         dbus-glib-lowlevel.h
6631
6632         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6633         of stuff to enable this
6634
6635         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6636
6637         * a bunch of other changes with the same basic "separate glib 
6638         bindings from dbus.h" theme
6639         
6640 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6641
6642         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6643
6644         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6645
6646 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6647
6648         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6649         the reply value of the ServiceExists message.
6650
6651 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6652
6653         * python/dbus_bindings.pyx.in: No longer need to parse path
6654         elements and pass them as arrays of strings.  The C API now
6655         accepts plain path strings.
6656         (_build_parsed_path): removed 
6657
6658 2004-06-07  Havoc Pennington  <hp@redhat.com>
6659
6660         * doc/TODO: remove auto-activation item since it's done; sort
6661         items by importance/milestone
6662
6663 2004-06-07  Havoc Pennington  <hp@redhat.com>
6664
6665         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6666         random signature when using REQUIRED_FIELDS (this hack won't work
6667         in the long term)
6668
6669         * dbus/dbus-message.c: change the signature to be a header field,
6670         instead of message->signature special-case string. Incremental
6671         step forward. Then we can fix up code to send the signature in the
6672         message, then fix up code to validate said signature, then fix up
6673         code to not put the typecodes inline, etc.
6674         (load_one_message): don't make up the signature after the fact
6675         (decode_header_data): require signature field for the known
6676         message types
6677
6678         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6679
6680         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6681
6682 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6683
6684         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6685
6686         * mono/Handler.cs: Updated to follow new path argument for
6687         (un-)registering objects.
6688
6689         * mono/example/Makefile.am:
6690         * mono/Makefile.am:
6691         * configure.in: Bumped required version for mono and use new -pkg
6692         syntax for deps
6693
6694 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6695
6696         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6697         registration functions take the path argument as char* instead of
6698         char**.
6699
6700         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6701         split off the path decompostion part of
6702         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6703         warnings. 
6704
6705         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6706         
6707 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6708  
6709         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6710         machine approach.  A state is implemented as a function that
6711         handles incoming events as specified for that state.
6712         
6713         * doc/dbus-specification.xml: Update auth protocol state machine
6714         specification to match implementation.  Remove some leftover
6715         base64 examples.
6716
6717 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6718
6719         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6720         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6721         quiet doxygen.
6722
6723         * Doxyfile.in: remove deprecated options.
6724
6725         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6726         glib/test-thread.h, glib/test-thread-client.c,
6727         glib/test-thread-server.c, glib/test-profile.c,
6728         glib/test-dbus-glib.c: remove these unused files.
6729
6730 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6731
6732         * dbus/dbus-object-tree.c
6733         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6734         non-fallback handlers (bug #684).
6735         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6736         (find_subtree_recurse): report wether the returned subtree is an
6737         exact match or a "fallback" match higher up in the tree.
6738         (object_tree_test_iteration): update test case.
6739
6740 2004-06-01  Seth Nickell  <seth@gnome.org>
6741
6742         * python/dbus_bindings.pyx.in:
6743         * python/tests/test-client.py:
6744
6745         Round off basic type support. Add dicts (yay!), and 
6746         remaining array types.
6747
6748         Make MessageIter more general so it works for dicts too.
6749
6750         Mark all loop variables as C integers.
6751         
6752 2004-05-31  Havoc Pennington  <hp@redhat.com>
6753
6754         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6755         "in" before "out"
6756
6757         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6758
6759         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6760         option that runs the tests, and start filling in some code
6761         including for starters just dumping the interfaces to stdout
6762
6763         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6764
6765         * test/data/valid-introspection-files/lots-of-types.xml: test of
6766         an example introspection file
6767
6768         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6769         "node" (I think...)
6770
6771 2004-05-31  Seth Nickell  <seth@gnome.org>
6772
6773         * python/dbus_bindings.pyx.in:
6774         * python/tests/test-client.py:
6775
6776         Test Suite: 1
6777         Python Bindings: 0
6778
6779         Fix string array memory trashing bug... oops...
6780
6781 2004-05-30  Seth Nickell  <seth@gnome.org>
6782
6783         * python/dbus.py:
6784
6785         Add a nicer-but-less-flexible alternate API for handling 
6786         calls to virtual objects in dbus.ObjectTree.
6787
6788         Screw up the argument order to the dbus.Object constructor
6789         for consistency with dbus.ObjectTree (and to make dbus_methods
6790         optional for future extension)
6791         
6792         * python/examples/Makefile.am:
6793         * python/examples/gconf-proxy-service.py:
6794         * python/examples/gconf-proxy-service2.py:
6795
6796         Alternate implementation of gconf-proxy-service using the
6797         nicer dbus.ObjectTree API.
6798         
6799         * python/examples/example-service.py:
6800         * python/tests/test-server.py
6801
6802         Reverse the argument order to deal with dbus.Object constructor
6803         changes.
6804         
6805 2004-05-30  Seth Nickell  <seth@gnome.org>
6806
6807         * python/examples/example-client.py:
6808         * python/examples/example-service.py:
6809
6810         Take it back. Lists seem to work but they're broken
6811         in the test suite. Make the base examples use
6812         lists (works fine).
6813
6814 2004-05-30  Seth Nickell  <seth@gnome.org>
6815
6816         * python/dbus_bindings.pyx.in:
6817         * python/tests/test-client.py:
6818
6819         Add some more tests and fix errors that crop up.
6820         Unfortunately, currently it seems like marshalling
6821         and unmarshalling of lists is completely broken :-(
6822
6823 2004-05-30  Seth Nickell  <seth@gnome.org>
6824
6825         * python/dbus_bindings.pyx.in:
6826
6827         Add support for ObjectPath type.
6828
6829         * python/dbus.py:
6830
6831         Refactor message handling code to a common function.
6832         
6833         * python/tests/test-client.py:
6834         * python/tests/test-server.py:
6835
6836         Add tests that check to make sure values of all types
6837         can be echoed from a service w/o mangling.
6838         
6839 2004-05-29  Seth Nickell  <seth@gnome.org>
6840
6841         * python/dbus.py:
6842
6843         Add ObjectTree class which allows implementation
6844         of trees of "virtual" objects. Basically the python
6845         wrapper for "register_fallback".
6846         
6847         * python/examples/Makefile.am
6848         * python/examples/gconf-proxy-client.py:
6849         * python/examples/gconf-proxy-service.py:
6850
6851         Implement a simple GConf proxy service that supports
6852         get/set on string and int GConf keys using the ObjectTree.
6853         
6854 2004-05-29  Seth Nickell  <seth@gnome.org>
6855
6856         * python/dbus.py:
6857         * python/examples/example-client.py:
6858         * python/examples/example-service.py:
6859         * python/examples/list-system-services.py:
6860
6861         Add SessionBus, SystemBus and ActivationBus classes
6862         so you don't need to know the special little BUS_TYPE
6863         flag.
6864         
6865 2004-05-29  Havoc Pennington  <hp@redhat.com>
6866
6867         * bus/config-parser.c (process_test_valid_subdir): temporarily
6868         stop testing config parser OOM handling, since expat has issues
6869         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6870
6871         * bus/dbus-daemon-1.1.in: change requested_reply to
6872         send_requested_reply/receive_requested_reply so we can send the
6873         replies, not just receive them.
6874
6875         * bus/config-parser.c: parse the new
6876         send_requested_reply/receive_requested_reply
6877
6878         * bus/policy.c (bus_client_policy_check_can_send): add
6879         requested_reply argument and use it
6880
6881         * bus/bus.c (bus_context_check_security_policy): pass through
6882         requested_reply status to message send check
6883
6884         * bus/system.conf.in: adapt to requested_reply change
6885         
6886 2004-05-28  Havoc Pennington  <hp@redhat.com>
6887
6888         * test/glib/test-service-glib.c (main): remove unused variable
6889
6890         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6891
6892         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6893         from the enum, no longer in use.
6894
6895         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6896         works right.
6897
6898         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6899         whether error_name passed in is a valid error name.
6900
6901 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6902
6903         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6904         OBJECT_PATH and OBJECT_PATH_ARRAY
6905
6906 2004-05-28  Seth Nickell  <seth@gnome.org>
6907
6908         * python/examples/Makefile.am:
6909
6910         Forget to add Makefile.am. Do not pass go.
6911
6912 2004-05-28  Michael Meeks  <michael@ximian.com>
6913
6914         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6915         fix no int64 case.
6916
6917         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6918
6919         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6920         (_dbus_message_iter_get_basic_type_array): impl.
6921         drastically simplify ~all relevant _get methods to use these.
6922         (_dbus_message_iter_append_basic_array),
6923         (dbus_message_iter_append_basic): impl
6924         drastically simplify ~all relevant _append methods to use these.
6925
6926         * dbus/dbus-message-builder.c (parse_basic_type) 
6927         (parse_basic_array, lookup_basic_type): impl.
6928         (_dbus_message_data_load): prune scads of duplicate /
6929         cut & paste coding.
6930
6931         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6932         (_dbus_demarshal_basic_type): implement,
6933         (demarshal_and_validate_len/arg): beef up debug.
6934         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6935
6936 2004-05-27  Seth Nickell  <seth@gnome.org>
6937
6938         * configure.in:
6939         * python/Makefile.am:
6940
6941         Include the example python apps in the tarball.
6942         
6943         * python/examples/list-system-services.py
6944
6945         Add a python new example that fetches the list of services
6946         from the system bus.
6947         
6948 2004-05-27  Seth Nickell  <seth@gnome.org>
6949
6950         * python/dbus.py:
6951         * python/dbus_bindings.pyx.in:
6952
6953         Fix failure to notify that a signal was not handled,
6954         resulted in hung functions.
6955         
6956 2004-05-25  Colin Walters  <walters@redhat.com>
6957
6958         * tools/dbus-monitor.c (main): Monitor all types of messages.
6959
6960 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6961
6962         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6963         which unregisters the object path and disposes the handler.
6964
6965 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6966  
6967         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6968          
6969         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6970         operands to && so we call dbus_message_iter_next () for the last
6971         argument also.
6972
6973 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6974
6975         * dbus/dbus-object-tree.c
6976         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6977         children even if the requested path isn't registered.
6978         (object_tree_test_iteration): test object_tree_list_registered.
6979
6980         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6981         it to 0.
6982         
6983 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6984
6985         * doc/TODO: Remove resolved items.
6986
6987         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6988         field.
6989         
6990         * bus/connection.c (bus_connections_expect_reply): Enforce the
6991         per-connection limit on pending replies.
6992         
6993         Patch from Jon Trowbridge <trow@ximian.com>:
6994  
6995         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6996         up a watch that triggers a config reload when one end of the pipe
6997         becomes readable.
6998         (signal_handler): Instead of doing the config reload in our SIGHUP
6999         handler, just write to the reload pipe and let the associated
7000         watch handle the reload when control returns to the main loop.
7001  
7002         * bus/driver.c (bus_driver_handle_reload_config): Added.
7003         Implements a ReloadConfig method for requesting a configuration
7004         file reload via the bus driver.
7005  
7006 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7007
7008         * HACKING: Updated release instructions concerning the wiki page.
7009
7010 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7011
7012         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7013         filter against auth->allowed_mechs; we only add allowed mechs in
7014         record_mechanisms().
7015  
7016         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7017         ALLOWED_MECHS to auth-script format so we can set the list of
7018         allowed mechanisms.
7019  
7020         * data/auth/client-out-of-mechanisms.auth-script: New test to
7021         check client disconnects when it is out of mechanisms to try.
7022  
7023         * dbus/dbus-auth.c (process_command): Remove check for lines
7024         longer that 1 MB; we only buffer up maximum 16 kB.
7025  
7026         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7027         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7028         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7029         assume there might be unused bytes.
7030  
7031         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7032         client-out-of-mechs, it is handled in process_reject(). Move check
7033         for max failures to send_rejected(), as it's a server-only thing.
7034
7035         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7036         send_auth(), send_data(), send_rejected(), send_error(),
7037         send_ok(), send_begin() and send_cancel().
7038
7039 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7040
7041         Remove base64 encoding, replace with hex encoding. Original patch
7042         from trow@ximian.com, added error handling.
7043
7044         * dbus/dbus-string.c (_dbus_string_base64_encode)
7045         (_dbus_string_base64_decode): Remove.
7046         (_dbus_string_hex_decode): Add end_return argument so we can
7047         distinguish between OOM and invalid hex encoding.
7048         (_dbus_string_test): Remove base64 tests and add test case for
7049         invalid hex.
7050
7051         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7052         Replace base64 with hex.
7053
7054         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7055         for invalid hex encoded data in auth protocol.
7056
7057 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7058
7059         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7060         leak.
7061
7062 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7063
7064         * mono/dbus-sharp.dll.config.in: Added for GAC
7065         * mono/dbus-sharp.snk: Added for GAC
7066         * mono/Assembly.cs.in: Added for GAC
7067         * mono/Makefile.am: Changes for GAC installation        
7068         * configure.in: Added refs for dbus-sharp.dll.config.in and
7069         Assembly.cs.in. More fixes for mono testing
7070         * mono/example/Makefile.am: Changed var to CSC
7071         * Makefile.am: Changed flag name to DBUS_USE_CSC
7072
7073 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7074
7075         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7076         * mono/doc/*: Added documentation framework
7077         * configure.in: Added monodoc check
7078         * README: Added description of mono configure flags
7079
7080 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7081
7082         * doc/dbus-specification.xml: Added a "Required" column to the 
7083         header fields table and changed the "zero or more" verbage in
7084         the above paragraph to read "The header must contain the required 
7085         named header fields and zero or more of the optional named header 
7086         fields".
7087         * test/data/invalid-messages/*.message: Added the required PATH 
7088         named header field to the tests so that they don't fail on 
7089         'Missing path field'
7090
7091 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7092
7093         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7094         the stack by implicitly defining variable and parameter types and
7095         removing the hack of defining C pointers as python objects and later
7096         casting them.
7097
7098 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7099
7100         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7101
7102 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7103
7104         * mono/DBusType/Dict.cs: Handle empty dicts
7105         * mono/DBusType/Array.cs: Handle empty arrays
7106         * mono/Arguments.cs: Handle empty arguments
7107
7108 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7109
7110         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7111         field
7112
7113 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7114
7115         * test/data/valid-messages/standard-*.message: Update message
7116         test scripts to new header field names.
7117
7118 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7119
7120         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7121         overflow to times_we_did_each_thing array which would chop off the
7122         first character of the failure_dir string. Increased the size of
7123         the array to 7 to reflect the number of random mutation functions
7124         we have.
7125
7126 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7127
7128         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7129         unix_server->watch here, it is unreffed in disconnect.
7130         (_dbus_server_new_for_tcp_socket): convert NULL host to
7131         "localhost" here so we don't append NULL to address.
7132         
7133         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7134         various addresses, including tcp with no explicit host.
7135
7136 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7137
7138         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7139         fix incorrect setting of .name_offset in the HeaderField (it was
7140         off by two bytes, positioned right after the name and typecode)
7141
7142         * bus/bus.c (bus_context_new, bus_context_unref): test before
7143         calling dbus_server_free_data_slot and _dbus_user_database_unref
7144         in case of an error.
7145
7146         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7147         by libdbus-gtool.
7148
7149 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7150
7151         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7152         _dbus_poll() instead of select().
7153
7154 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7155
7156         * bus/main.c (signal_handler): Reload the configuration files
7157         on SIGHUP.
7158         (main): Set up our SIGHUP handler.
7159
7160         * bus/bus.c (struct BusContext): Store the config file, user and
7161         fork flag in the BusContext.
7162         (process_config_first_time_only): Added.  Contains the code
7163         (previously in bus_context_new) for setting up the BusContext from
7164         the BusConfigParser that should only be run the first time the
7165         config files are read.
7166         (process_config_every_time): Added.  Contains the code (previously
7167         in bus_context_new) for setting up the BusContext from the
7168         BusConfigParser that should be run every time the config files are
7169         read.
7170         (load_config): Added.  Builds a BusConfigParser from the config
7171         files and passes the resulting structure off to
7172         process_config_first_time_only (assuming this is the first time)
7173         and process_config_every_time.
7174         (bus_context_new): All of the config-related code has been moved
7175         to process_config_first_time_only and process_config_every_time.
7176         Now this function just does the non-config-related initializations
7177         and calls load_config.
7178         (bus_context_reload_config): Added.
7179
7180 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7181
7182         * bus/driver.c (bus_driver_handle_get_service_owner):
7183         implement a GetServiceOwner method.
7184         * doc/dbus-specification.xml: document it.
7185         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7186         
7187         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7188         implement, using the bus GetServiceOwner method.
7189
7190         * test/glib/test-dbus-glib.c:
7191         use dbus_gproxy_new_for_service_owner so that we can receive the
7192         signal. 
7193
7194 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7195
7196         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7197         dbus/dbus-message.c, dbus/dbus-protocol.h
7198         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7199
7200         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7201         dbus/dbus-message.c, dbus/dbus-protocol.h
7202         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7203
7204         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7205         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7206         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7207
7208         * doc/dbus-specification.xml (Header Fields Table):
7209         s/SERVICE/DESTINATION
7210         s/SENDER_SERVICE/SENDER
7211
7212
7213 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7214
7215         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7216         a few seconds.
7217
7218 2004-04-13  Michael Meeks  <michael@ximian.com>
7219
7220         * glib/dbus-gobject.c (handle_introspect): split out
7221         (introspect_properties): this.
7222         (handle_introspect): implement this.
7223
7224         * test/glib/Makefile.am: use the absolute path so the bus
7225         daemon's chdir ("/") doesn't kill us dead.
7226
7227         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7228
7229 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7230
7231         * bus/config-parser.c (struct BusConfigParser): Added
7232         included_files field.
7233         (seen_include): Added.  Checks whether or not a file has already
7234         been included by any parent BusConfigParser.
7235         (bus_config_parser_new): Copy the parent's included_files.
7236         (include_file): Track which files have been included, and fail on
7237         circular inclusions.
7238         (process_test_valid_subdir): Changed printf to report if we are
7239         testing valid or invalid conf files.
7240         (all_are_equiv): Changed printf to be a bit clearer about
7241         what we are actually doing.
7242         (bus_config_parser_test): Test invalid configuration files.
7243
7244 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7245
7246         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7247         argument.  If non-null, the newly-constructed BusConfigParser will
7248         be initialized with the parent's BusLimits instead of the default
7249         values.
7250         (include_file): When including a config file, pass in
7251         the current parser as the parent and then copy the BusLimits
7252         from the included BusConfigParser pack to the current parser.
7253         (process_test_valid_subdir): Renamed from process_test_subdir.
7254         (process_test_equiv_subdir): Added.  Walks through a directory,
7255         descending into each subdirectory and loading the config files
7256         it finds there.  If any subdirectory contains two config files
7257         that don't produce identical BusConfigParser structs, fail.
7258         For now, the BusConfigParser's BusPolicies are not compared.
7259         (bus_config_parser_test): Call both process_test_valid_subdir and
7260         process_test_equiv_subdir.
7261
7262         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7263         argument and pass it along to the call to bus_config_parser_new.
7264         Also made a few small changes to allow this code to compile.
7265
7266         * bus/config-loader-expat.c (bus_config_load): Take a parent
7267         argument and pass it along to the call to bus_config_parser_new.
7268
7269         * bus/bus.c (bus_context_new): Load the config file
7270         with a NULL parent argument.
7271
7272 2004-03-29  Michael Meeks  <michael@ximian.com>
7273
7274         * glib/dbus-gobject.c (introspect_properties): split
7275         out, fix mangled 'while' flow control.
7276         (introspect_signals): implement.
7277         (handle_introspect): update.
7278
7279 2004-03-29  Michael Meeks  <michael@ximian.com>
7280
7281         * glib/dbus-gobject.c (set_object_property): split out / 
7282         re-work, use the property type, and not the message type(!)
7283         (get_object_property): ditto.
7284
7285         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7286         (dbus_gvalue_marshal): make this code re-usable, needed
7287         for signals too, also on both proxy and server side.
7288         Re-write for more efficiency / readability.
7289
7290 2004-03-29  Michael Meeks  <michael@ximian.com>
7291
7292         * dbus/dbus-message.c
7293         (dbus_message_new_error_printf): impl.
7294
7295         * dbus/dbus-connection.c
7296         (dbus_connection_unregister_object_path): fix warning.
7297
7298         * configure.in: fix no-mono-installed situation.
7299
7300 2004-03-27  Havoc Pennington  <hp@redhat.com>
7301
7302         Patch from Timo Teräs:
7303         
7304         * tools/dbus-send.c (main): if --print-reply, assume type is
7305         method call; support boolean type args
7306         
7307         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7308         bunch of memleak and logic bugs
7309         
7310 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7311
7312         * mono/Arguments.cs:
7313         * mono/Introspector.cs:
7314         * mono/Handler.cs:
7315         * mono/InterfaceProxy.cs:
7316         * mono/Message.cs
7317         * mono/ProxyBuilder.cs:
7318         * mono/Service.cs:
7319         Added InterfaceProxy class to avoid building proxies for every
7320         object.
7321
7322         * dbus-message.h:
7323         * dbus-message.c (dbus_message_append_args_valist)
7324         (dbus_message_iter_get_object_path)
7325         (dbus_message_iter_get_object_path_array)
7326         (dbus_message_iter_append_object_path)
7327         (dbus_message_iter_append_object_path_array):
7328         Added object_path iter functions to handle OBJECT_PATH arguments
7329         
7330 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7331
7332         First checkin of mono bindings.
7333         * configure.in:
7334         * Makefile.am:
7335         Build stuff for the bindings
7336         * dbus-sharp.pc.in: Added for pkgconfig
7337         
7338 2004-03-21  Havoc Pennington  <hp@redhat.com>
7339
7340         * test/test-service.c (main): remove debug spew
7341
7342 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7343
7344         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7345         arrays
7346
7347         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7348         (dbus_message_iter_init_array_iterator)
7349         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7350         indicate whether the iterator is empty
7351
7352         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7353         warnings
7354
7355 2004-03-19  Havoc Pennington  <hp@redhat.com>
7356
7357         * NEWS: 0.21 updates
7358
7359         * configure.in: 0.21
7360
7361         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7362         
7363         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7364         you don't need pyrex to make dist
7365
7366         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7367         sources; run moc
7368         
7369 2004-03-18  Richard Hult  <richard@imendio.com>
7370
7371         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7372         (dbus_message_set_auto_activation): Add doxygen docs.
7373
7374 2004-03-16  Richard Hult  <richard@imendio.com>
7375
7376         * bus/activation.c: (bus_activation_service_created),
7377         (bus_activation_send_pending_auto_activation_messages),
7378         (bus_activation_activate_service):
7379         * bus/activation.h:
7380         * bus/dispatch.c: (bus_dispatch),
7381         (check_nonexistent_service_auto_activation),
7382         (check_service_auto_activated),
7383         (check_segfault_service_auto_activation),
7384         (check_existent_service_auto_activation), (bus_dispatch_test):
7385         * bus/driver.c: (bus_driver_handle_activate_service):
7386         * bus/services.c: (bus_registry_acquire_service):
7387         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7388         (dbus_message_get_auto_activation):
7389         * dbus/dbus-message.h:
7390         * dbus/dbus-protocol.h: Implement auto-activation.
7391         
7392         * doc/dbus-specification.xml: Add auto-activation to the spec.
7393
7394 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7395
7396         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7397         fix a bug with CUSTOM types.
7398
7399         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7400         a unit test for this bug (used to fail).
7401
7402 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7403
7404         * bus/activation.c:
7405         (babysitter_watch_callback): notify all pending activations waiting for
7406           the same exec that the activation failed.
7407         (bus_activation_activate_service): shortcut the activation if we 
7408           already waiting for the same executable to start up.
7409
7410 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7411
7412         * bus/activation.c: 
7413         - Added service file reloading. 
7414           Each service files directory is kept in an hash table in 
7415           BusActivation and each BusActivationEntry knows what .service-file it
7416           was read from. So when you try to activate a service the bus will 
7417           check if it's been updated, removed or if new .service-files has 
7418           been installed.
7419         - Test code at the bottom for the service file reloading.
7420         * bus/test-main.c: (main):
7421         * bus/test.h:
7422         - added service reloading test.
7423         * dbus/dbus-sysdeps.c: 
7424         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7425
7426 2004-03-08  Michael Meeks  <michael@ximian.com>
7427
7428         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7429         bail immediately if disconnected, to avoid busy loop.
7430
7431         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7432         cleanup cut/paste/inefficiency.
7433
7434 2004-03-01  David Zeuthen  <david@fubar.dk>
7435
7436         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7437         bug where args were used twice. This bug resulted in a segfault
7438         on a Debian/PPC system when starting the messagebus daemon. Include
7439         dbus-sysdeps.h for DBUS_VA_COPY
7440
7441         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7442
7443         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7444         appropriate va_copy implementation. From GLib
7445         
7446 2004-02-24  Joe Shaw  <joe@ximian.com>
7447
7448         * bus/services.c (bus_registry_acquire_service): We need to pass
7449         in the service name to dbus_set_error() to prevent a crash.
7450
7451 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7452
7453         * AUTHORS: Reveal my True identity.
7454
7455 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7456
7457         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7458         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7459
7460 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7461
7462         * doc/TODO: Added not about better error check of configuration files.
7463
7464 2003-12-02  Richard Hult  <richard@imendio.com>
7465
7466         * Update AFL version to 2.0 throughout the source files to reflect
7467         the update that was done a while ago.
7468
7469 2003-12-02  Richard Hult  <richard@imendio.com>
7470
7471         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7472         wrote_dict_key to FALSE on the iter that the dict is appended to,
7473         just like when appending other types. Fixes a bug where a dict
7474         couldn't be put inside a dict.
7475         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7476         (message_iter_test, _dbus_message_test): Add test case for dict
7477         inside dict.
7478
7479 2003-12-01  David Zeuthen  <david@fubar.dk>
7480
7481         * python/dbus.py: Add the actual message when calling the reciever
7482         of a signal such that parameters can be inspected. Add the method
7483         remove_signal_receiver
7484         
7485 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7486
7487         * bus/*.[ch]:
7488         * dbus/*.[ch]:
7489         * glib/*.[ch]: Made ref functions return the pointer
7490
7491 2003-11-25  Zack Rusin  <zack@kde.org>
7492
7493         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7494
7495         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7496         wrappers,
7497
7498         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7499         the Integrator and to better fit with the server,
7500
7501 2003-11-24  Zack Rusin  <zack@kde.org>
7502
7503         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7504         the integrator handles it now
7505
7506         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7507         since QTimer wasn't really meant to be used the way DBusTimeout is
7508
7509 2003-11-24  Zack Rusin  <zack@kde.org>
7510
7511         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7512         Integrator class which integrates D-BUS with the Qt event loop,
7513
7514         * qt/connection.h, qt/connection.cpp: Move all the code which
7515         was dealing with D-BUS integration to the Integrator class,
7516         and start using Integrator,
7517
7518 2003-11-23  Zack Rusin  <zack@kde.org>
7519
7520         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7521         wrapper
7522
7523         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7524         switching namespaces to DBusQt, reworking the class,
7525
7526         * Makefile.cvs: switching dependencies so that it matches KDE 
7527         schematics,
7528         
7529         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7530         the library
7531
7532 2003-11-19  Havoc Pennington  <hp@redhat.com>
7533
7534         * NEWS: update
7535
7536         * configure.in: bump version to 0.20
7537
7538         * configure.in (have_qt): add yet another place to look for qt
7539         (someone hand trolltech a .pc file...)
7540
7541 2003-11-01  Havoc Pennington  <hp@redhat.com>
7542
7543         * doc/dbus-specification.xml: add state machine docs on the auth
7544         protocol; just a first draft, I'm sure it's wrong.      
7545
7546 2003-10-28  David Zeuthen  <david@fubar.dk>
7547
7548         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7549         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7550         
7551 2003-10-28  Havoc Pennington  <hp@redhat.com>
7552
7553         * dbus/dbus-message.c (get_next_field): delete unused function
7554
7555 2003-10-28  Havoc Pennington  <hp@redhat.com>
7556
7557         * bus/expirelist.c (do_expiration_with_current_time): detect
7558         failure of the expire_func due to OOM
7559
7560         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7561
7562         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7563         NoReply error that's now created by the bus when the service exits
7564
7565 2003-10-28  Havoc Pennington  <hp@redhat.com>
7566
7567         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7568         tests for set_path, set_interface, set_member, etc.
7569
7570         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7571
7572         * dbus/dbus-message.c (set_string_field): always just delete and
7573         re-append the field; accept NULL for deletion
7574         (re_align_fields_recurse): reimplement
7575         
7576 2003-10-26  Havoc Pennington  <hp@redhat.com>
7577
7578         * dbus/dbus-connection.c: fix docs to properly describe the
7579         disconnected message
7580         (_dbus_connection_notify_disconnected): remove this function; 
7581         we can't synchronously add the disconnected message, we have to 
7582         do it after we've queued any remaining real messages
7583         (_dbus_connection_get_dispatch_status_unlocked): queue the
7584         disconnect message only if the transport has finished queueing all
7585         its real messages and is disconnected.
7586         (dbus_connection_disconnect): update the dispatch status here
7587
7588 2003-10-22  Havoc Pennington  <hp@redhat.com>
7589
7590         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7591
7592         * bus/connection.c (bus_transaction_send_from_driver): set the
7593         destination to the connection's base service
7594
7595 2003-10-20  Havoc Pennington  <hp@redhat.com>
7596
7597         hmm, make check is currently not passing.
7598         
7599         * doc/dbus-specification.xml: add requirement that custom type
7600         names follow the same rules as interface names.
7601
7602         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7603         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7604         'map'
7605
7606         * doc/dbus-specification.xml: update type codes to match
7607         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7608         CUSTOM. Add type OBJECT_PATH to the spec.
7609
7610 2003-10-17  Havoc Pennington  <hp@redhat.com>
7611
7612         * bus/driver.c (create_unique_client_name): use "." as separator
7613         in base service names instead of '-'
7614
7615         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7616         byte at the end of the string
7617
7618         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7619         optimization macros since string validation seems to be a slow
7620         point.
7621         
7622         * doc/dbus-specification.xml: restrict valid
7623         service/interface/member/error names. Add test suite code for the
7624         name validation.
7625
7626         * dbus/dbus-string.c: limit service/interface/member/error names 
7627         to [0-9][A-Z][a-z]_
7628
7629         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7630         format arg to verbose spew
7631
7632         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7633         memory, return instead of g_error
7634
7635         * test/test-service.c (path_message_func): support emitting a
7636         signal on request
7637
7638         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7639         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7640         assuming the activation bus was the session bus so that services
7641         started manually will still register.
7642         (init_connections_unlocked): fix so that in OOM situation we get
7643         the same semantics when retrying the function
7644         
7645         * test/test-service.c (main): change to use path registration, to
7646         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7647         than DBUS_BUS_SESSION
7648
7649 2003-10-16  Havoc Pennington  <hp@redhat.com>
7650
7651         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7652
7653         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7654         coverage of the tests
7655         (coverage-report.txt): don't move the .da and .bbg files around
7656
7657 2003-10-16  Havoc Pennington  <hp@redhat.com>
7658
7659         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7660         to put there
7661
7662 2003-10-16  Havoc Pennington  <hp@redhat.com>
7663
7664         * bus/connection.c (bus_pending_reply_expired): either cancel or
7665         execute, not both
7666         (bus_connections_check_reply): use unlink, not remove_link, as we
7667         don't want to free the link; fixes double free mess
7668
7669         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7670         where no reply was received
7671
7672         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7673         fix a refcount leak
7674
7675         * bus/signals.c (match_rule_matches): add special cases for the
7676         bus driver, so you can match on sender/destination for it.
7677
7678         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7679         DBUS_PRINT_BACKTRACE is set
7680
7681         * dbus/dbus-internals.c: add pid to assertion failure messages
7682
7683         * dbus/dbus-connection.c: add message type code to the debug spew
7684
7685         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7686         sender=foo not service=foo
7687
7688         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7689         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7690         DBUS_ACTIVATION_ADDRESS instead
7691
7692         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7693         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7694
7695         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7696         context struct
7697
7698         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7699         (dbus_message_iter_get_object_path_array): new function (half
7700         finished, disabled for the moment)
7701         
7702         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7703         DBUS_MESSAGE_TYPE_ERROR
7704
7705         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7706         avoid redirecting stderr to /dev/null
7707         (babysit): close stdin if not doing the "exit_with_session" thing
7708
7709         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7710         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7711         stdout/stdin, so things don't get confused
7712         
7713         * bus/system.conf.in: fix to allow replies, I modified .conf
7714         instead of .conf.in again.
7715
7716 2003-10-14  David Zeuthen  <david@fubar.dk>
7717
7718         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7719         argtype to arg_type when raising unknown arg type exception.
7720         Changed type list to reflect the changes in dbus-protocol.h so 
7721         the bindings actually work.
7722
7723 2003-10-14  Havoc Pennington  <hp@redhat.com>
7724
7725         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7726         to have a bug keeping it from outputting the .da files sometimes
7727         (string_get_string): don't append garbage nul bytes to the string.
7728
7729 2003-10-15  Seth Nickell  <seth@gnome.org>
7730
7731         * python/Makefile.am:
7732
7733         Include dbus_h_wrapper.h in the dist tarball.
7734
7735 2003-10-14  Havoc Pennington  <hp@redhat.com>
7736
7737         * bus/bus.c (bus_context_check_security_policy): revamp this to
7738         work more sanely with new policy-based requested reply setup
7739
7740         * bus/connection.c (bus_transaction_send_from_driver): set bus
7741         driver messages as no reply
7742
7743         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7744         requested_reply attribute on allow/deny rules
7745
7746         * bus/system.conf: add <allow requested_reply="true"/>
7747
7748         * bus/driver.c (bus_driver_handle_message): fix check for replies
7749         sent to the bus driver, which was backward. How did this ever work
7750         at all though? I think I'm missing something.
7751
7752         * dbus/dbus-message.c (decode_header_data): require error and
7753         method return messages to have a reply serial field to be valid
7754         (_dbus_message_loader_queue_messages): break up this function;
7755         validate that reply serial and plain serial are nonzero; 
7756         clean up the OOM/error handling.
7757         (get_uint_field): don't return -1 from this
7758         (dbus_message_create_header): fix signed/unsigned bug
7759
7760         * bus/connection.c (bus_connections_expect_reply): save serial of
7761         the incoming message, not reply serial
7762
7763 2003-10-14  Havoc Pennington  <hp@redhat.com>
7764
7765         * bus/connection.c: implement pending reply tracking using
7766         BusExpireList
7767
7768         * bus/bus.c (bus_context_check_security_policy): verify that a
7769         reply is pending in order to allow a reply to be sent. Deny 
7770         messages of unknown type.
7771
7772         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7773
7774         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7775         (bus_context_get_reply_timeout): new
7776
7777 2003-10-13  Seth Nickell  <seth@gnome.org>
7778
7779         * python/Makefile.am:
7780
7781         Pass "make distcheck": remove a couple files from DIST_FILES
7782         that weren't included in the final version.
7783
7784 2003-10-12  Havoc Pennington  <hp@pobox.com>
7785
7786         Added test code that 1) starts an actual bus daemon and 2) uses
7787         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7788         more testing possible, but this is the basic framework.
7789         
7790         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7791         empty proxy lists from the proxy list hash
7792
7793         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7794         couple of return_if_fail checks
7795
7796         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7797         to allocate, so everything is cleared to NULL as it should be.
7798
7799         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7800         source as data to dbus_connection_set_timeout_functions() as the 
7801         timeout functions expected
7802
7803         * test/glib/run-test.sh: add a little script to start up a message
7804         bus and run tests using it
7805
7806         * tools/dbus-launch.1: updates
7807
7808         * tools/dbus-launch.c (main): add --config-file option
7809
7810         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7811         that could never be reached.
7812
7813         * dbus/dbus-message.c (dbus_message_new_method_return) 
7814         (dbus_message_new_error, dbus_message_new_signal): set the
7815         no-reply-expected flag on all these. Redundant, but may
7816         as well be consistent.
7817
7818 2003-10-11  Havoc Pennington  <hp@pobox.com>
7819
7820         * test/decode-gcov.c (function_solve_graph): make broken block
7821         graph a nonfatal error since it seems to be broken. Need to debug
7822         this.
7823
7824         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7825         can't just check type > INVALID < LAST anymore
7826
7827         * dbus/dbus-message.c (dbus_message_get_signature): new function
7828         (dbus_message_has_signature): new function
7829         (struct DBusMessage): add signature field (right now it isn't sent
7830         over the wire, just generated on the fly)
7831         (dbus_message_copy): copy the signature, and init strings to
7832         proper length to avoid some reallocs
7833         (dbus_message_iter_init_array_iterator): return void, since it
7834         can't fail
7835         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7836         (_dbus_message_loader_queue_messages): add silly temporary hack to
7837         fill in message->signature on load
7838
7839         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7840         characters, so they are relatively human-readable.
7841
7842 2003-10-11  Havoc Pennington  <hp@pobox.com>
7843
7844         * dbus/dbus-message.c (_dbus_message_test): add more test
7845         coverage, but #if 0 for now since they uncover a bug 
7846         not fixed yet; I think in re_align_field_recurse()
7847         (re_align_field_recurse): add FIXME about broken assertion
7848
7849         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7850
7851         * bus/connection.c: share a couple code bits with expirelist.c
7852
7853         * bus/expirelist.h, bus/expirelist.c: implement a generic
7854         expire-items-after-N-seconds facility, was going to share between
7855         expiring connections and replies, decided not to use for expiring
7856         connections for now.
7857
7858         * COPYING: include AFL 2.0 (still need to change all the file headers)
7859
7860 2003-10-09  Havoc Pennington  <hp@redhat.com>
7861
7862         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7863         gcc 3.3. Not that we do anything about it yet.
7864
7865         * bus/signals.c (bus_match_rule_parse): impose max length on the
7866         match rule text
7867
7868         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7869
7870 2003-10-09  Havoc Pennington  <hp@redhat.com>
7871
7872         Make matching rules theoretically work (add parser).
7873         
7874         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7875         the case where destination is explicitly specified as bus driver
7876         and someone else is eavesdropping.
7877         
7878         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7879         definition of eavesdropping and assertion
7880
7881         * tools/dbus-send.c (main): use dbus_message_type_from_string
7882
7883         * bus/signals.c (bus_match_rule_parse): implement
7884
7885         * dbus/dbus-message.c (dbus_message_type_from_string): new
7886
7887         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7888
7889 2003-10-02  Havoc Pennington  <hp@pobox.com>
7890
7891         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7892         dbus_gproxy_oneway_call
7893
7894         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7895         (dbus_server_setup_with_g_main): fix to allow calling them more
7896         than once on the same args
7897         (dbus_bus_get_with_g_main): new function
7898
7899 2003-10-02  Havoc Pennington  <hp@redhat.com>
7900
7901         * doc/dbus-tutorial.xml: write some stuff
7902
7903 2003-09-29  Havoc Pennington  <hp@pobox.com>
7904
7905         * configure.in: split checks for Doxygen from XML docs, check for
7906         xmlto
7907
7908         * doc/Makefile.am: XML-ify all the docs, and add a blank
7909         dbus-tutorial.xml
7910
7911 2003-09-29  Havoc Pennington  <hp@pobox.com>
7912
7913         * Merge dbus-object-names branch. To see the entire patch 
7914         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7915         it's huuuuge though.
7916         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7917         
7918 2003-09-28  Havoc Pennington  <hp@pobox.com>
7919
7920         * HACKING: update to reflect new server
7921
7922 2003-09-26  Seth Nickell  <seth@gnome.org>
7923
7924         * python/dbus.py:
7925         * python/examples/example-signals.py:
7926
7927         Start implementing some notions of signals. The API
7928         is really terrible, but they sort of work (with the
7929         exception of being able to filter by service, and to
7930         transmit signals *as* a particular service). Need to
7931         figure out how to make messages come from the service
7932         we registered :-(
7933         
7934         * python/dbus_bindings.pyx.in:
7935
7936         Removed duplicate message_handler callbacks.
7937         
7938 2003-09-25  Havoc Pennington  <hp@redhat.com>
7939
7940         * bus/session.conf.in: fix my mess
7941
7942 2003-09-25  Havoc Pennington  <hp@pobox.com>
7943
7944         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7945
7946 2003-09-25  Seth Nickell  <seth@gnome.org>
7947
7948         * python/examples/example-service.py:
7949
7950         Johan notices complete wrong code in example-service, but
7951         completely wrong in a way that works exactly the same (!).
7952         Johan is confused, how could this possibly work? Example
7953         code fails to serve purpose of making things clear.
7954         Seth fixes.
7955
7956 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7957
7958         * doc/dbus-specification.sgml: don't require header fields
7959         to be 4-byte aligned and specify that fields should be
7960         distinguished from padding by the fact that zero is not
7961         a valid field name.
7962         
7963         * doc/TODO: remove re-alignment item and add item to doc
7964         the OBJECT_PATH type.
7965         
7966         * dbus/dbus-message.c:
7967         (HeaderField): rename the original member to value_offset
7968         and introduce a name_offset member to keep track of where
7969         the field actually begins.
7970         (adjust_field_offsets): remove.
7971         (append_int_field), (append_uint_field),
7972         (append_string_field): don't align the start of the header
7973         field to a 4-byte boundary.
7974         (get_next_field): impl finding the next marhsalled field
7975         after a given field.
7976         (re_align_field_recurse): impl re-aligning a number of
7977         already marshalled fields.
7978         (delete_field): impl deleting a field of any type and
7979         re-aligning any following fields.
7980         (delete_int_or_uint_field), (delete_string_field): remove.
7981         (set_int_field), (set_uint_field): no need to re-check
7982         that we have the correct type for the field.
7983         (set_string_field): ditto and impl re-aligning any
7984         following fields.
7985         (decode_header_data): update to take into account that
7986         the fields aren't 4-byte aligned any more and the new
7987         way to distinguish padding from header fields. Also,
7988         don't exit when there is too much header padding.
7989         (process_test_subdir): print the directory.
7990         (_dbus_message_test): add test to make sure a following
7991         field is re-aligned correctly after field deletion.
7992         
7993         * dbus/dbus-string.[ch]:
7994         (_dbus_string_insert_bytes): rename from insert_byte and
7995         allow the insert of multiple bytes.
7996         (_dbus_string_test): test inserting multiple bytes.
7997
7998         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7999         warning note to docs about having to re-align any
8000         marshalled values following the string.
8001         
8002         * dbus/dbus-message-builder.c:
8003         (append_string_field), (_dbus_message_data_load):
8004         don't align the header field.
8005         
8006         * dbus/dbus-auth.c: (process_test_subdir): print the
8007         directory.
8008         
8009         * test/break-loader.c: (randomly_add_one_byte): upd. for
8010         insert_byte change.
8011         
8012         * test/data/invalid-messages/bad-header-field-alignment.message:
8013         new test case.
8014         
8015         * test/data/valid-messages/unknown-header-field.message: shove
8016         a dict in the unknown field.
8017
8018 2003-09-25  Seth Nickell  <seth@gnome.org>
8019
8020         * python/dbus.py:
8021         * python/dbus_bindings.pyx.in:
8022
8023         Handle return values.
8024         
8025         * python/examples/example-client.py:
8026         * python/examples/example-service.py:
8027
8028         Pass back return values from the service to the client.
8029         
8030 2003-09-24  Seth Nickell  <seth@gnome.org>
8031
8032         * python/dbus.py:
8033
8034         Connect Object methods (when you are sharing an object) up... pass
8035         in a list of methods to be shared. Sharing all the methods just
8036         worked out too weird. You can now create nice Services over the
8037         DBus in Python. :-)
8038         
8039         * python/dbus_bindings.pyx.in:
8040
8041         Keep references to user_data tuples passed into C functions so 
8042         Python doesn't garbage collect on us.
8043
8044         Implement MethodReturn and Error subclasses of Message for creating
8045         DBusMessage's of those types.
8046         
8047         * python/examples/example-client.py:
8048         * python/examples/example-service.py:
8049
8050         Simple example code showing both how create DBus services and objects,
8051         and how to use them.
8052
8053 2003-09-23  Havoc Pennington  <hp@pobox.com>
8054
8055         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8056
8057 2003-09-23  Havoc Pennington  <hp@redhat.com>
8058
8059         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8060         (dbus_gproxy_disconnect_signal): implement
8061         (dbus_gproxy_manager_remove_signal_match): implement
8062         (dbus_gproxy_manager_add_signal_match): implement
8063         (dbus_gproxy_oneway_call): implement
8064
8065 2003-09-23  Havoc Pennington  <hp@pobox.com>
8066
8067         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8068         subclass. This means dropping the transparent thread safety of the
8069         proxy; you now need a separate proxy per-thread, or your own
8070         locking on the proxy. Probably right anyway.
8071         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8072
8073 2003-09-22  Havoc Pennington  <hp@redhat.com>
8074
8075         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8076
8077 2003-09-21  Seth Nickell  <seth@gnome.org>
8078
8079         First checkin of the Python bindings.
8080         
8081         * python/.cvsignore:
8082         * python/Makefile.am:
8083         * python/dbus_bindings.pyx.in:
8084         * python/dbus_h_wrapper.h:
8085
8086         Pieces for Pyrex to operate on, building a dbus_bindings.so
8087         python module for low-level access to the DBus APIs.
8088         
8089         * python/dbus.py:
8090
8091         High-level Python module for accessing DBus objects.
8092
8093         * configure.in:
8094         * Makefile.am:
8095
8096         Build stuff for the python bindings.
8097
8098         * acinclude.m4:
8099
8100         Extra macro needed for finding the Python C header files.
8101
8102 2003-09-21  Havoc Pennington  <hp@pobox.com>
8103
8104         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8105         implementing the proxy manager, didn't get very far.
8106
8107         * dbus/dbus-bus.c (dbus_bus_add_match): new
8108         (dbus_bus_remove_match): new
8109
8110         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8111         path_name argument; adjust the other not-yet-implemented 
8112         gproxy constructors to be what I think they should be.
8113
8114 2003-09-21  Havoc Pennington  <hp@pobox.com>
8115
8116         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8117         by default for message bus connections.
8118
8119         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8120         exit_on_disconnect flag is set and we process the disconnected
8121         signal.
8122         (dbus_connection_set_exit_on_disconnect): new function
8123
8124 2003-09-21  Havoc Pennington  <hp@pobox.com>
8125
8126         Get matching rules mostly working in the bus; only actually
8127         parsing the rule text remains. However, the client side of
8128         "signal connections" hasn't been started, this patch is only the
8129         bus side.
8130         
8131         * dbus/dispatch.c: fix for the matching rules changes
8132         
8133         * bus/driver.c (bus_driver_handle_remove_match)
8134         (bus_driver_handle_add_match): send an ack reply from these
8135         method calls
8136
8137         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8138         arguments, reported by Seth Nickell
8139
8140         * bus/config-parser.c (append_rule_from_element): support
8141         eavesdrop=true|false attribute on policies so match rules 
8142         can be prevented from snooping on the system bus.
8143
8144         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8145         and "destination" in attribute names; fix some docs bugs; 
8146         add eavesdrop=true|false attribute
8147
8148         * bus/driver.c (bus_driver_handle_add_match)
8149         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8150         messages
8151
8152         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8153         rid of broadcast service concept, signals are just always broadcast
8154
8155         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8156         mostly implement matching rules stuff (currently only exposed as signal
8157         connections)
8158
8159 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8160
8161         * doc/dbus-specification.sgml: Change the header field name
8162         to be an enum and update the rest of the spec to reference
8163         the fields using the conventinal name.
8164
8165         * dbus/dbus-protocol.h: update to reflect the spec.
8166
8167         * doc/TODO: add item to remove the 4 byte alignment requirement.
8168         
8169         * dbus/dbus-message.c: Remove the code to generalise the
8170         header/body length and serial number header fields as named
8171         header fields so we can reference field names using the 
8172         protocol values.
8173         (append_int_field), (append_uint_field), (append_string_field):
8174         Append the field name as a byte rather than four chars.
8175         (delete_int_or_uint_field), (delete_string_field): reflect the
8176         fact that the field name and typecode now occupy 4 bytes instead
8177         of 8.
8178         (decode_string_field), (decode_header_data): update to reflect
8179         protocol changes and move the field specific encoding from
8180         decode_string_field() back into decode_header_data().
8181         
8182         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8183         Add utility to aid debugging.
8184         
8185         * dbus/dbus-message-builder.c:
8186         (append_string_field), (_dbus_message_data_load): Update to
8187         reflect protocol changes; Change the FIELD_NAME directive
8188         to HEADER_FIELD and allow it to take the field's conventional
8189         name rather than the actual value.
8190         
8191         * test/data/*/*.message: Update to use HEADER_FIELD instead
8192         of FIELD_NAME; Always align the header on an 8 byte boundary
8193         *before* updating the header length.
8194
8195 2003-09-15  Havoc Pennington  <hp@pobox.com>
8196
8197         * dbus/dbus-pending-call.c: add the get/set object data
8198         boilerplate as for DBusConnection, etc. Use generic object data
8199         for the notify callback.
8200
8201         * glib/dbus-gparser.c (parse_node): parse child nodes
8202
8203         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8204         
8205         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8206         contain functions shared between the convenience lib and the
8207         installed lib
8208
8209         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8210         -export-symbols-regex to the GLib library
8211
8212         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8213         fix the locking in here, and add a default handler for
8214         Introspect() that just returns sub-nodes.
8215
8216 2003-09-14  Havoc Pennington  <hp@pobox.com>
8217
8218         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8219         rather than gfoo consistent
8220
8221         * glib/dbus-gproxy.h: delete for now, move contents to
8222         dbus-glib.h, because the include files don't work right since we
8223         aren't in the dbus/ subdir.
8224         
8225         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8226         (dbus_gproxy_end_call): finish
8227         (dbus_gproxy_begin_call): finish
8228
8229         * glib/dbus-gmain.c (dbus_set_g_error): new
8230
8231         * glib/dbus-gobject.c (handle_introspect): include information
8232         about child nodes in the introspection
8233
8234         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8235         function to help in implementation of introspection
8236
8237         * dbus/dbus-object-tree.c
8238         (_dbus_object_tree_list_registered_and_unlock): new function
8239
8240 2003-09-12  Havoc Pennington  <hp@pobox.com>
8241
8242         * glib/dbus-gidl.h: add common base class for all the foo_info
8243         types
8244
8245         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8246         similar to kdcop
8247
8248         * test/Makefile.am: try test srcdir -ef . in addition to test
8249         srcdir = ., one of them should work (yeah lame)
8250         
8251         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8252         library
8253         
8254         * glib/dbus-gparser.h: make description_load routines return
8255         NodeInfo* not Parser*
8256
8257         * Makefile.am (SUBDIRS): build test dir after all library dirs
8258
8259         * configure.in: add GTK+ detection
8260
8261 2003-09-07  Havoc Pennington  <hp@pobox.com>
8262
8263         * Make Doxygen contented.
8264
8265 2003-09-07  Havoc Pennington  <hp@pobox.com>
8266
8267         * doc/dbus-specification.sgml: more updates
8268
8269 2003-09-06  Havoc Pennington  <hp@pobox.com>
8270
8271         * doc/dbus-specification.sgml: partial updates
8272
8273         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8274         zillionth time; hopefully I edited the right file this time.
8275
8276         * bus/config-parser.c (append_rule_from_element): support
8277         send_type, send_path, receive_type, receive_path
8278
8279         * bus/policy.c: add message type and path to the list of things
8280         that can be "firewalled"
8281
8282 2003-09-06  Havoc Pennington  <hp@pobox.com>
8283
8284         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8285         (dbus_connection_register_object_path): make this not handle
8286         messages to paths below the given path
8287
8288 2003-09-03  Havoc Pennington  <hp@pobox.com>
8289
8290         * test/glib/Makefile.am: add this with random glib-linked test
8291         programs
8292
8293         * glib/Makefile.am: remove the random test programs from here,
8294         leave only the unit tests
8295
8296         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8297         uscore/javacaps conversion, and fix     
8298         (get_object_property, set_object_property): change to .NET
8299         convention for mapping props to methods, set_FooBar/get_FooBar, 
8300         since one language has such a convention we may as well copy it. 
8301         Plus real methods in either getFooBar or get_foo_bar style won't 
8302         collide with this convention.
8303
8304 2003-09-01  Havoc Pennington  <hp@pobox.com>
8305
8306         * glib/dbus-gparser.c: implement
8307
8308         * glib/dbus-gobject.c: start implementing skeletons support
8309
8310         * configure.in: when disabling checks/assert, also define
8311         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8312
8313 2003-09-01  Havoc Pennington  <hp@pobox.com>
8314
8315         * glib/Makefile.am: rearrange a bunch of files and get "make
8316         check" framework set up
8317
8318 2003-08-31  Havoc Pennington  <hp@pobox.com>
8319
8320         * fix build with --disable-tests
8321
8322 2003-08-30  Havoc Pennington  <hp@pobox.com>
8323
8324         * dbus/dbus-connection.c: purge DBusMessageHandler
8325
8326         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8327         use callbacks everywhere
8328
8329 2003-08-30  Havoc Pennington  <hp@pobox.com>
8330
8331         * test/data/valid-config-files/system.d/test.conf: change to 
8332         root for the user so warnings don't get printed
8333
8334         * dbus/dbus-message.c: add dbus_message_get_path,
8335         dbus_message_set_path
8336         
8337         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8338         dispatching to a path
8339
8340         * dbus/dbus-string.c (_dbus_string_validate_path): add
8341
8342         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8343         (_dbus_marshal_object_path): implement
8344
8345         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8346         to contain the path to the target object
8347         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8348         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8349
8350 2003-08-30  Havoc Pennington  <hp@pobox.com>
8351
8352         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8353
8354 2003-08-29  Havoc Pennington  <hp@pobox.com>
8355
8356         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8357         registered
8358         (struct DBusObjectSubtree): shrink this
8359         a lot, since we may have a lot of them
8360         (_dbus_object_tree_free_all_unlocked): implement
8361         (_dbus_object_tree_dispatch_and_unlock): implement
8362
8363 2003-08-29  Havoc Pennington  <hp@pobox.com>
8364
8365         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8366
8367 2003-08-28  Havoc Pennington  <hp@pobox.com>
8368
8369         purge DBusObjectID
8370         
8371         * dbus/dbus-connection.c: port to no ObjectID, create a
8372         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8373
8374         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8375         everything except UnregisterFunction and MessageFunction
8376         
8377         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8378         add DBUS_TYPE_OBJECT_PATH
8379         
8380         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8381         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8382         path-based object IDs
8383
8384 2003-08-25  Havoc Pennington  <hp@pobox.com>
8385
8386         Just noticed that dbus_message_test is hosed, I wonder when I
8387         broke that. I thought make check was passing earlier...
8388         
8389         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8390         container tree, will replace most of dbus-object-registry
8391
8392         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8393         screwup
8394
8395 2003-08-19  Havoc Pennington  <hp@pobox.com>
8396
8397         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8398         (dbus_message_is_error): fix this function
8399
8400         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8401         match
8402
8403         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8404         reflect clarified man page
8405         (bus_client_policy_check_can_send): ditto
8406         
8407         * bus/session.conf.in: fixup
8408
8409         * bus/system.conf.in: fixup
8410
8411 2003-08-18  Havoc Pennington  <hp@redhat.com>
8412
8413         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8414
8415         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8416         dumb bug created earlier (wrong order of args to
8417         decode_header_data())
8418         
8419         * tools/dbus-send.c: port
8420
8421         * tools/dbus-print-message.c (print_message): port
8422
8423         * test/data/*messages: port all messages over
8424         
8425         * dbus/dbus-message-builder.c: support including 
8426         message type
8427         
8428         * bus/driver.c: port over
8429         
8430         * bus/dispatch.c: port over to new stuff
8431
8432         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8433         rename disconnect signal to "Disconnected"
8434
8435 2003-08-17  Havoc Pennington  <hp@pobox.com>
8436
8437         This doesn't compile yet, but syncing up so I can hack on it from
8438         work. What are branches for if not broken code? ;-)
8439         
8440         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8441         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8442         DBUS_HEADER_FIELD_ERROR_NAME
8443         
8444         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8445         for the interface+member pairs
8446         (string_hash): change to use g_str_hash algorithm
8447         (find_direct_function, find_string_function): refactor these to
8448         share most code.
8449         
8450         * dbus/dbus-message.c: port all of this over to support 
8451         interface/member fields instead of name field
8452
8453         * dbus/dbus-object-registry.c: port over
8454         
8455         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8456         from _dbus_string_validate_name
8457
8458         * bus/dbus-daemon-1.1: change file format for the 
8459         <deny>/<allow> stuff to match new message naming scheme
8460
8461         * bus/policy.c: port over
8462
8463         * bus/config-parser.c: parse new format
8464         
8465 2003-08-16  Havoc Pennington  <hp@pobox.com>
8466
8467         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8468         broken assertion
8469
8470         * glib/dbus-gproxy.c: some hacking
8471
8472 2003-08-15  Havoc Pennington  <hp@redhat.com>
8473
8474         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8475
8476         * dbus/dbus-connection.c
8477         (dbus_connection_send_with_reply_and_block): factor out internals;
8478         change to convert any error replies to DBusError instead of 
8479         returning them as a message
8480
8481 2003-08-15  Havoc Pennington  <hp@pobox.com>
8482
8483         * dbus/dbus-connection.c, 
8484         dbus/dbus-pending-call.c: Finish the pending call stuff
8485
8486 2003-08-14  Havoc Pennington  <hp@redhat.com>
8487
8488         * dbus/dbus-pending-call.c: start on new object that will replace
8489         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8490         replies
8491
8492         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8493         with remote interfaces
8494
8495         * dbus/dbus-gidl.c: do the boring boilerplate in here
8496         
8497 2003-08-12  Havoc Pennington  <hp@pobox.com>
8498
8499         * bus/dispatch.c (bus_dispatch): make this return proper 
8500         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8501
8502         * dbus/dbus-errors.c (dbus_set_error): use
8503         _dbus_string_append_printf_valist
8504
8505         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8506         (_dbus_string_append_printf): new
8507
8508         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8509         UNKNOWN_METHOD
8510
8511         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8512         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8513         message is unhandled.
8514
8515 2003-08-11  Havoc Pennington  <hp@pobox.com>
8516
8517         * bus/test.c (client_disconnect_handler): change to return
8518         HANDLED (would have been REMOVE_MESSAGE)
8519
8520         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8521         HANDLED/NOT_YET_HANDLED instead of
8522         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8523         should be used.
8524
8525 2003-08-10  Havoc Pennington  <hp@pobox.com>
8526
8527         * tools/dbus-send.c (main): add --type argument, for now
8528         supporting only method_call and signal types.
8529
8530         * tools/dbus-print-message.c: print message type
8531
8532         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8533         init connection->objects
8534
8535         * doc/dbus-specification.sgml: fix sgml
8536
8537         * bus/*.c: port over to object-instance API changes
8538
8539         * test/test-service.c: ditto
8540         
8541         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8542         name, we will have to fix up the rest of the code to also handle
8543         this
8544         (dbus_message_new): generic message-creation call
8545         (set_string_field): allow appending name field
8546
8547 2003-08-06  Havoc Pennington  <hp@pobox.com>
8548
8549         * dbus/dbus-object-registry.c: implement signal connection 
8550         and dispatch
8551
8552         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8553
8554         * dbus/dbus-internals.c (_dbus_memdup): new function
8555
8556 2003-08-02  Havoc Pennington  <hp@pobox.com>
8557
8558         * dbus/dbus-message.c (dbus_message_get_no_reply)
8559         (dbus_message_set_no_reply): add these and remove
8560         set_is_error/get_is_error
8561
8562         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8563         remove the ERROR flag, since there's now an ERROR type
8564
8565 2003-08-01  Havoc Pennington  <hp@pobox.com>
8566
8567         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8568         implement
8569
8570         * dbus/dbus-message.c (dbus_message_get_type): new function
8571
8572         * doc/dbus-specification.sgml: add "type" byte to messages
8573
8574 2003-08-01  Havoc Pennington  <hp@pobox.com>
8575
8576         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8577         a message type enum to distinguish kinds of message
8578         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8579         that need not be replied to
8580
8581 2003-08-01  Havoc Pennington  <hp@pobox.com>
8582
8583         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8584         (unpack_8_octets): fix no-64-bit-int bug
8585
8586         * dbus/dbus-object-registry.c (validate_id): validate the 
8587         connection ID bits, not just the instance ID.
8588
8589         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8590         the connection-global 33 bits of the object ID
8591
8592         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8593         object ID in the new way
8594
8595         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8596         define server/client/instance bits.
8597
8598 2003-07-30  Havoc Pennington  <hp@pobox.com>
8599
8600         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8601         build
8602
8603 2003-07-13  Havoc Pennington  <hp@pobox.com>
8604
8605         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8606         fields to DBusObjectVTable and DBusObjectInfo
8607
8608 2003-07-12  Havoc Pennington  <hp@pobox.com>
8609
8610         * dbus/dbus-object-registry.c: implement unit test,
8611         fix bugs discovered in process
8612
8613         * dbus/dbus-connection.c: remove handler_table and
8614         register_handler(), add DBusObjectRegistry usage
8615
8616         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8617         (dbus_object_id_set_null): new functions
8618
8619 2003-07-08  Havoc Pennington  <hp@pobox.com>
8620
8621         * dbus/dbus-object.c: implement some of this
8622
8623         * dbus/dbus-object-registry.c
8624         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8625         param
8626         (_dbus_object_registry_new): handle OOM
8627
8628 2003-07-08  Havoc Pennington  <hp@pobox.com>
8629
8630         * dbus/dbus-object.h: sketch out an API for registering objects
8631         with a connection, that allows us to use as little as 24 bytes
8632         per object and lets application code represent an object in 
8633         any conceivable way.
8634
8635         * dbus/dbus-object-registry.c: implement the hard bits of the
8636         DBusConnection aspect of object API. Not yet wired up.
8637         
8638 2003-07-06  Havoc Pennington  <hp@pobox.com>
8639
8640         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8641         (_dbus_marshal_object_id): new
8642         (_dbus_demarshal_object_id): new
8643         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8644         consolidate identical switch cases. Don't conditionalize handling
8645         of DBUS_TYPE_UINT64, need to handle the type always.
8646         (_dbus_marshal_validate_arg): consolidate identical cases, and
8647         handle DBUS_TYPE_OBJECT_ID
8648
8649         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8650
8651         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8652
8653 2003-09-28  Havoc Pennington  <hp@pobox.com>
8654
8655         * real 0.13 release
8656
8657 2003-09-28  Havoc Pennington  <hp@pobox.com>
8658
8659         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8660         to work with Debian db2html
8661
8662 2003-09-28  Havoc Pennington  <hp@pobox.com>
8663
8664         * configure.in: 0.13
8665
8666         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8667         stylesheet-images for benefit of Debian
8668         
8669         Change back to using filesystem-linked sockets for the system
8670         bus, so only root can create the default system bus address.
8671         
8672         * bus/system.conf.in: change to use
8673         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8674
8675         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8676         from here.
8677
8678         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8679         here, and AC_DEFINE DBUS_SYSTEM_PATH
8680
8681 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8682
8683         * doc/TODO:
8684         * doc/busconfig.dtd:
8685         Add busconfig DTD.
8686         
8687 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8688
8689         * doc/dbus-specification.sgml:
8690         Add activation reply values.
8691         
8692 2003-08-05  Havoc Pennington  <hp@redhat.com>
8693
8694         * configure.in: 0.12
8695
8696 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8697
8698         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8699         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8700         (add_watch), (remove_watch), (create_source):
8701         Refcount fds, fixes some reentrancy issues.
8702         
8703 2003-07-30  Havoc Pennington  <hp@redhat.com>
8704
8705         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8706         bus address to be abstract if we have abstract sockets
8707
8708         * NEWS: update
8709
8710 2003-07-28  Havoc Pennington  <hp@redhat.com>
8711
8712         * bus/messagebus.in: fix to avoid processname/servicename 
8713         confusion, from Michael Kearey
8714         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8715         
8716 2003-07-23  Havoc Pennington  <hp@pobox.com>
8717
8718         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8719         fix from Andy Hanton to remove broken "+1"
8720
8721 2003-07-16  Havoc Pennington  <hp@pobox.com>
8722
8723         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8724         babysitter process, as suggested by Thomas Leonard, so 
8725         an "eval `dbus-launch --exit-with-session`" will actually 
8726         return
8727
8728 2003-07-16  Havoc Pennington  <hp@pobox.com>
8729
8730         * configure.in: print out EXPANDED_* variables in the summary at
8731         the end; clean up the code that computes EXPANDED_ variables and
8732         get the ones using exec_prefix right. Should make things work
8733         when you build without --prefix
8734
8735 2003-06-29  Havoc Pennington  <hp@pobox.com>
8736
8737         * mono/Test.cs (class Test): fire up a main loop and run it
8738
8739         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8740         done once, the app has to do it
8741
8742 2003-06-26  Havoc Pennington  <hp@pobox.com>
8743
8744         * mono/Connection.cs: set up connection with the glib main loop
8745
8746 2003-07-01  Havoc Pennington  <hp@redhat.com>
8747
8748         * doc/dbus-specification.sgml: clarify the format of a type code,
8749         change suggested by Jim Blandy
8750
8751 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8752
8753         * doc/Makefile.am:
8754         * tools/Makefile.am: Don't assume srcdir == builddir.
8755
8756         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8757         the allocated block.
8758         (_dbus_memory_test): New function.
8759         * dbus/dbus-test.h: Add _dbus_memory_test ().
8760         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8761
8762         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8763         of %c%c%c%c.
8764         (dbus_message_new): Remove obsolete @todo.
8765
8766         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8767         (_dbus_marshal_set_uint64): Fix comment.
8768
8769         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8770         hardcode FIELD_REPLY_SERIAL.
8771
8772         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8773         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8774
8775         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8776         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8777
8778 2003-06-24  Havoc Pennington  <hp@pobox.com>
8779
8780         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8781
8782 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8783
8784         * configure.in:
8785         * gcj/.cvsignore:
8786         * gcj/Hello.java:
8787         * gcj/Makefile.am:
8788         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8789         * gcj/org/.cvsignore:
8790         * gcj/org/Makefile.am:
8791         * gcj/org/freedesktop/.cvsignore:
8792         * gcj/org/freedesktop/Makefile.am:
8793         * gcj/org/freedesktop/dbus/.cvsignore:
8794         * gcj/org/freedesktop/dbus/Makefile.am:
8795         * gcj/org/freedesktop/dbus/Message.java: (Message),
8796         (Message.Message):
8797         * gcj/org/freedesktop/dbus/natMessage.cc:
8798         Fix the build system.
8799
8800 2003-06-22  Havoc Pennington  <hp@pobox.com>
8801
8802         * mono/Connection.cs: add more bindings
8803
8804         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8805         more than once.
8806
8807 2003-06-22  Havoc Pennington  <hp@pobox.com>
8808
8809         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8810         Start wrapping more stuff.
8811
8812 2003-06-22  Havoc Pennington  <hp@pobox.com>
8813
8814         * mono/Message.cs: implement Message.Wrap() that ensures we only
8815         have a single C# wrapper per DBusMessage, assuming it works which
8816         it probably doesn't.
8817
8818         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8819         (dbus_message_free_data_slot): new
8820         (dbus_message_set_data): new
8821         (dbus_message_get_data): new
8822
8823 2003-06-22  Havoc Pennington  <hp@pobox.com>
8824
8825         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8826         (_dbus_data_slot_allocator_alloc): rework these to keep a
8827         reference count on each slot and automatically manage a global
8828         slot ID variable passed in by address
8829
8830         * bus/bus.c: convert to new dataslot API
8831
8832         * dbus/dbus-bus.c: convert to new dataslot API
8833
8834         * dbus/dbus-connection.c: convert to new dataslot API
8835
8836         * dbus/dbus-server.c: convert to new dataslot API
8837
8838         * glib/dbus-gmain.c: ditto
8839
8840         * bus/test.c: ditto
8841
8842         * bus/connection.c: ditto
8843
8844 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8845
8846         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8847         after the gcj checks so that the correct configuration tags
8848         will be added to libtool.
8849
8850         * dbus-glib-1.pc.in: No need to specify any includes since
8851         dbus-1.pc.in has those.
8852
8853 2003-06-22  Havoc Pennington  <hp@pobox.com>
8854
8855         * mono/*, gcj/*, configure.in, Makefile.am:
8856         Check in makefiles and subdirs for mono and gcj bindings.
8857         Neither binding actually exists, just trying to get through
8858         all the build and other boring bits.
8859
8860 2003-06-21  Philip Blundell  <philb@gnu.org>
8861
8862         * tools/dbus-monitor.1: Updated.
8863
8864         * tools/dbus-send.1: Likewise.
8865
8866 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8867
8868         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8869         for hangup and error after checking read so we won't discard
8870         pending data if both hangup and read are set.
8871
8872 2003-06-19  Philip Blundell  <philb@gnu.org>
8873
8874         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8875
8876         * tools/dbus-send.c: Accept both --system and --session.
8877
8878         * tools/dbus-monitor.c: Same here.
8879
8880 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8881
8882         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8883         from C++ (Patch by Miloslav Trmac).
8884
8885 2003-06-15  Joe Shaw  <joe@assbarn.com>
8886
8887         * configure.in: Check for socklen_t.
8888
8889         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8890
8891         * test/test-segfault.c: Add #include <sys/time.h>
8892
8893         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8894         dbus-launch needs it.
8895
8896 2003-06-09  Havoc Pennington  <hp@redhat.com>
8897
8898         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8899         SUN_LEN, it breaks abstract socket usage
8900
8901         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8902         starts of lines.
8903
8904 2003-06-04  Havoc Pennington  <hp@pobox.com>
8905
8906         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8907         using unix:abstract=/foo, and when listening in a tmpdir
8908         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8909
8910         * dbus/dbus-transport.c (_dbus_transport_open): support
8911         unix:abstract=/foo
8912
8913         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8914         support abstract sockets
8915
8916         * dbus/dbus-transport-unix.c
8917         (_dbus_transport_new_for_domain_socket): support abstract sockets
8918
8919         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8920         toggle as an argument, implement abstract namespace support
8921         (_dbus_listen_unix_socket): ditto
8922
8923         * configure.in: add --enable-abstract-sockets and implement
8924         a configure check for autodetection of the right value.
8925
8926 2003-06-01  Havoc Pennington  <hp@pobox.com>
8927
8928         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8929         in /tmp (though on Linux this will end up being useless,
8930         when we add abstract namespace support)
8931
8932         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8933         subst'ing it
8934
8935 2003-05-28  Colin Walters  <walters@verbum.org>
8936
8937         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8938
8939 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8940
8941         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8942
8943 2003-05-17  Colin Walters  <walters@gnu.org>
8944
8945         * tools/dbus-send.c: Don't exit with an error code if --help was
8946         passed.  Default to using the session bus instead of the system
8947         one.
8948
8949         * tools/dbus-launch.c: Ditto.
8950
8951         * tools/dbus-monitor.c: Ditto.
8952
8953         * tools/dbus-send.1: Update with new arguments.
8954
8955         * tools/dbus-launch.c: Emit code to export variables.  New
8956         arguments -s and -c to specify shell syntax, and a bit of code to
8957         autodetect syntax.  Also, allow specifying a program to run.
8958
8959         * tools/dbus-launch.1: Update with new arguments.
8960
8961         * tools/dbus-send.1: Ditto.
8962
8963         * tools/dbus-monitor.1: Ditto.
8964
8965 2003-05-17  Havoc Pennington  <hp@pobox.com>
8966
8967         * bus/config-parser.c (merge_included): merge in policies from
8968         child configuration file.
8969
8970         * bus/policy.c (bus_policy_merge): function to merge two policies
8971         together
8972
8973 2003-05-16  Havoc Pennington  <hp@redhat.com>
8974
8975         * dbus/dbus-connection.c: disable verbose lock spew
8976
8977         * tools/dbus-send.c: add --print-reply command line option
8978
8979         * tools/dbus-print-message.h (print_message): new util function
8980         shared by dbus-send and dbus-monitor
8981
8982         * tools/dbus-monitor.c (handler_func): exit on disconnect
8983
8984         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8985         disconnected, don't try to use the read_watch
8986
8987         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8988         so we can find this bug more easily
8989
8990 2003-05-16  Havoc Pennington  <hp@redhat.com>
8991
8992         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8993         NULL as DBusHashTable is annoyingly likely to do.
8994
8995 2003-05-16  Colin Walters  <walters@verbum.org>
8996
8997         * tools/dbus-monitor.c: Add --session argument and usage()
8998         function.
8999
9000         * tools/dbus-monitor.1: Update with new --session arg.
9001
9002         * bus/Makefile.am (install-data-hook): Create
9003         $(libdir)/dbus-1.0/services so that the session bus is happy.
9004
9005 2003-05-15  Havoc Pennington  <hp@redhat.com>
9006
9007         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9008         on non-x86. ifdef's are evil.
9009
9010 2003-05-15  Havoc Pennington  <hp@redhat.com>
9011
9012         * configure.in: 0.11
9013
9014         * NEWS: update
9015
9016         * bus/Makefile.am (initddir): apparently we are supposed to put
9017         init scripts in /etc/rc.d/init.d not /etc/init.d
9018
9019         * bus/Makefile.am: remove the "you must --enable-tests to make
9020         check" as it broke distcheck
9021
9022         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9023
9024 2003-05-13  James Willcox  <jwillcox@gnome.org>
9025
9026         * configure.in:
9027         * bus/activation.c: (bus_activation_service_created),
9028         (bus_activation_activate_service):
9029         * bus/driver.c: (bus_driver_send_service_deleted),
9030         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9031         (bus_driver_send_service_acquired),
9032         (bus_driver_send_welcome_message),
9033         (bus_driver_handle_list_services):
9034         * bus/session.conf.in:
9035         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9036         (dbus_bus_service_exists), (dbus_bus_activate_service):
9037         * dbus/dbus-bus.h:
9038
9039         Add some convenience API which lets you activate a service, and did a
9040         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9041         and dbus_message_get_args()
9042
9043 2003-05-11  Havoc Pennington  <hp@pobox.com>
9044
9045         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9046         calling _dbus_marshal_validate_arg() for every byte in a byte
9047         array, etc.
9048
9049         * dbus/dbus-message-handler.c: use atomic reference counting to
9050         reduce number of locks slightly; the global lock in here sucks
9051
9052         * dbus/dbus-connection.c
9053         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9054         update_dispatch_status that can be called with lock held; then use
9055         in a couple places to reduce locking/unlocking
9056         (dbus_connection_send): hold the lock over the whole function
9057         instead of acquiring it twice.
9058
9059         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9060
9061         * bus/connection.c (bus_connections_setup_connection): fix access
9062         to already-freed memory.
9063
9064         * dbus/dbus-connection.c: keep a little cache of linked list
9065         nodes, to avoid using the global linked list alloc lock in the
9066         normal send-message case. Instead we just use the connection lock
9067         that we already have to take.
9068
9069         * dbus/dbus-list.c (_dbus_list_find_last): new function
9070
9071         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9072         change to use a struct for the atomic type; fix docs,
9073         they return value before increment, not after increment.
9074
9075         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9076         (_dbus_string_append_8_aligned): new functions to try to
9077         microoptimize this operation.
9078         (reallocate_for_length): break this out of set_length(), to
9079         improve profile info, and also so we can consider inlining the
9080         set_length() part.
9081
9082         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9083         strings with some preallocation, cuts down on our calls to realloc
9084         a fair bit. Though if we can get the "move entire string to empty
9085         string" optimization below to kick in here, it would be better.
9086
9087         * dbus/dbus-string.c (_dbus_string_move): just call
9088         _dbus_string_move_len
9089         (_dbus_string_move_len): add a special case for moving
9090         an entire string into an empty string; we can just
9091         swap the string data instead of doing any reallocs.
9092         (_dbus_string_init_preallocated): new function
9093
9094 2003-05-11  Havoc Pennington  <hp@pobox.com>
9095
9096         Write a "test-profile" that does echo client-server with threads;
9097         profile reveals lock contention, memcpy/realloc of buffers, and
9098         UTF-8 validation as hot spots. 20% of lock contention eliminated
9099         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9100         contention is global mempool locks for GList and DBusList.
9101
9102         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9103         x86 implementation
9104
9105         * dbus/dbus-connection.c (struct DBusConnection): use
9106         dbus_atomic_t for the reference count
9107
9108         * dbus/dbus-message.c (struct DBusMessage): declare
9109         dbus_atomic_t values as volatile
9110
9111         * configure.in: code to detect ability to use atomic integer
9112         operations in assembly, from GLib patch
9113
9114         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9115         time, tired of it being wrong in threads and forked processes
9116
9117         * glib/test-profile.c: a little program to bounce messages back
9118         and forth between threads and eat CPU
9119
9120         * dbus/dbus-connection.c: add debug spew macros for debugging
9121         thread locks; include config.h at top; fix deadlock in
9122         dbus_connection_flush()
9123
9124 2003-05-08  Havoc Pennington  <hp@pobox.com>
9125
9126         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9127         data from getting written, and there wasn't a good reason to
9128         use _exit really.
9129
9130         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9131         dbus_verbose lines in test coverage
9132         (main): add list of functions sorted by # of untested blocks
9133         to the coverage report
9134
9135         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9136
9137         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9138
9139         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9140         extend test coverage
9141
9142         * test/data/auth/cancel.auth-script: test canceling an
9143         authentication
9144
9145         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9146         aren't used. in CVS history if we end up needing them.
9147
9148 2003-05-04  Havoc Pennington  <hp@pobox.com>
9149
9150         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9151         unit test
9152
9153         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9154         function, which assumed length was in # of strings, not bytes
9155
9156         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9157         missing coverage
9158
9159         * dbus/dbus-connection.c
9160         (_dbus_connection_queue_received_message): disable function for
9161         now, we are only using it in test mode
9162
9163         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9164         remove a mistaken FIXME
9165
9166 2003-05-04  Havoc Pennington  <hp@pobox.com>
9167
9168         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9169         unlock mutex on successful return, patch from Anders Gustafsson
9170
9171 2003-05-04  Havoc Pennington  <hp@pobox.com>
9172
9173         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9174         Anders Gustafsson
9175
9176 2003-05-04  Havoc Pennington  <hp@pobox.com>
9177
9178         * tools/dbus-launch.c: implement
9179
9180         * bus/main.c (main), bus/bus.c (bus_context_new):
9181         implement --print-pid and --fork
9182
9183 2003-05-03  Havoc Pennington  <hp@redhat.com>
9184
9185         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9186         the address had no value, and add to test suite. Fix and
9187         regression test from Miloslav Trmac
9188
9189 2003-05-03  Havoc Pennington  <hp@pobox.com>
9190
9191         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9192         watch is invalid when handled
9193
9194         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9195         dbus-launch utility to launch the bus from a shell script.  Didn't
9196         actually implement dbus-launch yet, it's just a placeholder still.
9197
9198 2003-05-03  Havoc Pennington  <hp@pobox.com>
9199
9200         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9201         daemon; also documents daemon config file, so replaces
9202         doc/config-file.txt. Corrected some stuff from config-file.txt in
9203         the process of moving it.
9204
9205 2003-05-03  Havoc Pennington  <hp@pobox.com>
9206
9207         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9208         add some man pages
9209
9210 2003-05-03  Colin Walters  <walters@verbum.org>
9211
9212         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9213         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9214
9215         * Makefile.am: Update to use new .pc versioning scheme.
9216
9217 2003-05-02  Havoc Pennington  <hp@redhat.com>
9218
9219         * bus/system.conf.in: allow send/receive to/from message bus
9220         service
9221
9222 2003-04-30  Havoc Pennington  <hp@redhat.com>
9223
9224         * configure.in: print a note when building with unit tests and
9225         without assertions
9226
9227 2003-04-30  Havoc Pennington  <hp@redhat.com>
9228
9229         * Makefile.am: add a check-local that complains if you didn't
9230         configure with --enable-tests
9231
9232 2003-04-29  Havoc Pennington  <hp@redhat.com>
9233
9234         * glib/dbus-gmain.c: docs cleanups
9235
9236         * dbus/dbus-types.h: add docs on int64 types
9237
9238         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9239         public API docs section
9240
9241 2003-04-29  Havoc Pennington  <hp@redhat.com>
9242
9243         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9244         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9245         parallel install API version, not with the D-BUS package version.
9246
9247         * HACKING: move some of README over here
9248
9249         * README: updates, and document API/ABI policy
9250
9251         * configure.in: reindentation
9252
9253 2003-04-29  Havoc Pennington  <hp@redhat.com>
9254
9255         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9256         to use this library" to be sure people have the right
9257         expectations.
9258
9259 2003-04-28  Havoc Pennington  <hp@redhat.com>
9260
9261         * configure.in: add --enable-docs which by default is auto yes if
9262         doxygen and db2html found, no otherwise; but can be forced on/off
9263
9264         * doc/Makefile.am: conditionalize whether to build docs on
9265         --enable-docs
9266
9267 2003-04-28  Havoc Pennington  <hp@redhat.com>
9268
9269         * configure.in: 0.10
9270
9271         * NEWS: update
9272
9273         * bus/system.conf.in: add <includedir>system.d</includedir>
9274
9275         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9276         username was provided but not uid
9277
9278         * bus/config-parser.c (struct BusConfigParser): keep track of
9279         whether the parser is toplevel or was included; change some
9280         of the error handling if it's included.
9281
9282 2003-04-27  Havoc Pennington  <hp@pobox.com>
9283
9284         Unbreak my code...
9285
9286         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9287         report correct status if we finish processing authentication
9288         inside this function.
9289
9290         * bus/activation.c (try_send_activation_failure): use
9291         bus_transaction_send_error_reply
9292
9293         * bus/connection.c (bus_connection_get_groups): return an error
9294         explaining the problem
9295
9296         * bus/bus.c (bus_context_check_security_policy): implement
9297         restriction here that inactive connections can only send the
9298         hello message. Also, allow bus driver to send anything to
9299         any recipient.
9300
9301         * bus/connection.c (bus_connection_complete): create the
9302         BusClientPolicy here instead of on-demand.
9303         (bus_connection_get_policy): don't return an error
9304
9305         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9306         sender field in message being replied to
9307
9308         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9309         causing it to return FALSE always
9310
9311         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9312         we checked sender rather than destination
9313
9314 2003-04-25  Havoc Pennington  <hp@redhat.com>
9315
9316         test suite is slightly hosed at the moment, will fix soon
9317
9318         * bus/connection.c (bus_connections_expire_incomplete): fix to
9319         properly disable the timeout when required
9320         (bus_connection_set_name): check whether we can remove incomplete
9321         connections timeout after we complete each connection.
9322
9323         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9324         probably still broken.
9325
9326         * bus/services.c (bus_registry_acquire_service): implement max
9327         number of services owned, and honor allow/deny rules on which
9328         services a connection can own.
9329
9330         * bus/connection.c (bus_connection_get_policy): report errors here
9331
9332         * bus/activation.c: implement limit on number of pending
9333         activations
9334
9335 2003-04-25  Havoc Pennington  <hp@redhat.com>
9336
9337         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9338         where we used >= 0 instead of != DBUS_UID_UNSET.
9339
9340 2003-04-25  Havoc Pennington  <hp@redhat.com>
9341
9342         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9343         were toggled without add/remove, fix from Anders Gustafsson
9344
9345 2003-04-24  Havoc Pennington  <hp@redhat.com>
9346
9347         * test/data/valid-config-files/basic.conf: add <limit> tags to
9348         this test
9349
9350         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9351         <limit> tag in configuration file.
9352
9353 2003-04-24  Havoc Pennington  <hp@redhat.com>
9354
9355         * bus/dispatch.c: somehow missed some name_is
9356
9357         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9358         (_dbus_timeout_set_interval): new
9359
9360         * bus/connection.c (bus_connections_setup_connection): record time
9361         when each connection is first set up, and expire them after the
9362         auth timeout passes.
9363
9364 2003-04-24  Havoc Pennington  <hp@redhat.com>
9365
9366         * dbus/dbus-message.c (dbus_message_name_is): rename
9367         (dbus_message_service_is): rename
9368         (dbus_message_sender_is): rename
9369         (dbus_message_get_service): rename
9370
9371 2003-04-24  Havoc Pennington  <hp@redhat.com>
9372
9373         * configure.in: add --enable-checks
9374
9375         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9376
9377         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9378         to use thread locks.
9379         (_dbus_connection_handler_destroyed_locked): move some private
9380         functions into proper docs group
9381
9382         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9383         _dbus_return_val_if_fail
9384
9385         Throughout: use dbus_return_if_fail
9386
9387 2003-04-23  James Willcox  <jwillcox@gnome.org>
9388
9389         * glib/dbus-glib.h:
9390         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9391         (dbus_connection_setup_with_g_main),
9392         (dbus_server_setup_with_g_main):
9393         * glib/test-dbus-glib.c: (main):
9394         * glib/test-thread-client.c: (main):
9395         * glib/test-thread-server.c: (new_connection_callback), (main):
9396         * tools/dbus-monitor.c: (main):
9397
9398         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9399         and dbus_server_setup_with_g_main().
9400
9401 2003-04-20  Havoc Pennington  <hp@pobox.com>
9402
9403         * doc/dbus-specification.sgml: document the restrictions on
9404         message and service names
9405
9406 2003-04-22  Havoc Pennington  <hp@redhat.com>
9407
9408         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9409         support, and do some code cleanups to share more code and
9410         speed up array marshal/demarshal.
9411
9412         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9413
9414         * configure.in: generate dbus-arch-deps.h
9415
9416         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9417         64-bit typecodes
9418
9419 2003-04-22  Havoc Pennington  <hp@redhat.com>
9420
9421         * test/data/valid-messages/opposite-endian.message: fix test
9422         to use proper type for rply field
9423
9424         * test/data/invalid-messages: add tests for below validation
9425
9426         * dbus/dbus-message.c (decode_header_data): validate field types,
9427         and validate that named fields are valid names
9428         (decode_name_field): consider messages in the
9429         org.freedesktop.Local. namespace to be invalid.
9430
9431         * dbus/dbus-string.c (_dbus_string_validate_name): new
9432
9433 2003-04-19  Havoc Pennington  <hp@pobox.com>
9434
9435         * bus/driver.c (bus_driver_handle_hello): check limits and
9436         return an error if they are exceeded.
9437
9438         * bus/connection.c: maintain separate lists of active and inactive
9439         connections, and a count of each. Maintain count of completed
9440         connections per user. Implement code to check connection limits.
9441
9442         * dbus/dbus-list.c (_dbus_list_unlink): export
9443
9444         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9445         number of bytes in the message queue for a connection
9446
9447 2003-04-18  Havoc Pennington  <hp@pobox.com>
9448
9449         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9450
9451         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9452         memleaks
9453
9454         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9455         on realloc be sure to update the pointer in the keyring
9456
9457         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9458         offset to avoid writing to unallocated memory
9459
9460         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9461         try the next mechanism, so we properly handle OOM
9462
9463         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9464         on OOM.
9465         (_dbus_keyring_new): fix OOM bug
9466         (_dbus_keyring_new_homedir): always set error; impose a maximum
9467         number of keys we'll load from the file, mostly to speed up the
9468         test suite and make its OOM checks more useful, but also for
9469         general sanity.
9470
9471         * dbus/dbus-auth.c (process_error_server): reject authentication
9472         if we get an error from the client
9473         (process_cancel): on cancel, send REJECTED, per the spec
9474         (process_error_client): send CANCEL if we get an error from the
9475         server.
9476
9477 2003-04-18  Havoc Pennington  <hp@pobox.com>
9478
9479         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9480         debug spew
9481
9482         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9483         handling problem
9484
9485         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9486         about DBUS_TEST_HOMEDIR once
9487
9488         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9489         the environment
9490
9491         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9492         config file so we test the right thing
9493
9494         Throughout: assorted docs improvements
9495
9496 2003-04-18  Havoc Pennington  <hp@pobox.com>
9497
9498         * glib/dbus-gmain.c: adapt to watch changes
9499
9500         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9501
9502         * dbus/dbus-server.h: remove dbus_server_handle_watch
9503
9504         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9505
9506         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9507         like DBusTimeout, so we don't need dbus_connection_handle_watch
9508         etc.
9509
9510 2003-04-17  Havoc Pennington  <hp@redhat.com>
9511
9512         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9513         database usage so it all goes via the DBusUserDatabase cache.
9514
9515 2003-04-17  Havoc Pennington  <hp@redhat.com>
9516
9517         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9518         there was an OOM watch we skipped, we always return TRUE so we
9519         iterate again to have a look at it again. Fixes test suite hang.
9520         Code rearrangement also lets us lose some memset and only iterate
9521         over callbacks once.
9522
9523         * bus/driver.c (bus_driver_handle_message): sense of test for
9524         reply was backward
9525
9526 2003-04-16  Havoc Pennington  <hp@pobox.com>
9527
9528         * doc/dbus-specification.sgml: make spec say serials are unsigned
9529
9530         * dbus/dbus-message.h: change message serials to unsigned
9531
9532         * dbus/dbus-connection.c: adapt to message serials being unsigned
9533
9534 2003-04-15  Havoc Pennington  <hp@pobox.com>
9535
9536         * bus/bus.c: create and keep around a shared DBusUserDatabase
9537         object.
9538
9539         * bus/connection.c (bus_connection_get_groups): don't cache
9540         groups for user in the connection object, since user database
9541         object now does that.
9542
9543 2003-04-16  Havoc Pennington  <hp@redhat.com>
9544
9545         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9546         list of size counters
9547         (_dbus_message_loader_putback_message_link): put back a popped link
9548
9549         * dbus/dbus-connection.c
9550         (dbus_connection_set_max_live_messages_size): rename
9551         max_received_size
9552         (dbus_connection_get_outgoing_size): get size of outgoing
9553         queue
9554         (_dbus_connection_set_connection_counter): remove this cruft
9555
9556 2003-04-14  Havoc Pennington  <hp@redhat.com>
9557
9558         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9559         caching, but at some point we might want to be able to use a
9560         different database.
9561
9562         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9563         SHA1 conf file to test the sha1 auth mechanism, since the regular
9564         test always uses EXTERNAL when available.
9565
9566         * configure.in,
9567         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9568         add conf file that requires use of sha1 auth
9569
9570 2003-04-13  Havoc Pennington  <hp@pobox.com>
9571
9572         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9573         from Philip Blundell to send messages and monitor them.
9574
9575 2003-04-13  Havoc Pennington  <hp@pobox.com>
9576
9577         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9578         callbacks
9579
9580         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9581         users
9582
9583         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9584         fix to only recover unused bytes if we're already authenticated
9585         (_dbus_transport_get_is_authenticated): fix to still mark us
9586         authenticated if there are unused bytes.
9587
9588         * bus/dispatch.c: implement security policy checking
9589
9590         * bus/connection.c (bus_transaction_send_from_driver): new
9591
9592         * bus/bus.c (bus_context_check_security_policy): new
9593
9594         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9595         now we just set the DBusError and it gets converted to an error
9596         reply.
9597
9598         * bus/connection.c (allow_user_function): enable code using actual
9599         data from the config file
9600
9601         * bus/policy.c (list_allows_user): handle wildcard rules for
9602         user/group connection perms
9603
9604 2003-04-13  Havoc Pennington  <hp@pobox.com>
9605
9606         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9607
9608         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9609
9610         * bus/policy.c (bus_policy_append_mandatory_rule)
9611         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9612         (bus_policy_append_group_rule): new functions
9613
9614 2003-04-12  Havoc Pennington  <hp@pobox.com>
9615
9616         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9617
9618         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9619         the pid/gid/uid, just for paranoia.
9620
9621         * test/break-loader.c (randomly_do_n_things): find a byte
9622         containing a type code, and randomly change it to a different
9623         type code.
9624
9625 2003-04-12  Havoc Pennington  <hp@pobox.com>
9626
9627         * bus/policy.h: change BusPolicy to be the thing from the config
9628         file, and rename old BusPolicy to BusClientPolicy
9629
9630         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9631         match change in how policy works
9632
9633         * dbus/dbus-internals.h: mark assert_not_reached as
9634         __attribute((noreturn))__
9635
9636 2003-04-11  Havoc Pennington  <hp@redhat.com>
9637
9638         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9639         the broadcast service. Use boolean return for ServiceExists.
9640
9641 2003-04-11  Havoc Pennington  <hp@redhat.com>
9642
9643         * configure.in: add another directory to look for qt in.
9644
9645 2003-04-11  Havoc Pennington  <hp@redhat.com>
9646
9647         * AUTHORS: add Colin Walters
9648
9649 2003-04-11  Havoc Pennington  <hp@redhat.com>
9650
9651         * NEWS: update
9652
9653         * configure.in: 0.9
9654
9655 2003-04-11  Havoc Pennington  <hp@redhat.com>
9656
9657         * bus/messagebus.in: remove pid file when stopping the
9658         message bus, since the bus won't have privileges to remove it
9659         itself.
9660
9661 2003-04-11  Havoc Pennington  <hp@redhat.com>
9662
9663         * bus/bus.c (bus_context_new): move credentials change after
9664         creating pidfile
9665
9666 2003-04-11  Havoc Pennington  <hp@pobox.com>
9667
9668         * test/decode-gcov.c: add "below average functions" to the
9669         coverage report, and change how some of the code works.
9670
9671         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9672         not in the coverage stats.
9673
9674         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9675         couple places so running the test suite doesn't result in megaspam.
9676
9677 2003-04-11  Havoc Pennington  <hp@pobox.com>
9678
9679         * bus/dispatch.c (check_existent_service_activation): accept a no
9680         memory error in a place we didn't before
9681
9682         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9683         in case the first one failed," since the test suite is less
9684         broken now.
9685
9686 2003-04-10  Havoc Pennington  <hp@pobox.com>
9687
9688         * bus/dispatch.c (check_segfault_service_activation): add test
9689         for launching an executable that just crashes.
9690
9691         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9692         don't leave a million cores. We'll see how portable this is.
9693
9694 2003-04-10  Havoc Pennington  <hp@pobox.com>
9695
9696         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9697         the possible parent failures before we fork, so that we don't
9698         fail to create a babysitter after creating the child.
9699
9700         * bus/activation.c (bus_activation_activate_service): kill child
9701         if we don't successfully complete the activation.
9702
9703 2003-04-10  Havoc Pennington  <hp@redhat.com>
9704
9705         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9706         the connection if it's disconnected
9707
9708         * bus/activation.c (bus_activation_service_created): use new
9709         transaction features to roll back removal of pending activation if
9710         we don't successfully create the service after all. Don't remove
9711         pending activation if the function fails.
9712
9713         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9714         (_dbus_list_insert_after_link): new code to facilitate
9715         services.c fixes
9716
9717         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9718         new functionality, so we can preallocate the ability to insert
9719         into a hash table.
9720
9721         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9722         allowing us to put custom hooks in a transaction to be used for
9723         cancelling said transaction
9724
9725         * doc/dbus-specification.sgml: add some discussion of secondary
9726         service owners, and disallow zero-length service names
9727
9728         * bus/services.c (bus_registry_acquire_service): new function,
9729         splits out part of bus_driver_handle_acquire_service() and fixes
9730         a bug where we didn't remove the service doing the acquiring
9731         from the secondary queue if we failed to remove the current owner
9732         from the front of the queue.
9733
9734 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9735
9736         * doc/dbus-specification.sgml:
9737         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9738
9739 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9740
9741         * bus/.cvsignore:
9742         * glib/.cvsignore:
9743         * test/.cvsignore:
9744         Added files to cvsignore
9745
9746         * dbus/dbus-message.h:
9747         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9748         Make get_named() take two out argument and return a boolean.
9749         (dbus_message_iter_get_args_valist):
9750         Update usage of get_named().
9751         (dbus_message_iter_append_byte):
9752         Fix typo
9753         (dbus_message_iter_append_named)
9754         Fix typo
9755         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9756         More tests.
9757
9758 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9759
9760         * dbus/dbus-marshal.[ch]:
9761         Add array_type_pos argument to _dbus_marshal_validate_arg.
9762         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9763
9764         * dbus/dbus-message.[ch]:
9765         Multi-dimensional arrays have full type specification in the
9766         outermost array. Iter code re-arranged to handle this.
9767         Added some more iter tests.
9768
9769         * doc/dbus-specification.sgml:
9770         Add me to authors.
9771         Remove old FIXME.
9772         Update new array encoding description.
9773         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9774
9775         * test/data/invalid-messages/array-with-mixed-types.message:
9776         * test/data/valid-messages/array-of-array-of-uint32.message:
9777         Change to the new array format.
9778
9779         * test/data/invalid-messages/too-short-dict.message:
9780         Fix bug in test.
9781
9782         * test/data/valid-messages/recursive-types.message:
9783         Fix up and extend test.
9784
9785 2003-04-10  Havoc Pennington  <hp@pobox.com>
9786
9787         * bus/dispatch.c: lots of fixes
9788
9789         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9790         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9791         that was crack, broke the test service.
9792
9793         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9794         handling to avoid piling up errors if we get a failure on the
9795         first address.
9796
9797         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9798         pid in assertion failures.
9799
9800         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9801         to some fixed size of file descriptor array. Don't return TRUE
9802         anytime a timeout exists, that led to lots of busy loop silliness
9803         in the tests.
9804
9805 2003-04-09  Havoc Pennington  <hp@redhat.com>
9806
9807         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9808         I'd checked this in earlier but hadn't.
9809
9810 2003-04-09  Havoc Pennington  <hp@redhat.com>
9811
9812         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9813         the activation test (man this is getting old!)
9814
9815 2003-04-09  Havoc Pennington  <hp@redhat.com>
9816
9817         * test/test-utils.c: use dispatch status function to fix this up
9818
9819         * bus/connection.c (connection_watch_callback): don't dispatch
9820         from here
9821         (connection_timeout_callback): don't dispatch from here
9822         (bus_connections_setup_connection): set the dispatch status function
9823         (bus_connection_disconnected): unset it
9824
9825         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9826         used to add a connection to be dispatched
9827         (_dbus_loop_iterate): do the dispatching at the end of each
9828         iteration
9829
9830         * dbus/dbus-connection.c
9831         (dbus_connection_set_dispatch_status_function): new function
9832         allowing us to fix up main loop usage
9833         (_dbus_connection_last_unref): free all the various function
9834         user data
9835         (dbus_connection_dispatch): call the DispatchStatusFunction
9836         whenever this function returns
9837         (dbus_connection_handle_watch): call DispatchStatusFunction
9838         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9839         (reply_handler_timeout): call DispatchStatusFunction
9840         (dbus_connection_flush): call DispatchStatusFunction
9841
9842 2003-04-09  Havoc Pennington  <hp@redhat.com>
9843
9844         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9845         a memory leak
9846
9847         * bus/dispatch.c (check_service_activated): fix bug in test
9848
9849         * dbus/dbus-mainloop.c (check_timeout): fix this up
9850
9851         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9852         verbose output so we can sort out output from different processes,
9853         e.g. in the activation case.
9854
9855 2003-04-08  Colin Walters  <walters@gnu.org>
9856
9857         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9858         the pid file.
9859         (bus_context_new): Set it.
9860         (bus_context_unref): Use it to delete the pid file.
9861
9862 2003-04-08  Havoc Pennington  <hp@redhat.com>
9863
9864         * test/data/invalid-messages/array-with-mixed-types.message:
9865         regression test that fails for the moment
9866
9867         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9868         tests for convenience
9869
9870         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9871         array of nil, it broke things.
9872
9873         * test/data/invalid-messages/array-of-nil.message: regression test
9874
9875         * test/data/valid-messages/array-of-array-of-uint32.message:
9876         happened to write this so added it to suite
9877
9878 2003-04-08  Havoc Pennington  <hp@redhat.com>
9879
9880         * bus/driver.c (bus_driver_handle_acquire_service): init
9881         retval/reply before checking name
9882
9883         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9884         recursion depth argument
9885
9886         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9887         in the public struct for future extension
9888
9889         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9890         typo
9891
9892         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9893         message
9894
9895         * doc/dbus-specification.sgml: fix typo
9896
9897 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9898
9899         Implemented recursive types, named types and new-style iters
9900
9901         * bus/driver.c:
9902         * glib/test-thread-client.c: (thread_func):
9903         * glib/test-thread-server.c: (handle_test_message):
9904         * test/test-service.c: (handle_echo):
9905         Update to new api
9906
9907         * dbus/Makefile.am:
9908         * dbus/dbus-dict.c:
9909         * dbus/dbus-dict.h:
9910         * dbus/dbus.h
9911         Remove DBusDict
9912
9913         * dbus/dbus-internals.c: (_dbus_type_to_string):
9914         Update for new types.
9915
9916         * dbus/dbus-marshal.[ch]:
9917         Implement recursive types and the new marshalling format.
9918         Remove hardcoded dict marshalling.
9919         Marshal named types.
9920
9921         * dbus/dbus-message-builder.c:
9922         Add BYTE_ARRAY.
9923         Remove references to old types
9924
9925         * dbus/dbus-message.[ch]:
9926         New non-refcounted iter API that supports recursive iters.
9927         Use iters for appending, including support for recursive
9928         iters.
9929         Add byte and named type support.
9930         Update everything to new marshalling formats.
9931         Add tests for new API.
9932
9933         * dbus/dbus-protocol.h:
9934         Remove old array types.
9935         Add types: BYTE, ARRAY, DICT, NAMED
9936
9937         * dbus/dbus-string.c:
9938         * dbus/dbus-sysdeps.c:
9939         Make parse_double locale safe.
9940
9941         * dbus/dbus-test-main.c:
9942         Call setlocale.
9943
9944         * dbus/dbus-test.c:
9945         Kill dict test
9946
9947         * doc/dbus-specification.sgml:
9948         Update spec
9949
9950         * test/data/incomplete-messages/missing-body.message:
9951         * test/data/invalid-messages/bad-boolean.message:
9952         * test/data/invalid-messages/bad-boolean-array.message:
9953         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9954         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9955         * test/data/invalid-messages/too-short-dict.message:
9956         * test/data/valid-messages/dict-simple.message:
9957         * test/data/valid-messages/dict.message:
9958         * test/data/valid-messages/emptiness.message:
9959         * test/data/valid-messages/lots-of-arguments.message:
9960         * test/data/valid-messages/no-padding.message:
9961         * test/data/valid-messages/recursive-types.message:
9962         Add missing NAME fields
9963         Fix up dicts & arrays
9964
9965         * test/data/invalid-messages/dict-with-nil-value.message:
9966         Removed, this is not invalid anymore.
9967
9968         * test/data/valid-messages/recursive-types.message:
9969         Add new test for deeply recursive types.
9970
9971 2003-04-07  Havoc Pennington  <hp@pobox.com>
9972
9973         * bus/driver.c (bus_driver_handle_acquire_service): return an
9974         error if you try to acquire a service that starts with ':'
9975
9976 2003-04-07  Havoc Pennington  <hp@redhat.com>
9977
9978         * doc/dbus-specification.sgml: require that base service names
9979         start with ':' and that the base service is created/deleted
9980         as first and last things a connection does on the bus
9981
9982         * bus/dispatch.c (check_existent_service_activation): lots more
9983         work on the activation test; it doesn't fully pass yet...
9984
9985         * test/test-service.c (main): fix so we don't memleak the
9986         connection to the message bus
9987         (filter_func): accept a message asking us to exit
9988
9989 2003-04-06  Havoc Pennington  <hp@pobox.com>
9990
9991         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9992         from Colin Walters
9993
9994         * configure.in: fixes to Qt detection from Colin Walters
9995
9996         * doc/Makefile.am: Only remove generated docbook dirs if they
9997         exist, from Colin Walters
9998
9999         * dbus/dbus-bus.c: change how we set well-known connections to
10000         NULL, so that it works if a single connection is stored in
10001         two well-known array slots.
10002
10003         * test/Makefile.am: remove a lot of stuff that isn't immediately
10004         useful, it's in CVS history if we want it.
10005
10006         * test/test-service.c: use dbus-mainloop instead of that
10007         watch.[hc] crack
10008
10009 2003-04-06  Havoc Pennington  <hp@pobox.com>
10010
10011         * dbus/Makefile.am: split lists of sources into stuff that goes in
10012         the library, util functions that go in the lib and are also used
10013         elsewhere, and util functions that are used in tests/daemon but
10014         don't go in the lib.
10015
10016         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10017         here so it can be used in test binaries also
10018
10019 2003-04-06  Havoc Pennington  <hp@pobox.com>
10020
10021         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10022         here in the parent process, so we can return an error if it
10023         fails. Also, move some of the code into the child so the parent
10024         is less hosed if we fail midway through.
10025
10026         * bus/bus.c (bus_context_new): move pidfile detection further up
10027         in the function, before we start overwriting sockets and such.
10028
10029         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10030
10031         * configure.in: add --with-system-pid-file and --with-system-socket
10032
10033 2003-04-06  Colin Walters  <walters@verbum.org>
10034
10035         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10036
10037         * bus/system.conf.in: Declare a pidfile.
10038
10039         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10040         create one (if appropriate).
10041
10042         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10043         (struct BusConfigParser) [pidfile]: New.
10044         (element_type_to_name, merge_included, start_busconfig_child)
10045         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10046         (bus_config_parser_unref): Free it.
10047         (bus_config_parser_get_pidfile): New function.
10048
10049         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10050
10051         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10052
10053         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10054
10055         * dbus/dbus-sysdeps.h: Prototype it.
10056
10057 2003-04-06  Havoc Pennington  <hp@pobox.com>
10058
10059         * bus/bus.c (bus_context_new): print the address in here, rather
10060         than in main(), because we need to do it before forking the daemon
10061
10062         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10063         on the service nonexistent error
10064
10065         * bus/driver.c (bus_driver_handle_acquire_service): set the
10066         sender on the AcquireService reply
10067
10068         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10069         server also listen on a UNIX socket so services can connect to it.
10070
10071 2003-04-06  Havoc Pennington  <hp@pobox.com>
10072
10073         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10074         so it detects deadlocks and also we actually init threads when
10075         debugging.
10076
10077 2003-04-06  Havoc Pennington  <hp@pobox.com>
10078
10079         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10080         save the domain socket name, and unlink it when we disconnect the
10081         server. Means that at least when we exit normally, we won't leave
10082         a bunch of junk in /tmp
10083
10084         * dbus/dbus-transport-unix.c
10085         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10086         memory management). (I was making a real change here but then
10087         didn't)
10088
10089 2003-04-06  Havoc Pennington  <hp@pobox.com>
10090
10091         * bus/bus.c (bus_context_new): fix wrong handling of
10092         server_data_slot_unref() in the error case.
10093
10094         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10095         "(condition) != 0" to _dbus_real_assert so that
10096         "_dbus_assert (pointer)" doesn't cause a warning
10097
10098         * bus/main.c (main): accept --print-address option to print out
10099         the message bus address
10100
10101         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10102
10103         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10104         "tmpdir" option to unix: address on client side
10105
10106         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10107         to unix: address
10108
10109         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10110         we can use to create sockets in the test suite.
10111
10112         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10113         cleanly. To be used for testing.
10114
10115         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10116
10117         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10118
10119         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10120         handle trying to call this when there's no servers active
10121
10122 2003-04-05  Havoc Pennington  <hp@pobox.com>
10123
10124         * NEWS: update
10125
10126         * configure.in: 0.8
10127
10128 2003-04-05  Havoc Pennington  <hp@pobox.com>
10129
10130         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10131         crash on startup. Need to get "try starting the daemon"
10132         in the test suite I guess. ;-)
10133
10134         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10135         tracked the number of open connections; it's better done in
10136         application-specific code as you want it to span all servers etc.
10137
10138 2003-04-05  Havoc Pennington  <hp@pobox.com>
10139
10140         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10141         patch from Colin Walters
10142
10143 2003-04-05  Havoc Pennington  <hp@pobox.com>
10144
10145         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10146         reality; in fact multiple mechanisms are allowed.
10147
10148         * dbus/dbus-internals.c (_dbus_real_assert)
10149         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10150         _dbus_assert_not_reached() into functions, so that they don't show
10151         up in basic block counts for test coverage, and don't use up as
10152         much disk space. Does mean slower execution speed though, so
10153         assumes --disable-asserts is the normal production case.
10154
10155 2003-04-05  Havoc Pennington  <hp@pobox.com>
10156
10157         * test/Makefile.am (dist-hook): also dist *.in files
10158
10159         * NEWS: update
10160
10161         * configure.in: 0.7
10162
10163 2003-04-05  Havoc Pennington  <hp@pobox.com>
10164
10165         * dbus/dbus-string.c: docs warning
10166
10167         * dbus/dbus-spawn.c: missing docs
10168
10169         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10170
10171 2003-04-05  Havoc Pennington  <hp@pobox.com>
10172
10173         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10174         magic from GLib
10175
10176         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10177         to -1 once we've reaped the babysitter
10178         (_dbus_babysitter_handle_watch): do as much work as we can, not
10179         just one go of it
10180
10181         * bus/activation.c: add code using DBusBabysitter so that we
10182         handle it when a service fails to start up properly.
10183         (bus_activation_service_created): don't remove the activation
10184         entries as we go, just let them get removed when we free the pending
10185         activation. Unref reply messages after sending them.
10186
10187 2003-04-05  Havoc Pennington  <hp@pobox.com>
10188
10189         * test/decode-gcov.c (main): print per-directory stats in the report
10190
10191         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10192
10193 2003-04-05  Havoc Pennington  <hp@pobox.com>
10194
10195         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10196
10197         * test/decode-gcov.c: hack up a little program to suck data
10198         out of gcov files. Yes this is sort of silly.
10199
10200         * configure.in: define something in config.h and do an
10201         AM_CONDITIONAL when gcov is enabled
10202
10203 2003-04-04  Havoc Pennington  <hp@redhat.com>
10204
10205         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10206         return a "babysitter" object that is used to monitor the status of
10207         the spawned process and reap it when required.
10208
10209         * test/test-segfault.c, test/test-exit.c,
10210         test/test-sleep-forever.c: binaries that do various lame things,
10211         used in the test suite.
10212
10213         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10214
10215 2003-04-03  Havoc Pennington  <hp@pobox.com>
10216
10217         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10218         in preparation for modifying it, dbus-sysdeps is getting
10219         a bit unmanageable.
10220
10221 2003-04-03  Havoc Pennington  <hp@redhat.com>
10222
10223         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10224         have multiple ones
10225
10226         * bus/*.[hc]: adapt to mainloop change
10227
10228 2003-04-03  Havoc Pennington  <hp@redhat.com>
10229
10230         * bus/activation.c (load_directory): fix up memleaks
10231         (bus_activation_entry_free): free the entry
10232
10233         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10234         we get one from the message bus; fix memleaks.
10235
10236         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10237
10238 2003-04-03  Havoc Pennington  <hp@pobox.com>
10239
10240         * bus/config-parser.c (bus_config_parser_unref): free
10241         list of mechanisms, bug discovered by test suite enhancements
10242         (putting system.conf and session.conf into suite)
10243
10244         * test/Makefile.am, test/test-service.c: add placeholder for a
10245         test service that we'll activate as part of test suite. Doesn't
10246         do anything yet.
10247
10248         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10249         setting NULL value, and use system malloc not dbus_malloc()
10250         when we have unavoidable memleakage.
10251
10252         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10253         didn't work, and support DBUS_BUS_ACTIVATION.
10254
10255         * bus/activation.c (child_setup): pass our well-known bus type to
10256         the child
10257
10258         * bus/config-parser.c: support <type> to specify well-known type
10259
10260         * doc/dbus-specification.sgml: document the env variables to
10261         locate well-known buses and find service activator
10262
10263 2003-04-02  Havoc Pennington  <hp@redhat.com>
10264
10265         * test/Makefile.am (all-local): add a rule to copy tests to
10266         builddir, so we can have generated tests. Use this to remove the
10267         silly hack for testing system.conf and session.conf. Will use this
10268         shortly to generate .service files pointing to test binaries.
10269
10270 2003-04-02  Havoc Pennington  <hp@redhat.com>
10271
10272         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10273         current alloc and needed new length, not max of the doubled
10274         allocation and needed new length. Also, when building tests,
10275         don't do the double-allocation stuff, just realloc every time.
10276
10277 2003-04-02  Havoc Pennington  <hp@redhat.com>
10278
10279         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10280         in error messages
10281         (_dbus_string_get_dirname): new
10282         (_dbus_sysdeps_test): new
10283         (_dbus_directory_open): include dirnames in error messages
10284
10285         * bus/config-parser.c: interpret <include> and <includedir> and
10286         <servicedir> relative to config file location if the given
10287         filename is not absolute.
10288
10289         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10290
10291 2003-04-02  Havoc Pennington  <hp@redhat.com>
10292
10293         * bus/connection.c (bus_transaction_send_error_reply): set sender
10294         service for the error, and unref the reply on success
10295
10296         * bus/activation.c: convert to use BusTransaction so OOM can be
10297         handled correctly
10298         (bus_activation_service_created): set sender of the message
10299
10300 2003-04-01  Havoc Pennington  <hp@redhat.com>
10301
10302         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10303         <includedir> (at least mostly)
10304
10305         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10306         first, then the user ID
10307
10308 2003-04-01  Havoc Pennington  <hp@pobox.com>
10309
10310         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10311         function
10312
10313         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10314
10315         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10316
10317         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10318         socket 0777, and unlink any existing socket.
10319
10320         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10321         the configuration file so specifies; set up auth mechanism
10322         restrictions
10323
10324         * bus/config-parser.c (bus_config_parser_content): add support
10325         for <fork> option and fill in code for <auth>
10326
10327         * bus/system.conf.in: add <fork/> to default configuration,
10328         and limit auth mechanisms to EXTERNAL
10329
10330         * doc/config-file.txt (Elements): add <fork>
10331
10332         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10333         (_dbus_change_identity): new function
10334
10335 2003-03-31  Havoc Pennington  <hp@redhat.com>
10336
10337         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10338         (_dbus_listen_unix_socket): fix off-by-one error in null
10339         termination spotted by Nalin
10340
10341 2003-03-31  Havoc Pennington  <hp@redhat.com>
10342
10343         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10344         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10345         having a real home directory available.
10346
10347 2003-03-31  Havoc Pennington  <hp@redhat.com>
10348
10349         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10350
10351         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10352
10353         * configure.in: add support for specifying a style of init script
10354         to install
10355
10356 2003-03-31  Havoc Pennington  <hp@redhat.com>
10357
10358         Fix some annoying DBusString API and fix all affected code.
10359
10360         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10361         max_length argument
10362         (_dbus_string_get_data): change to return string instead of using
10363         an out param
10364         (_dbus_string_get_const_data): ditto
10365         (_dbus_string_get_data_len): ditto
10366         (_dbus_string_get_const_data_len): ditto
10367
10368 2003-03-31  Havoc Pennington  <hp@redhat.com>
10369
10370         * bus/main.c (main): fix up the command line arguments to be nicer
10371
10372 2003-03-31  Havoc Pennington  <hp@redhat.com>
10373
10374         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10375         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10376         final location that lands in the config file
10377
10378         * bus/config-loader-expat.c (bus_config_load): fix type of
10379         XML_Parser variable
10380
10381         * doc/TODO: remove TODO item for dbus_bus_get()
10382
10383         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10384
10385 2003-03-31  Havoc Pennington  <hp@pobox.com>
10386
10387         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10388         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10389         argument since they are always client side
10390
10391         * dbus/dbus-server.c (dbus_server_get_address): new function
10392
10393         * bus/main.c (main): take the configuration file as an argument.
10394
10395         * test/data/valid-config-files/debug-allow-all.conf: new file to
10396         use with dispatch.c tests for example
10397
10398         * bus/test-main.c (main): require test data dir
10399
10400         * bus/bus.c (bus_context_new): change this to take a
10401         configuration file name as argument
10402
10403         * doc/config-file.txt (Elements): add <servicedir>
10404
10405         * bus/system.conf, bus/session.conf: new files
10406
10407         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10408         well-known socket if none set
10409
10410         * configure.in: create system.conf and session.conf
10411
10412 2003-03-30  Havoc Pennington  <hp@pobox.com>
10413
10414         * bus/config-parser.c: hacking
10415
10416         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10417         to shut down, since it could cause weirdness with the DBusList
10418         lock
10419
10420         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10421         link-oriented stack routines
10422         (alloc_link): free the mempool if the first alloc from it fails
10423
10424         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10425
10426         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10427         from GLib
10428         (_dbus_string_skip_white): new
10429
10430         * doc/config-file.txt (Elements): add <includedir>
10431
10432 2003-03-28  Havoc Pennington  <hp@pobox.com>
10433
10434         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10435         (_dbus_string_copy_data): new functions
10436
10437 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10438
10439         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10440         * dbus/dbus-bus.h:
10441         Add dbus_bus_get.
10442
10443         * dbus/dbus-memory.c:
10444         Fix a doc comment.
10445
10446 2003-03-28  Havoc Pennington  <hp@pobox.com>
10447
10448         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10449         I think it may have just been superstition. Not sure.
10450
10451         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10452         failures that were not being handled.
10453
10454         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10455
10456         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10457         row that will fail on out-of-memory.
10458
10459         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10460         function for testing out-of-memory handling.
10461
10462         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10463         allocation functions, they do map exactly to the expat ones.
10464
10465 2003-03-27  Havoc Pennington  <hp@redhat.com>
10466
10467         * bus/config-loader-libxml.c (bus_config_load): add another error
10468         check
10469
10470 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10471
10472         * doc/TODO:
10473         Add note about automatic service activation.
10474
10475         * doc/dbus-specification.sgml:
10476         Rename the specification and clarify a few things.
10477
10478 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10479
10480         * Doxyfile.in:
10481         * dbus/dbus-address.c:
10482         * dbus/dbus-dict.c:
10483         * dbus/dbus-marshal.c:
10484         * dbus/dbus-server-debug-pipe.c:
10485         * dbus/dbus-transport-unix.c:
10486         Fix documentation warnings.
10487
10488 2003-03-26  Havoc Pennington  <hp@pobox.com>
10489
10490         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10491         after every test so it's quick and easy to see which leaked, and
10492         so we test multiple dbus_shutdown() calls
10493
10494         * configure.in: change configure.in XML stuff to also support
10495         expat
10496
10497         * config-loader-libxml.c: some hacking
10498
10499         * config-loader-expat.c: some hacking
10500
10501         * config-parser.c: some hacking, plus tests
10502
10503 2003-03-25  Havoc Pennington  <hp@redhat.com>
10504
10505         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10506
10507         * configure.in: add --with-xml option to specify XML library,
10508         right now only libxml is supported.
10509
10510         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10511         nonworking code between home and work, still just stubs
10512
10513 2003-03-24  Havoc Pennington  <hp@redhat.com>
10514
10515         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10516         file
10517
10518         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10519         NULL argument for "message" if the error is a well-known one,
10520         fill in a generic message in this case.
10521
10522         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10523         favor of DBusError
10524
10525         * bus/test.c (bus_test_flush_bus): add
10526
10527         * bus/policy.c (bus_policy_test): test code stub
10528
10529 2003-03-24  Havoc Pennington  <hp@pobox.com>
10530
10531         * bus/connection.c (bus_connections_setup_connection): set up
10532         the "can this user connect" function, but it always returns
10533         TRUE until we have a config file parser so we can have a config
10534         file that allows connections.
10535
10536 2003-03-23  Havoc Pennington  <hp@pobox.com>
10537
10538         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10539         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10540         the mutex, so we can check for proper memory management
10541         and OOM handling.
10542
10543         * dbus/dbus-dataslot.c: remove the mutex from
10544         DBusDataSlotAllocator and lock it manually when using it,
10545         to simplify fitting it into the global slots framework.
10546
10547         * dbus/dbus-threads.c (init_static_locks): rework how we're
10548         handling global locks so they are easily shut down.
10549
10550         * bus/policy.c (bus_policy_append_rule): fix
10551
10552         * bus/test-main.c (main): check for memleaks
10553
10554         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10555         test suite check for memleaks
10556
10557         * dbus/dbus-memory.c: add support in test mode for tracking
10558         number of outstanding blocks
10559
10560 2003-03-23  Havoc Pennington  <hp@pobox.com>
10561
10562         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10563         policies code
10564
10565         * dbus/dbus-hash.h: add ULONG hash keys
10566
10567         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10568         (_dbus_get_group_id): new function
10569
10570 2003-03-20  Havoc Pennington  <hp@redhat.com>
10571
10572         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10573         new function
10574         (dbus_connection_get_unix_user): new function
10575
10576 2003-03-20  Havoc Pennington  <hp@pobox.com>
10577
10578         * bus/connection.c (bus_connection_send_oom_error): assert that
10579         message has a sender
10580         (connection_execute_transaction): ditto
10581         (bus_connection_preallocate_oom_error): fix to set the sender, and
10582         set recipient to the destination service, not the bus driver
10583
10584         * bus/policy.c: hacking
10585
10586         * dbus/dbus-message.c (dbus_message_service_is): new function
10587         (dbus_message_sender_is): new
10588
10589 2003-03-19  Havoc Pennington  <hp@redhat.com>
10590
10591         * bus/policy.c: start sketching code for policy restrictions on
10592         what connections can do.
10593
10594 2003-03-18  Havoc Pennington  <hp@redhat.com>
10595
10596         * doc/TODO: some notes on high-level todo items. Little nitpick
10597         stuff is all in @todo, so no need to add it here.
10598
10599         * doc/config-file.txt: some notes on how config file might look
10600
10601 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10602
10603         * configure.in: 0.6
10604
10605         * NEWS: Update.
10606
10607 2003-03-17  Havoc Pennington  <hp@redhat.com>
10608
10609         * dbus/dbus-internals.h: add gcc attributes so that
10610         our printf-style functions warn on bad arguments to
10611         format
10612
10613         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10614         format bug
10615
10616         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10617         printf format bug
10618
10619 2003-03-17  Havoc Pennington  <hp@redhat.com>
10620
10621         * bus/test-main.c (main): make it print something as it runs
10622         so make check doesn't look stuck
10623
10624         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10625         from CVS, now obsolete
10626
10627 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10628
10629         * bus/dispatch.c: (bus_dispatch):
10630         Refetch the service name since it may have been reallocated
10631         when dbus_message_set_sender was called.
10632
10633         * dbus/dbus-sysdeps.c: (_dbus_accept):
10634         Add address and address length variables and use them to stop
10635         valgrind from complaining.
10636
10637 2003-03-17  Havoc Pennington  <hp@pobox.com>
10638
10639         All tests pass, no memleaks, no valgrind complaints.
10640
10641         * bus/test.c: refcount handler_slot
10642
10643         * bus/connection.c (bus_connections_new): refcount
10644         connection_data_slot
10645
10646         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10647         bytes so that auth scripts pass.
10648
10649         * bus/dispatch.c: init message_handler_slot so it gets allocated
10650         properly
10651
10652         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10653
10654         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10655         dealloc server_pipe_hash when no longer used for benefit of
10656         leak checking
10657
10658         * dbus/dbus-auth.c (process_command): memleak fix
10659
10660         * bus/dispatch.c (check_hello_message): memleak fix
10661
10662 2003-03-16  Havoc Pennington  <hp@pobox.com>
10663
10664         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10665
10666 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10667
10668         * bus/activation.c (bus_activation_activate_service): Append
10669         the pending activation entry to the list of pending activations.
10670
10671 2003-03-16  Havoc Pennington  <hp@pobox.com>
10672
10673         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10674         connections
10675
10676         * dbus/dbus-address.c (create_entry): fix OOM handling when
10677         failing to alloc entry->method
10678
10679 2003-03-16  Havoc Pennington  <hp@pobox.com>
10680
10681         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10682         the watch
10683
10684         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10685         add some missing dbus_set_result
10686
10687         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10688         alloc the DBusMessageHandler
10689
10690         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10691         the transport here, since we call this from the finalizer; it
10692         resulted in a double-finalize.
10693
10694         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10695         where we tried to use transport->connection that was NULL,
10696         happened when transport was disconnected early on due to OOM
10697
10698         * bus/*.c: adapt to handle OOM for watches/timeouts
10699
10700         * dbus/dbus-transport-unix.c: port to handle OOM during
10701         watch handling
10702
10703         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10704         reference to unused bytes instead of a copy
10705
10706         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10707         out of memory
10708
10709         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10710         FALSE on OOM
10711
10712         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10713         of memory
10714
10715 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10716
10717         * doc/dbus-specification.sgml:
10718         Document reply message for ActivateService.
10719
10720 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10721
10722         * bus/activation.c: (bus_pending_activation_entry_free),
10723         (bus_pending_activation_free), (bus_activation_new),
10724         (bus_activation_unref), (bus_activation_service_created),
10725         (bus_activation_activate_service):
10726         * bus/activation.h:
10727         * bus/bus.c: (bus_context_new):
10728         * bus/desktop-file.c: (new_section):
10729         * bus/driver.c: (bus_driver_send_service_deleted),
10730         (bus_driver_handle_activate_service):
10731         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10732         * bus/services.h:
10733         * dbus/dbus-connection.c:
10734         (dbus_connection_send_with_reply_and_block):
10735         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10736         * dbus/dbus-protocol.h:
10737         Make activation work better. Now pending activations will be queued
10738         and the daemon won't try to activate services that are already registered.
10739
10740 2003-03-16  Havoc Pennington  <hp@pobox.com>
10741
10742         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10743         connection data
10744
10745         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10746         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10747
10748 2003-03-16  Havoc Pennington  <hp@pobox.com>
10749
10750         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10751         this. always run the test suite before commit...
10752
10753         * bus/*: adapt to DBusConnection API changes
10754
10755         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10756         requires renaming stuff to avoid dbus_connection_dispatch name
10757         conflict.
10758
10759         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10760         function
10761
10762         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10763         separate from _dbus_message_loader_return_buffer()
10764
10765         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10766         this, because it's now always broken to use; the number of
10767         messages in queue vs. the number still buffered by the message
10768         loader is undefined/meaningless. Should use
10769         dbus_connection_get_dispatch_state().
10770         (dbus_connection_dispatch): rename from
10771         dbus_connection_dispatch_message
10772
10773 2003-03-16  Havoc Pennington  <hp@pobox.com>
10774
10775         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10776         implementation
10777
10778 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10779
10780         * dbus/dbus-connection.c:
10781         (dbus_connection_send_with_reply_and_block):
10782         Decrease connection->n_incoming when removing an entry
10783         from the list.
10784         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10785         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10786         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10787         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10788         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10789         (dbus_dict_get_byte_array):
10790         Handle NULL arrays and strings. Also add support for byte arrays.
10791
10792         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10793         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10794         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10795         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10796         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10797         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10798         * dbus/dbus-marshal.h:
10799         Add support for marshalling and demarshalling empty arrays and strings.
10800
10801         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10802         (dbus_message_append_string_array),
10803         (dbus_message_iter_get_boolean),
10804         (dbus_message_iter_get_boolean_array),
10805         (dbus_message_iter_get_int32_array),
10806         (dbus_message_iter_get_uint32_array),
10807         (dbus_message_iter_get_double_array),
10808         (dbus_message_iter_get_byte_array),
10809         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10810         (check_message_handling):
10811         Add support for getting empty arrays and dicts.
10812
10813         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10814         Don't do any validation at all for now, that's better than just checking
10815         for ASCII.
10816
10817         * test/data/valid-messages/emptiness.message:
10818         New test message with lots of empty arrays.
10819
10820 2003-03-16  Havoc Pennington  <hp@pobox.com>
10821
10822         * dbus/dbus-connection.c
10823         (_dbus_connection_queue_received_message_link): new function that
10824         can't fail due to OOM
10825
10826         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10827         new function pops a message together with a list link
10828         containing it.
10829
10830         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10831         message queuing functions to avoid needing to alloc memory
10832
10833 2003-03-16  Havoc Pennington  <hp@pobox.com>
10834
10835         Oops - test code was only testing failure of around 30 of the
10836         mallocs in the test path, but it turns out there are 500+
10837         mallocs. I believe this was due to misguided linking setup such
10838         that there was one copy of dbus_malloc etc. in the daemon and one
10839         in the shared lib, and only daemon mallocs were tested. In any
10840         case, the test case now tests all 500+ mallocs, and doesn't pass
10841         yet, though there are lots of fixes in this patch.
10842
10843         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10844         this so that it doesn't need to allocate memory, since it
10845         has no way of indicating failure due to OOM (and would be
10846         annoying if it did).
10847
10848         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10849
10850         * bus/Makefile.am: rearrange to create two self-contained
10851         libraries, to avoid having libraries with overlapping symbols.
10852         that was resulting in weirdness, e.g. I'm pretty sure there
10853         were two copies of global static variables.
10854
10855         * dbus/dbus-internals.c: move the malloc debug stuff to
10856         dbus-memory.c
10857
10858         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10859         empty.
10860
10861         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10862
10863         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10864         on failure.
10865
10866         * bus/dispatch.c (bus_dispatch_add_connection): free
10867         message_handler_slot when no longer using it, so
10868         memory leak checkers are happy for the test suite.
10869
10870         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10871
10872         * bus/bus.c (new_connection_callback): disconnect in here if
10873         bus_connections_setup_connection fails.
10874
10875         * bus/connection.c (bus_connections_unref): fix to free the
10876         connections
10877         (bus_connections_setup_connection): if this fails, don't
10878         disconnect the connection, just be sure there are no side
10879         effects.
10880
10881         * dbus/dbus-string.c (undo_alignment): unbreak this
10882
10883         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10884         leaking
10885         (_dbus_auth_new): fix the order in which we free strings
10886         on OOM failure
10887
10888         * bus/connection.c (bus_connection_disconnected): fix to
10889         not send ServiceDeleted multiple times in case of memory
10890         allocation failure
10891
10892         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10893         get the base service name
10894         (dbus_bus_register_client): don't return base service name,
10895         instead store it on the DBusConnection and have an accessor
10896         function for it.
10897         (dbus_bus_register_client): rename dbus_bus_register()
10898
10899         * bus/dispatch.c (check_hello_message): verify that other
10900         connections on the bus also got the correct results, not
10901         just the one sending hello
10902
10903 2003-03-15  Havoc Pennington  <hp@pobox.com>
10904
10905         Make it pass the Hello handling test including all OOM codepaths.
10906         Now to do other messages...
10907
10908         * bus/services.c (bus_service_remove_owner): fix crash when
10909         removing owner from an empty list of owners
10910         (bus_registry_ensure): don't leave service in the list of
10911         a connection's owned services if we fail to put the service
10912         in the hash table.
10913
10914         * bus/connection.c (bus_connection_preallocate_oom_error): set
10915         error flag on the OOM error.
10916
10917         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10918         handle _dbus_transport_set_connection failure
10919
10920         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10921         to create watches up front and simply enable/disable them as
10922         needed.
10923         (unix_connection_set): this can now fail on OOM
10924
10925         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10926         of enabling/disabling a watch or timeout.
10927
10928         * bus/loop.c (bus_loop_iterate): don't touch disabled
10929         watches/timeouts
10930
10931         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10932
10933 2003-03-15  Havoc Pennington  <hp@pobox.com>
10934
10935         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10936         write useful test code, after all that futzing around ;-)
10937
10938         Test does not yet pass because we can't handle OOM in
10939         _dbus_transport_messages_pending (basically,
10940         dbus_connection_preallocate_send() does not prealloc the write
10941         watch). To fix this, I think we need to add new stuff to
10942         set_watch_functions, namely a SetEnabled function so we can alloc
10943         the watch earlier, then enable it later.
10944
10945         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10946         dbus-memory.c to the convenience lib
10947
10948         * bus/test.c: rename some static functions to keep them clearly
10949         distinct from stuff in connection.c. Handle client disconnection.
10950
10951 2003-03-14  Havoc Pennington  <hp@pobox.com>
10952
10953         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10954         transport, tests more of the real codepath. Set up clients
10955         with bus_setup_debug_client.
10956
10957         * bus/test.c (bus_setup_debug_client): function to set up debug
10958         "clients" on the main loop
10959
10960         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10961         support
10962
10963         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10964         server type
10965
10966         * dbus/dbus-server-debug.c: support a debug server based on pipes
10967
10968         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10969         (_dbus_close): new function
10970
10971         * configure.in: check for socketpair
10972
10973 2003-03-14  Havoc Pennington  <hp@redhat.com>
10974
10975         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10976         cheesy hack
10977
10978         * dbus/dbus-transport-debug.c: rework this a good bit to be
10979         less complicated. hopefully still works.
10980
10981         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10982         manually
10983
10984         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10985         after running it
10986
10987         * dbus/dbus-message.c (dbus_message_copy): rename from
10988         dbus_message_new_from_message, fix it up to copy
10989         all the message fields, add test case
10990
10991         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10992         not quite passing yet
10993
10994 2003-03-14  Havoc Pennington  <hp@pobox.com>
10995
10996         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10997         until no work remains" in test code. (the large diff here
10998         is just code movement, no actual changes)
10999
11000         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11001         1, no point waiting around for test code.
11002         (_dbus_server_debug_accept_transport): unref the timeout
11003         after adding it (right?)
11004
11005         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11006
11007 2003-03-13  Havoc Pennington  <hp@redhat.com>
11008
11009         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11010         out of memory
11011
11012         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11013         of memory
11014
11015         * dbus/dbus-connection.h: Make AddWatchFunction and
11016         AddTimeoutFunction return a bool so they can fail on out-of-memory
11017
11018         * bus/bus.c (bus_context_new): set up timeout handlers
11019
11020         * bus/connection.c (bus_connections_setup_connection): set up
11021         timeout handlers
11022
11023         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11024         can fail
11025
11026         * bus/bus.c (bus_context_new): adapt to changes
11027
11028         * bus/connection.c: adapt to changes
11029
11030         * test/watch.c: adapt to DBusWatch changes
11031
11032         * bus/dispatch.c (bus_dispatch_test): started adding this but
11033         didn't finish
11034
11035 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11036
11037         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11038
11039 2003-03-13  Havoc Pennington  <hp@pobox.com>
11040
11041         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11042         set up a test framework as for the library
11043
11044 2003-03-12  Havoc Pennington  <hp@pobox.com>
11045
11046         Throughout: purge global variables, introduce BusActivation,
11047         BusConnections, BusRegistry, etc. objects instead.
11048
11049         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11050         message bus object
11051
11052         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11053         going to redo this a bit differently I think
11054
11055 2003-03-12  Havoc Pennington  <hp@redhat.com>
11056
11057         Mega-patch that gets the message bus daemon initially handling
11058         out-of-memory. Work still needed. Also lots of random
11059         moving stuff to DBusError instead of ResultCode.
11060
11061         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11062
11063         * dbus/dbus-connection.c
11064         (dbus_connection_send_with_reply_and_block): use DBusError
11065
11066         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11067         DBusResultCode
11068
11069         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11070         code here, as the only failure possible is OOM.
11071
11072         * bus/connection.c (bus_connection_disconnect):
11073         rename bus_connection_disconnected as it's a notification only
11074
11075         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11076         "name" on get_args failure, should be done by get_args;
11077         don't disconnect client for bad args, just return an error.
11078         (bus_driver_handle_service_exists): ditto
11079
11080         * bus/services.c (bus_services_list): NULL-terminate returned array
11081
11082         * bus/driver.c (bus_driver_send_service_lost)
11083         (bus_driver_send_service_acquired): send messages from driver to a
11084         specific client to the client's unique name, not to the broadcast
11085         service.
11086
11087         * dbus/dbus-message.c (decode_header_data): reject messages that
11088         contain no name field
11089         (_dbus_message_get_client_serial): rename to
11090         dbus_message_get_serial and make public
11091         (_dbus_message_set_serial): rename from set_client_serial
11092         (_dbus_message_set_reply_serial): make public
11093         (_dbus_message_get_reply_serial): make public
11094
11095         * bus/connection.c (bus_connection_foreach): allow stopping
11096         iteration by returning FALSE from foreach function.
11097
11098         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11099         (dbus_connection_free_preallocated_send)
11100         (dbus_connection_preallocate_send): new API for sending a message
11101         without possibility of malloc failure.
11102         (dbus_connection_send_message): rename to just
11103         dbus_connection_send (and same for whole function family)
11104
11105         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11106
11107         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11108
11109         * bus/activation.c: handle/return errors
11110
11111         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11112
11113         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11114         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11115         (_dbus_result_from_errno): move to this file
11116
11117 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11118
11119         * dbus/dbus-marshal.c:
11120         (_dbus_marshal_set_string):
11121         Take a length argument so we can marshal the correct string
11122         length.
11123
11124         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11125         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11126         (_dbus_marshal_test):
11127         * dbus/dbus-marshal.h:
11128         Add support for marshalling and demarshalling dicts.
11129
11130         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11131         Add support for TYPE DICT.
11132
11133         * dbus/dbus-message.c: (set_string_field):
11134         Adjust header padding.
11135
11136         (dbus_message_append_args_valist), (dbus_message_append_dict),
11137         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11138         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11139         (check_message_handling), (check_have_valid_message):
11140         * dbus/dbus-message.h:
11141         Add functions for setting and getting dicts.
11142
11143         * dbus/dbus-protocol.h:
11144         Add DBUS_TYPE_DICT.
11145
11146         * dbus/dbus.h:
11147         Add dbus-dict.h
11148
11149         * doc/dbus-specification.sgml:
11150         Add information about how dicts are marshalled.
11151
11152         * test/data/invalid-messages/dict-with-nil-value.message:
11153         * test/data/invalid-messages/too-short-dict.message:
11154         * test/data/valid-messages/dict-simple.message:
11155         * test/data/valid-messages/dict.message:
11156         Add sample messages containing dicts.
11157
11158 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11159
11160         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11161
11162 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11163
11164         * dbus/Makefile.am:
11165         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11166         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11167         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11168         (dbus_dict_set_double), (dbus_dict_set_string),
11169         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11170         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11171         (dbus_dict_set_string_array), (_dbus_dict_test):
11172         * dbus/dbus-dict.h:
11173         Fix according to comments from Havoc.
11174
11175 2003-03-06  Michael Meeks  <michael@server.home>
11176
11177         * configure.in: if we don't have kde-config, disable have_qt.
11178
11179 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11180
11181         * dbus/Makefile.am:
11182         Add dbus-dict.[ch]
11183
11184         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11185         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11186         (dbus_dict_remove), (dbus_dict_get_value_type),
11187         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11188         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11189         (dbus_dict_put_double), (dbus_dict_put_string),
11190         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11191         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11192         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11193         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11194         (dbus_dict_get_double), (dbus_dict_get_string),
11195         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11196         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11197         (dbus_dict_get_string_array), (_dbus_dict_test):
11198         * dbus/dbus-dict.h:
11199         Add DBusDict implementation
11200
11201         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11202         * dbus/dbus-test.h:
11203         Add _dbus_dict_test
11204
11205 2003-03-04  Havoc Pennington  <hp@pobox.com>
11206
11207         * test/data/auth/*: adapt to changes
11208
11209         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11210         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11211         userid
11212
11213         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11214         more stuff from being in a context name, to make the protocol
11215         simpler to deal with
11216
11217         * dbus/dbus-errors.c (dbus_error_has_name): new function
11218         (dbus_error_is_set): new function
11219
11220         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11221         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11222
11223         * dbus/dbus-connection.c (dbus_connection_flush): also read
11224         messages during a flush operation
11225
11226         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11227
11228 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11229
11230         * configure.in: Check for gethostbyname on Solaris.
11231
11232         * dbus/dbus-transport.c: (_dbus_transport_open):
11233         Remove duplicate "tcp" entry.
11234
11235         * doc/dbus-specification.sgml:
11236         Clarify some things.
11237
11238 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11239
11240         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11241         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11242         (_dbus_keyring_test):
11243         * dbus/dbus-md5.c: (_dbus_md5_compute):
11244         * dbus/dbus-sha.c: (_dbus_sha_compute):
11245         Plug memory leaks.
11246
11247 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11248
11249         * README: Add some things.
11250
11251 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11252
11253         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11254         after case DBUS_TYPE_BOOELAN.
11255
11256 2003-03-02  Havoc Pennington  <hp@pobox.com>
11257
11258         * test/break-loader.c (randomly_set_extreme_ints): add test that
11259         sets really huge and small integers
11260
11261         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11262         that length of boolean array fits in the string, and that
11263         string has room for boolean value in single-bool case.
11264
11265         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11266         optional value to "ALIGN" command which is what to fill the
11267         alignment with.
11268
11269         * test/data/valid-messages/no-padding.message: add regression
11270         test for the message padding problem
11271
11272 2003-03-02  Havoc Pennington  <hp@pobox.com>
11273
11274         * dbus/dbus-message.c (decode_header_data): fix to always init
11275         message_padding, from Benjamin Dauvergne
11276
11277 2003-03-02  Havoc Pennington  <hp@pobox.com>
11278
11279         * configure.in: 0.5
11280
11281         * NEWS: Update.
11282
11283 2003-03-01  Joe Shaw  <joe@assbarn.com>
11284
11285         * configure.in: Check for "struct cmsgcred" and try to access its
11286         members for BSD-like unices.
11287
11288         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11289         _dbus_read_credentials_unix_socket().
11290         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11291         read() for reading the credential byte off the unix socket.  Use
11292         struct cmsgcred on systems that support it.
11293
11294 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11295
11296         * glib/Makefile.am:
11297         * configure.in:
11298         Make gthreads-2.0 dependency optional. Don't build thread test if
11299         its not found.
11300
11301 2003-02-27  Havoc Pennington  <hp@pobox.com>
11302
11303         * dbus/dbus-connection.c
11304         (dbus_connection_send_message_with_reply_and_block): fix doh!
11305         doh! doh! bug that resulted in never removing a reply from the
11306         queue, no wonder we called get_reply_serial so much ;-)
11307
11308         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11309         and client serial instead of demarshaling them every time
11310
11311 2003-02-27  Havoc Pennington  <hp@pobox.com>
11312
11313         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11314         more inlined, using dbus-string-private.h, speeds things up
11315         substantially
11316
11317         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11318         when freeing the string
11319         (_dbus_string_steal_data): fix for align offset
11320         (undo_alignment): new function
11321
11322 2003-02-26  Havoc Pennington  <hp@redhat.com>
11323
11324         All kinds of audit fixes from Owen, plus initial attempt to
11325         handle unaligned memory returned from malloc.
11326
11327         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11328         leave room for align_offset and nul byte
11329         (fixup_alignment): function to track an align_offset and
11330         ensure real->str is aligned
11331         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11332         to allow a nul byte plus align offset
11333         (_dbus_string_lock): fix overflow issue
11334         (_dbus_string_init_const_len): add assertions on sanity of len,
11335         assign allocated to be ALLOCATION_PADDING larger than len
11336         (set_length): fixup the overflow handling
11337         (_dbus_string_get_data_len): fix overflow in assertion
11338         (open_gap): detect overflow in size of gap to be opened
11339         (_dbus_string_lengthen): add overflow check
11340         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11341         (_dbus_string_append): add overflow check
11342         (_dbus_string_append_unichar): overflow
11343         (_dbus_string_delete): fix overflow in assertion
11344         (_dbus_string_copy_len): overflow in assertion
11345         (_dbus_string_replace_len): overflows in assertions
11346         (_dbus_string_find): change to implement in terms of
11347         _dbus_string_find_to
11348         (_dbus_string_find_to): assorted fixage
11349         (_dbus_string_equal_c_str): assert c_str != NULL,
11350         fix logic so the function works
11351         (_dbus_string_ends_with_c_str): fix overflow thingy
11352         (_dbus_string_base64_encode): overflow fix
11353         (_dbus_string_validate_ascii): overflow
11354         (_dbus_string_validate_nul): overflow
11355
11356 2003-02-26  Havoc Pennington  <hp@redhat.com>
11357
11358         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11359
11360 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11361
11362         * configure.in:
11363         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11364
11365         * dbus/dbus-connection.c:
11366         * dbus/dbus-connection.h:
11367         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11368         Add dbus_connection_set_wakeup_main_function and use it when queueing
11369         incoming and outgoing messages.
11370
11371
11372         * dbus/dbus-dataslot.c:
11373         Threadsafe usage of DBusDataSlotAllocator
11374
11375         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11376         dbus_new can fail.
11377
11378         * dbus/dbus-server-unix.c:
11379         Add todo comment
11380
11381         * glib/dbus-gmain.c:
11382         Implement the new wakeup functions for glib.
11383
11384         * glib/Makefile.am:
11385         * glib/test-thread-client.c:
11386         * glib/test-thread-server.c:
11387         * glib/test-thread.h:
11388         Initial cut at some thread test code. Not really done yet.
11389
11390 2003-02-26  Havoc Pennington  <hp@pobox.com>
11391
11392         * dbus/dbus-connection.c
11393         (dbus_connection_send_message_with_reply_and_block): fix crash
11394         where we ref'd the outgoing message instead of the returned reply
11395
11396         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11397         at the end of this function, so if we didn't need to read for
11398         authentication, we reinstall it for receiving messages
11399
11400         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11401         a NULL sender for peer-to-peer case
11402
11403         * dbus/dbus-transport-unix.c (check_read_watch): handle
11404         !authenticated case correctly
11405
11406         * glib/dbus-gmain.c: add support for DBusServer
11407
11408         * dbus/dbus-server.c: add data slot support
11409
11410         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11411         return values and handle errors
11412
11413         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11414         DBusConnection
11415
11416         * Doxyfile.in (INPUT): add glib subdir
11417
11418         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11419         setup_with_g_main instead of hookup_with_g_main; write docs
11420
11421 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11422
11423         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11424         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11425         * dbus/dbus-message.c: (dbus_message_append_boolean),
11426         (dbus_message_append_boolean_array),
11427         (dbus_message_get_args_valist), (_dbus_message_test):
11428         * dbus/dbus-message.h:
11429         * doc/dbus-specification.sgml:
11430         Various fixes as pointed out by Havoc.
11431
11432         * test/data/invalid-messages/bad-boolean-array.message:
11433         * test/data/invalid-messages/bad-boolean.message:
11434         Add invalid boolean value test cases.
11435
11436 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11437
11438         * dbus/dbus-internals.c: (_dbus_type_to_string):
11439         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11440         (_dbus_marshal_validate_arg):
11441         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11442         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11443         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11444         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11445         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11446         (dbus_message_iter_get_double),
11447         (dbus_message_iter_get_boolean_array), (message_iter_test):
11448         * dbus/dbus-message.h:
11449         * dbus/dbus-protocol.h:
11450         * doc/dbus-specification.sgml:
11451         * test/data/valid-messages/lots-of-arguments.message:
11452         Add support for boolean and boolean array types.
11453
11454 2003-02-23  Havoc Pennington  <hp@pobox.com>
11455
11456         * dbus/dbus-keyring.c: finish most of this implementation and
11457         simple unit test
11458
11459         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11460         these barf if the error isn't cleared to NULL
11461
11462         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11463         (_dbus_create_directory): new function
11464
11465         * dbus/dbus-errors.c (dbus_set_error): fix warning
11466
11467         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11468         (_dbus_string_hex_decode): new function
11469         (test_hex_roundtrip): test code
11470
11471         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11472
11473         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11474
11475         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11476         the save-to-temp/rename trick to atomically write the new file
11477         (_dbus_string_parse_uint): new function
11478
11479 2003-02-22  Havoc Pennington  <hp@pobox.com>
11480
11481         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11482
11483 2003-02-22  Havoc Pennington  <hp@pobox.com>
11484
11485         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11486         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11487
11488         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11489
11490         * dbus/test/data/sha-1: add US government test suite for SHA-1
11491
11492 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11493
11494         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11495         Make string arrays NULL-terminated.
11496
11497         * dbus/dbus-memory.c: (dbus_free_string_array):
11498         * dbus/dbus-memory.h:
11499         New function for freeing NULL-terminated string arrays.
11500
11501         * dbus/dbus-message-builder.c: (append_quoted_string),
11502         (_dbus_message_data_load):
11503         Add support for array types.
11504
11505         * dbus/dbus-message.c: (check_message_handling):
11506         Add more types as test cases.
11507
11508         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11509         (_dbus_string_parse_double):
11510         Add the start offset to the end offset.
11511
11512         * test/data/valid-messages/lots-of-arguments.message:
11513         New test message with lots of arguments.
11514
11515 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11516
11517         * dbus/dbus-message.c: (dbus_message_append_nil),
11518         (dbus_message_append_int32), (dbus_message_append_uint32),
11519         (dbus_message_append_double), (dbus_message_append_string),
11520         (dbus_message_append_int32_array),
11521         (dbus_message_append_uint32_array),
11522         (dbus_message_append_double_array),
11523         (dbus_message_append_byte_array),
11524         (dbus_message_append_string_array):
11525         Fix all out-of-memory handling in these functions.
11526
11527 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11528
11529         * dbus/dbus-message.c: (dbus_message_append_nil):
11530         Fix a silly.
11531
11532 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11533
11534         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11535         (dbus_message_append_nil), (dbus_message_append_int32_array),
11536         (dbus_message_append_uint32_array),
11537         (dbus_message_append_double_array),
11538         (dbus_message_append_byte_array),
11539         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11540         (dbus_message_iter_get_int32_array),
11541         (dbus_message_iter_get_uint32_array),
11542         (dbus_message_iter_get_double_array),
11543         (dbus_message_iter_get_byte_array),
11544         (dbus_message_iter_get_string_array):
11545
11546         * dbus/dbus-message.h:
11547         Add functions for appending and getting arrays.
11548
11549 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11550
11551         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11552         element size at least 8 bytes, fixes mempool tests on
11553         64-bit machines.
11554
11555 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11556
11557         * dbus/dbus-transport-unix.c (unix_do_iteration):
11558         Unlock the connection mutex during a blocking select call.
11559         Add todo about how we need a way to wake up the select.
11560
11561         * dbus/dbus-connection-internal.h:
11562         * dbus/dbus-connection.c:
11563         Add _dbus_connection_lock and _dbus_connection_unlock.
11564
11565 2003-02-19  Havoc Pennington  <hp@pobox.com>
11566
11567         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11568         Doxyfile.in, not Doxyfile
11569
11570         * dbus/dbus-keyring.c: do some hacking on this
11571
11572         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11573
11574         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11575         dbus_error_init
11576         (dbus_set_error): remove dbus_error_init, check for message ==
11577         NULL *before* we sprintf into it, and add @todo about including
11578         system headers in this file
11579
11580         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11581
11582         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11583
11584         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11585         get various bits of user information based on either username
11586         or user ID
11587         (_dbus_homedir_from_username): new function
11588
11589 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11590
11591         * configure.in:
11592         Add check for nonposix getpwnam_r
11593
11594         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11595         Align the pool element size to a sizeof (void *) boundary.
11596
11597         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11598         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11599         General Solaris fixes.
11600
11601         * test/data/valid-messages/simplest-manual.message:
11602         Explicitly state that we want little-endian packing.
11603
11604 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11605
11606         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11607
11608         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11609         Added to create a transport connecting using a tcp/ip socket.
11610
11611         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11612         to a tcp socket at given host and port.
11613         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11614         hostname and port.
11615
11616         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11617
11618         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11619         Added to create a server listening on a TCP/IP socket.
11620
11621 2003-02-19  Havoc Pennington  <hp@pobox.com>
11622
11623         Throughout: mop up all the Doxygen warnings and undocumented
11624         stuff.
11625
11626         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11627         to search any paths.
11628
11629         * dbus/dbus-threads.c: move global mutex initializers to
11630         dbus-internals.h, multiple prototypes was confusing doxygen
11631         besides being kind of ugly
11632
11633         * Doxyfile (PREDEFINED): have Doxygen define
11634         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11635         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11636         (do not abuse the feature! it's for stuff like the autogenerated
11637         macros in dbus-md5.c, not just for things you don't feel like
11638         documenting...)
11639
11640 2003-02-18  Havoc Pennington  <hp@pobox.com>
11641
11642         * dbus/dbus-string.c (_dbus_string_zero): new function
11643
11644         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11645         wrap it in some dbus-friendly API
11646
11647         * dbus/dbus-types.h: add 16-bit types
11648
11649 2003-02-18  Joe Shaw  <joe@assbarn.com>
11650
11651         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11652         credentials from our currently running process.
11653         (get_word): Fix a buglet where we were copying the entire length
11654         instead of relative to our position.
11655
11656         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11657         keys on the stack... it's 640k of data.
11658
11659         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11660         read the credentials byte off the socket, even if we don't have
11661         SO_PEERCRED.
11662         (_dbus_poll): Implement poll() using select() for systems which
11663         don't have it.
11664
11665         * glib/test-dbus-glib.c (main): Print out an error if no
11666         parameters are given.
11667
11668         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11669         can fallback to a secondary auth mechanism if the first fails.
11670
11671 2003-02-18  Havoc Pennington  <hp@pobox.com>
11672
11673         * AUTHORS: add Alex
11674
11675 2003-02-17  Havoc Pennington  <hp@pobox.com>
11676
11677         * doc/dbus-specification.sgml: lots of cosmetic
11678         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11679         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11680         s/server/bus/ (except in authentication section). Add a section
11681         "Message Bus Message Routing"
11682
11683 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11684
11685         Release 0.4
11686
11687         * NEWS: Update
11688
11689 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11690
11691         * doc/dbus-specification.sgml:
11692         Specification updates.
11693
11694 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11695
11696         * bus/activation.c: (bus_activation_init), (child_setup),
11697         (bus_activation_activate_service):
11698         * bus/activation.h:
11699         * bus/main.c: (main):
11700         Set DBUS_ADDRESS environment variable.
11701
11702         * dbus/dbus-errors.c: (dbus_set_error):
11703         Don't use va_copy since that's a C99 feature.
11704
11705         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11706         (_dbus_spawn_async):
11707         * dbus/dbus-sysdeps.h:
11708         Add child_setup_func to _dbus_spawn_async.
11709
11710         * doc/dbus-specification.sgml:
11711         Update specification.
11712
11713         * test/spawn-test.c: (setup_func), (main):
11714         Fix test.
11715
11716 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11717
11718         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11719         Added todo.
11720
11721 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11722
11723         * doc/.cvsignore:
11724         * doc/Makefile.am:
11725         * doc/dbus-test-plan.sgml:
11726         Add test plan document.
11727
11728         * test/Makefile.am:
11729         Fix distcheck.
11730
11731 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11732
11733         * dbus/dbus-message.c: (decode_header_data),
11734         (_dbus_message_loader_return_buffer):
11735         Set the header padding amount when loading a message.
11736
11737 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11738
11739         * bus/dispatch.c: (send_one_message):
11740         Only send broadcast messages to registered connections.
11741
11742         * dbus/dbus-message.c: (dbus_message_name_is):
11743         * dbus/dbus-message.h:
11744         New convenience function.
11745
11746         * dbus/dbus-transport-debug.c: (do_reading):
11747         Only dispatch one message per run.
11748
11749         * test/Makefile.am:
11750         * test/bus-test.c: (new_connection_callback), (die),
11751         (test_hello_client1_handler), (test_hello_client2_handler),
11752         (test_hello_replies), (main):
11753
11754         * test/bus-test-loop.[ch]:
11755         Add these.
11756
11757 2003-02-16  Havoc Pennington  <hp@pobox.com>
11758
11759         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11760         backward conditional
11761
11762 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11763
11764         * dbus/dbus-connection.c:
11765         Implement sent_message_with_reply. (with_reply_and block is still
11766         busted).
11767         Made dispatch_message not lose message if OOM.
11768
11769         * dbus/dbus-errors.h:
11770         Add NoReply error (for reply timeouts).
11771
11772 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11773
11774         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11775         Actually free keys and values when destroying hashtable.
11776
11777 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11778
11779         * dbus/dbus-auth.c: (client_try_next_mechanism):
11780         Plug a leak.
11781
11782         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11783         Return TRUE if there's no thread implementation around.
11784
11785         * glib/dbus-gmain.c: (free_source),
11786         (dbus_connection_hookup_with_g_main):
11787         Make sure to remove the GSource when the connection is finalized.
11788
11789 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11790
11791         * bus/dispatch.c: (bus_dispatch_message_handler):
11792         * dbus/dbus-errors.h:
11793         Return an error if someone tries to send a message to a service
11794         that doesn't exist.
11795
11796 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11797
11798         * bus/activation.c: (load_directory), (bus_activation_init),
11799         (bus_activation_activate_service):
11800         * bus/activation.h:
11801         * bus/driver.c:
11802         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11803         More work on the activation handling.
11804
11805         * dbus/dbus-errors.h:
11806         Add some error messages
11807
11808         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11809         * dbus/dbus-message.h:
11810         New function that creates an error message.
11811
11812         * dbus/dbus-protocol.h:
11813         Add ACTIVATE_SERVER message.
11814
11815         * dbus/dbus-server-unix.c: (unix_handle_watch),
11816         (_dbus_server_new_for_domain_socket):
11817         Call _dbus_fd_set_close_on_exec.
11818
11819         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11820         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11821         (_dbus_fd_set_close_on_exec):
11822         * dbus/dbus-sysdeps.h:
11823         Add _dbus_fd_set_close_on exec function. Also add function that checks
11824         that all open fds are set to close-on-exec and warns otherwise.
11825
11826         * dbus/dbus-transport-unix.c:
11827         (_dbus_transport_new_for_domain_socket):
11828         Call _dbus_fd_set_close_on_exec.
11829
11830 2003-02-16  Havoc Pennington  <hp@pobox.com>
11831
11832         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11833         allow people to avoid setting SIGPIPE to SIG_IGN
11834         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11835         we've been asked not to
11836
11837 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11838
11839         * dbus/dbus-list.c: (_dbus_list_append_link),
11840         (_dbus_list_prepend_link):
11841         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11842         (dbus_realloc):
11843         Warning fixes.
11844
11845 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11846
11847         * bus/Makefile.am:
11848         * bus/activation.c: (bus_activation_entry_free),
11849         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11850         * bus/activation.h:
11851         * bus/main.c: (main):
11852         Add simple activation support, doesn't work yet though.
11853
11854 2003-02-15   Zack Rusin  <zack@kde.org>
11855
11856         * qt/dbus-qthread.cpp:  small casting fix
11857
11858 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11859
11860         * dbus/dbus-errors.c: (dbus_set_error):
11861         * dbus/dbus-errors.h:
11862         Add a few errors and make dbus_set_error void.
11863
11864         * dbus/dbus-sysdeps.c:
11865         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11866         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11867         * dbus/dbus-sysdeps.h:
11868         Add _dbus_spawn_async.
11869
11870         * test/spawn-test.c: (main):
11871         Test for _dbus_spawn_async.
11872
11873 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11874
11875         * dbus/dbus-internals.h:
11876         Fix build without tests.
11877
11878         * dbus/dbus-list.c: (alloc_link):
11879         Fix a segfault when a malloc fails.
11880
11881         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11882         (dbus_malloc0), (dbus_realloc):
11883         Add support for malloc debugging.
11884
11885 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11886
11887         * dbus/dbus-threads.c:
11888         * dbus/dbus-threads.h:
11889         Add condvars. Remove static mutext from API.
11890         Implement static mutexes by initializing them from threads_init.
11891
11892         * glib/dbus-gthread.c:
11893         * qt/dbus-qthread.cpp:
11894         Update with the thread api changes.
11895
11896
11897         * dbus/dbus-list.c:
11898         * dbus/dbus-list.h:
11899         Turn StaticMutex into normal mutex + init function.
11900         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11901         _dbus_list_append_link, _dbus_list_prepend_link
11902
11903
11904         * dbus/dbus-sysdeps.c:
11905         * dbus/dbus-sysdeps.h:
11906         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11907         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11908
11909         * dbus/dbus-protocol.h:
11910         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11911
11912         * dbus/dbus-message.c:
11913         Make ref/unref atomic.
11914         Fix some docs.
11915
11916         * dbus/dbus-connection-internal.h:
11917         * dbus/dbus-connection.c:
11918         * dbus/dbus-connection.h:
11919         Make threadsafe.
11920         Change _peek to _borrow,_return & _steal_borrowed.
11921         Change disconnect callback to event.
11922         Make dbus_connection_dispatch_messages reentrant.
11923
11924         * dbus/dbus-transport.c:
11925         Don't ref the connection on calls to the transport
11926         implementation.
11927
11928         * dbus/dbus-message-handler.c:
11929         Make threadsafe.
11930
11931         * glib/dbus-gmain.c:
11932         Don't use peek_message anymore
11933
11934         * test/Makefile.am:
11935         * test/debug-thread.c:
11936         * test/debug-thread.h:
11937         Simple thread implementation that asserts() on deadlocks in
11938         single-threaded code.
11939
11940         * test/bus-test.c:
11941         (main) Call debug_threads_init.
11942
11943         * test/watch.c:
11944         Use disconnect message instead of disconnect callback.
11945
11946         * bus/connection.c:
11947         * bus/connection.h:
11948         Don't call dbus_connection_set_disconnect_function. Instead export
11949         bus_connection_disconnect.
11950
11951         * bus/dispatch.c:
11952         Call bus_connection_disconnect when we get a disconnected message.
11953
11954 2003-02-15  Havoc Pennington  <hp@pobox.com>
11955
11956         * dbus/dbus-message.c (dbus_message_new): fool around with the
11957         docs
11958
11959 2003-02-14  Havoc Pennington  <hp@pobox.com>
11960
11961         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11962
11963         * dbus/dbus-memory.c: fail if the debug functions indicate we
11964         should
11965
11966         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11967         (_dbus_decrement_fail_alloc_counter): debug functions to
11968         simulate memory allocation failures
11969
11970 2003-02-14  Havoc Pennington  <hp@pobox.com>
11971
11972         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11973         to DBusError
11974
11975 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11976
11977         * bus/driver.c: (bus_driver_handle_hello):
11978         * bus/driver.h:
11979         * bus/services.c: (bus_service_lookup):
11980         Reorder message sending so we get a more sane order.
11981
11982         * test/bus-test.c: (message_handler):
11983         Fix tyop.
11984
11985 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11986
11987         * bus/driver.c: (bus_driver_send_service_deleted),
11988         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11989         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11990         (bus_driver_send_welcome_message),
11991         (bus_driver_handle_list_services),
11992         (bus_driver_handle_acquire_service),
11993         (bus_driver_handle_service_exists):
11994         * dbus/dbus-bus.c: (dbus_bus_register_client),
11995         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11996         * dbus/dbus-errors.c: (dbus_result_to_string):
11997         * dbus/dbus-errors.h:
11998         * dbus/dbus-message.c: (dbus_message_append_args),
11999         (dbus_message_append_args_valist), (dbus_message_get_args),
12000         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12001         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12002         (dbus_message_iter_get_byte_array),
12003         (dbus_message_iter_get_string_array), (message_iter_test),
12004         (check_message_handling), (_dbus_message_test):
12005         * dbus/dbus-message.h:
12006         * test/bus-test.c: (main):
12007         Change fields to arguments in messages, so that they won't be
12008         confused with header fields.
12009
12010         * glib/test-dbus-glib.c: (main):
12011         Remove append_fields from hello message.
12012
12013 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12014
12015         * dbus/dbus-errors.c:
12016         * dbus/dbus-message.c:
12017         * dbus/dbus-string.c:
12018         Documentation fixes.
12019
12020 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12021
12022         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12023         (remove_timeout):
12024         Implement support for timeouts in dbus-glib.
12025
12026 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12027
12028         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12029         * dbus/dbus-message.c: (process_test_subdir):
12030         * test/break-loader.c: (find_breaks_based_on):
12031         Plug some memory leaks.
12032
12033 2003-02-13  Richard Hult  <rhult@codefactory.se>
12034
12035         * bus/main.c: Fix build.
12036
12037         * dbus/dbus-errors.h:
12038         * dbus/dbus-errors.c: Fix copyright for Anders.
12039
12040 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12041
12042         * bus/Makefile.am:
12043         Add utils.[ch]
12044
12045         * bus/connection.c: (bus_connection_foreach):
12046         Fix a warning.
12047
12048         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12049         (unescape_string), (new_section), (parse_section_start),
12050         (parse_key_value), (report_error), (bus_desktop_file_load),
12051         (bus_desktop_file_get_string):
12052         * bus/desktop-file.h:
12053         Use DBusError for error reporting.
12054
12055         * bus/dispatch.c: (send_one_message),
12056         (bus_dispatch_message_handler):
12057         * bus/driver.c: (bus_driver_send_service_deleted),
12058         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12059         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12060         (bus_driver_send_welcome_message),
12061         (bus_driver_handle_list_services),
12062         (bus_driver_handle_acquire_service),
12063         (bus_driver_handle_service_exists):
12064         * bus/loop.c: (bus_loop_run):
12065         * bus/main.c:
12066         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12067
12068         * bus/utils.c: (bus_wait_for_memory):
12069         * bus/utils.h:
12070         New files with general utility functions.
12071
12072         * dbus/dbus-internals.h:
12073         Remove _DBUS_HANDLE_OOM.
12074
12075 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12076
12077         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12078         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12079         * dbus/dbus-errors.h:
12080         Add DBusError structure.
12081
12082 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12083
12084         * test/data/valid-messages/standard-acquire-service.message:
12085         * test/data/valid-messages/standard-hello.message:
12086         * test/data/valid-messages/standard-list-services.message:
12087         * test/data/valid-messages/standard-service-exists.message:
12088         Add some standard messages.
12089
12090 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12091
12092         * bus/driver.c: (bus_driver_send_welcome_message),
12093         (bus_driver_handle_list_services),
12094         (bus_driver_handle_acquire_service),
12095         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12096         Update for API changes in libdbus.
12097
12098         * dbus/dbus-message.c: (dbus_message_new_reply):
12099         * dbus/dbus-message.h:
12100         Remove the name argument. The spec states that replies shouldn't
12101         have a name.
12102
12103 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12104
12105         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12106         (report_error), (bus_desktop_file_load), (lookup_section),
12107         (lookup_line), (bus_desktop_file_get_raw),
12108         (bus_desktop_file_get_string):
12109         * bus/desktop-file.h:
12110         Some fixes, and new functions for getting a key value from a section.
12111
12112 2003-02-13  Havoc Pennington  <hp@pobox.com>
12113
12114         * test/data/auth/fail-after-n-attempts.auth-script: new test
12115
12116         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12117         reject the client.
12118
12119 2003-02-13  Havoc Pennington  <hp@pobox.com>
12120
12121         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12122         dbus_credentials_match were backward
12123
12124         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12125         NO_CREDENTIALS and ROOT_CREDENTIALS
12126
12127         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12128         into here. Never process more commands after we've reached an
12129         end state; store further data as unused bytes.
12130
12131         * test/data/auth/*: add more auth tests
12132
12133         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12134         command to match exact string and EXPECT_UNUSED to match unused
12135         bytes
12136
12137         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12138
12139 2003-02-12  Havoc Pennington  <hp@pobox.com>
12140
12141         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12142         \r off of popped lines
12143
12144         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12145         scripts
12146
12147         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12148         SEND, append \r\n
12149
12150 2003-02-12  Havoc Pennington  <hp@pobox.com>
12151
12152         * dbus/Makefile.am: remove break-loader from the build, since it
12153         moved.
12154
12155         * configure.in: add --enable-gcov to turn on coverage profiling
12156         flags and disable optimization
12157
12158 2003-02-10  Havoc Pennington  <hp@pobox.com>
12159
12160         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12161         initial cut at test framework for DBusAuth from laptop.
12162         Doesn't quite work yet but it compiles and I need to get
12163         it off the 266mhz laptop. ;-)
12164
12165         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12166         fix a memleak in error case
12167
12168 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12169
12170         * bus/Makefile.am:
12171         * bus/desktop-file.c:
12172         * bus/desktop-file.h:
12173         Add a desktop file parser.
12174
12175 2003-02-11  Zack Rusin  <zack@kde.org>
12176
12177         * qt/message.[h|cpp]: sample implementation
12178         of the KDE wrapper for DBusMessage
12179
12180 2003-02-09  Zack Rusin  <zack@kde.org>
12181
12182         * test/bus-test.c: make_it_compile
12183         * doc/dbus-specification.sgml: minimal semantic fix
12184
12185 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12186
12187         Release 0.3
12188
12189         * NEWS: Update
12190
12191 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12192
12193         * dbus/Makefile.am:
12194         * dbus/dbus-break-loader.c:
12195         * test/Makefile.am:
12196         * test/break-loader.c:
12197         Move dbus-break-loader to test/ and rename it to break-loader.
12198
12199 2003-02-02  Havoc Pennington  <hp@pobox.com>
12200
12201         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12202         for code to manage cookies in your home directory
12203
12204         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12205
12206         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12207         to authenticate, then disconnect the client.
12208
12209 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12210
12211         * dbus/dbus-message.c (dbus_message_append_fields):
12212         Correct docs.
12213
12214 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12215
12216         * doc/dbus-specification.sgml:
12217         Update address format section.
12218
12219 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12220
12221         * test/Makefile.am:
12222         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12223         (message_handler), (new_connection_callback), (loop_quit),
12224         (loop_run), (main):
12225         Add bus test.
12226
12227 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12228
12229         * bus/driver.c: (bus_driver_handle_service_exists):
12230         Simplify the code a bit.
12231
12232         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12233         Fix a silly.
12234
12235 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12236
12237         * bus/Makefile.am:
12238         Add libdbus-daemon.la and link to it.
12239
12240 2003-02-01  James Willcox  <jwillcox@gnome.org>
12241
12242         * bus/driver.c: (bus_driver_handle_own_service):
12243         Actually include the service reply code in the message.
12244
12245 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12246
12247         * bus/driver.c: (bus_driver_handle_service_exists):
12248         Don't unref the incoming message.
12249
12250 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12251
12252         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12253
12254 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12255
12256         * dbus/dbus-server.c: (dbus_server_listen):
12257         * dbus/dbus-transport.c: (_dbus_transport_open):
12258         ifdef out the calls to the debug transport and server.
12259
12260 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12261
12262         * dbus/dbus-watch.c (dbus_watch_get_flags):
12263         Add note in the docs that ERROR or HANGUP won't be returned
12264         and are assumed always on.
12265
12266         * glib/dbus-gmain.c (add_watch):
12267         Always add IO_ERR | IO_HUP
12268
12269         * dbus/dbus-message.h:
12270         Add semicolon after dbus_message_iter_get_string_array().
12271         Makes qt code build again
12272
12273 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12274
12275         * bus/driver.c: (create_unique_client_name),
12276         (bus_driver_handle_hello):
12277         Don't take a name, just use a numeric id to identify
12278         each client.
12279
12280         * dbus/Makefile.am:
12281         * dbus/dbus-bus.c: (dbus_bus_register_client),
12282         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12283         * dbus/dbus-bus.h:
12284         Add new convenience functions for communicating with the bus.
12285
12286         * dbus/dbus-message.h:
12287
12288         * dbus/dbus-protocol.h:
12289         Fix a typo.
12290
12291 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12292
12293         * dbus/dbus-message.c (dbus_message_append_fields):
12294         Add some more doc comments.
12295
12296 2003-02-01  Havoc Pennington  <hp@pobox.com>
12297
12298         * dbus/dbus-break-loader.c (randomly_modify_length): change
12299         a 4-byte value in the message as if it were a length
12300
12301         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12302         execute bit on saved files
12303
12304 2003-02-01  Havoc Pennington  <hp@pobox.com>
12305
12306         * dbus/dbus-break-loader.c (main): new program to find messages
12307         that break the loader.
12308
12309         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12310         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12311
12312         * dbus/dbus-string.c (_dbus_string_set_byte): new
12313
12314 2003-01-31  Havoc Pennington  <hp@pobox.com>
12315
12316         * dbus/dbus-message.c: refactor the test code to be more general,
12317         in preparation for writing a "randomly permute test cases to
12318         try to break the loader" program.
12319
12320 2003-01-31  Havoc Pennington  <hp@pobox.com>
12321
12322         * doc/dbus-specification.sgml: work on the specification
12323
12324         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12325         the protocol version of the message.
12326
12327         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12328         no longer specifies that.
12329         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12330         1/2/3/4)
12331
12332         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12333         "break" for DBUS_TYPE_NIL, remove @todo
12334
12335 2003-01-31  Havoc Pennington  <hp@pobox.com>
12336
12337         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12338         just set_is_error/get_is_error as this is a commonly-used
12339         function, and write docs.
12340
12341 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12342
12343         * dbus/dbus-address.c: (dbus_address_entry_free):
12344         Free key and value lists.
12345
12346         * dbus/dbus-internals.c: (_dbus_type_to_string):
12347         Add the types we didn't have.
12348
12349         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12350         (_dbus_marshal_validate_arg):
12351         Add NIL types.
12352
12353         * dbus/dbus-message.c: (dbus_message_set_sender):
12354         Remove todo about being able to set sender to NULL.
12355
12356         (dbus_message_set_is_error_reply),
12357         (dbus_message_get_is_error_reply):
12358         * dbus/dbus-message.h:
12359         New functions.
12360
12361         * dbus/dbus-protocol.h:
12362         Add error reply flag.
12363
12364         * test/data/valid-messages/opposite-endian.message:
12365         Add NIL type to test.
12366
12367 2003-01-31  Havoc Pennington  <hp@pobox.com>
12368
12369         * doc/dbus-specification.sgml: fully specify the header.  Add
12370         flags and major protocol version, and change header/body len to
12371         unsigned.
12372
12373         * dbus/dbus-message-builder.c (append_saved_length): append length
12374         as uint32
12375
12376         * dbus/dbus-message.c (dbus_message_create_header): change header
12377         length and body length to unsigned. Add the new fields from the
12378         spec
12379         (_dbus_message_loader_return_buffer): unsigned header/body len
12380
12381 2003-01-30  Havoc Pennington  <hp@pobox.com>
12382
12383         * dbus/dbus-auth.c: rework to use only REJECTED, no
12384         MECHANISMS
12385
12386         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12387         use REJECTED, suggested by Mark McLoughlin
12388
12389 2003-01-30  Havoc Pennington  <hp@pobox.com>
12390
12391         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12392         a better way to report errors here. e.g.  "unix address lacks
12393         path" or something. also "no such file" when the path doesn't
12394         exist, etc.
12395
12396         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12397         leaking list nodes
12398         (dbus_parse_address): add @todo about documenting address format,
12399         and allowing , and ; to be escaped
12400
12401 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12402
12403         * dbus/Makefile.am:
12404         Add dbus-address.[ch]
12405
12406         * dbus/dbus-address.c: (dbus_address_entry_free),
12407         (dbus_address_entries_free), (create_entry),
12408         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12409         (dbus_parse_address), (_dbus_address_test):
12410         * dbus/dbus-address.h:
12411         New files for dealing with address parsing.
12412
12413         * dbus/dbus-connection.c:
12414         Document timeout functions.
12415
12416         * dbus/dbus-message.c:
12417         Document dbus_message_new_from_message.
12418
12419         * dbus/dbus-server-debug.c:
12420         Document.
12421
12422         * dbus/dbus-server.c: (dbus_server_listen):
12423         Parse address and use correct server implementation.
12424
12425         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12426         * dbus/dbus-string.h:
12427         New function with test.
12428
12429         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12430         * dbus/dbus-test.h:
12431         Add address tests.
12432
12433         * dbus/dbus-transport-debug.c:
12434         Document.
12435
12436         * dbus/dbus-transport.c: (_dbus_transport_open):
12437         Parse address and use correct transport implementation.
12438
12439 2003-01-30  Havoc Pennington  <hp@pobox.com>
12440
12441         * dbus/dbus-message.c: use message->byte_order instead of
12442         DBUS_COMPILER_BYTE_ORDER throughout.
12443         (dbus_message_create_header): pad header to align the
12444         start of the body of the message to 8-byte boundary
12445
12446         * dbus/dbus-marshal.h: make all the demarshalers take const
12447         DBusString arguments.
12448
12449         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12450         validate message args here, so we don't have to do slow validation
12451         later, and so we catch bad messages as they are incoming. Also add
12452         better checks on header_len and body_len. Also fill in
12453         message->byte_order
12454
12455         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12456         implemented properly)
12457         (_dbus_string_validate_nul): new function to check all-nul
12458
12459         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12460         get_arg_end_pos and remove all validation
12461         (_dbus_marshal_validate_arg): actually do validation here.
12462
12463 2003-01-29  Havoc Pennington  <hp@pobox.com>
12464
12465         * dbus/dbus-message.c (check_message_handling): fix assertion
12466         failure on set_client_serial
12467
12468 2003-01-28  Havoc Pennington  <hp@pobox.com>
12469
12470         * dbus/dbus-server-debug.c: Add doc section comments
12471
12472         * dbus/dbus-transport-debug.c: add doc section comments
12473
12474 2003-01-28  Havoc Pennington  <hp@redhat.com>
12475
12476         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12477         the reverse order from how I had it
12478         (_dbus_string_base64_encode): reverse encoding order. I was
12479         basically byteswapping everything during encoding.
12480
12481 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12482
12483         * dbus/dbus-connection-internal.h:
12484         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12485         (_dbus_connection_remove_timeout):
12486         Add functions for adding and removing timeouts.
12487
12488         * dbus/dbus-message.c: (dbus_message_new_from_message):
12489         Add new function that takes a message and creates an exact
12490         copy of it, but with the refcount set to 1.
12491         (check_message_handling):
12492         Fix build error.
12493
12494         * dbus/dbus-server-protected.h:
12495         * dbus/dbus-server.c: (_dbus_server_init_base),
12496         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12497         (dbus_server_set_timeout_functions):
12498         (_dbus_server_remove_timeout):
12499         New functions so that a server can add and remove timeouts.
12500
12501         (dbus_server_listen):
12502         Add commented out call to dbus_server_debug_new.
12503
12504         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12505         Actually set the handler, doh.
12506
12507         * dbus/dbus-transport.c: (_dbus_transport_open):
12508         Add commented out call to dbus_transport_debug_client_new.
12509
12510         * dbus/Makefile.am:
12511         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12512
12513 2003-01-28  Havoc Pennington  <hp@pobox.com>
12514
12515         * dbus/dbus-message.c (check_message_handling): function to check
12516         on the loaded message, iterates over it etc.
12517
12518 2003-01-28  Havoc Pennington  <hp@pobox.com>
12519
12520         * test/Makefile.am (dist-hook): fix make distdir
12521
12522         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12523
12524 2003-01-27  Havoc Pennington  <hp@pobox.com>
12525
12526         * dbus/dbus-mempool.c (time_for_size): replace printf with
12527         _dbus_verbose
12528
12529         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12530         empty lines; fix the SAVE_LENGTH stuff to be
12531         START_LENGTH/END_LENGTH so it actually works; couple other
12532         bugfixes
12533
12534         * test/Makefile.am (dist-hook): add dist-hook for .message files
12535
12536         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12537         can be constant or locked.
12538         (_dbus_string_free): allow freeing a const string as
12539         documented/intended
12540
12541         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12542
12543         * dbus/dbus-test-main.c (main): take an argument which is the
12544         directory containing test data
12545
12546         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12547         argument to this and load all the messages in test/data/
12548         checking that they can be loaded or not loaded as appropriate.
12549
12550 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12551
12552         * bus/dispatch.c: (bus_dispatch_message_handler):
12553         Dispatch messages sent to services.
12554
12555         * bus/driver.c: (bus_driver_send_service_deleted),
12556         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12557         (bus_driver_send_service_acquired):
12558         Add helper functions for sending service related messages.
12559
12560         (bus_driver_send_welcome_message):
12561         Send HELLO_REPLY instead of WELCOME.
12562
12563         (bus_driver_handle_list_services):
12564         Send LIST_SERVICES_REPLY instead of SERVICES.
12565
12566         (bus_driver_handle_own_service),
12567         (bus_driver_handle_service_exists):
12568         New message handlers.
12569
12570         (bus_driver_handle_message):
12571         Invoke new message handlers.
12572
12573         (bus_driver_remove_connection):
12574         Don't remove any services here since that's done automatically
12575         by bus_service_remove_owner now.
12576
12577         * bus/driver.h:
12578         New function signatures.
12579
12580         * bus/services.c: (bus_service_add_owner):
12581         Send ServiceAcquired message if we're the only primary owner.
12582
12583         (bus_service_remove_owner):
12584         Send ServiceAcquired/ServiceLost messages.
12585
12586         (bus_service_set_prohibit_replacement),
12587         (bus_service_get_prohibit_replacement):
12588         Functions for setting prohibit replacement.
12589
12590         (bus_service_has_owner):
12591         New function that checks if a connection is in the owner queue of
12592         a certain service.
12593
12594         * bus/services.h:
12595         Add new function signatures.
12596
12597         * dbus/dbus-list.c: (_dbus_list_test):
12598         Add tests for _dbus_list_remove_last and traversing the list backwards.
12599
12600         * dbus/dbus-list.h:
12601         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12602         go any further, so return NULL then.
12603
12604         * dbus/dbus-protocol.h:
12605         Add new messages, service flags and service replies.
12606
12607 2003-01-26  Havoc Pennington  <hp@pobox.com>
12608
12609         * dbus/dbus-message-builder.c: implement, completely untested.
12610
12611         * test/data/*: add data to be used in testing.
12612         ".message" files are our simple loadable text format.
12613         ".message-raw" will be binary dumps of messages.
12614
12615         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12616
12617 2003-01-26  Havoc Pennington  <hp@pobox.com>
12618
12619         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12620
12621         * dbus/dbus-errors.c (dbus_result_to_string): add
12622         file errors
12623
12624         * dbus/dbus-message-builder.c: new file, will contain code to load
12625         up messages from files. Not implemented yet.
12626
12627 2003-01-26  Havoc Pennington  <hp@pobox.com>
12628
12629         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12630         the sender by setting to NULL
12631
12632 2003-01-26  Havoc Pennington  <hp@pobox.com>
12633
12634         The unit tests pass, but otherwise untested.  If it breaks, the
12635         tests should have been better. ;-)
12636
12637         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12638         the connection.
12639
12640         * dbus/dbus-message.c: redo everything so we maintain
12641         message->header as the only copy of the various fields.
12642         This avoids the possibility of out-of-memory in some cases,
12643         for example dbus_message_lock() can't run out of memory anymore,
12644         and avoids extra copying. Figured I may as well go ahead and do
12645         this since it was busted for dbus_message_lock to not return
12646         failure on OOM, and dbus_message_write_header was totally
12647         unchecked for OOM. Also fixed some random other bugs.
12648
12649         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12650         that strings are nul-terminated. Also, end_pos can be equal
12651         to string length just not greater than, I think.
12652         (_dbus_marshal_set_int32): new function
12653         (_dbus_marshal_set_uint32): new function
12654         (_dbus_marshal_set_string): new function
12655
12656         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12657         a warning, init timeout_list to NULL
12658         (dbus_connection_send_message): don't use uninitialized variable
12659         "serial"
12660
12661         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12662
12663 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12664
12665         * bus/driver.c: (bus_driver_handle_hello),
12666         (bus_driver_send_welcome_message):
12667         Plug leaks
12668
12669 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12670
12671         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12672         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12673         (dbus_connection_unref):
12674         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12675         * dbus/dbus-message.c: (dbus_message_unref),
12676         Plug memory leaks.
12677
12678         (dbus_message_get_fields):
12679         Remove debugging printout.
12680
12681         (_dbus_message_loader_return_buffer):
12682         Don't store the header string.
12683
12684         (_dbus_message_test):
12685         Plug leaks.
12686
12687 2003-01-26  Richard Hult  <rhult@codefactory.se>
12688
12689         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12690         the file descriptor list, since it can change under us.
12691
12692 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12693
12694         * glib/dbus-gmain.c: (dbus_connection_prepare),
12695         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12696         (remove_watch), (dbus_connection_hookup_with_g_main):
12697         Rewrite the glib handling to use its own GSource instead of a
12698         GIOChannel so we can catch messages put in the queue while waiting
12699         for a reply.
12700
12701 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12702
12703         * bus/Makefile.am:
12704         * bus/connection.c: (connection_disconnect_handler),
12705         (connection_watch_callback), (bus_connection_setup):
12706         * bus/dispatch.c: (send_one_message),
12707         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12708         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12709         * bus/dispatch.h:
12710         * bus/driver.c: (bus_driver_send_service_deleted),
12711         (bus_driver_send_service_created), (bus_driver_handle_hello),
12712         (bus_driver_send_welcome_message),
12713         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12714         (bus_driver_handle_message):
12715         * bus/driver.h:
12716         Refactor code, put the message dispatching in its own file. Use
12717         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12718         is disconnected.
12719
12720 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12721
12722         * dbus/dbus-internals.h:
12723         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12724
12725         * dbus/dbus-message.c: (dbus_message_get_sender):
12726         * dbus/dbus-message.h:
12727         Implement dbus_message_get_sender.
12728
12729         * dbus/dbus-protocol.h:
12730         Add message and service defines.
12731
12732 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12733
12734         * dbus/dbus-connection.c: (dbus_connection_send_message):
12735         * dbus/dbus-message-internal.h:
12736         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12737         (dbus_message_write_header):
12738         Remove _dbus_messag_unlock and don't set the client serial on a
12739         message if one already exists.
12740
12741 2003-01-24  Havoc Pennington  <hp@pobox.com>
12742
12743         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12744         list_pool
12745
12746         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12747         on OOM
12748
12749 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12750
12751         * dbus/dbus-list.c: (alloc_link), (free_link):
12752         Use a memory pool for the links.
12753
12754 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12755
12756         * bus/connection.c: (bus_connection_foreach):
12757         * bus/connection.h:
12758         Add new bus_connection_foreach function.
12759
12760         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12761         Add function that broadcasts a message to all clients.
12762
12763         (bus_driver_send_service_created), (bus_driver_handle_hello),
12764         (bus_driver_send_welcome_message),
12765         (bus_driver_handle_list_services), (bus_driver_message_handler):
12766         Implement functions that take care of listing services, and notifying
12767         clients when new services are created.
12768
12769         * bus/services.c: (bus_services_list):
12770         * bus/services.h:
12771         Add new function that returns an array of strings with the currently
12772         registered services.
12773
12774         * glib/dbus-glib.h:
12775         * glib/dbus-gmain.c:
12776         Update copyright year.
12777
12778 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12779
12780         * dbus/dbus-connection.c: (dbus_connection_send_message):
12781         Unlock the message in case it was sent earlier.
12782
12783         (dbus_connection_send_message_with_reply_and_block):
12784         Remove the reply message from the list.
12785
12786         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12787         Set array_len and new_pos correctly.
12788
12789         (_dbus_marshal_test):
12790         Remove debug output.
12791
12792         * dbus/dbus-message-internal.h:
12793         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12794         New function that returns the reply serial.
12795
12796         (_dbus_message_unlock):
12797         New function that unlocks a message and resets its header.
12798
12799         (dbus_message_append_string_array),
12800         (dbus_message_get_fields_valist),
12801         (dbus_message_iter_get_field_type),
12802         (dbus_message_iter_get_string_array),
12803         (dbus_message_get_fields),
12804         (dbus_message_append_fields_valist):
12805         Handle string arrays.
12806
12807         (dbus_message_set_sender):
12808         Make this function public since the bus daemon needs it.
12809
12810         (decode_header_data):
12811         Set the reply serial to -1 initially.
12812
12813         * dbus/dbus-message.h:
12814         Add dbus_message_set_sender.
12815
12816 2003-01-24  Havoc Pennington  <hp@pobox.com>
12817
12818         * doc/dbus-specification.sgml: add some stuff
12819
12820 2003-01-22  Havoc Pennington  <hp@pobox.com>
12821
12822         * doc/dbus-specification.sgml: Start to document the protocol.
12823
12824 2003-01-22  Havoc Pennington  <hp@pobox.com>
12825
12826         * dbus/dbus-connection.c
12827         (dbus_connection_send_message_with_reply_and_block): add some @todo
12828
12829         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12830
12831 2003-01-21  Havoc Pennington  <hp@pobox.com>
12832
12833         (patch untested because can't compile)
12834
12835         * bus/driver.c (create_unique_client_name): make this function
12836         never recycle client names. Also, caller should initialize
12837         the DBusString.
12838
12839         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12840
12841 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12842
12843         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12844         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12845         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12846         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12847         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12848         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12849         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12850         * dbus/dbus-marshal.h:
12851         * dbus/dbus-protocol.h:
12852         Add support for marshalling and demarshalling integer, double
12853         and string arrays.
12854
12855 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12856
12857         * bus/Makefile.am:
12858         Add driver.[ch]
12859
12860         * bus/connection.c: (connection_disconnect_handler):
12861         Remove the connection from the bus driver's list.
12862
12863         (connection_watch_callback): Dispatch messages.
12864
12865         (free_connection_data): Free connection name.
12866
12867         (bus_connection_setup): Add connection to the bus driver's list.
12868         (bus_connection_remove_owned_service):
12869         (bus_connection_set_name), (bus_connection_get_name):
12870         Add functions for setting and getting the connection's name.
12871
12872         * bus/connection.h:
12873         Add function headers.
12874
12875         * bus/driver.c: (create_unique_client_name),
12876         (bus_driver_handle_hello_message),
12877         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12878         (bus_driver_add_connection), (bus_driver_remove_connection):
12879         * bus/driver.h:
12880         * bus/main.c:
12881         * bus/services.c: (bus_service_free):
12882         * bus/services.h:
12883         New file that handles communication and registreation with the bus
12884         itself.
12885
12886 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12887
12888         * dbus/dbus-connection.c: (dbus_connection_send_message):
12889         Add a new client_serial parameter.
12890
12891         (dbus_connection_send_message_with_reply):
12892         Remove a @todo since we've implemented the blocking function.
12893
12894         (dbus_connection_send_message_with_reply_and_block):
12895         New function that sends a message and waits for a reply and
12896         then returns the reply.
12897
12898         * dbus/dbus-connection.h:
12899         Add new functions.
12900
12901         * dbus/dbus-errors.c: (dbus_result_to_string):
12902         * dbus/dbus-errors.h:
12903         Add new DBUS_RESULT.
12904
12905         * dbus/dbus-message-internal.h:
12906         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12907         (_dbus_message_set_sender), (dbus_message_write_header),
12908         (dbus_message_new_reply), (decode_header_data),
12909         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12910         * dbus/dbus-message.h:
12911         Add new functions that set the reply serial and sender.
12912         Also marshal and demarshal them correctly and add test.
12913
12914         * dbus/dbus-protocol.h:
12915         Add new DBUS_MESSAGE_TYPE_SENDER.
12916
12917         * glib/dbus-glib.h:
12918         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12919         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12920         (dbus_connection_hookup_with_g_main):
12921         * glib/test-dbus-glib.c: (main):
12922         Rewrite to use GIOChannel and remove the GSource crack.
12923
12924         * test/echo-client.c: (main):
12925         * test/watch.c: (check_messages):
12926         Update for changed APIs
12927
12928 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12929
12930         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12931
12932         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12933         Create a DBusTimeoutList.
12934         (dbus_connection_set_timeout_functions): Add new function to
12935         set timeout callbacks
12936
12937         * dbus/dbus-connection.h: Add public DBusTimeout API.
12938
12939         * dbus/dbus-message.c: (dbus_message_get_service):
12940         * dbus/dbus-message.h:  New function.
12941
12942         * dbus/dbus-server.c: Fix small doc typo.
12943
12944         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12945
12946 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12947
12948         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12949         of the string, just as long as specified.
12950
12951 2003-01-19  Havoc Pennington  <hp@pobox.com>
12952
12953         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12954         new function
12955
12956         * dbus/dbus-server.c (dbus_server_set_max_connections)
12957         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12958         keep track of current number of connections, and add API for
12959         setting a max (but haven't implemented enforcing the max yet)
12960
12961 2003-01-18  Havoc Pennington  <hp@pobox.com>
12962
12963         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12964         reading/writing if read_watch != NULL or write_watch != NULL.
12965
12966         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12967         the message loader code to actually load message->header and
12968         message->body into the newly-created message.
12969
12970         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12971         in OOM case
12972
12973         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12974         (dbus_connection_get_max_message_size)
12975         (dbus_connection_set_max_live_messages_size)
12976         (dbus_connection_get_max_live_messages_size): implement some
12977         resource limitation functions
12978
12979         * dbus/dbus-resources.c: new file implementing some of the
12980         resource limits stuff
12981
12982         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12983         missing docs, add @todo to handle OOM etc.
12984
12985         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12986         docs
12987
12988 2003-01-18  Havoc Pennington  <hp@pobox.com>
12989
12990         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12991         connection if it hasn't been already.
12992
12993         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12994         replace with DisconnectFunction.
12995
12996 2003-01-18  Havoc Pennington  <hp@pobox.com>
12997
12998         Building --disable-verbose-mode --disable-asserts --disable-tests
12999         cuts the library from 112K to 45K or so
13000
13001         * configure.in: check for varargs macro support,
13002         add --enable-verbose-mode, --enable-asserts.
13003
13004         * dbus/dbus-internals.h (_dbus_assert): support
13005         DBUS_DISABLE_ASSERT
13006         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13007
13008 2003-01-18  Havoc Pennington  <hp@pobox.com>
13009
13010         * dbus/dbus-test.c: include config.h so that tests actually run
13011
13012         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13013         so the failure mode when that assumption fails will be plenty
13014         obvious.
13015
13016 2003-01-18  Havoc Pennington  <hp@pobox.com>
13017
13018         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13019
13020         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13021         the distribution
13022
13023         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13024         since we don't want to use those in make check
13025
13026 2003-01-15  Havoc Pennington  <hp@redhat.com>
13027
13028         Release 0.2
13029
13030         * NEWS: update
13031
13032 2003-01-15  Havoc Pennington  <hp@redhat.com>
13033
13034         * test/Makefile.am: fix so that test source code ends up in the
13035         distribution on make distcheck
13036
13037 2003-01-15  Havoc Pennington  <hp@redhat.com>
13038
13039         Release 0.1.
13040
13041         * NEWS: update
13042
13043 2003-01-15  Havoc Pennington  <hp@redhat.com>
13044
13045         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13046         fix build when --disable-tests
13047
13048         * Makefile.am (EXTRA_DIST): put HACKING in here
13049
13050         * HACKING: document procedure for making a tarball release.
13051
13052 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13053
13054         * bus/connection.c: (connection_error_handler),
13055         (bus_connection_setup):
13056         * bus/main.c: (main):
13057         Make sure that the DBusConnectionData struct is NULLed
13058         out to prevent a segfault.
13059
13060         * dbus/dbus-errors.c: (dbus_result_to_string):
13061         * dbus/dbus-errors.h:
13062         * dbus/dbus-message.c: (dbus_message_get_fields),
13063         (dbus_message_get_fields_valist), (_dbus_message_test):
13064         * dbus/dbus-message.h:
13065         Make dbus_message_get_fields return a result code so we can
13066         track invalid fields as well as oom.
13067
13068 2003-01-11  Havoc Pennington  <hp@pobox.com>
13069
13070         * configure.in: change --enable-test/--enable-ansi action-if-given
13071         to enable_foo=$enableval instead of enable_foo=yes
13072
13073 2003-01-08  Havoc Pennington  <hp@pobox.com>
13074
13075         * dbus/dbus-string.c (_dbus_string_align_length): new function
13076
13077         * dbus/dbus-test-main.c: move main() for test app here
13078         * dbus/dbus-test.c
13079         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13080         symbol to run tests, because dbus-test isn't in the main
13081         library
13082
13083         Code review nitpicks.
13084
13085         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13086         for people with narrow emacs ;-). Assert client_serial was filled
13087         in. Assert message->name != NULL.
13088         (dbus_message_append_fields): have "first_field_type" arg separate
13089         from va list, needed for C++ binding that also uses varargs IIRC
13090         and helps with type safety
13091         (dbus_message_new): add @todo about using DBusString to store
13092         service/name internally
13093         (dbus_message_new): don't leak ->service and ->name on OOM later
13094         in the function
13095         (dbus_message_unref): free the service name
13096         (dbus_message_get_fields): same change to varargs
13097         i.e. first_field_type
13098         (_dbus_message_loader_return_buffer): assert that the message data
13099         is aligned (if not it's a bug in our code). Put in verbose griping
13100         about why we set corrupted = TRUE.
13101         (decode_header_data): add FIXME that char* is evil.  Was going to
13102         add FIXME about evil locale-specific string.h strncmp, but just
13103         switched to wacky string-as-uint32 optimization. Move check for
13104         "no room for field name" above get_const_data_len() to avoid
13105         assertion failure in get_const_data_len if we have trailing 2
13106         bytes or the like. Check for service and name fields being
13107         provided twice. Don't leak service/name on error. Require field
13108         names to be aligned to 4 bytes.
13109
13110         * dbus/dbus-marshal.c: move byte swap stuff to header
13111         (_dbus_pack_int32): uscore-prefix
13112         (_dbus_unpack_int32): uscore-prefix
13113         (_dbus_unpack_uint32): export
13114         (_dbus_demarshal_string): add @todo complaining about use of
13115         memcpy()
13116         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13117         handling allowing corrupt data to go unchecked
13118
13119 2003-01-08  Havoc Pennington  <hp@redhat.com>
13120
13121         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13122         to the select() as needed for authentication. (should be using
13123         _dbus_poll() not select, but for another day)
13124
13125         * dbus/dbus.h: include dbus/dbus-protocol.h
13126
13127 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13128
13129         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13130         dbus-connection.h
13131
13132 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13133
13134         * dbus/dbus-internals.c: (_dbus_type_to_string):
13135         New function that returns a string describing a type.
13136
13137         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13138         * dbus/dbus-marshal.h:
13139         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13140         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13141         (dbus_message_iter_get_byte_array):
13142         * dbus/dbus-message.h:
13143         Add new convenience functions for appending and getting message fields.
13144         Also add demarshalling routines for byte arrays.
13145
13146 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13147
13148         * dbus/dbus-connection-internal.h:
13149         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13150         (_dbus_connection_get_next_client_serial),
13151         (dbus_connection_send_message):
13152         * dbus/dbus-internals.h:
13153         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13154         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13155         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13156         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13157         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13158         (_dbus_verbose_bytes), (_dbus_marshal_test):
13159         * dbus/dbus-marshal.h:
13160         * dbus/dbus-message-internal.h:
13161         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13162         (dbus_message_write_header), (_dbus_message_lock),
13163         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13164         (dbus_message_get_name), (dbus_message_append_int32),
13165         (dbus_message_append_uint32), (dbus_message_append_double),
13166         (dbus_message_append_string), (dbus_message_append_byte_array),
13167         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13168         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13169         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13170         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13171         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13172         (decode_header_data), (_dbus_message_loader_return_buffer),
13173         (message_iter_test), (_dbus_message_test):
13174         * dbus/dbus-message.h:
13175         * dbus/dbus-protocol.h:
13176         * dbus/dbus-test.c: (main):
13177         * dbus/dbus-test.h:
13178         * glib/test-dbus-glib.c: (message_handler), (main):
13179         * test/echo-client.c: (main):
13180         * test/watch.c: (check_messages):
13181         Make messages sendable and receivable for real.
13182
13183 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13184
13185         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13186         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13187         * dbus/dbus-message.c: (dbus_message_append_int32),
13188         (dbus_message_append_uint32), (dbus_message_append_double),
13189         (dbus_message_append_string), (dbus_message_append_byte_array):
13190         Handle OOM restoration.
13191
13192 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13193
13194         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13195         (_dbus_demarshal_string), (_dbus_marshal_test):
13196         * dbus/dbus-marshal.h:
13197         * dbus/dbus-message.c: (dbus_message_get_name),
13198         Document these functions.
13199
13200         (dbus_message_append_int32), (dbus_message_append_uint32),
13201         (dbus_message_append_double), (dbus_message_append_string),
13202         (dbus_message_append_byte_array):
13203         * dbus/dbus-message.h:
13204         Add functions for adding message fields of different types.
13205
13206         * dbus/dbus-protocol.h:
13207         Add the different types.
13208
13209 2003-01-05  Havoc Pennington  <hp@pobox.com>
13210
13211         * bus/connection.c: implement routines for handling connections,
13212         first thing is keeping a list of owned services on each connection
13213         and setting up watches etc.
13214
13215         * bus/services.c: implement a mapping from service names to lists
13216         of connections
13217
13218         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13219
13220         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13221         to use static mutexes for global data
13222
13223         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13224         collection of functions to set/get application-specific data
13225         on the DBusConnection.
13226
13227 2003-01-04  Havoc Pennington  <hp@pobox.com>
13228
13229         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13230         (_dbus_poll): new function
13231
13232         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13233         copied from GLib
13234
13235         * bus/loop.c: initial code for the daemon main loop
13236
13237 2003-01-04  Havoc Pennington  <hp@pobox.com>
13238
13239         * test/watch.c (error_handler): make it safe if the error handler
13240         is called multiple times (if we s/error handler/disconnect
13241         handler/ we should just guarantee it's called only once)
13242
13243         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13244         error handler on disconnect (it's quite possible we should
13245         just change the error handler to a "disconnect handler," I'm
13246         not sure we have any other meaningful errors)
13247
13248         * configure.in: check for getpwnam_r
13249
13250         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13251         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13252         mechanism as in SASL spec, using socket credentials
13253
13254         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13255         (_dbus_send_credentials_unix_socket): new function
13256
13257         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13258         dbus_accept()
13259         (_dbus_write): only check errno if <0 returned
13260         (_dbus_write_two): ditto
13261
13262 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13263
13264         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13265         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13266         (_dbus_marshal_test):
13267         * dbus/dbus-marshal.h:
13268         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13269         to _dbus_marshal_utf8_string. Also fix some tests.
13270
13271 2002-12-28  Harri Porten  <porten@kde.org>
13272
13273         * configure.in: added check for C++ compiler and a very cheesy
13274         check for the Qt integration
13275
13276         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13277
13278         * qt/Makefile.am: added
13279
13280         * qt/.cvsignore: added
13281
13282         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13283         latter, added #ifdef QT_THREAD_SUPPORT guard.
13284
13285         * dbus/Makefile.am: added missing headers for make dist
13286
13287 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13288
13289         * dbus/Makefile.am: fixup export-symbols-regex.
13290
13291 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13292
13293         * acinclude.m4: Add this file and put the
13294         PKG_CHECK_MODULE macro in it.
13295
13296 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13297
13298         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13299         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13300         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13301         (_dbus_marshal_test):
13302         Make the demarshalling routines align the pos argument.
13303         Add string marshalling tests and fix the obvious bugs
13304         discovered.
13305
13306 2002-12-26  Havoc Pennington  <hp@pobox.com>
13307
13308         * dbus/dbus-auth.c: fixes fixes fixes
13309
13310         * dbus/dbus-transport-unix.c: wire up support for
13311         encoding/decoding data on the wire
13312
13313         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13314         (_dbus_auth_decode_data): append to target string
13315         instead of nuking it.
13316
13317 2002-12-26  Havoc Pennington  <hp@pobox.com>
13318
13319         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13320         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13321         doh
13322
13323         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13324         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13325         now). Main point is because I wanted unpack_uint32 to implement
13326         _dbus_verbose_bytes
13327         (_dbus_verbose_bytes): new function
13328
13329         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13330
13331         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13332         mechanism to handle a corrupt message stream
13333         (_dbus_message_loader_new): fix preallocation to only prealloc,
13334         not prelengthen
13335
13336         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13337         (_dbus_string_test): enhance tests for copy/move and fix the
13338         functions
13339
13340         * dbus/dbus-transport-unix.c: Hold references in more places to
13341         avoid reentrancy problems
13342
13343         * dbus/dbus-transport.c: ditto
13344
13345         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13346         leak reference count in no-message case
13347
13348         * test/watch.c (do_mainloop): handle adding/removing watches
13349         during iteration over the watches. Also, ref the connection/server
13350         stored on a watch, so we don't try to mangle a destroyed one.
13351
13352         * dbus/dbus-transport-unix.c (do_authentication): perform
13353         authentication
13354
13355         * dbus/dbus-auth.c (get_state): add a state
13356         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13357         (_dbus_auth_get_unused_bytes): append the unused bytes
13358         to the passed in string, rather than prepend
13359
13360         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13361         the auth conversation DBusAuth
13362
13363         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13364         (_dbus_transport_new_for_domain_socket): when creating a
13365         transport, pass in whether it's a client-side or server-side
13366         transport so we know which DBusAuth to create
13367
13368 2002-12-03  Havoc Pennington  <hp@pobox.com>
13369
13370         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13371         _after_ finalizing the derived members
13372         (unix_connection_set): unref watch if we fail to add it
13373
13374         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13375         transport first, so that the connection owned by the
13376         transport will be valid as the transport finalizes.
13377
13378         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13379         if necessary, and remove watches from the connection.
13380
13381         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13382
13383 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13384
13385         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13386         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13387         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13388         (_dbus_marshal_test):
13389         * dbus/dbus-marshal.h:
13390         Add string marshal functions and have the demarshal functions
13391         return the new position.
13392
13393 2002-12-25  Havoc Pennington  <hp@pobox.com>
13394
13395         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13396         it is a simple protocol that just maps directly to SASL.
13397
13398         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13399         initial implementation, not actually used yet.
13400
13401         * dbus/dbus-string.c (_dbus_string_find): new function
13402         (_dbus_string_equal): new function
13403         (_dbus_string_base64_encode): new function
13404         (_dbus_string_base64_decode): new function
13405
13406 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13407
13408         * dbus/Makefile.am:
13409         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13410         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13411         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13412         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13413         * dbus/dbus-marshal.h:
13414         * dbus/dbus-protocol.h:
13415         * dbus/dbus-test.c: (main):
13416         * dbus/dbus-test.h:
13417         Add un-optimized marshalling/demarshalling routines.
13418
13419 2002-12-25  Harri Porten  <porten@kde.org>
13420
13421         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13422
13423 2002-12-24  Zack Rusin  <zack@kde.org>
13424
13425         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13426         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13427         main loop stuff
13428
13429 2002-12-24  Havoc Pennington  <hp@pobox.com>
13430
13431         * glib/dbus-gthread.c: fix include
13432
13433         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13434         I think glib API needs to change, though, as you don't
13435         want to use DBusMessageFunction, you want to use the
13436         DBusMessageHandler object. Probably
13437         dbus_connection_open_with_g_main_loop()
13438         and dbus_connection_setup_g_main_loop() or something like that
13439         (but think of better names...) that just create a connection
13440         that has watch/timeout functions etc. already set up.
13441
13442         * dbus/dbus-connection.c
13443         (dbus_connection_send_message_with_reply): new function just to
13444         show how the message handler helps us deal with replies.
13445
13446         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13447
13448         * dbus/dbus-string.c (_dbus_string_test): free a string that
13449         wasn't
13450
13451         * dbus/dbus-hash.c: use memory pools for the hash entries
13452         (rebuild_table): be more paranoid about overflow, and
13453         shrink table when we can
13454         (_dbus_hash_test): reduce number of sprintfs and write
13455         valid C89. Add tests for case where we grow and then
13456         shrink the hash table.
13457
13458         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13459
13460         * dbus/dbus-connection.c (dbus_connection_register_handler)
13461         (dbus_connection_unregister_handler): new functions
13462
13463         * dbus/dbus-message.c (dbus_message_get_name): new
13464
13465         * dbus/dbus-list.c: fix docs typo
13466
13467         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13468         an object representing a handler for messages.
13469
13470 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13471
13472         * glib/dbus-glib.h:
13473         * glib/dbus-gthread.c: (dbus_gthread_init):
13474         Don't use the gdbus prefix for public functions.
13475
13476 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13477
13478         * Makefile.am:
13479         * configure.in:
13480         Add GLib checks and fixup .pc files
13481
13482         * glib/Makefile.am:
13483         * glib/dbus-glib.h:
13484         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13485         (gdbus_connection_check), (gdbus_connection_dispatch),
13486         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13487         (dbus_connection_gsource_new):
13488         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13489         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13490         * glib/test-dbus-glib.c: (message_handler), (main):
13491         Add GLib support.
13492
13493 2002-12-15  Harri Porten  <porten@kde.org>
13494
13495         * autogen.sh: check for libtoolize before attempting to use it
13496
13497         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13498         struct.
13499
13500         * .cvsignore: ignore more stamp files
13501
13502         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13503
13504         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13505         without make install.
13506
13507 2002-12-15  Havoc Pennington  <hp@pobox.com>
13508
13509         * dbus/dbus-threads.c: add thread stubs that a higher library
13510         layer can fill in. e.g. the GLib wrapper might fill them in with
13511         GThread stuff. We still need to use this thread API to
13512         thread-safe-ize the library.
13513
13514 2002-12-12  Havoc Pennington  <hp@pobox.com>
13515
13516         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13517         below new interfaces and include fewer system headers.
13518
13519         * dbus/dbus-sysdeps.c (_dbus_read): new function
13520         (_dbus_write): new function
13521         (_dbus_write_two): new function
13522         (_dbus_connect_unix_socket): new function
13523         (_dbus_listen_unix_socket): new function
13524
13525         * dbus/dbus-message-internal.h: change interfaces to use
13526         DBusString
13527
13528 2002-12-11  Havoc Pennington  <hp@pobox.com>
13529
13530         * dbus/dbus-types.h: add dbus_unichar
13531
13532         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13533
13534         * dbus/dbus-connection.c (dbus_connection_send_message): return
13535         TRUE on success
13536
13537         * dbus/dbus-transport.c: include dbus-watch.h
13538
13539         * dbus/dbus-connection.c: include dbus-message-internal.h
13540
13541         * HACKING: add file with coding guidelines stuff.
13542
13543         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13544         handling here, for security purposes (as in vsftpd). Not actually
13545         using this class yet.
13546
13547         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13548         system/libc usage here, as in vsftpd, for ease of auditing (and
13549         should also simplify portability). Haven't actually moved all the
13550         system/libc usage into here yet.
13551
13552 2002-11-25  Havoc Pennington  <hp@pobox.com>
13553
13554         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13555         always print the first verbose message.
13556
13557 2002-11-24  Havoc Pennington  <hp@pobox.com>
13558
13559         * test/echo-client.c, test/echo-server.c: cheesy test
13560         clients.
13561
13562         * configure.in (AC_CHECK_FUNCS): check for writev
13563
13564         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13565         function
13566
13567         * dbus/dbus-list.c (_dbus_list_foreach): new function
13568
13569         * dbus/dbus-internals.c (_dbus_verbose): new function
13570
13571         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13572         representing a server that listens for connections.
13573
13574         * dbus/.cvsignore: create
13575
13576         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13577         public API for reporting errors
13578
13579         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13580         public object representing a connection that
13581         sends/receives messages. (Same object used for
13582         both client and server.)
13583
13584         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13585         Basic abstraction for different kinds of stream
13586         that we might read/write messages from.
13587
13588 2002-11-23  Havoc Pennington  <hp@pobox.com>
13589
13590         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13591         _DBUS_INT_MAX
13592
13593         * dbus/dbus-test.c (main): add list test, and include
13594         dbus-test.h as intended
13595
13596         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13597         (_dbus_hash_table_remove_int): return value indicates
13598         whether the entry existed to remove
13599
13600         * dbus/dbus-list.c: add linked list utility class,
13601         with docs and tests
13602
13603         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13604         array sometimes.
13605
13606 2002-11-23  Havoc Pennington  <hp@pobox.com>
13607
13608         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13609         DBUS_END_DECLS to nothing, that should fix this once and for all
13610
13611         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13612
13613         * dbus/dbus-message.c, dbus/dbus-hash.c:
13614         add some missing @brief
13615
13616 2002-11-23  Havoc Pennington  <hp@pobox.com>
13617
13618         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13619         to avoid confusing Doxygen
13620
13621         * dbus/dbus-hash.c: @} not }@
13622
13623         * dbus/dbus-message.c (struct DBusMessage): split out
13624         internals docs
13625
13626 2002-11-23  Havoc Pennington  <hp@pobox.com>
13627
13628         * configure.in: pile on more warning flags if using gcc
13629
13630         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13631         to document static functions
13632
13633         * configure.in: add summary to end of configure so it
13634         looks nice and attractive
13635
13636         * dbus/dbus-hash.c: finish implementation and write unit
13637         tests and docs
13638
13639         * configure.in: add --enable-tests to enable unit tests
13640
13641         * dbus/dbus-test.c: test program to run unit tests
13642         for all files in dbus/*, initially runs a test for
13643         dbus-hash.c
13644
13645         * dbus/dbus-internals.h: file to hold some internal utility stuff
13646
13647 2002-11-22  Havoc Pennington  <hp@redhat.com>
13648
13649         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13650         "ported" away from Tcl
13651
13652         * dbus/dbus-types.h: header for types such as dbus_bool_t
13653
13654 2002-11-22  Havoc Pennington  <hp@redhat.com>
13655
13656         * dbus/dbus.h: fixups for doc warnings
13657
13658         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13659         macros
13660         (QUIET): make it quiet so we can see warnings
13661
13662         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13663
13664 2002-11-22  Havoc Pennington  <hp@redhat.com>
13665
13666         * Makefile.am: include "Doxyfile" target in all-local
13667
13668         * configure.in: generate the Doxyfile
13669
13670         * Doxyfile.in: move Doxyfile here, so we can use
13671         configure to generate a Doxyfile with the right
13672         version number etc.
13673
13674 2002-11-22  Havoc Pennington  <hp@redhat.com>
13675
13676         * dbus/dbus-message.c: move inline docs into .c file
13677
13678         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13679         so all docs are under doc/
13680         (MAN_EXTENSION): generate man pages. Use extension
13681         ".3dbus" which matches ".3qt" on my system,
13682         I guess this is OK, I don't know really.
13683         (FILE_PATTERNS): look for .c files not .h, makes sense
13684         for plain C I think
13685
13686 2002-11-22  Havoc Pennington  <hp@pobox.com>
13687
13688         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13689         because any app can be a server, and any app can be a client,
13690         the bus is a special kind of server.
13691
13692 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13693
13694         * Doxyfile : adding. Still needs Makefile rules to be generated
13695         automatically (just run "doxygen" in the toplevel dir for now to
13696         generate docs)
13697
13698         * dbus/dbus-message.h : Adding sample docs (javadoc since
13699         resembles gtk-doc a little more)
13700
13701         * dbus/dbus.h : Adding sample docs
13702
13703 2002-11-21  Havoc Pennington  <hp@redhat.com>
13704
13705         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13706         so we can allow ourselves to include files directly,
13707         instead of having to use dbus.h
13708
13709         * dbus/dbus.h: fill in
13710
13711         * dbus/dbus-message.h: sketch out a sample header file.
13712         Include griping if you include it directly instead of
13713         via dbus.h
13714
13715         * dbus/dbus-macros.h: new file with macros for extern "C",
13716         TRUE/FALSE, NULL, etc.
13717
13718         * doc/file-boilerplate.c: put include guards in here
13719
13720 2002-11-21  Havoc Pennington  <hp@redhat.com>
13721
13722         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13723
13724         * COPYING: include the GPL as well, and license code
13725         under both AFL and GPL.
13726
13727 2002-11-21  Havoc Pennington  <hp@redhat.com>
13728
13729         * acconfig.h: get rid of this
13730
13731         * autogen.sh (run_configure): add --no-configure option
13732
13733         * configure.in: remove AC_ARG_PROGRAM to make
13734         autoconf complain less. add AC_PREREQ.
13735         add AC_DEFINE third arg.
13736
13737 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13738
13739         * doc/Makefile.am:
13740         Fix references so we can distcheck.
13741
13742 2002-11-21  Havoc Pennington  <hp@redhat.com>
13743
13744         * Initial module creation
13745