* qt/examples/listnames.cpp:
[platform/upstream/dbus.git] / ChangeLog
1 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2
3         * qt/examples/listnames.cpp:
4         * qt/examples/Makefile.am: Three ways to list the names on the
5           bus.
6 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
7
8         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
9           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
10
11 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
12
13         Merge from Subversion:
14         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
15           something that exists (r526315)
16         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
17           slots/signals (r526316)
18         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
19           also return an unknown-method error if the parameters don't
20           match for org.freedesktop.DBus.Properties. (r526842)
21         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
22         * qt/qdbusintegrator.cpp: Restore the proper order of
23           delivery: don't make method returns be delivered on priority
24           (r528150)
25
26 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
27
28         * configure.in qt/Makefile.am: add qt/examples
29         * qt/examples: Add QtDBus example programs:
30           - hello: Hello, World
31           - ping: Simple method-calling program
32           - pong: Simple object-exporting program (not using adaptors)
33           - complexping: Interactive method-calling program 
34                 (also gets and sets properties).
35           - complexpong: Sample program exporting methods, signals and
36                 properties, using adaptors.
37           - dbus: Simple implementation of a generic method-calling
38                 program, similar to 'dbus-send', but with semantics
39                 similar to 'dcop'.
40           - chat: Simplistic chat program, implemented using signals
41                 and the system bus. Looks like IRC.
42
43 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
44
45         * configure.in: Detect QtGui (necessary for one of the
46           example programs). Note: this increases the minimum required
47           version of Qt to 4.1.3.
48
49 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
50
51         * test/qt/*: Sync with KDE Subversion revision 523647.
52         Update the testcases to the new API. Remove testcases for
53         classes that are no longer public or have been removed.
54
55 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
56
57         * qt/*: 
58         * dbus/qdbus.h: Sync with KDE Subversion revision
59         523647. Hopefully, this will be the last of the
60         source-incompatible changes. Documentation has been improved;
61         support for QList<basic-types> has been added; QDBusObject is
62         gone; QDBus(Abstract)Interface is now a QObject with
63         auto-generated meta-object; QDBusIntrospection is marked
64         private, since QMetaObject can be used now; lots of bugfixes.
65
66 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
67
68         Patch from Milosz Derezynski <internalerror at gmail.com>
69         
70         * configure.in:
71         Output the service directory in the configure summary
72
73         * dbus-1.pc.in:
74         Add session_bus_services_dir
75
76 2006-03-10  Ross Burton  <ross@openedhand.com>
77
78         * tools/dbus-print-message.c:
79         Add support for object paths and signatures.
80
81 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
82
83         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
84         config reload.
85         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
86         information caches
87         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
88         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
89         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
90         * dbus/dbus-userdb.h: Add function to flush all user/group information
91         caches.
92
93 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
94
95         * qt/dbusidl2cpp.cpp:
96         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
97         for dcopidl2cpp, found in the KDE installations (or the more
98         modern kalyptus): generate Qt4 C++ code for the input XML
99         introspection. Currently no IDL parsing.
100
101 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
102
103         * test/qt/*: Update the self-tests.
104
105 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
106
107         * qt/*: 
108         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
109         represents the first feature-complete version of the Qt4
110         bindings since I took ove maintainership.
111
112 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
113
114         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
115         dir. This is C++, so we can't use the DBus ones.
116
117 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
118
119         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
120         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
121
122 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
123
124         * dbus/dbus-connection.c: 
125         (_dbus_connection_block_pending_call):
126         Check to see if our data has already been read off the connection
127         by another blocking pending call before we block in poll.
128         (check_for_reply_and_update_dispatch_unlocked):
129         Code taken from _dbus_connection_block_pending_call - checks for
130         an already read reply and updates the dispatch if there is one.
131
132         * test/name-test/test-pending-call-dispatch.c:
133         New test for making sure we don't get stuck polling a 
134         dbus connection which has no data on the socket when
135         blocking out of order on two or more pending calls.
136
137 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
138
139         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
140         make/automake don't detect that we're talking about the same
141         .lo file if I specify the full path to the source files.
142
143 2006-02-26  Havoc Pennington  <hp@redhat.com>
144
145         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
146
147         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
148         session bus variable is unset, suggest "man dbus-launch" and "man
149         dbus-daemon" to figure out how to fix the problem
150
151 2006-02-25  Havoc Pennington  <hp@redhat.com>
152
153         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
154         should make this thing use the new glib options parser
155
156 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
157
158         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
159         .lo files taking moc sources.
160
161 2006-02-25  Havoc Pennington  <hp@redhat.com>
162
163         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
164         and install it as a public header
165
166 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
167
168         * Released 0.61
169
170 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
171         
172         * proxies.py: Fix the callchain
173
174 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
175         
176         * patch from Sjoerd Simons <sjoerd at debian.org>:      
177
178         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
179         dbus/dbus-sysdeps.c
180
181         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
182         call _dbus_group_info_free_allocated which causes infinite loop,
183         correctly call _dbus_group_info_free
184
185 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
186
187         * qt/qdbusinterface_p.h:
188         * qt/qdbusinterface.cpp: Use the standard
189         org.freedesktop.DBus.Method.NoReply annotation for the "async"
190         calls instead of creating one for us.
191
192         * qt/qdbusconnection_p.h:
193         * qt/qdbusintegrator.cpp: Remove debugging code.
194
195         * qt/qdbusintegrator.cpp:
196         * qt/qdbusmessage.cpp:
197         * qt/qdbusmessage_p.h:
198         * qt/qdbusmessage.h: Change the behaviour of automatic
199         reply-sending: now a reply is always sent, unless the caller
200         didn't request one or if the user slot has already sent one.
201
202 2006-02-16  Robert McQueen  <robot101@debian.org>
203
204         * configure.in: Patch from Debian packages by Sjoerd Simons
205         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
206         arguments so it's possible to build both bindings in the
207         same tree.
208
209         * qt/Makefile.am: Fix truncated value so that make dist works.
210
211 2006-02-16  Robert McQueen  <robot101@debian.org>
212
213         * acinclude.m4, configure.in: Patch from Brad Hards
214         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
215         improving quoting, re-ordering a few checks, and a few other
216         aesthetic tidy-ups.
217
218 2006-02-16  Robert McQueen  <robot101@debian.org>
219
220         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
221         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
222         assertion that the next element to read from the iter is fixed in
223         size. This is not the case when you are at the end of the iter,
224         because the next element type is INVALID.
225
226         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
227         a bogus assert which means that you may not initialise a 0-length
228         string unless you provide a non-NULL pointer. This prevented
229         you from marshalling messages containing zero-length arrays in
230         some cases.
231
232         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
233         from Rob to correct bogus asserts when trying to demarshal an
234         array and get_fixed_array got you 0 elements. Append nothing to
235         the GArray in this case.
236
237         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
238         an empty array via the glib bindings. Without all of the above
239         patches, this new test fails.
240
241 2006-02-16  Robert McQueen  <robot101@debian.org>
242
243         * glib/dbus-gmain.c: Make the previous commit compile.
244
245         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
246         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
247         specify sender_keyword="foo", path_keyword="bar" when adding
248         a signal listener, so that you can bind to signals generically
249         but still do something useful in your callback.
250
251         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
252         chars so that they're not cast to chars and made negative. Thanks
253         to Jakub Stachowski for reporting this and testing the fix.
254
255 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
256
257         * dbus/dbus-glib.h:
258         * glib/dbus-gmain.h:
259         (dbus_g_connection_open): new method for openning
260         a connection to an arbitrary address in the glib bindings
261
262         * ChangeLog: checkin last entry which doesn't seem to be commited
263
264 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
265
266         * tools/dbus-launch.c: Fixed sh syntax output
267
268 2006-02-13  Robert McQueen  <robot101@debian.org>
269
270         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
271         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
272         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
273         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
274         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
275         missing piece of the glib bindings jigsaw puzzle. This modifies
276         the existing specialised types to have N type parameters (rather
277         than the current 1 or 2 for arrays and dictionaries respectively).
278         You can then use this to get a glib type to represent any arbitrary
279         D-Bus struct type using dbus_g_type_get_struct. The only
280         implementation of these types is with GValueArrays as before,
281         but it's now possible to store these in arrays, emit them in
282         signals, etc.
283
284 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
285
286         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
287         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
288         <thiago.macieira at trolltech.com>
289
290 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
291
292         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
293         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
294
295 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
296
297         * bus/connection.c (bus_connections_expect_reply): Make
298         pending reply limit not common to all connections (Bug #5416)
299         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
300
301 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
302
303         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
304
305 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
306
307         * gcj/Makefile.am: point to correct jar command (Bug #4529)
308         patch from Doug Goldstein <cardoe at gentoo.org>
309
310 2006-02-09  Joe Shaw  <joeshaw@novell.com>
311
312         * mono/Arguments.cs: Fix a magic number in the mono bindings
313         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
314
315 2006-01-27  Robert McQueen  <robot101@debian.org>
316
317         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
318         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
319         when generating the client-side methods, instead of overloading
320         CSymbol which broke everything horribly. My apologies.
321
322 2006-01-27  Robert McQueen  <robot101@debian.org>
323
324         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
325         by me and Rob Taylor to add a simple_free function to D-Bus map
326         and collection types, which allows those types which can be freed
327         with a GDestroyNotify (such as GHashTables and GArrays, but not
328         GPtrArrays) to be stored as the values in hashtables.
329
330         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
331         Patch by Rob Taylor to add nested dicts to the glib tests to check
332         the above code works, and appears not to leak when called repeatedly.
333
334 2006-01-27  Robert McQueen  <robot101@debian.org>
335
336         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
337         to free a D-Bus allocated string with dbus_free () instead of
338         g_free ().
339
340 2006-01-27  Iain Holmes  <iain@openedhand.com>
341
342         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
343         method from being called multiple times.
344
345 2006-01-19  Robert McQueen  <robot101@debian.org>
346
347         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
348         <rob.taylor@collabora.co.uk> to add support for generating bindings
349         to arrays that are represented as GPtrArrays rather than GArrays (ie
350         size-variable things, such as strings, objects, structs, etc).
351
352 2006-01-05  Robert McQueen  <robot101@debian.org>
353
354         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
355         <ricardo.kekki@movial.fi> to make it possible to inherit from
356         DBusGProxy, by splitting the DBusGProxy struct into a public part and
357         a private part, and moving the setting of the DBusGProxyManager into a
358         connection property, allowing proper GObject construction.
359
360 2006-01-05  Robert McQueen  <robot101@debian.org>
361
362         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
363         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
364         annotations when generating glib client bindings.
365
366 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
367
368         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
369
370         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
371
372 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
373
374         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
375
376 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
377
378         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
379
380 2005-12-19  Ross Burton  <ross@openedhand.com>
381
382         * doc/dbus-tutorial.xml:
383         Document the Glib client-side bindings, and list all possible annotations.
384
385 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
386
387         * dbus/bus.c (dbus_bus_release_name): Add documentation
388
389 2005-12-06  Robert McQueen  <robot101@debian.org>
390
391         * python/service.py: s/sucessful/successful/ so we're allocating to
392         and reading from the same variable. Oops.
393
394 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
395
396         * Released 0.60
397
398 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
399
400         * test/qt/Makefile.am: build from srcdir
401
402         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
403         Note - this code is wrong and needs to be fixed by the Qt binding
404         developers.  The flags should be treated as bitfields and not enums.
405
406         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
407
408 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
409
410         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
411           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
412           in production code
413
414 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
415
416         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
417         method for getting messages off the bus in the absence of a
418         mainloop.  This method is much like 
419         dbus_connection_read_write_dispatch except it does not dispatch
420         the messages to a registered filter function.  Instead it
421         allows a developer to process messages by directly popping
422         them off the bus.
423
424 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
425
426         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
427         the parser to continue instead of returning error
428         (bus_desktop_file_load): Do not free parser data when
429         parse_section_start or parse_key_value fails because it was 
430         already freed by parser_free (patch from Carlos Garcia Campos  
431         <carlosgc at gnome.org>)
432
433 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
434
435         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
436         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
437         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
438         test/test-segfault.c, test/test-utils.c,
439         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
440         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
441         Various cleanup of dead code and compiler warnings (patch from
442         Kjartan Maraas <kmaraas at gnome.org>) 
443
444 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
445
446         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
447         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
448
449 2005-11-27  Robert McQueen  <robot101@debian.org>
450
451         * python/dbus_bindings.pyx: Repair my previous commit which reverted
452         part of the preceding one. Oops. Merge patch by Johan Hedberg
453         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
454         on big-endian platforms.
455
456         * test/python/test-client.py: Add some 16-bit integers to the test
457         values.
458
459 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
460
461         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
462         method return message for property getters
463
464 2005-11-27  Robert McQueen  <robot101@debian.org>
465
466         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
467         with type v of an instance of dbus.Variant(foo, type='x') caused
468         it to be boxed twice before sending over the bus.
469
470         * python/dbus_bindings.pyx, python/service.py,
471         test/python/test-client.py: Update the constants for the new
472         request_name flags, and update comments/test cases now that queueing
473         is the default action.
474
475 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
476
477         * configure.in:
478         - Change version to 0.60 for impending release
479         - upped the sonames because of ABI and API breakage
480
481 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
482
483         * configure.in: Add test/name-test/Makefile to the generated
484         Makefile list
485
486         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
487         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
488         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
489         not to queue an ower if it can't be the primary owner
490
491         * bus/bus.h: Add new internal BusOwner struct
492
493         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
494         to bus_registry_ensure and don't set the prohibit_replacement flag
495         since they are now set per BusOwner and not per name.
496         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
497         that returns the list of connections in a name's connection queue
498         
499         * bus/services.c (struct BusService): remove prohibit_replacement field
500         (struct BusOwner): new struct for keeping track of queued connections
501         and their associated flags for the queue
502         (struct BusRegistry): add a BusOwner memory pool
503         (bus_registry_new): initialize the BusOwner memory pool
504         (bus_registry_unref): free the BusOwner memory pool
505         (_bus_service_find_owner_link): new internal method for
506         searching the queue for a specific connection
507         (bus_owner_set_flags): new method for adding setting the flags on a
508         bus owner
509         (bus_owner_new): new method that creates a BusOwner object from the
510         pool and sets its flags
511         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
512         (bus_registry_ensure): Add the flags parameter
513         (bus_registry_acquire_service): Switch from using raw connections to
514         using the BusOwner struct
515         Add new state machine for dealing with the new set of flags
516         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
517         cancel_ownership, free_ownership_cancel_data, 
518         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
519         restore_ownership, free_ownership_restore_data, 
520         add_restore_ownership_to_transaction): Switch to using BusOwner 
521         instead of raw connections
522         (bus_service_add_owner): Add flags parameter
523         Switch to using BusOwner instead of raw connections
524         Add state machine for dealing with the new set of flags
525         (bus_service_swap_owner): Swaps the first and second owners in the
526         queue.  Used to make sure proper signals are sent when a service looses 
527         or gains primary ownership.  We never insert an owner at the top of the
528         queue.  Instead we insert it in the second position and then swap.
529         (bus_service_remove_owner): Remove the owner from the queue sending
530         out the NameLost and NameOwnerChanged signals if the we were the 
531         primary owner
532         (bus_service_get_primary_owners_connection): New method that extracts
533         the connection from the primary owner
534         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
535         connection
536         (bus_service_get_allow_replacement): Changed from the old 
537         bus_service_get_prohibit_replacement method.  Checks the flags of the 
538         primary owner and returns if it can be replaced or not
539         (bus_service_set_prohibit_replacement): removed
540         (bus_service_has_owner): returns TRUE if and owner with
541         the specified connection exists in the queue
542         
543         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
544         method that only compiles if tests are enabled.  Allows us to get the 
545         unique name of a connection so we can check it against the queue when
546         doing regression tests
547
548         * bus/activation.c (bus_activation_send_pending_auto_activate),
549         bus/dispatch.c (bus_dispatch),  
550         bus/driver.c (bus_driver_handle_get_service_owner, 
551         bus_driver_handle_get_connection_unix_user, 
552         bus_driver_handle_get_connection_unix_process_id,
553         bus_driver_handle_get_connection_selinux_security_context),
554         bus/signals.c (connection_is_primary_owner): 
555         use bus_service_get_primary_owners_connection instead of
556         bus_service_get_primary_owner
557
558         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
559         _dbus_listen_unix_socket): Calculate the length of the socket
560         path and use that instead of using a fixed length which was
561         causing socket names to contain many trailing Nul bytes.
562
563         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
564         (dbus_g_method_get_sender): New method for extracting the sender 
565         from a DBusGMethodInvocation
566         (dbus_g_method_return_get_reply): changed name to 
567         dbus_g_method_get_reply
568         (dbus_g_method_return_send_reply): changed name to
569         dbus_g_method_send reply
570
571         * doc/dbus-specification.xml: New docs that describe how the new
572         queueing system works and talks about the changes to the how
573         we specify socket names
574
575         * glib/examples/example-service.c, 
576         glib/examples/example-signal-emitter.c,
577         glib/examples/statemachine/statemachine-server.c:
578         Changed the RequestName flags to the new system
579
580         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
581         regression test suite for testing various states of the new
582         queueing system
583         
584 2005-11-15  Robert McQueen  <robot101@debian.org>
585
586         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
587         Taylor to add two methods, dbus_g_method_return_get_reply and
588         dbus_g_method_return_send_reply, to allow you to get the reply
589         message from a DBusGMethodInvocation, append arbitrary stuff to it,
590         and send it. The GLib bindings can't marshal a return value of
591         something like a(s) if the array is empty - ultimately they should be
592         made to heed the signature of the out arguments as the Python bindings
593         now can, but this is a workable interim solution which might have
594         other applications.
595
596 2005-11-15  Robert McQueen  <robot101@debian.org>
597
598         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
599         method to org.freedesktop.DBus to release a bus name or give up
600         waiting in the queue for it.
601
602         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
603         dbus_bus_release_name method to send the ReleaseName method calls.
604         Add constants for the return values to dbus/dbus-shared.h.
605
606         * doc/dbus-specification.xml: Document the new ReleaseName method
607         in the specification.
608
609         * python/dbus_bindings.pyx: Add a low-level python binding for the
610         release name method.
611
612         * python/exceptions.py, python/service.py: Make freeing BusName
613         objects release the name. Add a NameExistsException, and fix a
614         bug with creating UnknownMethodException.
615
616         * test/python/test-client.py: Add tests for freeing BusName
617         objects causing names to be released.
618
619 2005-11-14  Robert McQueen  <robot101@debian.org>
620
621         * python/service.py: Include the traceback in the error reply when we
622         send an exception over the bus. _BEST_ _PATCH_ _EVER_
623
624 2005-11-14  David Zeuthen  <davidz@redhat.com>
625
626         Patch from Timo Hoenig <thoenig@suse.de>.
627
628         * bus/bus.c: I've recently investigated why the automatic reload
629         of configuration files does not work as expected.
630
631         Currently, reloading configuration files does only work when
632         running dbus-daemon with --nodaemon.  If we are running as daemon
633         we're hitting a dnotify bug once we fork the process.
634
635         We're initializing the dnotify fds before calling fork().  Once
636         the child process forked it does still have the fds (and they
637         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
638         getting SIGIO as changes are made to the configuration files.
639
640         The attached patch moves the initialization of the dnotify fds to
641         process_config_postinit().  This is safe for all current code
642         paths and solves the dnotify disfunction.  If we're running
643         dbus-daemon as daemon the fds for dnotify are now being
644         initialized after fork() for the child process.
645
646         * configure.in: The current configure.in check for dnotify probes
647         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
648         match for 'xlinux', too. Additionally I have adapted the configure
649         option's style to match with the others.
650
651 2005-11-14  Robert McQueen  <robot101@debian.org>
652
653         * python/decorators.py, python/service.py: Add a new argument to the
654         dbus.service.method decorator called sender_keyword, which if set,
655         specifies the name of an argument which will be provided the bus
656         name of the method caller.
657
658         * test/python/test-client.py, test/python/test-service.py: Add a
659         method and test to check the sender_keyword functionality.
660
661 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
662
663         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
664         empty reply so blocking calls don't block forever (Patch from Sjoerd 
665         Simons <sjoerd at luon.net>)
666
667         * AUTHORS: Add Robert McQueen for his work on the Python
668         Bindings and other parts of D-Bus
669
670 2005-11-07  Robert McQueen  <robot101@debian.org>
671
672         * python/decorators.py: Change emit_signal function to use the
673         signature annotation of the signal when marhsalling the arguments from
674         the service. Fix a bug where the code checking signature length
675         against argument length referenced the wrong variable.
676
677         * python/introspect_parser.py: Avoid adding the type signature of
678         signal arguments to any methods which occur after them in the
679         introspection data (!) by making the parser a little more careful
680         about its current state.
681
682         * python/service.py: Remove debug prints from last commit (again :D).
683
684         * test/python/test-client.py, test/python/test-service.py: Add test
685         signals with signature decorators to test the strict marshalling code
686         gives errors at the right time. Could do with checking the signals
687         actually get emitted too, given that the test does nothing with
688         signals at the moment...
689
690 2005-11-07  Robert McQueen  <robot101@debian.org>
691
692         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
693         instances to stop madness of creating new instances representing
694         the same bus connection all the time, rendering any tracking of
695         match rules and bus names quite meaningless. Caught a bug where
696         the private argument to SessionBus() and friends was being passed
697         in as use_default_mainloop by mistake. Still some problems with
698         multiple dbus_binding.Connection instances representing the same
699         low-level connection (eg when you use both SessionBus() and
700         StarterBus() in same process), but it's a lot better now than it
701         was.
702
703         * python/dbus_bindings.pyx: Add constants with the return values
704         for bus_request_name().
705
706         * python/service.py: Store bus name instances in a per-dbus.Bus cache
707         and retrieve the same instances for the same name, so deletion can be
708         done with refcounting. Also now throws some kind of error if you
709         don't actually get the name you requested, unlike previously...
710
711         * test/python/test-client.py: Add tests for instance caching of buses
712         and bus name objects.
713
714 2005-11-04  Robert McQueen  <robot101@debian.org>
715
716         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
717         marshalling of boolean values. Add some booleans to the values in
718         the test client.
719
720         * python/decorators.py, python/service.py: Add an 'async_callbacks'
721         argument to the dbus.service.method decorator, which allows you to
722         name arguments to take two callback functions for replying with
723         return values or an exception.
724
725         * test/python/test-client.py, test/python/test-service.py: Add test
726         case using asynchronous method reply functions, both return values and
727         errors, and from within both the function itself and from a mainloop
728         callback.
729
730         * python/decorators.py, python/service.py: Perform checking that the
731         number of method/signal arguments matches the number of types in the
732         signature at class loading time, not when you first introspect the
733         class.
734
735         * python/service.py: Remove debug print left by the last commit.
736
737 2005-11-03  Robert McQueen  <robot101@debian.org>
738
739         * python/service.py: Heavy refactoring of method invocation, with
740         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
741         in favour of a new _message_cb that uses seperate functions for
742         looking up the method to call, marshalling the return values, and
743         sending exceptions as errors, and is easier to follow as a
744         consequence.  Fixes some corner cases about returning things that
745         don't match your declared out_signature, allows exceptions to define
746         _dbus_error_name and have it be sent over the bus as the error name,
747         and paves the way for cool stuff like heeding the message no reply
748         flag, asynchronous method implementations, informing the method of the
749         sender, and including backtraces in the error messages.
750
751         * test/python/test-client.py: Catch and print exceptions thrown in the
752         async callback tests, rather than passing them to the low-level
753         bindings to be ignored in a noisy and frustrating manner.
754
755 2005-11-03  Robert McQueen  <robot101@debian.org>
756
757         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
758         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
759         tweak others to be consistent.
760
761         * test/python/test-client.py: Tweak output of testInheritance.
762
763 2005-10-29  Robert McQueen  <robot101@debian.org>
764
765         * python/service.py: Major changes to allow multiple inheritance
766         from classes that define D-Bus interfaces:
767         
768          1. Create a new Interface class which is the parent class of
769             Object, and make the ObjectType metaclass into InterfaceType.
770         
771          2. Patch written with Rob Taylor to replace use of method_vtable
772             with code that walks the class's __MRO__ (method resolution order)
773             to behave like Python does when invoking methods and allow
774             overriding as you'd expect. Code is quite tricky because
775             we have to find two methods, the one to invoke which has the
776             right name and isn't decorated with the /wrong/ interface,
777             and the one to pick up the signatures from which is decorated
778             with the right interface.
779         
780             The same caveats apply as to normal multiple inheritance -
781             this has undefined behaviour if you try and inherit from two
782             classes that define a method with the same name but are
783             decorated with different interfaces. You should decorate
784             your overriding method with the interface you want.
785         
786          3. Replace grungy introspection XML generation code in the metaclass
787             with dictionaries that cope correctly with multiple inheritance
788             and the overriding of methods. This also uses the signature
789             decorations to provide correct introspection data, including
790             the debut appearance of the types of your return values. :D
791
792         * test/python/test-client.py, test/python/test-service.py: Add a test
793         case to try invoking an method that overrides one inherited from a
794         D-Bus interface class.
795
796 2005-10-29  Robert McQueen  <robot101@debian.org>
797
798         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
799         Add checking for the end of struct character when marshalling a
800         struct in MessageIter.append_strict.
801
802         * python/examples/example-service.py,
803         python/examples/gconf-proxy-service.py,
804         python/examples/gconf-proxy-service2.py: Update to use gobject
805         mainloop directly rather than appearing to depend on gtk.
806
807         * python/test/test-client.py, python/test/test-server.py: Remove
808         obsolete and broken test scripts for old bindings. We have up to date
809         and working tests in test/python/.
810
811 2005-10-29  Robert McQueen  <robot101@debian.org>
812
813         * python/decorators.py: Add optional arguments to the method and
814         signal decorators to allow you to specify the signature of arguments
815         and return values. Preserve the doc strings of signal functions in the
816         decorated version, for pydoc and friends.
817
818         * python/dbus_bindings.pyx, python/proxies.py: Replace the
819         parse_signature_block function with an iterable dbus.Signature()
820         type. Fix a bug in MessageIter.append_strict where you could append
821         anything by claiming it was a string.
822
823         * python/service.py: Use the out_signature decoration on methods to
824         marshal return values, meaning you no longer require dbus.Array()
825         or dbus.Dictionary() to indicate the type when returning empty
826         arrays or dictionaries. Fix a bug where exceptions which are defined
827         in __main__ are not turned into error replies.
828
829         * test/python/test-client.py, test/python/test-service.py: Add test
830         for correct marshalling of return values according to out_signature.
831         Fix a bug in the async call test where the error_handler is missing a
832         self argument.
833
834 2005-10-29  Robert McQueen  <robot101@debian.org>
835
836         * glib/Makefile.am, glib/examples/Makefile.am,
837         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
838         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
839
840         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
841
842         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
843         from Ubuntu by Daniel Silverstone to allow specifying match rules on
844         the command line.
845
846 2005-10-27  Ross Burton  <ross@openedhand.com>
847
848         * dbus/dbus-marshal-header.c:
849         Remove dead code.
850
851         * glib/dbus-gobject.c:
852         Stop compiler warning.
853
854 2005-10-25  Ross Burton  <ross@openedhand.com>
855
856         * dbus/dbus-auth.c:
857         * dbus/dbus-server-unix.c:
858         * dbus/dbus-transport-unix.c:
859         * glib/dbus-gmain.c:
860         * glib/dbus-gobject.c:
861         Add some const keywords.
862
863 2005-10-25  Ross Burton  <ross@openedhand.com>
864
865         * doc/dbus-specification.xml:
866         Document the NoReply annotation.
867
868         * glib/dbus-binding-tool-glib.h:
869         * glib/dbus-binding-tool-glib.c:
870         Respect the NoReply annotation.
871
872 2005-10-24  Robert McQueen <robot101@debian.org>
873
874         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
875         derive from unicode instead of str, and encode/decode UTF-8 when
876         marshalling/unmarshalling bus messages
877
878         * python/introspect_parser.py: encode introspection data as UTF-8
879         before passing the buffer into libxml2
880
881         * test/python/test-client.py: add unicode test strings
882
883         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
884         ignore generated python test files
885
886 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
887
888         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
889         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
890         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
891
892         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
893         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
894         when constructing struct signatures
895
896         * python/_dbus.py (Bus): handle private connections using the
897         private keyword in the constructor. defaults to private=False
898         (Bus::close): new method to close a connection to the bus
899
900         * python/dbus_bindings.pyx (Connection::close): renamed method
901         was previously called disconnect
902         (bus_get): now supports getting a private connection
903
904         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
905         keyword is set to True.  if it is, execute the method without waiting
906         for a reply
907         (ProxyObject::_introspect_execute_queue): new method for executing
908         all the pending methods that were waiting for the introspect to
909         finish.  this is called when introspect either succeeds or fails
910         (ProxyObject::_introspect_error_handler): call queued methods
911
912 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
913
914         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
915         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
916
917         * python/service.py (Object::_message_cb): handle exceptions correctly
918         by sending them over the wire to the calling app.  This makes sure
919         the client returns immediately instead of waiting the 15 seconds to
920         timeout.
921
922         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
923         Add a test to benchmark how long it takes to introspect a service and 
924         call a method which returns a large element (pretty fast)
925
926         * test/python/test-service.py (TestObject::GetComplexArray): new test 
927         method which pushes a lot of data
928
929 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
930
931         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
932         reclaim memory outside of the loop and use del istead of just setting
933         the key to None
934
935 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
936
937         * python/service.py (ObjectType::_reflect_on_signal): Always close
938         signal tag even when there are no arguments
939
940 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
941
942         * configure.in: Set mono, mono-docs and Qt3 to default
943         to no instead of auto when building.  These bindings do not
944         have full time maintainers and will not be supported for the
945         1.0 release.
946
947 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
948
949         patches from Michael Krivoruchko <misha at sun.com>: 
950         
951         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
952         _dbus_connection_message_sent, 
953         _dbus_connection_send_preallocated_unlocked_no_update, 
954         _dbus_connection_pop_message_link_unlocked): handle the case when path 
955         is NULL when calling _dbus_verbose
956
957         * configure.in: check for functions getpeerucred and getpeereid
958
959         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
960         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
961         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
962         Patch was only tested on Solaris 10 x86 so it might be issues
963         with other platforms (i.e. BSDs and MacOSX)
964         
965
966 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
967
968         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
969         instead of marshal basic so we can handle recursive types in a variant
970
971         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
972         in variants
973
974         * test/glib/test-service-glib.c, test-service-glib.xml
975         (my_object_echo_variant [EchoVariant], 
976         my_object_process_variant_of_array_of_ints123
977         [ProcessVariantOfArrayOfInts123]): 
978         Add two test methods
979
980         * python/introspect_parser.py: New module for parsing introspect
981         data.
982
983         * python/dbus_bindings.pyx:
984         (various places): when throwing errors fix to use errormsg instead 
985         of message local variable because Pyrex can get confused with other 
986         message variables (initial patch by Robert McQueen 
987         <robert.mcqueen at collabora.co.uk>)
988         (MessageIter::parse_signature_block): new method for getting the next
989         block in a signiture.
990         (MessageIter::append_strict): new method for appending values strictly
991         using the passed in signature instead of guessing at the type
992         (MessageItter:: append_dict, append_struct, append_array): use 
993         signatures to marshal children if the signature is available
994         
995         * python/exceptions.py (IntrospectionParserException): new exception
996
997         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
998         introspected signatures if available, else we fall back to the
999         old way of doing things.
1000         (ProxyObject::_introspect_reply_handler ): parse introspection data
1001         
1002         * python/service.py (ObjectType::_reflect_on_method): Properly
1003         terminate <method> if there are no args in the reflection data
1004
1005         * test/python/test-client.py: add tests for talking with the GLib
1006         test server.  This gives us better coverage for introspection since
1007         python to python will always generate arguments as variants.  It also
1008         allows us to test the robustness of the GLib bindings and interlanguage
1009         communications.
1010
1011         
1012 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1013
1014         * bus/driver.c (bus_driver_handle_introspect): Add signals
1015         to the introspect data. (patch from Daniel P. Berrange 
1016         <dan at berrange.com>)
1017
1018         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1019         
1020         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1021         _dbus_connection_run_builtin_filters): Changed these to
1022         be unlock_no_update functions and call 
1023         _dbus_connection_send_unlocked_no_update instead of
1024         dbus_connection_send to avoid locking errors.
1025         
1026         * doc/TODO: Removed the make Ping test TODO
1027         
1028 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1029
1030         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1031         We now copy the message from a DBusError and then free 
1032         the error object befor throwing the error
1033
1034         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1035         DBusBindingOutputMode enum which was causing a warning.
1036         #include <time.h> so using time_t is explicitly defined
1037
1038 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1039
1040         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1041         - dbus/dbus-bus.c
1042         (internal_bus_get): new method that take over the heavy lifting
1043         of dbus_bus_get and adds the ability to get a private connection
1044         to the bus
1045         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1046         interface as in previous versions
1047         (dbus_bus_get_private): new method that is a wrapper to 
1048         internal_bus_get to get a private connection to the bus
1049
1050         - dbus/dbus-bus.h
1051         (dbus_bus_get_private): add as a public libdbus interface
1052
1053         - dbus-1.pc.in: output system_bus_default_address and 
1054         sysconfdir variables so apps can use them when compiling
1055
1056 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1057         * dbus/qt: New Qt bindings
1058
1059 2005-09-12  Waldo Bastian  <bastian@kde.org>
1060
1061         * dbus/dbus-marshal-validate.c,
1062         doc/dbus-specification.xml, test/Makefile.am,
1063         test/test-names.c: allow hyphens in bus names.
1064
1065 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1066
1067         * test/data/auth/fallback.auth-script: we don't
1068         retry the EXTERNAL method when we know its going
1069         to fail anymore.
1070
1071 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1072
1073         * dbus/dbus-connection-internal.h: rename
1074         (add|remove|toggle)_(watch|timeout) to unlocked()
1075         
1076         * dbus/dbus-connection.c: ditto.
1077         
1078         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1079         Update some callers for the renaming.
1080
1081 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1082
1083         * dbus/dbus-auth.c: (record_mechanisms): don't
1084         retry the first auth mechanism because we know
1085         we're just going to get rejected again.
1086         
1087         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1088         Fix thinko ... and what a nasty little bugger to
1089         track down you were ...
1090
1091         * dbus/dbus-connection.c:
1092         (_dbus_connection_add_watch),
1093         (_dbus_connection_remove_watch): add note about
1094         these needing the connection to be locked.
1095         (_dbus_connection_get_dispatch_status_unlocked):
1096         set status to DATA_REMAINS when we queue the
1097         disconnected message.
1098         
1099         * bus/dispatch.c:
1100         (bus_dispatch): fix warning.
1101         (check_existent_service_no_auto_start):
1102         Expect ChildSignaled error too.
1103         (check_existent_hello_from_self): fix another
1104         couple of warnings.
1105         
1106 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1107
1108         Patches from James Willcox <snorp@snorp.net>
1109
1110         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1111
1112         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1113         support array "out" parameters.
1114
1115         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1116         for 16-bit int support.
1117
1118 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1119
1120         * Released 0.50
1121
1122         * Patch from Steve Grubb:
1123         - bus/activation.c (bus_activation_service_reload_test): clean up
1124         some indentation
1125         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1126         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1127         buffer overflows in the test suite.  This is non critical because
1128         it can not be exploited and this code is only run when doing a 
1129         make check.
1130
1131         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1132         - configure.in: Don't check and link against kdecore, only qt headers
1133         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1134         - gcj/org/freedesktop/dbus/Makefile.am:
1135         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1136         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1137         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1138         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1139         - tools/Makefile.am: Add platform extentions to binaries 
1140         (i.e. .exe on windows)
1141
1142         * configure.in: 
1143         - Make it so if no suitable version of python is found we only 
1144         disable building python instead of exiting the configure script
1145         - Require version 2.4 of glib for glib bindings
1146         - Up version to 0.50
1147
1148         * python/__init__.py: Sync version with libdbus to (0,50,0)
1149         
1150 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1151
1152         * dbus/dbus-object-tree.c (find_subtree_recurse):
1153         a couple of optimizations (bug #710):
1154         - do a binary search in the tree
1155         - insert a new child at the right place directly, no need for
1156           qsort anymore
1157         - do the "double alloc" thing when allocating children
1158
1159 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1160
1161         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1162
1163         * python/dbus_bindings.pyx: Memory management foo
1164         (global): remove hacky _user_data_references global list
1165         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1166         tuples. Unref user_data
1167         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1168         (Connection::__del__): Remove and replace with __dealloc__ method
1169         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1170         to keep tuple from being deallocated instead of the global var hack
1171         (Connection::register_object_path): Stuff user_data into a tuple.
1172         Use Py_INCREF to keep tuple from being deallocated instead of the 
1173         global var hack
1174         (Connection::register_fallback): Stuff user_data into a tuple.
1175         Use Py_INCREF to keep tuple from being deallocated instead of the 
1176         global var hack
1177         (GIL_safe_pending_call_notification): Don't unref the message
1178         because it gets unreffed when going out of scope.  Py_XDECREF
1179         the user_data
1180         (PendingCall::__del__): Remove and replace with __dealloc__ method
1181         (PendingCall::set_notify): ref the pending call because we will
1182         need it to stick around for when the notify callback gets called
1183         (Message::__del__): Remove and replace with __dealloc__ method
1184
1185         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1186         gthreads_init to match up with the dbus call
1187
1188         * python/glib.py (init_threads): Changed to threads_init to match
1189         up with gobject.threads_init().  init_threads is kept for backwards
1190         compat but will most likely be deprecated in the future
1191
1192         * test/python/test-client.py: 
1193         - revamp to use Python's unittest functionality
1194         - add async call tests
1195         - setup threads in glib and dbus so we make sure locks are working
1196         
1197 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1198
1199         * python/dbus_bindings.pyx 
1200         (_pending_call_notification, cunregister_function_handler, 
1201         cmessage_function_handler): All callback functions have been rearranged 
1202         to workaround a bug in Pyrex when working with the GIL which is Python's 
1203         global lock when dealing with threads.  They have been split into
1204         a wrapper function (which assumes the name of the old function) and
1205         a _GIL_safe_<function name> function which contains the functionality
1206         of the old function.  This ensures that Pyrex does not write code
1207         the lock is released.
1208         
1209
1210 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1211
1212         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1213         GIL global lock when calling back into Python
1214
1215 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1216
1217         * Release 0.36.2
1218
1219         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1220
1221         * bus/policy.c (bus_policy_allow_user): change default "user is
1222         allowed" to be "user has same uid as the bus itself"; any
1223         allow/deny rules will override.
1224
1225         * bus/session.conf.in: don't allow all users, since now by default
1226         the user that ran the bus can connect.
1227
1228 2005-08-26  Colin Walters  <walters@verbum.org>
1229
1230         * tools/dbus-print-message.c (print_message): Flush stdout
1231         after printing a message, so that redirecting to a file, then
1232         hitting Ctrl-C works.
1233
1234 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1235
1236         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1237         (EmptyMessage): new class that subclasses Message.  This is a workaround
1238         to a Pyrex bug that fails to call __del__ when the Message object goes out
1239         of scope.  For some reason subclassing Message fixes this bug
1240         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1241         - s/Message(_create=0)/EmptyMessage everywhere else
1242         
1243         * test/python/test-{server|client}.py: add the python/.libs directory
1244         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1245         get picked up from the system
1246
1247 2005-08-25  Colin Walters  <walters@verbum.org>
1248
1249         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1250         to Ryan Lortie for the suggestion.
1251
1252 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1253
1254         * test/python: Add python regression test
1255
1256         * configure.in: Add test/python/Makefile
1257
1258         * test/Makefile.am: Add the python directory to SUBDIRS
1259
1260 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1261
1262         * Release 0.36.1
1263
1264         * python/_dbus.py: 
1265         (Interface::connect_to_signal): propigate keywords for match on args
1266         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1267
1268         * python/proxies.py (ProxyObject::connect_to_signal):
1269         propigate keywords for match on args
1270
1271         * Makefile.am: point everything to pyexecdir since python borks
1272         on multilib
1273
1274 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1275
1276         * Release 0.36
1277
1278 2005-08-23  Colin Walters  <walters@verbum.org>
1279
1280         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1281
1282 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1283
1284         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1285         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1286         of defining DBusConnection ourselves.
1287
1288 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1289
1290         * python/dbus.pth: New path file to fix up problems when installing
1291         c libraries to lib64 and python files to lib.
1292
1293         * python/Makefile.am: install dbus.pth in the correct spot
1294
1295 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1296         * ChangeLog: clean up my last entry a bit
1297
1298         * doc/introspect.xsl: New stylesheet for converting introspection data
1299         into browser renderable xhtml. Contributed by Lennart Poettering.
1300
1301         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1302         Poettering.
1303
1304         * doc/dbus-tutorial.xml: 
1305         - Add Colin Walter to the Authors section for authoring the GLib
1306         section
1307         - Add descriptions of the new signature and type functionality
1308         in the Python complex type mapping section
1309         - Add a sidenote on the new args matching functionality in 
1310         the Python bindings
1311         - Fixed up some of the examples to use the gobject.MainLoop
1312         instead of gtk.main
1313         
1314         * python/_dbus.py:
1315         (Bus::_create_args_dict): New. Converts a hash of arg matches
1316         to a more useable format
1317         (Bus::add_signal_receiver): add a **keywords parameter for catching
1318         arg match parameters
1319         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1320         arg match parameters
1321         
1322         * python/matchrules.py:
1323         (MatchTree::exec_matches): Check for arg matches
1324         (SignalMatchRule::add_args_match): New method
1325         (SignalMatchRule::execute): Added args_list parameter as an optimization
1326         so we don't have to marshal the args more than once
1327         (SignalMatchRule::match_args_from_list): New method that checks to see
1328         if the rule's arg matches match an argument list.  Only arguments
1329         set in the rule are checked.
1330         (SignalMatchRule::match_args_from_rule): New method that checks to see
1331         if the rule's arg matches match another rule's.  All args have to match
1332         in order for this method to return true.  If either rule has more args
1333         then it is not a match.
1334         (SignalMatchRule::is_match): Add args match
1335         (SignalMatchRule::repr): Add args to the final output if they exist
1336
1337 2005-08-17  Ross Burton  <ross@burtonini.com>
1338
1339         * glib/dbus-gproxy.c:
1340         (dbus_g_proxy_call_no_reply): unref the message once sent.
1341         (dbus_g_proxy_call): protect against NULL proxy.
1342
1343 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1344
1345         * python/__init__.py: Version updated (0, 43, 0)
1346         
1347         * python/dbus_bindings.pyx: 
1348         - Fixed type objects to have self passed into __init__
1349         - Added the Variant type
1350         - Add the ability to specify types or signatures for Array, Variant 
1351         and Dictionary
1352         (Connection::send_with_reply_handlers): return a PendingCall object
1353         (_pending_call_notification): handle the case when an error is returned 
1354         without an error message in the body
1355         (MessageIter::get_boolean): return True or False instead of an integer
1356         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1357         and add checks for objects with embeded signatures or types (Array, 
1358         Variant and Dictionary)
1359         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1360         (MessageIter::append_dict): handle embeded types or signatures
1361         (MessageIter::append_array): handle embeded types or signatures
1362         (MessageIter::append_variant): new method
1363         
1364         * python/proxies.py:
1365         (DeferedMethod): New. Dummy executable object used when queuing calls 
1366         blocking on introspection data
1367         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1368         or shorter timeouts for method calls
1369         (ProxyObject): Add first pass at an introspection state machine
1370         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1371         introspection. 
1372         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1373         the usual mechanisms for sending messages.  This is to avoid a deadlock
1374         where the Intospect call would be queued waiting for the Introspect 
1375         call to finish ;-)
1376         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1377         when introspection returns with no error
1378         (ProxyObject::_introspect_error_handler): New.  This method is called 
1379         when introspection encounters an error
1380         (ProxyObject::__getattr__): Code to handle different introspection 
1381         states.  Queue async calls or block blocking calls if we are 
1382         introspecting.  Pass through as normal if we are not or are done with 
1383         introspecting.
1384         
1385         * python/service.py: Import signal and method from decorators.py
1386
1387         * python/types.py: Add Variant type
1388
1389 2005-08-16  Colin Walters  <walters@verbum.org>
1390
1391         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1392         DBusError message is NULL.
1393
1394 2005-08-09  Havoc Pennington  <hp@redhat.com>
1395
1396         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1397         malloc'd copy of the name parameter
1398
1399 2005-08-09  Havoc Pennington  <hp@redhat.com>
1400
1401         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1402         warning if the reply serial is set to 0
1403
1404 2005-08-04  Colin Walters  <walters@verbum.org>
1405
1406         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1407         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1408         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1409         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1410         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1411         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1412         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1413         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1414         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1415         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1416         
1417         Prefix name with _ to ensure they're not exported.  All callers
1418         updated.
1419
1420         * glib/dbus-gvalue.c (typecode_to_gtype)
1421         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1422         (signature_iter_to_g_type_dict)
1423         (signature_iter_to_g_type_array)
1424         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1425         (dbus_gtypes_from_arg_signature):
1426         Move to dbus-gsignature.c.
1427
1428         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1429         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1430         (dbus_binding_tool_output_glib_client): Ditto.
1431
1432         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1433         and dbus-gsignature.h
1434
1435         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1436         unused variable.
1437
1438 2005-08-03  Colin Walters  <walters@verbum.org>
1439
1440         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1441         catch any incompatible changes accidentally made.
1442
1443 2005-08-03  Havoc Pennington  <hp@redhat.com>
1444
1445         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1446         typo, from Julien Puydt
1447
1448         * bus/connection.c (bus_connection_disconnected): we were always
1449         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1450
1451 2005-08-01  Colin Walters  <walters@verbum.org>
1452
1453         Patch from Joe Markus Clarke:   
1454         
1455         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1456         use-after-free.
1457
1458 2005-08-01  Colin Walters  <walters@verbum.org>
1459         
1460         Patch from Joe Markus Clarke:   
1461         
1462         * tools/dbus-send.c (main): 
1463         
1464         Don't use C99 style initializers (bug #3933).
1465         
1466 2005-08-01  Colin Walters  <walters@verbum.org>
1467
1468         Patch from Joe Markus Clarke:   
1469
1470         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1471         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1472         * glib/dbus-gobject.c (write_interface):
1473
1474         Don't use C99 style initializers (bug #3933).
1475
1476 2005-07-31  Havoc Pennington  <hp@redhat.com>
1477
1478         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1479         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1480
1481 2005-07-30  Havoc Pennington  <hp@redhat.com>
1482
1483         * fix a bunch of Doxygen warnings and mistakes
1484
1485 2005-07-30  Havoc Pennington  <hp@redhat.com>
1486
1487         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1488         DBUS_BUILD_TESTS since it's now used in production code
1489
1490 2005-07-29  Havoc Pennington  <hp@redhat.com>
1491
1492         * test/glib/test-profile.c (write_junk): initialize the junk
1493         buffer so valgrind doesn't have a breakdown
1494
1495 2005-07-29  Havoc Pennington  <hp@redhat.com>
1496
1497         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1498         (match_rule_matches): remove unused arg
1499         (test_matching): add tests for match_rule_matches()
1500
1501         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1502         do arg0='foo' arg5='bar' in the match rules
1503         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1504
1505         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1506
1507 2005-07-29  Ross Burton  <ross@openedhand.com>
1508
1509         * dbus/dbus-connection.c:
1510         Don't create a DBusCondVar which is never used.
1511
1512 2005-07-27  Ross Burton  <ross@openedhand.com>
1513
1514         * dbus/dbus-message.c:
1515         Reduce the size of the maximum cached message to 10K.
1516
1517 2005-07-25  Ross Burton  <ross@openedhand.com>
1518
1519         * glib/dbus-gproxy.c:
1520         Remove matches when all proxies are unregistered.
1521
1522 2005-07-24  Colin Walters  <walters@verbum.org>
1523
1524         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1525         typedata; recursive arrays won't have it.
1526
1527         * test/glib/test-dbus-glib.c:
1528         * test/glib/test-service-glib.c:
1529         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1530         
1531 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1532
1533         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1534         proxies.py, service.py: Cleanup of code after running it through the
1535         pyflakes code checker mostly dealing with undefined names.  
1536         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1537
1538 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1539
1540         * NEWS: Update to 0.35.2
1541
1542 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1543
1544         * python/_dbus.py: Remove import of the dbus.services
1545         module as it no longer exists (patch from Dimitur Kirov)
1546
1547         * python/service.py (Object::__init__): Fixed typo
1548         s/name/bus_name (patch from Dimitur Kirov)
1549
1550         * python/examples/example-signal-emitter.py: import dbus.glib
1551         to get the main loop and use glib mainloop instead of gtk so
1552         X doesn't have to be running.
1553
1554         * python/examples/example-signal-recipient.py: import dbus.glib
1555         to get the main loop and use glib mainloop instead of gtk so
1556         X doesn't have to be running. Import the decorators module
1557         directly.
1558
1559         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1560         didn't pick up on but are needed to build
1561
1562         * configure.in: upped version to 0.35.2
1563
1564         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1565         added Colin Walters' SELinux API rename patch from head 
1566         s/unix sercurity context/selinux security context/
1567
1568 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1569
1570         * python/Makefile.am: dbus_binding.pxd.in should be included 
1571         in EXTRA_DIST not dbus_binding.pxd
1572         fix up $(srcdir) hopefully for the last time
1573
1574         * NEWS: Update to 0.35.1
1575
1576 2005-07-16  Colin Walters  <walters@verbum.org>
1577
1578         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1579         from bus_driver_handle_get_connection_unix_security_context.  Update for
1580         error usage.
1581         (message_handlers): Update for renames.
1582
1583         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1584         _dbus_string_init failure correctly.
1585         (bus_selinux_append_context): Convert SID to context.  Append it
1586         as a byte array.
1587         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1588         hasn't been called.
1589
1590         * bus/selinux.h: Update prototype.
1591
1592         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1593         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1594
1595 2005-07-15  Colin Walters  <walters@verbum.org>
1596
1597         * doc/TODO: Add note about convenience wrappers.
1598
1599 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1600
1601         * NEWS: Update to 0.35
1602
1603 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1604
1605         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1606         so distcheck doesn't fail
1607
1608         * glib/examples/Makefile.am: Add example-service.xml and 
1609         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1610
1611         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1612         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1613
1614         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1615         compiler looks in the right places during distcheck
1616
1617 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1618
1619         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1620         to fail
1621
1622 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1623
1624         * python/examples/example-service.py,
1625         python/examples/example-signal-emitter.py: Fixed up examples
1626         for API changes
1627
1628 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1629
1630         * python/__init__.py: Upped to version (0,42,0) because of
1631         the API change
1632
1633 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1634
1635         * ChangeLog: fix date in last entry
1636
1637         * configure.in, bus/system.conf.in: add the ability to configure 
1638         the system bus user at compiletime with the --with-dbus-user flag
1639         (patch from Kristof Vansant)
1640
1641 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1642
1643         * bus/dispatch.c, test/test-service.c: Add testcase
1644         for sending messages to oneself (TODO item).
1645
1646         * python/service.py (class Object): Swap ordering of bus_name 
1647         and object_path parameters to better support inheritance.
1648
1649         * doc/dbus-tutorial.xml: change Python docs to reflect change
1650         in parameter ordering and fix the inheritance section.
1651
1652         * doc/TODO: remove sending message to oneself TODO item
1653
1654 2005-07-15  Ross Burton  <ross@openedhand.com>
1655
1656         * glib/dbus-gproxy.c:
1657         Fix a leak when calling methods via the proxy.
1658
1659 2005-07-15  Colin Walters  <walters@verbum.org>
1660
1661         * bus/selinux.c (bus_selinux_append_context): Wrap in
1662         HAVE_SELINUX.
1663
1664 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1665
1666         * python/_dbus.py (Bus::remove_signal_receiver):
1667         don't add a callback to the match if none has been passed in
1668         
1669         * python/matchrules.py (SignalMatchTree::remove): if the rule
1670         being matched does not have a callback treat it as a wildcard
1671         fix matching logic
1672
1673         * doc/dbus-tutorial.xml: Add Python tutorial
1674
1675 2005-07-14  Colin Walters  <walters@verbum.org>
1676
1677         * bus/driver.c
1678         (bus_driver_handle_get_connection_unix_security_context): New function.
1679         (message_handlers): Add.
1680
1681         * bus/selinux.c (bus_selinux_append_context): New function; appends
1682         security context to message.
1683
1684         * bus/selinux.h: Prototype.
1685
1686         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1687
1688 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1689
1690         * bus/activation.c: clean up all tabs to be 8 spaces 
1691         (bus_activation_activate_service): make sure we clean up
1692         if activation fails
1693
1694         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1695         (check_shell_fail_service_auto_start): New function
1696         tests to make sure we get fail properly when trying to auto start a service
1697         with a faulty command line
1698         (check_shell_service_success_auto_start): New function tests to make sure
1699         auto started services get the arguments on the command line
1700
1701         * test/test-shell-service.c: Added service for testing auto-starting with 
1702         command line arguments
1703
1704         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1705         test/data/valid-service-files/debug-shell-echo-success.service.in:
1706         Added service files for testing auto-starting with command line arguments
1707
1708         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1709
1710 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1711
1712         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1713         
1714         * dbus/Makefile.am: added new files to build.
1715
1716         * bus/activation.c (bus_activation_activate_service): support
1717         activation commands with parameters.
1718
1719         * test/shell-test.c: added test program for the shell parsing
1720         code.
1721
1722 2005-07-13  David Zeuthen  <davidz@redhat.com>
1723
1724         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1725         64 bit signed and unsigned parameters
1726
1727 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1728
1729         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1730
1731         * python/service.py (class Name): renamed BusName to make it clearer
1732         what the object is for (a name on the bus)
1733
1734         * python/examples/example-service.py,
1735         python/examples/example-signal-emitter.py: change the Name object to
1736         BusName
1737
1738 2005-07-12  Colin Walters  <walters@verbum.org>
1739
1740         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1741
1742         * tools/dbus-launch.c: Include sys/select.h.
1743
1744 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1745         * python/dbus_bindings.pyx.in: removed
1746
1747         * python/dbus_bindings.pyx: Added.
1748         - Fixed some memleaks (patch from 
1749         Sean Meiners <sean.meiners@linspireinc.com>)
1750         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1751         own pxd file (Pyrex definition)
1752         - Broke out glib dependancies into its own pyx module
1753         
1754         * python/dbus_bindings.pdx: Added.
1755         - Defines C class Connection for exporting to other modules
1756
1757         * python/dbus_glib_bindings.pyx: Added.
1758         - New module to handle lowlevel dbus-glib mainloop integration
1759
1760         * python/glib.py: Added.
1761         - Registers the glib mainloop when you import this module
1762
1763         * python/services.py: Removed (renamed to service.py)
1764         
1765         * python/service.py: Added.
1766         - (class Server): renamed Name
1767
1768         * python/__init__.py: Bump ro version (0,41,0)
1769         -don't import the decorators or service module
1770         by default.  These now reside in the dbus.service namespace
1771
1772         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1773         setup function on creation 
1774
1775         * python/examples/example-service.py,
1776         python/examples/example-signal-emitter.py: update examples
1777
1778         * python/examples/gconf-proxy-service.py,
1779         python/examples/gconf-proxy-service2.py: TODO fix these up
1780
1781         * doc/TODO: Addition
1782         - Added a Python Bindings 1.0 section
1783         - added "Add match on args or match on details to match rules"
1784
1785
1786 2005-07-12  Colin Walters  <walters@verbum.org>
1787
1788         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1789         (statemachine-glue.h): 
1790         * glib/examples/Makefile.am (example-service-glue.h) 
1791         (example-signal-emitter-glue.h): 
1792         * glib/Makefile.am (dbus-glib-error-switch.h): 
1793         Add libtool --mode=execute so we use the built library instead
1794         of any installed one.
1795
1796 2005-07-11  Colin Walters  <walters@verbum.org>
1797
1798         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1799         (dbus_g_value_types_init): Remove assertion.
1800         (dbus_g_value_get_g_type, dbus_g_value_open)
1801         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1802         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1803         functions related to DBusGValue.  Now we marshal/demarshal
1804         structures as GValueArray.
1805         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1806         structures.
1807         (signature_iter_to_g_type_array): Don't call
1808         signature_iter_to_g_type_struct.
1809         (signature_iter_to_g_type_struct): Delete.
1810         (dbus_gvalue_to_signature): Delete.
1811         (dbus_gvalue_to_signature): New function with same name as other
1812         one; we can convert structures to signatures.
1813         (demarshal_valuearray): New function.
1814         (get_type_demarshaller): Use it.
1815         (demarshal_recurse): Delete.
1816         (marshal_proxy): New function.
1817         (marshal_map): Warn if we can't determine signature from type.
1818         (marshal_collection_ptrarray): Ditto.
1819         (marshal_collection_array): Ditto.
1820         (get_type_marshaller): Use marshal_valuearray.
1821         (marshal_recurse): Delete.
1822         (_dbus_gvalue_test): Add some tests.
1823
1824         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
1825         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1826         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1827         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1828         (dbus_g_value_free): Remove prototypes.
1829
1830         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1831         G_TYPE_VALUE_ARRAY.
1832
1833         * glib/examples/example-service.c:
1834         * glib/examples/example-client.c: Implement GetTuple.
1835
1836         * test/glib/test-dbus-glib.c:
1837         * test/glib/test-service-glib.c:
1838         * test/glib/test-service-glib.xml: Add structure tests.
1839
1840 2005-07-10  Colin Walters  <walters@verbum.org>
1841
1842         * doc/TODO: Knock off some GLib items with this patch.
1843
1844         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
1845         (_dbus_gvalue_signals_error): New functions.
1846
1847         * glib/dbus-gvalue-utils.h: Prototype them.
1848
1849         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1850         and change to not output const/retval flags for input args.  All
1851         callers updated.
1852         (invoke_object_method): Refactor to handle return values.  Add
1853         some more comments in various places.  Remove debug g_print.
1854
1855         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1856
1857         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1858         Handle G_TYPE_NONE.
1859         (compute_gsignature): New function; refactored from code from
1860         compute_marshaller and compute_marshaller_name.  Enhance to
1861         handle return values and async ops more cleanly.  Update for
1862         async ops returning NONE instead of BOOLEAN.
1863         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1864         and output appropriate string.
1865         (generate_glue): Handle return value annotation.  Also don't dump
1866         constness flag for input arguments.
1867
1868         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1869         files shared between installed library and utilities.
1870         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1871         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1872         binding tool can access gtype utility functions.
1873
1874         * test/glib/test-service-glib.c: 
1875         * test/glib/test-service-glib.xml: 
1876         * test/glib/test-dbus-glib.c: Add some tests for return values.
1877
1878 2005-07-09  Colin Walters  <walters@verbum.org>
1879
1880         * glib/dbus-gparser.c (parse_annotation): Add annotations to
1881         argument if available, not method.
1882
1883         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1884         (invoke_object_method): First, remove some redundant
1885         GValues (object_value, error_value) in favor of working on
1886         array directly.  Second, rework constness to be less buggy.
1887         Now we iterate directly over the argument metadata instead
1888         of parallel iterating over output signature and metadata.
1889
1890         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1891
1892         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1893         annotation on input args.
1894         
1895 2005-07-09  Colin Walters  <walters@verbum.org>
1896
1897         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1898         Define.
1899
1900         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1901         annotation.
1902
1903         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1904         (method_dir_signature_from_object_info): Handle arg_iterate change.
1905         (write_interface): Ditto.
1906         (lookup_object_info): Don't barf if format_version is > 0.
1907         (invoke_object_method): Handle arg constness.
1908
1909         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1910         (arg_info_new): Create.
1911         (arg_info_unref): Destroy.
1912         (arg_info_get_annotations, arg_info_get_annotation) 
1913         (arg_info_add_annotation): New functions.
1914
1915         * glib/dbus-gidl.h: Prototype them.
1916
1917         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1918         args, disallow them in properties.
1919         (parse_annotation): Handle arg annotations.
1920
1921         * test/glib/test-service-glib.xml: 
1922         * test/glib/test-service-glib.c: Update to make some methods
1923         const.
1924
1925 2005-07-08  Colin Walters  <walters@verbum.org>
1926
1927         * test/glib/test-service-glib.xml: 
1928         * test/glib/test-service-glib.c:
1929         * test/glib/test-dbus-glib.c: Test a{sv}.
1930
1931         * glib/examples/statemachine/statemachine.c:
1932         * glib/examples/statemachine/statemachine-server.c:
1933         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1934         add progress bar, etc.
1935
1936         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1937         needed anymore due to generic array/map marshalling.
1938         (dbus_g_value_types_init): Don't register basic arrays or the
1939         string/string hash.
1940         (dbus_gtype_from_signature_iter): Don't try to recurse into
1941         variants.
1942         (dbus_gtype_to_signature): Check collection/map before type
1943         metadata.
1944         (demarshal_garray_basic): Renamed to demarshal_collection_array.
1945         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1946         generic map creation/append functions instead of hash table
1947         specifically.
1948         (get_type_demarshaller): Handle maps.
1949         (demarshal_collection): Dispatch on collection type to either
1950         demarshal_collection_ptrarray or demarshal_collection_array.
1951         (get_type_marshaller): Handle maps.
1952         (marshal_collection): Dispatch collection type to either
1953         marshal_collection_ptrarray or marshal_collection_array.
1954         (_dbus_gvalue_test): New test.
1955
1956         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1957         (hash_free_from_gtype): Use it to free GValues.
1958         (hashtable_append): New function.
1959         (ptrarray_append): Fix prototype.
1960         (slist_append): Ditto.
1961         (_dbus_gvalue_utils_test): Extend tests.
1962
1963         * glib/dbus-gtype-specialized.c
1964         (dbus_g_type_specialized_init_append): Renamed from
1965         dbus_g_type_specialized_collection_init_append.  Remove const from
1966         value, since we steal it.
1967         (dbus_g_type_specialized_map_append): New function.
1968
1969         * glib/dbus-gtype-specialized.h: Update prototypes.
1970         Add DBusGTypeSpecializedMapAppendFunc.
1971
1972         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1973         _dbus_gvalue_test.
1974         
1975         * glib/dbus-gtest.h: Prototype it.
1976
1977 2005-07-08  Ross Burton  <ross@openedhand.com>
1978
1979         * dbus/dbus-glib.h:
1980         Add DBysGAsyncData for the async bindings.
1981
1982         * glib/dbus-binding-tool-glib.c:
1983         Re-enable the async bindings.
1984
1985         * test/glib/test-dbus-glib.c:
1986         Add a test for the generated async bindings.
1987
1988 2005-07-08  Colin Walters  <walters@verbum.org>
1989
1990         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1991         connection concept.
1992         
1993 2005-07-08  Colin Walters  <walters@verbum.org>
1994         
1995         * tools/Makefile.am: Kill of print-introspect in favor of using
1996         dbus-send --print-reply=literal.
1997
1998         * test/glib/test-service-glib.xml: 
1999         * test/glib/test-service-glib.c (my_object_get_objs): New test
2000         for "ao".
2001
2002         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2003         (main): Test GetObjs.
2004
2005         * glib/examples/statemachine/Makefile.am:
2006         * glib/examples/statemachine/sm-marshal.list:
2007         * glib/examples/statemachine/statemachine-client.c:
2008         * glib/examples/statemachine/statemachine-server.c:
2009         * glib/examples/statemachine/statemachine-server.xml:
2010         * glib/examples/statemachine/statemachine.c:
2011         * glib/examples/statemachine/statemachine.h:
2012         * glib/examples/statemachine/statemachine.xml:
2013
2014         New example.
2015
2016         * glib/examples/example-service.c (main): Move invocation
2017         of dbus_g_object_type_install_info earlier, to emphasize it
2018         should only be done once.
2019
2020         * glib/examples/example-signal-emitter.c (main): Ditto.
2021
2022         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2023
2024         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2025         (dbus_gvalue_marshal): Update prototypes.
2026
2027         * glib/dbus-gvalue.c: Update all marshalling functions to take
2028         const GValue instead of GValue.
2029         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2030         types.
2031         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2032         change.
2033         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2034         Return a newly-allocated string.
2035         (demarshal_proxy, demarshal_object_path, demarshal_object)
2036         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2037         we get the wrong types from message.
2038         (get_type_demarshaller): New function, extracted from
2039         dbus_gvalue_demarshal.
2040         (demarshal_collection): New function, demarshals generic
2041         collection.
2042         (dbus_gvalue_demarshal): Just invoke result of
2043         get_type_demarshaller.  Throw error if we don't have one.
2044         (marshal_garray_basic): Abort on OOM.
2045         (get_type_marshaller): New function, extracted from
2046         dbus_gvalue_marshal.
2047         (collection_marshal_iterator, marshal_collection): New functions;
2048         implements generic marshalling for an iteratable specialized
2049         collection.
2050         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2051
2052         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2053         G_TYPE_STRING.
2054         (ptrarray_value_from_gvalue): Ditto.
2055         (ptrarray_append, ptrarray_free): New functions.
2056         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2057         (slist_append, slist_end_append, slist_free): New functions.
2058         (dbus_g_type_specialized_builtins_init): Add append fuctions
2059         for GPtrArray and GSList.  Register GSList.
2060         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2061
2062         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2063         New.
2064         (dbus_g_type_specialized_collection_init_append)
2065         (dbus_g_type_specialized_collection_append)
2066         (dbus_g_type_specialized_collection_end_append): Prototype.
2067         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2068         end_append_func.
2069
2070         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2071         (dbus_g_type_specialized_collection_append) 
2072         (dbus_g_type_specialized_collection_end_append): New functions.
2073         (dbus_g_type_map_value_iterate): Take const GValue.
2074         (dbus_g_type_collection_value_iterate): Ditto.
2075
2076         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2077         _dbus_gvalue_utils_test.
2078         
2079         * glib/dbus-gtest.h: Prototype it.
2080
2081         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2082         using uninitialized owner_list.
2083         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2084         public API.
2085         (dbus_g_proxy_end_call_internal): Update to use error set
2086         from dbus_gvalue_demarshal instead of setting it here.
2087         (dbus_g_proxy_begin_call): Move return_if_fail here.
2088
2089         * glib/dbus-gobject.c (write_interface): Update for
2090         dbus_gtype_to_signature returning new string.
2091
2092         * configure.in: Add glib/examples/statemachine.
2093
2094 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2095
2096         * configure.in: Add a configure option, --with-console-auth-dir
2097         
2098         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2099         new setting.  Patch from Kay Sievers.
2100
2101 2005-07-06  Colin Walters  <walters@verbum.org>
2102
2103         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2104         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2105         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2106         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2107         Delete in favor of dbus_g_proxy_begin_call and
2108         dbus_g_proxy_cancel_call.
2109         (DBusGProxyCall, DBusGProxyCallNotify): New.
2110         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2111         data, and destroy function.  This replaces
2112         dbus_g_pending_call_set_notify.
2113         (dbus_g_proxy_cancel_call): Prototype.
2114         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2115
2116         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2117         pending_calls map.
2118         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2119         internal proxy for calls to the bus. Remove
2120         pending_nameowner_calls, now the internal proxy keeps track.
2121         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2122         pending_nameowner_calls.
2123         (got_name_owner_cb): Update prototype, and use
2124         dbus_g_proxy_end_call.
2125         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2126         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2127         favor of using internal proxy.
2128         (dbus_g_proxy_manager_unregister): Update to use
2129         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2130         (dbus_g_proxy_init): Initialize pending calls map.
2131         (dbus_g_proxy_constructor): New.
2132         (dbus_g_proxy_class_init): Add get/set property functions,
2133         constructor, and add NAME, PATH, and INTERFACE properties.
2134         (cancel_pending_call): New function.
2135         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2136         cancel them.
2137         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2138         (GPendingNotifyClosure): New structure.
2139         (d_pending_call_notify, d_pending_call_free): Moved here from
2140         dbus-glib.c.
2141         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2142         ordering.
2143         (manager_begin_bus_call): New internal function for talking to
2144         internal bus proxy.
2145         (dbus_g_proxy_new): Construct object using GObjet properties.
2146         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2147         Create closure of same, and insert call into map of pending calls.
2148         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2149         call.  Look up pending call in current set.  Remove it when we've
2150         completed.
2151         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2152         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2153         and destroy function directly.
2154         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2155         (dbus_g_proxy_call): Invoke with NULL callback.
2156         (dbus_g_proxy_cancel_call): New function, replaces
2157         dbus_g_pending_call_cancel.
2158
2159         * glib/dbus-gparser.c (validate_signature): Fix call to
2160         dbus_set_g_error.
2161
2162         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2163         New quark for attaching metadata to GType.
2164         (info_hash): Delete.
2165         (lookup_object_info): Look up using quark.
2166         (dbus_g_object_type_install_info): Check that a type is classed,
2167         not that it's an object.  Also just install type data using quark
2168         instead of using global hash.
2169
2170         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2171         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2172         (GPendingNotifyClosure): Delete.
2173         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2174         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2175
2176         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2177         client method generation until we can fix it...
2178         
2179         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2180         (load_from_service_thread_func): Ditto.
2181
2182         * tools/dbus-names-model.c (struct NamesModel): Hold
2183         DBusGProxyCall.
2184         (have_names_notify): Update prototype, use
2185         dbus_g_proxy_cancel_call.
2186         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2187
2188         * tools/dbus-monitor.c (filter_func): Update for print_message
2189         API change.
2190
2191         * test/glib/test-dbus-glib.c: Add more tests for async
2192         invocations.  Update many begin_call/end_call pairs to just use
2193         dbus_g_proxy_call.
2194
2195         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2196         allows us to dump print-introspect.c.
2197
2198         * tools/dbus-print-message.h (print_message): Add literal argument
2199         to print_message which is intended to allow printing arguments without
2200         metadata like "string=".
2201
2202         * tools/dbus-print-message.c (print_iter): Add literal argument.
2203         (print_message): Allow printing string messages literally.
2204
2205 2005-07-05  Colin Walters  <walters@verbum.org>
2206
2207         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2208         Remove value refcount leak, original patch from Jorn Baayen
2209         <jorn@openedhand.com>.  Also remove useless extra value in favor
2210         of prepending to value array directly.
2211
2212 2005-07-02  Colin Walters  <walters@verbum.org>
2213
2214         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2215
2216 2005-07-01  Colin Walters  <walters@verbum.org>
2217
2218         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2219         
2220         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2221         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2222         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2223         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2224
2225 2005-06-30  Colin Walters  <walters@verbum.org>
2226
2227         * test/glib/test-dbus-glib.c:
2228         * test/glib/test-service-glib.c:
2229         * test/glib/test-service-glib.xml: Update tests for new error
2230         setting bits, also add async tests (patch from Ross Burton).
2231
2232         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2233         DBUS_GLIB_THREADS_LIBS.
2234
2235         * glib/dbus-gproxy.c (get_name_owner)
2236         (dbus_g_pending_call_end_valist): Ditto.
2237
2238         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2239         domain (GQuark) to DBusGErrorInfo.  
2240         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2241         quark in error_metadata.  Take message interface as default
2242         error message interface.
2243         (gerror_to_dbus_error_message): Pass message interface.
2244         (dbus_set_g_error): Resurrected.
2245         (dbus_g_error_info_free): New function.
2246         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2247         of _peek to actually create the object class if it hasn't been
2248         created yet.
2249         (dbus_g_error_domain_register): New function.
2250
2251         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2252
2253         * glib/dbus-gparser.c (validate_signature): Ditto.
2254
2255         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2256         (dbus_g_error_domain_register): Prototype.
2257
2258         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2259         Update tests.
2260
2261 2005-06-29  Colin Walters  <walters@verbum.org>
2262
2263         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2264         DBUS_TYPE_G_OBJECT_PATH.
2265
2266         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2267         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2268         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2269         (dbus_g_object_path_get_g_type): New function.
2270         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2271         to DBUS_TYPE_G_OBJECT_PATH by default.
2272         (demarshal_proxy): Remove unused name variable.
2273         (demarshal_object_path, marshal_object_path): New functions.
2274         (demarshal_proxy_array, marshal_proxy_array): Delete.
2275         
2276         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2277         DBUS_TYPE_G_OBJECT_PATH to char *.
2278         (dbus_g_type_get_lookup_function): Map builtin
2279         DBUS_TYPE_G_OBJECT_PATH.
2280
2281         * test/glib/test-dbus-glib.c
2282         * test/glib/test-service-glib.c (my_object_objpath): 
2283         Adapt tests to new object path marshalling.
2284
2285 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2286
2287         * configure.in: force check for Python >= 2.4
2288
2289 2005-06-29  Colin Walters  <walters@verbum.org>
2290         
2291         Patch from Ross Burton <ross@openedhand.com>
2292         
2293         * glib/dbus-gobject.c (invoke_object_method): Unset object
2294         value in all cases, not only in async case.
2295
2296 2005-06-29  Colin Walters  <walters@verbum.org>
2297
2298         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2299         name_call for keeping track of any outgoing GetNameOwner call.
2300         Also add for_owner and associated.
2301         (struct _DBusGProxyManager): Add owner_names, which is hash table
2302         that maps a base name to a list of names it owns (that we're
2303         interested in).  Add pending_nameowner_calls which is a list of
2304         all outstanding GetNameOwner; avoids us having to iterate over
2305         every proxy.  Add unassociated_proxies which keeps track of name
2306         proxies with no associated name owner.
2307         (dbus_g_proxy_manager_unref): Destroy owner_names.
2308         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2309         name refcounts.
2310         (find_name_in_info, name_owner_foreach)
2311         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2312         (dbus_g_proxy_manager_monitor_name_owner)
2313         (dbus_g_proxy_manager_unmonitor_name_owner)
2314         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2315         New functions; they manipulate the owner_names mapping.
2316         (got_name_owner_cb): New function.
2317         (get_name_owner): New function, extracted from
2318         dbus_g_proxy_new_for_name_owner.
2319         (dbus_g_proxy_manager_register): For now we need to keep track of
2320         all NameOwnerChanged.  Also if the proxy is for a name, if we
2321         don't already know the name owner, queue a new GetNameOwner
2322         request and add it to our list of unassociated proxies.  Otherwise
2323         inc the refcount.
2324         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2325         cancel any pending GetNameOwner call, etc.
2326         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2327         the owner_names mapping to look up the current names for the
2328         signal source, and dispatch to any proxies for that name.
2329         (dbus_g_proxy_new): Initialize new members.
2330         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2331         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2332         (dbus_g_pending_call_end_valist): New function, extracted from
2333         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2334         but want to use the GLib infrastructure.  Also note how many
2335         arguments in reply were over.
2336         (dbus_g_pending_call_end): New function, just call
2337         dbus_g_pending_call_end_valist.
2338         (dbus_g_proxy_end_call_internal): Just call
2339         dbus_g_pending_call_end_valist.
2340
2341         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2342         of builtin marshaller for STRING_STRING_STRING.
2343
2344         * test/glib/test-dbus-glib.c: 
2345         * test/glib/test-service-glib.c:
2346         * test/glib/test-service-glib.xml:
2347         Extend tests to cover name proxies, destruction of owner proxies,
2348         etc.
2349         
2350         * glib/examples/example-signal-recipient.c
2351         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2352         
2353         * tools/dbus-send.c (main): Print D-BUS error name in addition
2354         to message.
2355
2356 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2357
2358         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2359         cmessage_function_handler): Patch from 
2360         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2361         by using the Py_GILState_Ensure/Release to synchronize with the
2362         python runtime.
2363         
2364 2005-06-28  Ray Strode  <rstrode@redhat.com>
2365
2366         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2367         babysitter helper process on last unref, bug #2813.
2368
2369 2005-06-27  Colin Walters  <walters@verbum.org>
2370
2371         * test/glib/test-dbus-glib.c: 
2372         * test/glib/test-service-glib.c:
2373         * test/glib/test-service-glib.xml:
2374         Test hash table signal emitting.
2375
2376         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2377         types to their fundamental basis types, since this is what
2378         marshallers operate on.  Also add an entry for VOID__BOXED.
2379         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2380
2381 2005-06-26  Havoc Pennington  <hp@redhat.com>
2382
2383         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2384         from Don Park
2385
2386 2005-06-26  Colin Walters  <walters@verbum.org>
2387
2388         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2389         (dbus_g_error_set): New public function from its ashes; used by
2390         both service-side method implementation and GLib bindings
2391         internals.
2392         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2393         (_dbus_glib_test): Add some tests.
2394
2395         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2396
2397         * test/glib/test-service-glib.c (my_object_throw_error): Use
2398         dbus_g_error_set.
2399
2400         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2401         errors thrown by dbus_g_error_set.
2402
2403         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2404
2405         * glib/dbus-gparser.c (validate_signature): Ditto.
2406
2407         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2408         (dbus_g_proxy_end_call_internal): Ditto.
2409
2410         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2411         converts DBUS_ERROR_x to DBUS_GERROR_x.
2412         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2413
2414         * doc/TODO: Remove error TODO.
2415
2416         * doc/dbus-tutorial.xml: Update with documentation about error
2417         handling.
2418
2419         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2420         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2421         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2422
2423 2005-06-22  Colin Walters  <walters@verbum.org>
2424         
2425         Patch from Ross Burton <ross@openedhand.com>
2426
2427         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2428
2429 2005-06-20  Colin Walters  <walters@verbum.org>
2430
2431         * configure.in: Add glib/examples.
2432
2433         * glib/Makefile.am: Add examples/
2434
2435         * glib/examples/.cvsignore
2436         * glib/examples/Makefile.am
2437         * glib/examples/example-client.c
2438         * glib/examples/example-service.c
2439         * glib/examples/example-service.xml
2440         * glib/examples/example-signal-emitter.c
2441         * glib/examples/example-signal-emitter.xml
2442         * glib/examples/example-signal-recipient.c:
2443         New files; GLib binding examples, ported from
2444         python/examples.
2445
2446 2005-06-20  Colin Walters  <walters@verbum.org>
2447
2448         * dbus/dbus-glib.h: 
2449         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2450         dbus_g_proxy_call.
2451
2452         * glib/dbus-binding-tool-glib.c: 
2453         * doc/dbus-tutorial.xml: 
2454         * test/glib/test-dbus-glib.c: Update for rename.
2455         
2456 2005-06-20  Colin Walters  <walters@verbum.org>
2457
2458         Patch suggested by Ross Burton <ross@openedhand.com>
2459
2460         * glib/dbus-gobject.c (export_signals): Free signal name.
2461         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2462         memory leak.  Add a bit of documentation.
2463         (dbus_g_method_return_error): Free context, and note we do
2464         so.
2465
2466 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2467
2468         * dbus/dbus-glib.h:
2469         * glib/dbus-gobject.c:
2470         * glib/dbus-gproxy.c:
2471         * glib/dbus-gvalue.c: Predeclare structs as 
2472         typedef struct _Something Something instead of 
2473         typedef struct Something Something, so we can 
2474         redeclare the prototypes. Other GNOME libraries 
2475         do this already.
2476
2477 2005-06-17  Colin Walters  <walters@verbum.org>
2478
2479         * tools/dbus-names-model.c (have_names_notify): Fix call
2480         to dbus_g_proxy_end_call.
2481         
2482 2005-06-17  Colin Walters  <walters@verbum.org>
2483
2484         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2485         spew warnings if we get malformed remote signals.
2486
2487         * glib/dbus-gobject.c (propsig_iterate): New function.
2488         (lookup_object_info): New function, extracted from
2489         lookup_object_and_method.
2490         (introspect_properties, introspect_signals): Delete; these
2491         are merged into write_interface.
2492         (write_interface): Write out signals and properties here;
2493         dump the org.gtk.object stuff and use the interface given
2494         in the introspection data blob.  Also fix up property XML.
2495         (lookup_values): New function.
2496         (introspect_interfaces): Gather a mapping from interface to a
2497         list of its methods, signals, and properties, then write out
2498         each interface.
2499         (lookup_object_and_method): Use lookup_object_info.
2500         (struct DBusGSignalClosure): Add interface.
2501         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2502         we can just use the constant data.
2503         (dbus_g_signal_closure_finalize): Don't free signal name.
2504         (signal_emitter_marshaller): Use interface from signal closure.
2505         (export_signals): Only export signals mentioned in introspection
2506         blob.
2507         (dbus_g_connection_register_g_object): Warn if we have no
2508         introspection data for an object.
2509         (funcsig_equal): Remove unused variable.
2510         (dbus_g_object_register_marshaller): Take varargs instead of
2511         list.
2512         (dbus_g_object_register_marshaller_array): New function,
2513         extracted from old dbus_g_object_register_marshaller.
2514
2515         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2516         signals and property data.
2517         (write_quoted_string): New function, extracted from generate_glue.
2518         (generate_glue): Write signals and properties to introspection
2519         blob.
2520
2521         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2522         exported_signals and exported_properties.
2523         (dbus_g_object_register_marshaller): Update prototype.
2524         (dbus_g_object_register_marshaller_array): Prototype.
2525         
2526         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2527
2528         * test/glib/test-service-glib.c: Add new test signals and method
2529         to emit them.
2530
2531         * test/glib/test-service-glib.xml: Add some test signals.
2532
2533         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2534         and my-object-marshal.h
2535         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2536         my-object-marshal.c.
2537         (my-object-marshal.c, my-object-marshal.h): Implement.
2538
2539         * test/glib/.cvsignore: Update.
2540
2541         * doc/TODO: Remove two GLib TODO items fixed by this
2542         patch.
2543
2544 2005-06-16  Colin Walters  <walters@verbum.org>
2545
2546         * doc/TODO: Update for GLib bindings.
2547         
2548 2005-06-16  Colin Walters  <walters@verbum.org>
2549
2550         * glib/dbus-binding-tool-glib.c:
2551         * glib/dbus-gobject.c:
2552         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2553         from Ross Burton, for his GLib bindings work.
2554
2555 2005-06-16  Colin Walters  <walters@verbum.org>
2556
2557         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2558         to iterate instead of walking to G_TYPE_INVALID.
2559
2560         Patch based on a patch from Ryan Gammon.
2561
2562 2005-06-16  Colin Walters  <walters@verbum.org>
2563
2564         * bus/bus.c (bus_context_new): Set parser to NULL
2565         after we unref it (Patch from Chris Boscolo, #2174).
2566         
2567 2005-06-16  Colin Walters  <walters@verbum.org>
2568
2569         * python/dbus_bindings.pyx.in: Import size_t,
2570         __int64_t, __uint64_t, and __signed.
2571
2572         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2573         Define cmsg struct, output it.
2574         (_dbus_read_credentials_unix_socket):
2575         Use cmsg struct.
2576         
2577         Patch from Joe Markus Clarke for FreeBSD support.
2578         
2579 2005-06-16  Colin Walters  <walters@verbum.org>
2580
2581         * tools/dbus-send.c (append_array): Use strtok.
2582         (append_dict): New function.
2583         (type_from_name): New function, extracted from main.
2584         (main): Handle sending dicts.
2585
2586         * tools/dbus-print-message.c (print_iter): Print dict
2587         entries.
2588         
2589 2005-06-16  Colin Walters  <walters@verbum.org>
2590
2591         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2592         values as the empty string (#2948).
2593         
2594 2005-06-16  Colin Walters  <walters@verbum.org>
2595
2596         * dbus/Makefile.am:
2597         * mono/doc/Makefile.am:
2598         * test/glib/Makefile.am:
2599
2600         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2601
2602 2005-06-16  Colin Walters  <walters@verbum.org>
2603
2604         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2605         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2606
2607         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2608         Increment pointer after swapping fixed array.  Add assertion
2609         for array length.
2610                 
2611 2005-06-15  Colin Walters  <walters@verbum.org>
2612
2613         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2614         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2615         
2616 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2617
2618         * NEWS: Update to 0.34
2619
2620 2005-06-15  David Zeuthen  <davidz@redhat.com>
2621
2622         * configure.in (LT_CURRENT): Revert back to 1 as the library
2623         hasn't changed and we've certainly not committed to protocol
2624         stability yet.  All this does is to break ABI. See commit note
2625         from hp@redhat.com 2005-05-05 for details.
2626         
2627 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2628
2629         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2630         (_dbus_connection_run_builtin_filters): New method
2631         (dbus_connection_dispatch): Run the builtin filters which in turn
2632         runs the peer filter which handles Ping messages.
2633
2634         * doc/TODO: 
2635          - Ping isn't handled: This patch fixes it
2636          
2637          - Add a test case for the Ping message: added TODO item
2638
2639 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2640
2641         * dbus/dbus-message.c:
2642         (dbus_message_has_path): New method
2643         (dbus_message_has_interface): New method
2644         (dbus_message_has_member): New method
2645
2646         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2647         New method
2648
2649         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2650         the keyring directory is private to the user
2651
2652         * doc/TODO:
2653          - The convenience functions in dbus-bus.h should perhaps have
2654          the signatures that they would have if they were autogenerated
2655          stubs. e.g. the acquire service function. We should also evaluate
2656          which of these functions to include, in light of the fact that
2657          GLib/Qt native stubs will probably also exist.: Punted
2658
2659          - add dbus_message_has_path(), maybe has_member/interface:
2660          fixed in this patch
2661
2662          - in dbus-keyring.c, enforce that the keyring dir is not
2663          world readable/writable: Fixed in this patch
2664
2665 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2666
2667         * dbus/dbus-marshal-validate.h: Added a new validation
2668         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2669         out of memory errors when validating signitures
2670
2671         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2672         in places where we previously used DBUS_VALID and a FALSE return 
2673         value to indicate OOM
2674         
2675         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2676         Use a stack to track the number of elements inside containers.  The 
2677         stack values are then used to validate that dict entries have only two
2678         elements within them.
2679         (validate_body_helper): check the reason for failure when validating
2680         varients
2681         
2682         * dbus/dbus-message.c (load_message): use 
2683         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2684         DBUS_VALID and a FALSE return value to indicate OOM
2685
2686         * doc/TODO: remove "- validate dict entry number of fields" as this
2687         patch fixes it
2688
2689 2005-06-14  David Zeuthen  <davidz@redhat.com>
2690
2691         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2692         watches (if applicable) and add new watches
2693
2694         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2695         (main): Setup SIGIO signal handler if using D_NOTIFY
2696
2697         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2698
2699         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2700         (merge_included): Also merge conf_dirs list
2701         (bus_config_parser_unref): Clear conf_dirs list
2702         (include_dir): Add directory to conf_dirs list
2703         (bus_config_parser_get_conf_dirs): New function
2704
2705         * bus/dir-watch.[ch]: New files
2706
2707         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2708
2709         * configure.in: Add checks for D_NOTIFY on Linux
2710
2711 2005-06-14  Colin Walters  <walters@verbum.org>
2712
2713         * glib/dbus-binding-tool-glib.c:
2714         * glib/dbus-gobject.c:
2715         * glib/dbus-gvalue.c: Fix indentation and brace style.
2716         
2717 2005-06-14  Ross Burton <ross@openedhand.com>.
2718
2719         * glib/dbus-glib.h: Make DBusGMethodInvocation
2720         a private structure.  Rearrange prototypes a bit.
2721         
2722         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2723         documentation for first_arg_type.
2724         
2725         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2726         here, add documentation.  Move dbus_g_method_return
2727         and dbus_g_method_return_error into public API
2728         section.
2729
2730 2005-06-14  Colin Walters  <walters@verbum.org>
2731
2732         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2733         Add missing return statements, noticed by Ross Burton.
2734         
2735 2005-06-13  Ross Burton <ross@openedhand.com>.
2736
2737         * glib/dbus-gobject.c: Handle errors on message
2738         demarshalling by sending error message back.
2739         * glib/dbus-gvalue.c: Initialize return variables.
2740
2741 2005-06-13  Colin Walters  <walters@verbum.org>
2742
2743         * glib/Makefile.am: Fix thinko in last patch.
2744
2745 2005-06-13  Colin Walters  <walters@verbum.org>
2746
2747         * glib/Makefile.am: Move dbus-gtype-specialized.c
2748         and dbus-gtype-specialized.h into a _HEADERS variable,
2749         install them.
2750
2751 2005-06-12  Colin Walters  <walters@verbum.org>
2752
2753         Async signals and various bugfixes and testing by
2754         Ross Burton <ross@openedhand.com>.
2755
2756         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2757         (dbus_gvalue_genmarshal_name_from_type)
2758         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2759         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2760         (dbus_g_value_types_init, dbus_gtype_from_signature)
2761         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2762         (dbus_gtypes_from_arg_signature): New function prototypes.
2763         (dbus_gvalue_demarshal): Take context and error arguments.
2764         (dbus_gvalue_demarshal_variant): New function.
2765         (dbus_gvalue_demarshal_message): New function.
2766         (dbus_gvalue_store): Delete.
2767
2768         * glib/dbus-gvalue.c:
2769
2770         File has been almost entirely rewritten; now we special-case
2771         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2772         hash tables correctly, etc.  Full support for recursive values
2773         is not yet complete.
2774
2775         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2776         argument of signal to G_TYPE_POINTER since we now pass a
2777         structure.
2778         (lookup_g_marshaller): Delete in favor of
2779         _dbus_gobject_lookup_marshaller.
2780         (marshal_dbus_message_to_g_marshaller): Use
2781         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2782         to handle remote signal callbacks.
2783         (dbus_g_proxy_new_from_proxy): New function; creates a new
2784         DBusGProxy by copying an existing one.
2785         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2786         (dbus_g_proxy_get_path): New functions.
2787         (dbus_g_proxy_marshal_args_to_message): New function;
2788         factored out of existing code.
2789         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2790         from a varargs array.
2791         (dbus_g_proxy_begin_call_internal): New function.
2792         (dbus_g_proxy_end_call_internal): New function.
2793         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2794         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2795         after collecting args into value array.
2796         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2797         invoke dbus_g_proxy_end_call_internal.
2798         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2799         end_call_internal.
2800         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2801         types.
2802         (array_free_all): New function.
2803         (dbus_g_proxy_add_signal): Take GTypes.
2804
2805         * glib/dbus-gobject.h:
2806         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2807         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2808         Prototype.
2809
2810         * glib/dbus-gobject.c: Add a global marshal_table hash which
2811         stores mappings from type signatures to marshallers.  Change lots
2812         of invocations of dbus_gtype_to_dbus_type to
2813         dbus_gtype_to_signature.
2814         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2815         (introspect_signals): Fix test for query.return_type.
2816         (set_object_property): Update invocation of dbus_gvalue_demarshal.
2817         (invoke_object_method): Many changes.  Handle asynchronous
2818         invocations.  Convert arguments with
2819         dbus_gvalue_demarshal_message.  Handle errors.  Use
2820         DBusSignatureIter instead of strlen on args. Handle all arguments
2821         generically.  Special-case variants.
2822         (dbus_g_method_return, dbus_g_method_return_error): New function.
2823         (DBusGSignalClosure): New structure, closes over signal
2824         information.
2825         (dbus_g_signal_closure_new): New function.
2826         (dbus_g_signal_closure_finalize): New function.
2827         (signal_emitter_marshaller): New function; is special marshaller
2828         which emits signals on bus.
2829         (export_signals): New function; introspects object signals and
2830         connects to them.
2831         (dbus_g_object_type_install_info): Take GType instead of
2832         GObjectClass.
2833         (dbus_g_connection_register_g_object): Invoke export_signals.
2834         (dbus_g_connection_lookup_g_object): New function.
2835         (DBusGFuncSignature) New structure; used for mapping type
2836         signatures to marshallers.
2837         (funcsig_hash): New function; hashes DBusGFuncSignature.
2838         (funcsig_equal): New function; compares DBusGFuncSignature.
2839         (_dbus_gobject_lookup_marshaller): New function.
2840         (dbus_g_object_register_marshaller): New function; used to
2841         register a marshaller at runtime for a particular signature.
2842
2843         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2844
2845         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2846         which notes a server method implementation should be
2847         asynchronous.
2848
2849         * glib/dbus-binding-tool-glib.c
2850         (dbus_binding_tool_output_glib_server): Call
2851         dbus_g_value_types_init.
2852         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
2853         variants specially.
2854         (dbus_g_type_get_lookup_function): Turn GType into an invocation
2855         of a lookup function.
2856         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2857         (write_untyped_out_args): New method; write output arguments.
2858         (write_formal_declarations_for_direction): Function for
2859         writing prototypes.
2860         (write_formal_parameters_for_direction): Function for
2861         writing implementations.
2862         (write_typed_args_for_direction): Function for writing
2863         arguments prefixed with GTypes.
2864         (write_async_method_client): Write out async version
2865         of method.
2866
2867         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2868         (dbus_g_type_get_marshal_name): Move mapping from GType
2869         to marshal name into here.
2870         (dbus_g_type_get_c_name): Move into here.
2871         (compute_marshaller): Convert signature to type with
2872         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2873         (compute_marshaller_name): Ditto.
2874         (compute_marshaller): Handle async signal annotations.
2875         (gather_marshallers): Return if we don't have a known
2876         prefix.
2877         (generate_glue): Collect introspection blob here, and
2878         write all of the blob at the end.  This allows an object
2879         with multiple interfaces to work.
2880         Mark async methods in introspection blob.
2881
2882         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2883         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2884         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2885
2886         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2887         avoids people accidentally using DBUS_TYPE_* which should
2888         not be necessary anymore.
2889         Do include dbus-gtype-specialized.h, which are utilities
2890         for GLib container types.
2891         Add various #defines for types such as
2892         DBUS_TYPE_G_BOOLEAN_ARRAY.
2893         (DBusGValueIterator, DBusGValue): Define, not fully used
2894         yet.
2895         (dbus_g_value_get_g_type): Type for recursive value.
2896         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2897         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2898         (dbus_g_value_free): Prototypes.
2899         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2900         (dbus_g_proxy_set_interface): Prototype.
2901         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2902         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2903         types.
2904         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2905         Accessors.
2906         (DBusGAsyncData, DBusGMethodInvocation): Structures for
2907         doing async invocations.
2908         (dbus_g_method_return, dbus_g_method_return_error):
2909         Prototypes.
2910         * doc/dbus-tutorial.xml: Update GLib section.
2911         
2912         * tools/dbus-viewer.c (load_child_nodes): Update
2913         for new invocation type of dbus_g_proxy_end_call.
2914         (load_from_service_thread_func): Ditto.
2915
2916         * tools/print-introspect.c (main): Ditto.
2917
2918         * tools/dbus-names-model.c (have_names_notify)
2919         (names_model_reload, names_model_set_connection)
2920         Use GTypes.
2921
2922         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2923         needed since Python bindings use GLib bindings.
2924
2925         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2926         Add --prefix argument.
2927
2928         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
2929         unneeded --ignore-unsupported arg.
2930         
2931         * test/glib/test-service-glib.c: 
2932         * test/glib/test-service-glib.xml:
2933         * test/glib/test-dbus-glib.c: Add many more tests.
2934
2935 2005-06-06  David Zeuthen  <davidz@redhat.com>
2936
2937         * doc/TODO: Add item about need to remove deprecated functions.
2938
2939         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2940
2941         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2942         to repair the ABI which was broken with the last commit.
2943
2944 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
2945
2946         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2947         (dbus_connection_disconnect): renamed to dbus_connection_close 
2948         for API symmetry with dbus_connection_open
2949         (_dbus_connection_open_internal): 
2950         s/dbus_connection_disconnect/dbus_connection_close
2951
2952         * dbus/dbus-bus.c (dbus_bus_get):
2953         s/dbus_connection_disconnect/dbus_connection_close
2954
2955         * bus/connection.c (bus_connections_unref, 
2956         bus_connections_setup_connection, bus_connections_expire_incomplete):
2957         s/dbus_connection_disconnect/dbus_connection_close
2958
2959         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2960         kill_client_connection_unchecked, check_hello_connection):
2961         s/dbus_connection_disconnect/dbus_connection_close
2962
2963         * bus/bus.c (new_connection_callback):
2964         s/dbus_connection_disconnect/dbus_connection_close
2965
2966         * tools/dbus-send.c (main):
2967         s/dbus_connection_disconnect/dbus_connection_close
2968
2969         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2970         s/dbus_connection_disconnect/dbus_connection_close
2971         
2972         * test/test-service.c (path_message_func, filter_func):
2973         s/dbus_connection_disconnect/dbus_connection_close
2974         
2975         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
2976         
2977 2005-05-25  Colin Walters  <walters@verbum.org>
2978
2979         * dbus/dbus-protocol.h: Move various bus service #defines such
2980           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2981           dbus/dbus-shared.h.
2982         * dbus/dbus-shared.h: Various defines moved here.
2983         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2984
2985 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
2986
2987         * python/__init__.py: Python bindings deserve a minor version
2988         update.  Upped to (0, 40, 2)
2989
2990 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
2991
2992         * python/decorators.py: add explicitly_pass_message decorator
2993         for passing in the dbus message as keyword for edge case signal
2994         handling
2995
2996         * python/matchrules.py (SignalMatchRule.__repr__): fix output
2997         to conform with what dbus expects for match rules
2998         (SignalMatchRule.execute): add the dbus message as a keyword
2999         if the signal handler has requested it
3000
3001         * python/examples/example/signal-recipient.py: added some more
3002         examples on how to hook up to signals
3003
3004 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3005
3006         * python/decorators.py: import dbus_bindings
3007
3008         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3009         SignalMatchNode): new classes that implement wildcard signal
3010         callback matching using a tree lookup. Heavily modified from a
3011         patch sent by Celso Pinto (fd.o bug #3241)
3012
3013         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3014         use new match classes to handle signals.
3015
3016 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3017         
3018         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3019
3020 2005-05-18  Havoc Pennington  <hp@redhat.com>
3021
3022         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3023         gettext. Not really worth requiring yet perhaps, but any
3024         production quality 1.0 would require it so we should go ahead and
3025         get things set up. We do have a couple token calls to
3026         bindtextdomain in the code already.
3027
3028 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3029
3030         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3031         when using recursive g_main_loops
3032
3033         * python/_dbus.py (class Bus): add the ProxyObjectClass
3034         alias for ProxyObject to make it easier for the Twisted 
3035         networking framework to integrate dbus.
3036
3037         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3038         alias for ProxyMethod to make it easier for the Twisted 
3039         networking framework to integrate dbus. 
3040
3041 2005-05-11  Ross Burton  <ross@openedhand.com>
3042
3043         * glib/dbus-glib-tool.c: Add --prefix argument.
3044         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3045         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3046         Add prefix argument.
3047         (generate_glue): Pass prefix argument down.
3048         (dbus_binding_tool_output_glib_server): Pass prefix to
3049         glib-genmarshal.
3050         
3051 2005-05-11  Colin Walters  <walters@verbum.org>
3052
3053         * tools/dbus-send.c (append_array): New function.
3054         (append_arg): Broken out from main.
3055         (main): Add cheesy hack to send arrays and variants.
3056         (usage): Update.
3057         * tools/dbus-print-message.c (print_iter): Broken out
3058         from main.
3059
3060 2005-05-11  Colin Walters  <walters@verbum.org>
3061
3062         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3063         New function, returns signature string for signature iter.
3064         * dbus/dbus-signature.h: Prototype it.
3065         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3066         New function, returns signature string for message iter.
3067         (dbus_message_iter_get_array_len): New function, returns
3068         length of array.
3069         (dbus_message_iter_get_fixed_array): Fix assertion; this
3070         function should be used when the iter is pointing to the
3071         contents of an array
3072         * dbus/dbus-message.h: Prototypes.
3073         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3074         New function; returns length of an array.
3075         * dbus/dbus-marshal-recursive.h: Prototype it.
3076         
3077 2005-05-11  Colin Walters  <walters@verbum.org>
3078
3079         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3080         compilation error.
3081         
3082 2005-05-08  Havoc Pennington  <hp@redhat.com>
3083
3084         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3085         daemon's pid, not the parent's pid, to the file descriptor.
3086         Reported by Taj Morton.
3087
3088 2005-05-05  Havoc Pennington  <hp@redhat.com>
3089
3090         * configure.in (LT_*): add notes on how the libtool versioning
3091         works to save thinking. Increment soname to indicate protocol
3092         breakage (though really the library interface hasn't changed I
3093         guess)
3094
3095         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3096         verify the GUID received from server matches what we were
3097         expecting, if we had an expectation
3098
3099         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3100         (_dbus_auth_get_guid_from_server): new function
3101         (send_begin): parse the OK args
3102
3103         * doc/dbus-specification.xml: add GUID to the auth protocol
3104
3105 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3106
3107         * Fix my name in previous changelog ;)
3108
3109         * python/proxies.py (ProxyObject.__getattr__): add further patch
3110         from Anthony Baxter to throw an AttributeError when python 
3111         __special__ functions are called instead of marshling them over 
3112         the bus (Bug#1685 comment 3).
3113
3114 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3115
3116         * python/Makefile.am: changed to use pyexecdir for the binding
3117         shared libraries (Bug#2494)
3118
3119         * python/exceptions.py: bring exceptions over from the bindings
3120         so they can be used in applications (Bug#2036)
3121         Make all exceptions derive from DBusException
3122
3123         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3124         of classes so that print obj doesn't throw an exception (Bug #1685)
3125
3126 2005-05-03  Ross Burton  <ross@openedhand.com>
3127
3128         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3129         Return if we get an error during registration.  Set up a
3130         weak reference on object to unregister if object is destroyed.
3131         (unregister_gobject): New function.
3132         
3133 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3134
3135         * python/dbus_bindings.pyx.in: 
3136         - added new type classes for hinting to the marashaler what type 
3137         to send over the wire
3138         - added int16 and uint16 marshalers
3139         - Fixed a bug in the type constants that caused int32 to go out
3140         as uint16 over the wire
3141         * python/dbus.py: split up into different files and renamed _dbus.py
3142         * python/__init__.py, python/_util.py, python/decorators.py, 
3143         python/exceptions.py, python/proxies.py, python/services.py,
3144         python/types.py: new files split off from dbus.py
3145         * python/Makefile.am: Add new files, remove dbus.py and 
3146         install all python files to <python module dir>/dbus
3147         * python/examples/*: Added #!/usr/bin/env python to the top of
3148         every example.  Patch provided by Tatavarty Kalyan
3149
3150 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3151
3152         * NEWS: Update to 0.33
3153
3154 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3155
3156         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3157         method for doing async calls
3158         (_pending_call_notification): New C function for handling pendning call
3159         callbacks
3160         (set_notify): New method for setting pending call notification
3161         
3162         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3163         Async capabilities added to remote method calls
3164         (Sender): class removed
3165         (RemoteService): class removed
3166         (ObjectTree): class removed for now
3167         (RemoteObject): Renamed to ProxyObject
3168         (RemoteMethod): Renamed to ProxyMethod
3169         (method): Decorator added for decorating python methods as dbus methods
3170         (signal): Decorator added for decorating python methods as signal emitters
3171         (ObjectType): Metaclass added for generating introspection data and the
3172         method callback vtable
3173         (Interface): Wrapper class added to wrap objects in a dbus interface
3174         (Object): Uses ObjectType as its metaclass and exports Introspect
3175         of the org.freedesktop.DBus.Introspectable interface
3176         (ValidationException, UnknownMethodException): new exceptions
3177
3178         * python/examples/*: Modified to fit with the new bindings
3179
3180 2005-04-23  Havoc Pennington  <hp@redhat.com>
3181
3182         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3183         reported by Tony Houghton
3184
3185         * test/test-service.c (main): test
3186         dbus_connection_get_object_path_data()
3187
3188         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3189         the exact_match
3190         (_dbus_object_tree_get_user_data_unlocked): new function used by
3191         dbus_connection_get_object_path_data()
3192         (do_register): add assertion test for get_user_data_unlocked
3193         (object_tree_test_iteration): more tests
3194
3195         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3196         new function from Dan Reed to let you get the user data from 
3197         dbus_connection_register_object_path()
3198
3199 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3200
3201         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3202         in numerous places that did not account for the NULL terminator
3203         (signature_from_seed): changed the manual string copy loop to 
3204         just use strcpy instead
3205         make check should now pass
3206
3207 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3208
3209         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3210         so that it allows messages that are not signals to pass in 
3211         NULL as the interface.
3212
3213 2005-04-18  David Zeuthen  <davidz@redhat.com>
3214
3215         * glib/dbus-gmain.c (io_handler_destroy_source): 
3216         (timeout_handler_destroy_source, connection_setup_free): 
3217         Also unref the source to avoid memory leaks.
3218
3219 2005-04-13  David Zeuthen  <davidz@redhat.com>
3220
3221         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3222         more reasonable, yet still totally arbitrary, value :-). 
3223
3224 2005-04-13  David Zeuthen  <davidz@redhat.com>
3225
3226         * doc/TODO: Added an "important for 1.0" item about selinux
3227         allow/deny messages
3228
3229 2005-04-13  David Zeuthen  <davidz@redhat.com>
3230
3231         * bus/selinux.c: Add c-file-style to top of file
3232         (log_audit_callback): Don't free the data here anymore
3233         (bus_selinux_check): Don't take spid and tpid since appending
3234         that to auxdata may OOM.
3235         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3236         to the caller if we are OOM by taking an error object.
3237         (bus_selinux_allows_send): -do-
3238
3239         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3240         and bus_selinux_allows_send
3241
3242         * bus/bus.c (bus_context_check_security_policy): Pass error and
3243         pass on OOM thrown by bus_selinux_allows_send()
3244
3245         * bus/services.c (bus_registry_acquire_service): Pass error and
3246         pass on OOM thrown by bus_selinux_allows_acquire_service()
3247
3248 2005-04-13  Havoc Pennington  <hp@redhat.com>
3249
3250         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3251         message at a time to avoid monopolizing the main loop, bug 
3252         #2953 from Benjamin Otte
3253
3254 2005-04-09  Havoc Pennington  <hp@redhat.com>
3255
3256         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3257         possible overlap, fix from Daniel Reed
3258         (fixup_alignment): fix signedness warnings
3259         (_dbus_string_append_unichar): ditto
3260
3261 2005-04-09  Havoc Pennington  <hp@redhat.com>
3262
3263         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3264
3265         * glib/dbus-glib-tool.c (main): fix warning
3266
3267         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3268
3269         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3270         add a new function that can be used in simple applications that
3271         don't have a main loop and are willing to block
3272
3273 2005-04-05  David Zeuthen  <davidz@redhat.com>
3274
3275         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3276
3277         * glib/dbus-gmain.c:
3278         (io_handler_destroy_source): Remove from list of IO handlers
3279         of the ConnectionSetup object
3280         (timeout_handler_destroy_source): -do- for timeout handlers
3281         (io_handler_source_finalized): Don't remove from list since
3282         we now do that in io_handler_destroy_source(). Renamed from
3283         io_handler_source_destroyed
3284         (timeout_handler_source_destroyed): -do- for timeout handlers
3285         (connection_setup_free): It is now safe to iterate over all
3286         IO and timeout handlers as the _destroy_source removes them
3287         from the list synchronously
3288
3289 2005-03-30  Havoc Pennington  <hp@redhat.com>
3290
3291         * configure.in: change check to gtk 2.4
3292
3293         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3294         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3295         to 2.4
3296
3297 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3298
3299         * News: Update 0.32
3300
3301         * HACKING: Fixed realease instructions.  configure.in should be updated to
3302           the next release by the person who made the last release.
3303
3304 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3305
3306         * python/lvalue_cast_post_process.py - removed.  Patch has been
3307           submitted to Pyrex maintainers that fixes gcc4.0 errors
3308
3309         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3310
3311 2005-03-24  Daniel Reed  <n@ml.org>
3312
3313         * tools/Makefile.am: Make print-introspect and
3314         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3315
3316 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3317
3318         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3319
3320         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3321           had in Red Hat packages for a while but for some reason never 
3322           got merged upstream
3323           (_dbus_is_a_number): New checks if a string
3324           can be converted to a number and does the conversion if it can
3325           (_dbus_user_database_lookup): Add check to see if the given username
3326           is a udi.  This allows udi's to be used instead of usernames in the
3327           config file.
3328           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3329           is a gdi.  This allows gdi's to be used instead of groupnames in the
3330           config file.
3331
3332 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3333
3334         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3335           code so that it compiles with gcc4.0
3336
3337         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3338           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3339           results back to dbus_binding.c
3340
3341 2005-03-20  Colin Walters  <walters@verbum.org>
3342
3343         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3344
3345         * configure.in: Require GTK+ 2.6.
3346         
3347 2005-03-20  Colin Walters  <walters@verbum.org>
3348
3349         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3350
3351 2005-03-17  Tom Parker  <palfrey@tevp.net>
3352
3353         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3354         print DBUS_UID_UNSET; instead print passed username.  Also
3355         be sure to actually use gid looked up in cache.
3356         
3357         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3358         for DBUS_GID_UNSET and groupname.
3359
3360 2005-03-17  Colin Walters  <walters@verbum.org>
3361
3362         * bus/print-introspect.c: Move to tools/.
3363         * bus/run-with-tmp-session-bus.sh: Ditto.
3364         
3365         * glib/Makefile.am (dbus-glib-bindings.h): Move
3366         generation to tools/Makefile.am.
3367
3368         * test/glib/run-test.sh: Update to handle move
3369         of run-with-tmp-session-bus.sh.
3370
3371         * test/glib/test-service-glib.c: Update to handle
3372         move of dbus-glib-bindings.h.
3373
3374         * tools/print-introspect.c: Moved here
3375         from bus/, and ported to GLib bindings.
3376
3377         * tools/run-with-tmp-session-bus.sh: Moved here
3378         from bus/.
3379
3380         * tools/Makefile.am: Generate dbus-glib-bindings.h
3381         and dbus-bus-introspect.xml here.
3382
3383         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3384         Update.
3385
3386 2005-03-17  Colin Walters  <walters@verbum.org>
3387
3388         * bus/driver.c (write_args_for_direction): Use
3389         _dbus_string_get_const_data to retrieve string;
3390         _dbus_string_get_const_data_len doesn't actually return
3391         a NULL-terminated substring.
3392
3393         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3394         (main): Change to use org_freedesktop_DBus_request_name
3395         instead of using g_proxy_begin_call/end_call.
3396
3397 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3398
3399         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3400         generating the finalizer.  Fixes from Ben Maurer.
3401
3402 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3403
3404         * mono/BusDriver.cs: Update method names: ListServices
3405         becomes ListNames; GetOwner becomes GetNameOwner.
3406
3407         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3408         onto the eval stack when removing the delegate.
3409
3410 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3411
3412         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3413         LT_CURRENT.  Set it to the autoconf variable.
3414                                                                                 
3415         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3416         classes that disconnects the signal handler delegate from the
3417         service object.  Fixes a big leak of proxy objects on the
3418         client side of things.  Patch from Ben Maurer
3419         <bmaurer@ximian.com>
3420
3421 2005-03-12  Colin Walters  <walters@verbum.org>
3422
3423         * bus/driver.c (write_args_for_direction): New function,
3424         parses a type signature into arguments and outputs to
3425         XML.
3426         (bus_driver_handle_introspect): Use it instead of
3427         hardcoding XML for certain signatures.
3428         
3429         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3430         dependency on dbus-daemon.
3431
3432         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3433         argument, pass it to dbus_binding_tool_output_glib_client.
3434
3435         * glib/dbus-binding-tool-glib.c
3436         (generate_client_glue): Protect against multiple inclusion.
3437         (dbus_binding_tool_output_glib_client): Add
3438         G_BEGIN_DECLS/G_END_DECLS.
3439
3440         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3441         Change to just take iface prefix directly.
3442         (write_formal_parameters): Clarify error message.
3443         (check_supported_parameters): New function; checks to see type
3444         signatures of method parameters are supported.
3445         (generate_client_glue): Handle ignore_unsupported flag.
3446         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3447         parameter.
3448
3449         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3450         --ignore-unsupported by default until glib bindings
3451         support arrays.
3452
3453 2005-03-11  Colin Walters  <walters@verbum.org>
3454
3455         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3456         install it.
3457
3458         * bus/print-introspect.c: New file; prints introspection
3459         data for a given name and object path.
3460
3461         * bus/run-with-tmp-session-bus.sh: New file, refactored
3462         from test/glib/run-test.sh.  Creates a temporary session
3463         bus and runs another program.
3464
3465         * test/glib/run-test.sh: Refactor to invoke
3466         run-with-tmp-session-bus.sh.
3467
3468         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3469         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3470         macros instead of hardcoding.
3471
3472         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3473
3474 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3475
3476         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3477         this unref; it doesn't match up evenly in some codepaths.
3478         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3479         this evenly matches with the ref near the top of this function.
3480
3481 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3482
3483         * dbus/dbus-object-tree.c
3484         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3485         and we try to unregister a path that's not registered, still go
3486         through the process of unlocking and don't just return.
3487
3488 2005-03-09  Colin Walters  <walters@verbum.org>
3489
3490         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3491         to this are generated for client-side wrappers.  Invokes a
3492         D-BUS method and returns reply values.  
3493
3494         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3495         function; writes signature string for argument direction.
3496         (write_args_for_direction): Change to pass input values directly
3497         instead of via address, and fix indentation.
3498         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3499         make generated wrappers inlineable.
3500
3501         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3502         note about using dbus_type_is_fixed.
3503
3504         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3505         dbus/dbus-signature.c as dbus_type_is_fixed.
3506
3507         All callers updated.
3508
3509         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3510         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3511
3512         * dbus/dbus-signature.h: Prototype.
3513
3514         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3515         error printf code.
3516
3517         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3518         appropriate instead of just freeing it.
3519         (main): Free returned strings using g_free.
3520
3521         * test/glib/Makefile.am (test-service-glib-glue.h)
3522         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3523
3524         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3525         simply maps a simple D-BUS type to GType.
3526         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3527         GType.
3528         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3529         initialize the value with it.
3530         (dbus_gvalue_binding_type_from_type): Unused, delete.
3531         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3532         various types instead of unmarshalling to value data directly.
3533         Remove can_convert boolean.
3534         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3535         returning directly instead of using can_convert boolean.
3536         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3537         Stores a GValue in a pointer to a value of its corresponding C
3538         type.
3539
3540         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3541         add dbus_gvalue_store.
3542
3543 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3544
3545         Fix a bunch of lifecycle and memory management problems
3546         in the mono bindings.
3547
3548         * mono/Arguments.cs (Arguments): Implement IDisposable
3549
3550         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3551         strictly a static class.
3552
3553         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3554         delegates into this file.
3555         (Connection): Implement IDisposable.
3556         (Dispose): Disconnect the connection and set the raw connection
3557         pointer to IntPtr.Zero.
3558         (~Connection): Call Dispose().
3559         (RegisterObjectPath): Added.  Manages the registration of object
3560         paths so we can cleanly disconnect them at dispose/finalize time.
3561         (UnregisterObjectPath): Ditto.
3562         (set_RawConnection): Unregister all of the object paths when
3563         changing the underlying DBusConnection.  Add them back onto the
3564         new connection, if any.
3565
3566         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3567         more unmanaged resources anymore, so it's not necessary.  Move all
3568         the DBusObjectPathVTable stuff out of here.
3569         (Handler): Save references to our delegates so that they don't get
3570         finalized.  Call Connection.RegisterObjectPath() instead of
3571         dbus_connection_register_object_path() directly.
3572         (Message_Called): Dispose the message after we're finished with
3573         it.
3574
3575         * mono/Message.cs (Message): Implement IDisposable.
3576         (Dispose): Dispose the Arguments, and set the RawMessage to
3577         IntPtr.Zero.
3578         (SendWithReplyAndBlock): We own the ref to the reply that comes
3579         back from dbus_connection_send_with_reply_and_block() so add a
3580         comment about that and unref it after we've constructed a managed
3581         MethodReturn class around it.  Fixes a big, big leak.
3582
3583         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3584         method.
3585         (BuildSignalHandler): After we've sent the Signal message, dispose
3586         of it.
3587         (BuildMethod): Dispose of the method call and reply messages after
3588         we've sent the message and extracted the data we want from the
3589         reply.
3590
3591         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3592         anymore.
3593         (Service_FilterCalled): Dispose of the message after we're
3594         finished with it.
3595
3596 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3597
3598         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3599         After we attach our pending call to the connection, unref
3600         it.  Fixes a leak.
3601  
3602         * mono/Connection.cs (set_RawConnection): Disconnect our
3603         filter and match callbacks from the old connection and
3604         reconnect them to the new connection, if any.
3605
3606         * mono/DBusType/Array.cs: "Code" is a static member, so
3607         don't use "this" to refer to it.  Fix for stricter checking
3608         in Mono 1.1.4.
3609  
3610         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3611         object path that we pass into unmanaged code.
3612  
3613         * mono/DBusType/String.cs (Append): Don't leak the string
3614         that we pass into unmanged code.
3615
3616 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3617         * NEWS: Update for 0.31
3618
3619         * configure.in: Release 0.31
3620         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3621
3622         * qt/Makefile.am: fixed build
3623
3624         * dbus/Makefile.am: soname bump for libdbus
3625
3626         * glib/Makefile.am: soname bump for libdbus-glib
3627
3628 2005-03-05  Havoc Pennington  <hp@redhat.com>
3629
3630         * dbus/dbus-sysdeps.c:
3631         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3632         value
3633         (_dbus_generate_random_bytes_buffer): fix return value
3634
3635         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3636         checks actually work, from Tom Parker <fdo@tevp.net>
3637
3638 2005-03-01  Colin Walters  <walters@verbum.org>
3639
3640         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3641         functions copied from dbus-glib-tool.c.
3642         (main): Convert lots of error code to use them.
3643         Also add some testing for introspection bits.
3644
3645 2005-03-01  Colin Walters  <walters@verbum.org>
3646         
3647         * doc/TODO: Remove introspection signature TODO.
3648
3649 2005-02-27  Colin Walters  <walters@verbum.org>
3650
3651         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3652         Change return value to const char * instead of int so we can do
3653         full signatures.
3654         (struct PropertyInfo, struct ArgInfo): Store char *.
3655         (property_info_new, arg_info_new): Update parameters, strdup.
3656         (property_info_unref, arg_info_unref): Free.
3657
3658         * glib/dbus-gidl.h: Update prototypes.
3659
3660         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3661         (validate_signature): New function, just validates signature and
3662         sets GError.
3663         (parse_property, parse_arg): Invoke validate_signature.  Store
3664         signature instead of just type code.
3665
3666         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3667         function to return a primary type for a signature, dropping
3668         information about types in container types.
3669         (dbus_gvalue_genmarshal_name_from_type)
3670         (dbus_gvalue_binding_type_from_type)
3671         (dbus_gvalue_ctype_from_type): Update to take full signature
3672          instead of type code.
3673         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3674
3675         * glib/dbus-gvalue.h: Update prototypes for above.
3676
3677         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3678         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3679         (introspect_properties, introspect_signals, write_interface):
3680         Update to handle signatures, and remove usage of
3681         _dbus_gutils_type_to_string.
3682         (handle_introspect): Print out type codes instead of e.g. "string"
3683         in hardcoded introspection XML; also use x_AS_STRING constants
3684         instead of hardcoding in string.
3685
3686         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3687         to string.  Remove usage of _dbus_gutils_type_to_string.
3688
3689         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3690
3691         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3692         deletion.
3693         
3694         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3695         (compute_marshaller_name, generate_glue): Handle signature change
3696         to string.
3697         (write_formal_parameters, write_args_for_direction): Ditto, and
3698         remove FIXME.
3699
3700         * tools/dbus-tree-view.c (type_to_string): Delete.
3701         (info_set_func_text): Update to print full signatures.
3702
3703         * test/glib/test-service-glib.xml: Change types to new
3704         introspection format.
3705
3706 2005-02-26  Havoc Pennington  <hp@redhat.com>
3707
3708         * doc/TODO: remove the "guid" item
3709
3710         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3711         (with_bus_thread_func): use open_private
3712
3713         * dbus/dbus-connection.c (dbus_connection_open_private): new
3714         function that works like the old dbus_connection_open()
3715         (dbus_connection_open): now returns an existing connection if
3716         possible
3717
3718         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3719         through the GUID to the transport
3720
3721         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3722         GUID in hex-encoded form.
3723
3724         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3725         pass GUID argument in to the transport
3726
3727         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3728         guid argument
3729
3730         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3731
3732         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3733
3734 2005-02-25  Havoc Pennington  <hp@redhat.com>
3735
3736         * doc/dbus-specification.xml: document the GUID thing
3737
3738         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3739         globally unique ID for the server, and put a "guid=hexencoded"
3740         field in the address
3741
3742         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3743
3744         * dbus/dbus-message.c: ditto
3745
3746         * dbus/dbus-dataslot.c: ditto
3747
3748         * dbus/dbus-list.c: ditto
3749
3750         * dbus/dbus-internals.h: wait, just include
3751         dbus-threads-internal.h here
3752         
3753         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3754         use in main library
3755
3756         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3757
3758 2005-02-24  Colin Walters  <walters@verbum.org>
3759
3760         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3761
3762 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3763
3764         * glib/Makefile.am: added dbus-gobject.h to sources list
3765         so distcheck doesn't fail
3766         
3767 2005-02-24  Havoc Pennington  <hp@redhat.com>
3768
3769         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3770         you must disconnect before unref, since locking and other things
3771         are screwed up otherwise. Fix assorted other locking stuff.
3772
3773         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3774         fix compilation
3775
3776         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3777         into a private header and don't export from the library
3778
3779         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3780
3781 2005-02-24  Colin Walters  <walters@verbum.org>
3782         
3783         * dbus/dbus-signature.c: New file; implements various functions
3784         related to type signatures.  Includes an interator for parsing,
3785         validation functions.
3786         (dbus_type_is_basic): Moved here from
3787         dbus-marshal-basic.c:_dbus_type_is_basic.
3788         (dbus_type_is_container): Moved here from
3789         dbus-marshal-basic.c:_dbus_type_is_container.
3790
3791         All callers of _dbus_type_is_container and _dbus_type_is_basic
3792         updated, and include dbus-signature.h.
3793
3794         * dbus/dbus-signature.h: New file; prototypes for the above.
3795
3796         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3797         dbus-signature.h.
3798
3799         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3800         function factored out of _dbus_first_type_in_signature.
3801         (_dbus_first_type_in_signature_c_str): New function; returns first
3802         type code for a type signature character.
3803
3804         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3805         handle function moves.
3806
3807         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3808
3809         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3810         function; skips to next complete type in type signature.
3811         Implemented using previous skip_one_complete_type.  Now
3812         skip_one_complete_type just delegates to
3813         _dbus_type_signature_next.
3814
3815         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3816         to dbus-signature.c
3817         (_dbus_type_is_container): Ditto.
3818
3819         * doc/dbus-specification.xml: Update introspection sample to
3820         use real type signatures.
3821
3822         * dbus/dbus-test.h: Prototype signature test.
3823
3824         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3825         signature tests.
3826
3827         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3828
3829 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
3830
3831         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3832         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3833
3834 2005-02-21  Colin Walters  <walters@verbum.org>
3835
3836         * dbus/dbus-test-main.c (main): Take optional specific test
3837         argument.
3838
3839         * dbus/dbus-test.c (run_test): New function, runs a test function
3840         with no data directory.
3841         (run_data_test): Like above, but takes data directory.
3842         (dbus_internal_do_not_use_run_tests): Take
3843         specific test argument.  Replace lots of cut n' paste code
3844         with run_test and run_data_test.
3845
3846         * dbus/dbus-test.h: Update prototype for
3847         dbus_internal_do_not_use_run_tests.
3848
3849 2005-02-20  Havoc Pennington  <hp@redhat.com>
3850
3851         Fix bugs reported by Daniel P. Berrange
3852         
3853         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3854         (protected_change_watch): new function
3855         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3856         (_dbus_server_add_watch): change to work like the
3857         dbus-connection.c equivalents; like those, probably kind of
3858         busted, but should at least mostly work for now
3859         (dbus_server_disconnect): drop the lock if we were already
3860         disconnected, patch from Daniel P. Berrange
3861
3862         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
3863         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3864         same stuff
3865
3866         * doc/TODO: todo about unscrewing this mess
3867
3868 2005-02-19  Colin Walters  <walters@verbum.org>
3869
3870         * glib/dbus-binding-tool-glib.c
3871         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3872
3873         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3874         as errno.h and sys/stat.h.
3875         (lose): New function, prints error with
3876         newline and exits.
3877         (lose_gerror): Similar, but takes GError for message.
3878         (main): Add --output argument to specify output file to write to,
3879         instead of always printing to stdout.  In this mode, determine
3880         timestamps on source files to see whether any are newer than the
3881         target file.  If not, exit.  Also convert a number of error
3882         messages to use lose (since it's shorter), and switch to using
3883         g_io_channel_shutdown.
3884
3885 2005-02-19  Havoc Pennington  <hp@redhat.com>
3886
3887         * glib/dbus-gobject.c
3888         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3889
3890         * glib/dbus-glib.c: fix doxygen warnings
3891
3892         * glib/dbus-gparser.c (parse_annotation): error if an annotation
3893         is found on an <arg>
3894
3895 2005-02-17  Colin Walters  <walters@verbum.org>
3896
3897         * glib/dbus-gobject.h: Don't export
3898         _dbus_glib_marshal_dbus_message_to_gvalue_array.
3899         
3900         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3901         (invoke_object_method): Handle it.
3902
3903         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3904         Handle rename.
3905         
3906 2005-02-17  Colin Walters  <walters@verbum.org>
3907
3908         * bus/.cvsignore, doc/.cvsignore
3909         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3910         Update.
3911
3912 2005-02-17  Colin Walters  <walters@verbum.org>
3913         
3914         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3915         Rename to DBUS_SERVICE_DBUS.
3916         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3917         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3918         Change the value from "org.freedesktop.Local"
3919         to "org.freedesktop.DBus.Local".
3920         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3921         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3922         DBUS_INTERFACE_INTROSPECTABLE.
3923         Change the value from "org.freedesktop.Introspectable"
3924         to "org.freedesktop.DBus.Introspectable".
3925         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3926         DBUS_INTERFACE_PROPERTIES.
3927         Change the value from "org.freedesktop.Properties"
3928         to "org.freedesktop.DBus.Properties".
3929         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3930         DBUS_INTERFACE_PEER.
3931         Change the value from "org.freedesktop.Peer"
3932         to "org.freedesktop.DBus.Peer".
3933         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
3934         DBUS_INTERFACE_LOCAL.
3935         Change the value from "org.freedesktop.Local"
3936         to "org.freedesktop.DBus.Local".
3937
3938         All other users of those constants have been changed.
3939
3940         * bus/driver.c (bus_driver_handle_introspect): Use constants.
3941
3942         * glib/dbus-gobject.c (handle_introspect): Use constants.
3943
3944         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3945
3946 2005-02-17  Colin Walters  <walters@verbum.org>
3947
3948         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3949         (parse_node, parse_interface, parse_method, parse_signal)
3950         (parse_property, parse_annotation): Lose if we're currently in an
3951         annotation.
3952         (parse_annotation): New function.
3953         (parser_start_element, parser_end_element): Handle annotation.
3954         (parse_method, parse_interface): Remove support for c_name attribute,
3955         switch to annotations.
3956
3957         * glib/dbus-gidl.h (interface_info_get_binding_names)
3958         (method_info_get_binding_names)
3959         (interface_info_get_binding_name, method_info_get_binding_name)
3960         (interface_info_set_binding_name, method_info_set_binding_name):
3961         Remove.
3962         (interface_info_get_annotations, method_info_get_annotations)
3963         (interface_info_get_annotation, method_info_get_annotation)
3964         (interface_info_add_annotation, method_info_add_annotation):
3965         Prototype.
3966
3967         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3968         for "bindings".
3969         (struct MethodInfo): Ditto.
3970         Straightfoward conversion of binding methods into annotation methods
3971         as prototyped.
3972
3973         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3974
3975         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3976
3977         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3978         Use new annotation API.
3979
3980         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
3981         annotation element.
3982         
3983         * doc/dbus-specification.xml: Discuss introspection annotations,
3984         include list of well-known annotations.
3985
3986         * test/glib/test-service-glib.xml: Make validate against new DTD.
3987
3988 2005-02-17  Colin Walters  <walters@verbum.org>
3989
3990         This patch is based on initial work from
3991         Paul Kuliniewicz <kuliniew@purdue.edu>.
3992
3993         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3994         initialization of GValue from dbus type to here.
3995         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3996         for the "glib-genmarshal" program from a DBus type.
3997         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3998         into the C name for it we use in the glib bindings.
3999         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4000         glib C type (not GValue).
4001         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4002
4003         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4004         from dbus-gobject.c.
4005
4006         * glib/dbus-gutils.h: Prototype it.
4007
4008         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4009         (marshal_dbus_message_to_g_marshaller): Use new shared function
4010         dbus_glib_marshal_dbus_message_to_gvalue_array.
4011
4012         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4013         Will be changed once we have annotations.
4014
4015         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4016         GStaticRWLock.  Callers updated.
4017         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4018         (string_table_next): New function for iterating over zero-terminated
4019         string value array.
4020         (string_table_lookup): New function; retrieves specific entry in
4021         array.
4022         (get_method_data): New function; look up method data in object data chunk.
4023         (object_error_domain_prefix_from_object_info)
4024         (object_error_code_from_object_info): New functions, but not implemented yet.
4025         (method_interface_from_object_info): New function; retrieve interface name.
4026         (method_name_from_object_info): New function; retrieve method name.
4027         (method_arg_info_from_object_info): New function; retrieve argument data.
4028         (arg_iterate): New function; iterates over serialized argument data.
4029         (method_dir_signature_from_object_info): New function; returns a
4030         GString holding type signature for arguments for just one
4031         direction (input or output).
4032         (method_input_signature_from_object_info)
4033         (method_output_signature_from_object_info): New functions.
4034         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4035         converts dbus message arguments into a GValue array.  Used for both
4036         signal handling and method invocation.
4037         (struct DBusGlibWriteIterfaceData): New utility structure.
4038         (write_interface): New function; generate introspection XML for
4039         an interface.
4040         (introspect_interfaces): New function; gathers all interface->methods,
4041         generates introspection XML for them.
4042         (handle_introspect): Invoke introspect_interfaces.
4043         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4044         (lookup_object_and_method): New function; examines an incoming message
4045         and attempts to match it up (via interface, method name, and argument
4046         signature) with a known object and method.
4047         (gerror_domaincode_to_dbus_error_name): New function; converts a
4048         GError domain and code into a DBus error name.  Needs GError data
4049         added to object introspection to work well.
4050         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4051         GError.
4052         (invoke_object_method): New function to invoke an object method
4053         looked up via lookup_object_and_method.  Parses the incoming
4054         message, turns it into a GValue array, then invokes the marshaller
4055         specified in the DBusGMethodInfo.  Creates a new message with
4056         either return values or error message as appropriate.
4057         (gobject_message_function): Invoke lookup_object_and_method and
4058         invoke_object_method.
4059
4060         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4061         (enum DBusBindingOutputMode): New enum for binding output modes.
4062         (pretty_print): Print binding names.
4063         (dbus_binding_tool_error_quark): GError bits.
4064         (version): Fix typo.
4065         (main): Create GIOChannel for output.  Parse new --mode argument,
4066         possible values are "pretty-print", "glib-server", "glib-client".
4067         Use mode to invoke appropriate function.
4068         
4069         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4070
4071         * glib/dbus-glib-tool.h: New header, just includes GError bits
4072         for now.
4073
4074         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4075         maps binding style to name.
4076         (struct MethodInfo): Ditto.
4077         (get_hash_keys, get_hash_key): Utility function, returns keys for
4078         a GHashTable.
4079         (interface_info_new, method_info_new): Initialize bindings.
4080         (interface_info_unref, method_info_unref): Destroy bindings.
4081         (method_info_get_binding_names, method_info_get_binding_name)
4082         (interface_info_get_binding_names, interface_info_get_binding_name):
4083         Functions for retrieving binding names.
4084         (method_info_set_binding_name, interface_info_set_binding_name):
4085         Functions for setting binding names.
4086
4087         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4088         for glib binding generation.
4089
4090         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4091         and client-side glib glue generation.
4092
4093         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4094         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4095         dbus-glib-tool.h.
4096
4097         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4098         of using GClosureMarshal directly.
4099         (struct DBusGObjectInfo): Add n_infos member.
4100
4101         * test/glib/test-service-glib.xml: New file; contains introspection data
4102         for MyTestObject used in test-service-glib.c.
4103
4104         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4105         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4106         (my_object_uppercase, my_object_many_args): New test methods.
4107         (main): Use dbus_g_object_class_install_info to include generated object
4108         info.
4109
4110         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4111         as well as client-side bindings.
4112
4113         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4114         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4115         using both the dbus_gproxy stuff directly as well as the generated bindings.
4116
4117 2005-02-15  Havoc Pennington  <hp@redhat.com>
4118
4119         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4120         complete a pending call, don't run filters first.
4121
4122         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4123         dbus_pending_call_steal_reply
4124
4125         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4126         _dbus_connection_block_pending_call
4127         (dbus_pending_call_get_reply): change to steal_reply and return a
4128         ref
4129
4130         * dbus/dbus-connection.c
4131         (dbus_connection_send_with_reply_and_block): port to work in terms
4132         of DBusPendingCall
4133         (_dbus_connection_block_pending_call): replace block_for_reply
4134         with this
4135
4136 2005-02-14  Havoc Pennington  <hp@redhat.com>
4137
4138         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4139         properly handle looking up group information by name; fix 
4140         from j@bootlab.org
4141
4142 2005-02-13  Havoc Pennington  <hp@redhat.com>
4143
4144         * dbus/dbus-connection.c (dbus_connection_return_message) 
4145         (dbus_connection_borrow_message): hold dispatch lock while message
4146         is outstanding
4147         (_dbus_connection_block_for_reply): hold dispatch lock while we
4148         block for the reply, so nobody steals our reply
4149         (dbus_connection_pop_message): hold the dispatch lock while we
4150         pluck the message
4151
4152 2005-02-13  Havoc Pennington  <hp@redhat.com>
4153
4154         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4155         (_dbus_connection_release_dispatch)
4156         (_dbus_connection_acquire_io_path)
4157         (_dbus_connection_release_io_path): make the mutex and condvar
4158         control access to the "acquired" flag. Drop the connection lock
4159         while waiting on the condvar. Hopefully these are baby steps in
4160         roughly the right direction.
4161
4162 2005-02-13  Havoc Pennington  <hp@redhat.com>
4163
4164         * dbus/dbus-connection.c: use separate mutexes for the condition
4165         variables; this is some kind of baseline for sanity, but the
4166         condition variables still aren't used correctly afaict
4167
4168 2005-02-13  Havoc Pennington  <hp@redhat.com>
4169
4170         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4171         fix a double-unlock
4172
4173         * dbus/dbus-connection.c
4174         (_dbus_connection_detach_pending_call_unlocked): add this
4175
4176         Initial semi-correct pass through to fix thread locking; there are
4177         still some issues with the condition variable paths I'm pretty
4178         sure
4179         
4180         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4181         lock/unlock calls
4182
4183         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4184         rename to add _unlocked
4185         (struct DBusConnection): move "dispatch_acquired" and
4186         "io_path_acquired" to use only one bit each.
4187         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4188         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4189         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4190         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4191         (_dbus_connection_remove_timeout) 
4192         (_dbus_connection_toggle_timeout): drop lock when calling out to
4193         user functions; done in a hacky/bad way.
4194         (_dbus_connection_send_and_unlock): add a missing unlock
4195         (_dbus_connection_block_for_reply): add a missing unlock
4196
4197         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4198         drop lock in a hacky probably unsafe way to call out to user
4199         function
4200
4201 2005-02-12  Havoc Pennington  <hp@redhat.com>
4202
4203         * tools/dbus-tree-view.c (info_set_func_text): display more
4204         details on args
4205
4206         * bus/driver.c (bus_driver_handle_list_services): list the bus
4207         driver
4208
4209         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4210
4211         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4212         (method_info_get_n_args): new function
4213
4214 2005-02-12  Havoc Pennington  <hp@redhat.com>
4215
4216         * bus/driver.c (bus_driver_handle_introspect): add introspection
4217         for bus driver
4218
4219 2005-02-12  Havoc Pennington  <hp@redhat.com>
4220
4221         * bus/driver.c: put the signature of each bus driver method in the
4222         table of handlers and check it on incoming calls; this isn't
4223         really useful, but going to add introspect support in a minute.
4224
4225 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4226
4227         * mono/Connection.cs: The unpredictability of finalizers in mono
4228         prevents us from deterministically disconnecting the filters from
4229         the Service class's finalizer, so move tracking of filters and
4230         matches here.  Add API for that.
4231
4232         * mono/Service.cs: Remove the code, add code which calls the
4233         methods now on the Connection class.
4234
4235 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4236
4237         * python/dbus.py (class Sender): added to support dbus signals better
4238         (Bus::add_signal_receiver): added expand_args parameter which defaults
4239         to True.  When expand args is True the signal handler will pass the 
4240         message arguments as parameters to the signal handler.  If False
4241         revert to previous behavior where the signal handler must get the
4242         argument list from the message.  This is to help port applications
4243         like HAL that have a tendancy to send variable length argument lists.
4244         self._match_rule_to_receivers is now a dict of dicts.
4245         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4246         removing it from a list
4247         (Bus::_signal_func): change signal handlers so that interface,
4248         signal_name, service, path and message are packed into a Sender
4249         object and that is passed to the handler.  If expand_args is True
4250         extract the args list from the message and append it to the parameter
4251         list
4252         
4253         * python/dbus_bindings.pyx.in (class Signature): added to support 
4254         signiature types
4255         (MessageIter::__init__): changed iteration limit to match D-BUS
4256         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4257         STRUCT and VARIENT type support
4258         (MessageIter::python_value_to_dbus_sig): made recursive to support
4259         recursive types
4260         (MessageIter::append*): added Signature, dict, tuple 
4261         support
4262
4263         * python/examples/example-client.py: added examples of getting tuples
4264         and dicts
4265
4266         * python/examples/example-service.py: added examples of sending tuples
4267         and dicts
4268
4269         * python/examples/example-signal-recipient.py: Fixed to handle new
4270         signal callback format
4271
4272 2005-02-10  Havoc Pennington  <hp@redhat.com>
4273
4274         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4275         (call dbus_g_proxy_add_signal)
4276
4277         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4278         escape the hostname
4279         (_dbus_server_new_for_domain_socket): escape the path
4280
4281         * dbus/dbus-address.c (dbus_address_escape_value): new
4282         (dbus_address_unescape_value): new
4283         (dbus_parse_address): unescape values
4284
4285         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4286
4287         * doc/dbus-specification.xml: explain how to escape values in
4288         addresses
4289
4290 2005-02-10  Havoc Pennington  <hp@redhat.com>
4291
4292         * dbus/dbus-message-factory.c (generate_special): modify test to
4293         avoid using a non-basic dict key
4294
4295         * dbus/dbus-marshal-validate-util.c: add test for the below
4296
4297         * doc/dbus-specification.xml: require that dict keys are a basic
4298         type
4299
4300         * dbus/dbus-marshal-validate.c
4301         (_dbus_validate_signature_with_reason): require that dict key is a
4302         basic type
4303
4304 2005-02-10  Havoc Pennington  <hp@redhat.com>
4305
4306         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4307         change to be _and_unlock instead of _unlocked
4308
4309         * dbus/dbus-connection.c
4310         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4311         have no_update so we can find this bug quickly in future
4312
4313 2005-02-10  Havoc Pennington  <hp@redhat.com>
4314
4315         * dbus/dbus-message-util.c (verify_test_message): tests for string
4316         array
4317
4318         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4319         support for arrays of string/signature/path
4320
4321 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4322
4323         * dbus/dbus-connection.c
4324         (_dbus_connection_queue_received_message_link,
4325         _dbus_connection_message_sent): Add the path to
4326         the verbose output.
4327         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4328         _dbus_connection_send_preallocated_unlocked(), updated the
4329         dispatch status, and unlocks.  Fixes a bug where certain
4330         situations (like a broken pipe) could cause a Disconnect message
4331         to not be sent, tricking the bus into thinking a service was still
4332         there when the process had quit.
4333         (_dbus_connection_send_preallocated): Call
4334         _dbus_connection_send_preallocated_and_unlock().
4335         (_dbus_connection_send_and_unlock): Added.  Calls
4336         _dbus_connection_send_preallocated_and_unlock().
4337         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4338         (dbus_connection_send_with_reply): Update the dispatch status and
4339         unlock.
4340
4341         * mono/Service.cs (~Service): Added.  Removes the filter so that
4342         we don't get unmanaged code calling back into a GCed delegate.
4343         (RemoveFilter); Added.
4344
4345 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4346
4347         * dbus/dbus-message.c (dbus_message_iter_open_container):
4348         - Removed check for iterator type being an array because
4349         get_arg_type does not work with writer iterators
4350         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4351
4352 2005-02-07  Havoc Pennington  <hp@redhat.com>
4353
4354         * doc/dbus-specification.xml: some more language cleanups; add
4355         stuff about how to deal with invalid protocol and extension
4356         points; add _ to allowed chars in auth commands; add EXTENSION_
4357         auth command prefix
4358
4359 2005-02-06  Havoc Pennington  <hp@redhat.com>
4360
4361         * s/expected/required/ in a couple places for clarity
4362
4363 2005-02-07  Colin Walters  <walters@verbum.org>
4364
4365         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4366         sender or proposed_recipient.
4367
4368 2005-02-06  Havoc Pennington  <hp@redhat.com>
4369
4370         * dbus/dbus-message-factory.c (generate_special): more tests
4371
4372         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4373         array length that exceeds the maximum
4374
4375 2005-02-05  Havoc Pennington  <hp@redhat.com>
4376
4377         * dbus/dbus-message-factory.c (generate_special): more test cases,
4378         increasing coverage
4379
4380         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4381         reason why a signature was invalid
4382
4383         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4384         skip the length of the string before we look at it in validation
4385
4386         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4387         equal_substring
4388
4389         * dbus/dbus-message.c (_dbus_message_loader_new): default
4390         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4391
4392 2005-02-05  Havoc Pennington  <hp@redhat.com>
4393
4394         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4395         if the signature of a variant was empty
4396         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4397         struct with no element type)
4398
4399         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4400         mangled messages to break things
4401
4402 2005-02-04  Havoc Pennington  <hp@redhat.com>
4403
4404         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4405         g_quark_try_string() so it actually can return 0
4406         (dbus_g_proxy_connect_signal): ditto
4407
4408 2005-02-04  Havoc Pennington  <hp@redhat.com>
4409
4410         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4411         bogus warning
4412         (tristring_from_message): assert cleanly on null path/interface
4413         (should not be possible though I decided later)
4414         (dbus_g_proxy_dispose): move proxy manager unregistration here
4415         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4416         g_return_if_fail() checks
4417
4418 2005-02-04  Havoc Pennington  <hp@redhat.com>
4419
4420         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4421
4422         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4423         (with some minor changes)
4424
4425         * doc/dbus-specification.xml: add deprecated attribute to
4426         introspection format
4427
4428 2005-01-31  Havoc Pennington  <hp@redhat.com>
4429
4430         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4431         think it's sort of right
4432
4433 2005-01-30  Havoc Pennington  <hp@redhat.com>
4434
4435         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4436
4437 2005-01-30  Havoc Pennington  <hp@redhat.com>
4438
4439         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4440
4441         * autogen.sh: change to autotools 1.9
4442
4443         * glib/dbus-gproxy.c: completely change how signals work
4444         (dbus_g_proxy_add_signal): new function to specify signature of a
4445         signal
4446         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4447         and g_warning if the incoming message has the wrong signature.
4448
4449 2005-01-30  Havoc Pennington  <hp@redhat.com>
4450
4451         * tools/dbus-names-model.c (have_names_notify): fix this
4452
4453         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4454         up the string array handling a bit 
4455
4456 2005-01-30  Havoc Pennington  <hp@redhat.com>
4457
4458         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4459         (dbus_g_pending_call_cancel): new function
4460
4461         * dbus/dbus-glib.h: move GType decls for connection/message here;
4462         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4463         here, just kind of rationalizing how we handle all that
4464
4465         * tools/dbus-names-model.c: new file for a tree model listing the
4466         services on a bus
4467
4468         * tools/dbus-tree-view.c (model_new): use proper typing on the
4469         model rows
4470
4471 2005-01-30  Havoc Pennington  <hp@redhat.com>
4472
4473         * glib/dbus-gmain.c: add a custom GSource back that just checks
4474         whether the message queue has anything in it; otherwise, there are 
4475         cases where we won't see messages in the queue since there was no 
4476         IO visible to the glib main loop
4477
4478         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4479         increase default message timeout to 25 seconds
4480
4481 2005-01-30  Havoc Pennington  <hp@redhat.com>
4482
4483         * test/glib/test-profile.c (no_bus_stop_server): remove the
4484         warning about the g_warning that I just fixed
4485
4486         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4487         custom source, seems to be a lot easier to understand and work
4488         better.
4489
4490 2005-01-30  Havoc Pennington  <hp@redhat.com>
4491
4492         I think this main loop thing is conceptually broken, but here are 
4493         some band aids. I'll maybe rewrite it in a minute.
4494         
4495         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4496         custom GSource, so don't pass it in; confusing
4497         (gsource_server_finalize, gsource_connection_finalize): add
4498         finalize handlers that remove all the watches.  
4499
4500 2005-01-30  Havoc Pennington  <hp@redhat.com>
4501
4502         * glib/dbus-gobject.c (introspect_properties): fix the XML
4503         generated
4504
4505         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4506         which effectively detects the use of freed messages
4507
4508         * glib/dbus-gobject.c (handle_introspect): modify and return the
4509         reply message instead of the incoming message
4510
4511         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4512         gee, maybe it should SEND THE XML instead of just making a string
4513         and freeing it again ;-)
4514
4515         * tools/dbus-print-message.c (print_message): improve printing of
4516         messages
4517
4518         * configure.in: add debug-glib.service to the output
4519
4520 2005-01-30  Havoc Pennington  <hp@redhat.com>
4521
4522         dbus-viewer introspected and displayed the bus driver
4523         
4524         * dbus/dbus-object-tree.c 
4525         (object_tree_test_iteration): add tests for a handler registered on "/"
4526
4527         * dbus/dbus-object-tree.c
4528         (_dbus_decompose_path): fix to handle path "/" properly
4529         (run_decompose_tests): add tests for path decomposition
4530         
4531         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4532         properly
4533
4534         * glib/dbus-gobject.c (handle_introspect): fix quotes
4535
4536         * test/glib/run-test.sh: support launching the bus, then running
4537         dbus-viewer
4538
4539         * test/glib/test-service-glib.c (main): put in a trivial gobject
4540         subclass and register it on the connection
4541
4542         * bus/driver.c (bus_driver_handle_introspect): implement
4543         introspection of the bus driver service
4544
4545         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4546         identifiers, doctype decl
4547
4548         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4549         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4550         returning the service unchanged.
4551         (bus_driver_handle_message): remove old check for reply_serial in
4552         method calls, now the message type deals with that
4553         (bus_driver_handle_message): handle NULL interface
4554
4555         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4556
4557         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4558         -1 for len
4559
4560         * tools/dbus-viewer.c: add support for introspecting a service on
4561         a bus
4562
4563         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4564         (dbus_g_pending_call_unref): add
4565
4566 2005-01-29  Havoc Pennington  <hp@redhat.com>
4567
4568         * tools/dbus-tree-view.c: add support for displaying properties.
4569         (run dbus-viewer with an introspect xml file as arg, then resize
4570         the window so the tree elements show up, not sure what that is)
4571
4572         * glib/dbus-gobject.c (handle_introspect): return
4573         org.freedesktop.Properties and org.freedesktop.Introspectable
4574         interfaces when we are introspected.
4575
4576         * doc/dbus-specification.xml: allow empty interface name when 
4577         Get/Set a property
4578
4579 2005-01-29  Havoc Pennington  <hp@redhat.com>
4580
4581         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4582         though it uses glib, it could be extended for any binding in
4583         principle
4584
4585         * glib/dbus-gobject.c (gobject_message_function): change to the
4586         new way properties work
4587
4588         * dbus/dbus-protocol.h: add the new interfaces
4589
4590         * doc/dbus-specification.xml: document the introspection format,
4591         Introspectable interface, and add an org.freedesktop.Properties
4592         interface.
4593
4594         * glib/dbus-gparser.c: add support for a <property> element
4595
4596         * glib/dbus-gidl.c: add PropertyInfo
4597
4598         * glib/dbus-gobject.c (handle_introspect): put the outermost
4599         <node> outside the signal and property descriptions.
4600         (introspect_properties): export properties as <property> rather
4601         than as method calls
4602
4603 2005-01-28  Havoc Pennington  <hp@redhat.com>
4604
4605         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4606         related to authentication protocol
4607
4608 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4609
4610         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4611                 - BUS_ACTIVATION -> BUS_STARTER
4612                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4613                 - class MessageIter (__init__): Added recursion checking 
4614                 so we throw a nice error instead of just disconnecting from the
4615                 bus.
4616                 (get): Added arg_type parameter for recursion.
4617                 Removed the nil type
4618                 Added signiture type placeholder (not implemented)
4619                 Added struct type placeholder (not implemented)
4620                 Added varient type placeholder (not implemented)
4621                 Commented out dict type for now     
4622                 (get_element_type): renamed from get_array_type
4623                 (get_*): changed to use the dbus_message_iter_get_basic API
4624                 (get_*_array): removed in favor of recursive get_array method
4625                 (get_array): new recursive method which calls get to marshal
4626                 the elements of the array
4627                 (value_to_dbus_sig): New method returns the corrasponding
4628                 dbus signiture to a python value
4629                 (append): Comment out dict handling for now
4630                 Handle lists with the new recursive API
4631                 Comment out None handling for now
4632                 (append_nil): removed
4633                 (append_*): changed to use dbus_message_iter_append_basic API
4634                 (append_*_array): removed in favor of recursive append_array 
4635                 method
4636                 (__str__): Make it easier to print out recursive iterators
4637                 for debugging
4638                 - class Message (__str__): moved type inspection to the
4639                 MessageIter class' __str__ method
4640                 (get_iter): Added an append parameter wich defaults to False
4641                 If True use the new API's to create an append iterator
4642
4643         * python/dbus.py: Update to use new bindings API
4644                 - TYPE_ACTIVATION -> TYPE_STARTER
4645                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4646                 - class ActivationBus -> class StarterBus
4647                 - class RemoteObject (__call__): get an append iterator
4648                 - (_dispatch_dbus_method_call): get an append iterator
4649                 - class Object (emit_signal): get an append iterator
4650
4651         * python/examples/: Fixed up the examples to work with the new API
4652                 
4653 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4654
4655         * configure.in: Bump version up to 0.30.
4656
4657         * HACKING: Add a release item to bump the version number up after 
4658         a release.
4659
4660 2005-01-28  Havoc Pennington  <hp@redhat.com>
4661
4662         * doc/dbus-specification.xml: update to describe 16-bit types and
4663         dict entries
4664
4665         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4666         assertion
4667
4668         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4669         type
4670
4671         * dbus/dbus-marshal-recursive.c: implement
4672
4673 2005-01-27  Havoc Pennington  <hp@redhat.com>
4674
4675         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4676
4677         * configure.in: find the right type for 16 and 32 bit ints as well
4678         as 64
4679
4680         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4681         the 16-bit types so people don't have to stuff them in 32-bit or
4682         byte arrays.
4683
4684 2005-01-27  Havoc Pennington  <hp@redhat.com>
4685
4686         * dbus/dbus-message.c: byteswap the message if you init an
4687         iterator to read/write from it
4688         
4689         * dbus/dbus-marshal-byteswap.c: new file implementing 
4690         _dbus_marshal_byteswap()
4691
4692         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4693
4694 2005-01-26  Havoc Pennington  <hp@redhat.com>
4695         
4696         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4697         build, apparently - nobody noticed?)
4698         
4699 2005-01-26  Havoc Pennington  <hp@redhat.com>
4700
4701         * dbus/dbus-marshal-recursive.h: remove todo comment
4702
4703 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4704
4705         * Land the mono binding changes to conform to the new APIs.
4706
4707         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4708         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4709
4710         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4711         type code as a string.
4712         (InitAppending): Rename dbus_message_append_iter_init() to
4713         dbus_message_iter_init_append().
4714
4715         * mono/BusDriver.cs: Rename ServiceEventHandler to
4716         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4717         Rename ServiceOwnerChanged to NameOwnerChanged.
4718
4719         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4720         underlying C call.
4721
4722         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4723
4724         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4725         dbus_bus_acquire_service() to dbus_bus_request_name().
4726
4727         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4728         of Type.UnderlyingSystemType to get the correct element type for
4729         the array.
4730         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4731         dbus_message_get_{element|arg}_type() instead of
4732         dbus_message_iter_init_array_iterator().
4733         (Append): Replace dbus_message_iter_append_array() with
4734         dbus_message_iter_open_container() and
4735         dbus_message_iter_close_container().
4736
4737         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4738         types have been removed.
4739         
4740         * mono/DBusType/*.cs: Replace calls of
4741         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4742         but specify the type in the DllImport extern declaration.  Ditto
4743         for dbus_message_iter_append_[type]() ->
4744         dbus_message_iter_append_basic().
4745
4746         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4747         NameOwnerChangedHandler.
4748
4749 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4750
4751         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4752                 - get_base_service -> get_unique_name
4753                 - bus_get_base_service -> bus_get_unique_name
4754                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4755                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4756                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4757                 - bus_activate_service -> bus_start_service_by_name
4758                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4759                 - bus_acquire_service -> bus_request_name
4760                 - dbus_bus_acquire_service -> dbus_bus_request_name
4761                 - bus_service_exists -> bus_name_has_owner
4762                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4763
4764         * python/dbus.py: Rename of methods
4765                 - activate_service -> start_service_by_name
4766                 - bus_acquire_service -> bus_request_name
4767                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4768                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4769
4770         
4771 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4772
4773         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4774         signature for the method that can't be found.
4775
4776         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4777         the message has any arguments, we need to call
4778         _dbus_type_reader_get_current_type(), not
4779         _dbus_type_reader_has_next().
4780
4781 2005-01-24  Havoc Pennington  <hp@redhat.com>
4782
4783         * dbus/dbus-message-factory.c: more testing of message validation
4784
4785         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4786         header
4787
4788 2005-01-23  Havoc Pennington  <hp@redhat.com>
4789
4790         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4791         get this all working, not many tests in the framework yet though
4792
4793 2005-01-22  Havoc Pennington  <hp@redhat.com>
4794
4795         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4796         tutorial, based on work from David Wheeler.
4797
4798 2005-01-21  Havoc Pennington  <hp@redhat.com>
4799
4800         * dbus/dbus-bus.c: add more return_if_fail checks
4801
4802         * dbus/dbus-message.c (load_message): have the "no validation"
4803         mode (have to edit the code to toggle the mode for now though)
4804
4805         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4806         skips all validation; I want to use this at least for benchmark
4807         baseline, I'm not sure if it should be a publicly-available switch.
4808
4809 2005-01-21  Havoc Pennington  <hp@redhat.com>
4810
4811         * glib/dbus-gmain.c: don't put the GLib bindings in the same
4812         toplevel doxygen group as the low-level API stuff
4813
4814         * dbus/dbus.h: note that libdbus is the low-level API
4815
4816 2005-01-20  Havoc Pennington  <hp@redhat.com>
4817
4818         * update-dbus-docs.sh: script to update docs on the web site, only
4819         works for me though. neener.
4820
4821 2005-01-20  Havoc Pennington  <hp@redhat.com>
4822
4823         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4824         code can reveal bugs in it
4825
4826 2005-01-20  Havoc Pennington  <hp@redhat.com>
4827
4828         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4829         select() version, patches from Tor Lillqvist
4830
4831 2005-01-20  Havoc Pennington  <hp@redhat.com>
4832
4833         * doc/dbus-tutorial.xml: replace > with &gt;
4834
4835         * bus/services.c (bus_registry_acquire_service): validate the name
4836         and return a better error if it's no good.
4837
4838         * doc/dbus-specification.xml: note NO_AUTO_START change
4839
4840         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4841         from AUTO_START, we're toggling the default
4842
4843         * bus/dispatch.c: adapt the tests to change of auto-start default
4844
4845 2005-01-18  Havoc Pennington  <hp@redhat.com>
4846
4847         * rename dbus-daemon-1 to dbus-daemon throughout
4848
4849 2005-01-18  Havoc Pennington  <hp@redhat.com>
4850
4851         * Throughout, grand renaming to strip out the use of "service",
4852         just say "name" instead (or "bus name" when ambiguous).  Did not
4853         change the internal code of the message bus itself, only the
4854         programmer-facing API and messages.
4855         
4856         * doc/dbus-specification.xml: further update the message bus section
4857         
4858         * bus/config-parser.c (all_are_equiv): fix bug using freed string
4859         in error case
4860
4861 2005-01-17  Havoc Pennington  <hp@redhat.com>
4862
4863         * dbus/dbus-types.h: remove 16-bit types since we don't use them
4864         ever
4865
4866         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4867         "invalid name character" not only non-ASCII
4868
4869         * doc/dbus-specification.xml: further update spec, message bus 
4870         parts are still out-of-date but the marshaling etc. stuff is now
4871         accurate-ish
4872
4873 2005-01-17  Havoc Pennington  <hp@redhat.com>
4874
4875         * doc/dbus-specification.xml: partially update spec
4876
4877 2005-01-17  Havoc Pennington  <hp@redhat.com>
4878
4879         * Throughout, align variant bodies according to the contained
4880         type, rather than always to 8. Should save a fair bit of space in
4881         message headers.
4882         
4883         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4884         fix handling of case where p == end
4885
4886         * doc/TODO: remove the dbus_bool_t item and variant alignment items
4887
4888 2005-01-17  Havoc Pennington  <hp@redhat.com>
4889
4890         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4891
4892         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4893         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
4894         are marshaling/unmarshaling a boolean.
4895
4896 2005-01-16  Havoc Pennington  <hp@redhat.com>
4897
4898         This is about it on what can be disabled/deleted from libdbus
4899         easily, back below 150K anyhow. Deeper cuts are more work than 
4900         just turning the code off as I've done here.
4901         
4902         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4903         signed int convenience funcs
4904
4905         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4906         verbose mode
4907
4908         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4909         things out of libdbus
4910
4911         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4912         
4913         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4914         tests-enabled-only, though it should probably be deleted)
4915
4916         * dbus/dbus-message-util.c: same stuff
4917
4918         * dbus/dbus-auth-util.c: same stuff
4919
4920 2005-01-16  Havoc Pennington  <hp@redhat.com>
4921
4922         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4923
4924         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4925         way for stripping down dbus-userdb.c stuff included in libdbus.
4926         Rename _dbus_parse_uid for consistency.
4927
4928 2005-01-16  Havoc Pennington  <hp@redhat.com>
4929
4930         * dbus/dbus-internals.c (_dbus_real_assert): print the function
4931         name the assertion failed in
4932
4933         * dbus/dbus-internals.h (_dbus_return_if_fail) 
4934         (_dbus_return_val_if_fail): assert that the name of the function
4935         containing the check doesn't start with '_', since we only want to 
4936         use checks on public functions
4937         
4938         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4939         checks to assertions
4940
4941         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4942         change checks to asserts for private function
4943
4944         * dbus/dbus-message.c (_dbus_message_set_serial): checks
4945         to asserts for private function
4946
4947         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4948         broken assertion that was breaking make check
4949         (_dbus_type_reader_array_is_empty): remove this rather than fix
4950         it, was only used in assertions
4951
4952 2005-01-16  Havoc Pennington  <hp@redhat.com>
4953
4954         * test/unused-code-gc.py: hacky script to find code that's used
4955         only by the bus (not libdbus) or used only by tests or not used at
4956         all. It has some false alarms, but looks like we can clean up a
4957         lot of size from libdbus.
4958
4959         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4960         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4961         
4962 2005-01-16  Havoc Pennington  <hp@redhat.com>
4963
4964         * Add and fix docs according to Doxygen warnings throughout
4965         source.
4966         
4967         * dbus/dbus-marshal-recursive.c
4968         (_dbus_type_reader_array_is_empty): change this to just call
4969         array_reader_get_array_len() and make it static
4970
4971         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4972         from get_array_type
4973         (dbus_message_iter_init_append): rename from append_iter_init
4974
4975         * dbus/dbus-marshal-recursive.c
4976         (_dbus_type_reader_get_element_type): rename from
4977         _dbus_type_reader_get_array_type
4978
4979 2005-01-15  Havoc Pennington  <hp@redhat.com>
4980
4981         * test/glib/test-profile.c (with_bus_server_filter): fix crash
4982
4983         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4984         when DBUS_DISABLE_ASSERT
4985         (_dbus_marshal_set_basic): be sure we align for the string length
4986
4987         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4988         this look faster
4989
4990         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4991         inline macro version
4992         (_dbus_string_set_byte): provide inline macro version
4993
4994 2005-01-15  Havoc Pennington  <hp@redhat.com>
4995
4996         * Land the new message args API and type system.
4997
4998         This patch is huge, but the public API change is not 
4999         really large. The set of D-BUS types has changed somewhat, 
5000         and the arg "getters" are more geared toward language bindings;
5001         they don't make a copy, etc.
5002
5003         There are also some known issues. See these emails for details
5004         on this huge patch:
5005         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5006         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5007         
5008         * dbus/dbus-marshal-*: all the new stuff
5009
5010         * dbus/dbus-message.c: basically rewritten
5011
5012         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5013         freed blocks to be all non-nul bytes so using freed memory is less
5014         likely to work right
5015
5016         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5017         DBUS_FAIL_MALLOC=N environment variable, so you can do
5018         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5019         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5020         thorough.
5021
5022         * qt/message.cpp: port to the new message args API
5023         (operator<<): use str.utf8() rather than str.unicode()
5024         (pretty sure this is right from the Qt docs?)
5025
5026         * glib/dbus-gvalue.c: port to the new message args API
5027
5028         * bus/dispatch.c, bus/driver.c: port to the new message args API
5029
5030         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5031         "locked" flag to TRUE and align_offset to 0; I guess we never
5032         looked at these anyhow, but seems cleaner.
5033
5034         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5035         move allocation padding macro to this header; use it to implement
5036         (_DBUS_STRING_STATIC): ability to declare a static string.
5037
5038         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5039         change to return TRUE if the interface is not set.
5040
5041         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5042         to dbus-marshal-validate.[hc]
5043
5044         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5045         dbus-internals.c
5046
5047         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5048         to dbus-marshal-*.[hc]
5049
5050         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5051         function here from dbus-marshal.c
5052
5053 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5054
5055         * NEWS: Update for 0.23.
5056
5057         * configure.in: Release 0.23.
5058
5059 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5060
5061         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5062         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5063         behind.
5064
5065         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5066         uninstall"
5067
5068         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5069         is an enum, get the enum's underlying type.  Another mono
5070         1.1.3 fix.
5071
5072 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5073
5074         Patch from Sjoerd Simons <sjoerd@luon.net>
5075
5076         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5077         DESTDIR.  It breaks stuff.
5078
5079 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5080
5081         Patch from Tambet Ingo <tambet@ximian.com>
5082
5083         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5084         calling type.GetElementType().  The code previously depended on
5085         broken Mono behavior, which was fixed in Mono 1.1.3.
5086
5087         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5088         Activator.CreateInstance() so that the class's constructor is
5089         called with the right parameters.
5090
5091 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5092
5093         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5094
5095         * dbus/dbus-connection.c
5096         (_dbus_connection_queue_received_message_link): Call
5097         _dbus_connection_remove_timeout() instead of the _locked()
5098         variant, since it's always called from
5099         _dbus_connection_handle_watch(), which handles the locking.
5100         Removed the _locked() variant since it's no longer used.
5101
5102 2005-01-03  Havoc Pennington  <hp@redhat.com>
5103
5104         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5105         return
5106         
5107 2004-12-26  Havoc Pennington  <hp@redhat.com>
5108
5109         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5110
5111 2005-01-03  Havoc Pennington  <hp@redhat.com>
5112
5113         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5114         floating point
5115
5116         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5117
5118 2005-01-02  Havoc Pennington  <hp@redhat.com>
5119
5120         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5121
5122 2005-01-01  Havoc Pennington  <hp@redhat.com>
5123
5124         * configure.in: add -Wfloat-equal
5125
5126 2005-01-01  Havoc Pennington  <hp@redhat.com>
5127
5128         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5129         for a variety of reasons '==' doesn't do this.
5130
5131 2004-12-31  Havoc Pennington  <hp@redhat.com>
5132
5133         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5134         I keep wishing I had
5135
5136 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5137
5138         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5139
5140 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5141
5142         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5143         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5144         dbus-protocol.h.  Because they are defines and not enums they are not
5145         autogenerated.
5146
5147 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5148
5149         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5150         dbus_bus_activate_service
5151
5152         * python/dbus.py (Bus.activate_service): activate a service on the
5153         bus.
5154
5155 2004-12-24  Havoc Pennington  <hp@redhat.com>
5156
5157         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5158         file format has also changed and I haven't adapted to that yet
5159         
5160         * Makefile.am: load .gcno files from latest gcc
5161
5162 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5163         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5164
5165         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5166         lowlevel binding
5167
5168         * python/dbus.py (get_unix_user): Added binding to 
5169         call dbus_bindings.bus_get_unix_user
5170
5171         * python/extract.py: Modified the proto_pat regex to
5172         handle unsigned long
5173
5174 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5175
5176         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5177         better POSIX compliance.
5178
5179 2004-12-19  Havoc Pennington  <hp@redhat.com>
5180
5181         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5182         (_dbus_string_insert_8_aligned): new functions
5183
5184         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5185
5186 2004-12-18  Havoc Pennington  <hp@redhat.com>
5187
5188         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5189         macro
5190
5191         * dbus/dbus-message.c: fix a comment, and add a still-unused
5192         not-implemented function
5193
5194         * dbus/dbus-marshal.h: fix comment
5195
5196         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5197
5198 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5199
5200         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5201         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5202         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5203         Type.UnderlyingSystemType to get the actual system type
5204         underneath.  This code previously depended on the broken Mono
5205         behavior, which was fixed in 1.1.3.
5206
5207 2004-11-27  Havoc Pennington  <hp@redhat.com>
5208
5209         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5210         are disabled
5211         (_dbus_string_get_const_data): inline when asserts are disabled
5212
5213         * dbus/dbus-message.c: record the _dbus_current_generation of
5214         creation so we can complain if dbus_shutdown() is used improperly.
5215         Do this only if checks are enabled.
5216
5217         * dbus/dbus-connection.c: ditto
5218         
5219 2004-11-26  Havoc Pennington  <hp@redhat.com>
5220
5221         * test/glib/test-profile.c: add with_bus mode to profile echoes
5222         that go through the bus.
5223
5224         * test/glib/run-test.sh: add ability to run test-profile
5225
5226         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5227         config file reload.
5228
5229 2004-11-26  Havoc Pennington  <hp@redhat.com>
5230
5231         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5232         thing was implemented
5233
5234 2004-11-26  Havoc Pennington  <hp@redhat.com>
5235
5236         * test/glib/test-profile.c: tweak a bit, add support for some
5237         made-up minimal malloc overhead with plain sockets, since in 
5238         real life some sort of buffers are unavoidable thus we could 
5239         count them in the theoretical best case
5240
5241 2004-11-26  Havoc Pennington  <hp@redhat.com>
5242
5243         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5244         where I was trying to cache one too many messages
5245
5246 2004-11-26  Havoc Pennington  <hp@redhat.com>
5247
5248         * dbus/dbus-message.c: reimplement message cache as an array which 
5249         makes the cache about twice as fast and saves maybe 1.5% overall
5250
5251 2004-11-26  Havoc Pennington  <hp@redhat.com>
5252
5253         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5254         message cache lock here
5255
5256 2004-11-26  Havoc Pennington  <hp@redhat.com>
5257
5258         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5259         the "char byte_order" next to each other to save 4 bytes
5260         (dbus_message_new_empty_header): reduce preallocation, since the
5261         message cache should achieve a similar effect
5262         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5263         message cache that keeps a few DBusMessage around in a pool,
5264         another 8% speedup or so.
5265
5266         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5267
5268 2004-11-25  Havoc Pennington  <hp@redhat.com>
5269
5270         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5271         to write, without reading or blocking, try it before the poll()
5272         and skip the poll() if nothing remains to write. This is about a
5273         3% speedup in the echo client/server
5274
5275 2004-11-25  Havoc Pennington  <hp@redhat.com>
5276
5277         The primary change here is to always write() once before adding
5278         the write watch, which gives us about a 10% performance increase.
5279         
5280         * dbus/dbus-transport-unix.c: a number of modifications to cope
5281         with removing messages_pending
5282         (check_write_watch): properly handle
5283         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5284         messages_pending stuff
5285         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5286         AUTHENTICATED cases
5287         (unix_handle_watch): after writing, see if the write watch can be
5288         removed
5289         (unix_do_iteration): assert that write_watch/read_watch are
5290         non-NULL rather than testing that they aren't, since they 
5291         aren't allowed to be NULL. check_write_watch() at the end so 
5292         we add the watch if we did not finish writing (e.g. got EAGAIN)
5293
5294         * dbus/dbus-transport-protected.h: remove messages_pending call,
5295         since it resulted in too much inefficient watch adding/removing; 
5296         instead we now require that the transport user does an iteration 
5297         after queueing outgoing messages, and after trying the first
5298         write() we add a write watch if we got EAGAIN or exceeded our 
5299         max bytes to write per iteration setting
5300
5301         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5302         function
5303
5304         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5305         freed and then accessed, valgrind flagged this bug, fix it
5306
5307         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5308         as the last valid field plus 1, where really it is equal to the
5309         last valid field. Corrects some message corruption issues.
5310
5311         * dbus/dbus-mainloop.c: verbosity changes
5312
5313         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5314         instead of aborting in one of the test codepaths
5315
5316         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5317         caused not printing the pid ever again if a verbose was missing
5318         the newline at the end
5319         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5320
5321         * dbus/dbus-connection.c: verbosity changes; 
5322         (dbus_connection_has_messages_to_send): new function
5323         (_dbus_connection_message_sent): no longer call transport->messages_pending
5324         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5325         try to write() immediately, so we can avoid the write watch. This
5326         is the core purpose of this patchset
5327         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5328         dump the outgoing message queue, so nobody will get confused
5329         trying to send them or thinking stuff is pending to be sent
5330
5331         * bus/test.c: verbosity changes
5332
5333         * bus/driver.c: verbosity/assertion changes
5334
5335         * bus/dispatch.c: a bunch of little tweaks to get it working again
5336         because this patchset changes when/where you need to block.
5337
5338 2004-11-23  Havoc Pennington  <hp@redhat.com>
5339
5340         * test/glib/test-profile.c: modify to accept a plain_sockets
5341         argument in which case it will bench plain sockets instead of
5342         libdbus, for comparison purposes.
5343
5344 2004-11-22  Havoc Pennington  <hp@redhat.com>
5345
5346         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5347         threads for more time, so sysprof can get a grip on it.
5348
5349         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5350         pointless variable
5351
5352 2004-11-13  Havoc Pennington  <hp@redhat.com>
5353
5354         * test/glib/test-profile.c: fix this thing up a bit
5355
5356         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5357         preallocation sizes by a fair bit; not sure if this will be an
5358         overall performance win or not, but it does reduce reallocs.
5359
5360         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5361         the test hack that forced constant realloc if asserts are
5362         disabled, so we can profile sanely. Sprinkle in some
5363         _DBUS_UNLIKELY() which are probably pointless, but before I
5364         noticed the real performance problem I put them in.
5365         (_dbus_string_validate_utf8): micro-optimize this thing a little
5366         bit, though callgrind says it didn't help; then special-case
5367         ascii, which did help a lot; then be sure we detect nul bytes as
5368         invalid, which is a bugfix.
5369         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5370         superstition; use memset to nul the padding instead of a manual
5371         loop.
5372         (_dbus_string_get_length): inline this as a
5373         macro; it showed up in the profile because it's used for loop
5374         tests and so forth
5375
5376 2004-11-10  Colin Walters  <walters@verbum.org>
5377
5378         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5379         for extra paranoia.
5380
5381 2004-11-09  Colin Walters  <walters@verbum.org>
5382
5383         * dbus/dbus-string.c (_dbus_string_get_length): New
5384         function, writes DBusString to C buffer.
5385
5386         * dbus/dbus-string.h: Prototype it.
5387
5388         * dbus/dbus-message.c (dbus_message_type_to_string): New
5389         function, converts message type into C string.
5390
5391         * dbus/dbus-message.h: Prototype it.
5392
5393         * bus/selinux.c (bus_selinux_check): Take source pid,
5394         target pid, and audit data.  Pass audit data to
5395         avc_has_perm.
5396         (log_audit_callback): New function, appends extra
5397         audit information.
5398         (bus_selinux_allows_acquire_service): Also take
5399         service name, add it to audit data.
5400         (bus_selinux_allows_send): Also take message
5401         type, interface, method member, error name,
5402         and destination, and add them to audit data.
5403         (log_cb): Initialize func_audit.
5404         
5405         * bus/selinux.h (bus_selinux_allows_acquire_service)
5406         (bus_selinux_allows_send): Update prototypes 
5407
5408         * bus/services.c (bus_registry_acquire_service): Pass
5409         service name to bus_selinux_allows_acquire_service.
5410
5411         * bus/bus.c (bus_context_check_security_policy): Pass
5412         additional audit data.  Move assignment of dest
5413         to its own line.
5414
5415 2004-11-07  Colin Walters  <walters@verbum.org>
5416
5417         * dbus/dbus-transport-unix.c (do_authentication): Always
5418         initialize auth_completed.
5419         
5420 2004-11-07  Colin Walters  <walters@verbum.org>
5421
5422         * bus/bus.c (load_config): Break into three
5423         separate functions: process_config_first_time_only,
5424         process_config_every_time, and process_config_postinit.
5425         (process_config_every_time): Move call of
5426         bus_registry_set_service_context_table into
5427         process_config_postinit.
5428         (process_config_postinit): New function, does
5429         any processing that needs to happen late
5430         in initialization (and also on reload).
5431         (bus_context_new): Instead of calling load_config,
5432         open config parser here and call process_config_first_time_only
5433         and process_config_every_time directly.  Later, after
5434         we have forked but before changing UID,
5435         invoke bus_selinux_full_init, and then call
5436         process_config_postinit.
5437         (bus_context_reload_config): As in bus_context_new,
5438         load parse file inside here, and call process_config_every_time
5439         and process_config_postinit.
5440
5441         * bus/services.h, bus/services.c
5442         (bus_registry_set_service_context_table): Rename
5443         from bus_registry_set_sid_table.  Take string hash from config
5444         parser, and convert them here into SIDs.
5445
5446         * bus/config-parser.c (struct BusConfigParser): Have
5447         config parser only store a mapping of service->context
5448         string.
5449         (merge_service_context_hash): New function.
5450         (merge_included): Merge context string hashes instead
5451         of using bus_selinux_id_table_union.
5452         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5453         simply create a new string hash.
5454         (bus_config_parser_unref): Unref it.
5455         (start_selinux_child): Simply insert strings into hash,
5456         don't call bus_selinux_id_table_copy_over.
5457
5458         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5459         (bus_selinux_id_table_copy_over): Delete.
5460
5461 2004-11-03  Colin Walters  <walters@verbum.org>
5462
5463         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5464         variables.
5465         
5466 2004-11-03  Colin Walters  <walters@verbum.org>
5467
5468         * bus/test-main.c (test_pre_hook): Fix test logic,
5469         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5470
5471 2004-11-02  Colin Walters  <walters@redhat.com>
5472
5473         * bus/selinux.c (bus_selinux_init): Split into two functions,
5474         bus_selinux_pre_init and bus_selinux_post_init.
5475         (bus_selinux_pre_init): Just determine whether SELinux is
5476         enabled.
5477         (bus_selinux_post_init): Do everything else.
5478
5479         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5480         config file, and bus_selinux_post_init after.  This ensures that
5481         we don't lose the policyreload notification thread that
5482         bus_selinux_init created before forking previously.
5483         
5484         * bus/test-main.c (test_pre_hook): Update for split.
5485
5486 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5487
5488         Patch from Johan Fischer <linux@fischaz.com>
5489         
5490         * mono/doc/Makefile.am (install-data-local): Added directory
5491         install for DESTDIR
5492
5493 2004-10-29  Colin Walters  <walters@redhat.com>
5494
5495         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5496         parameter for fd to write pid to.       
5497
5498         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5499         
5500         * bus/bus.c (bus_context_new): Pass print_pid_fd
5501         to _dbus_become_daemon (bug #1720)
5502
5503 2004-10-29  Colin Walters  <walters@redhat.com>
5504
5505         Patch from Ed Catmur <ed@catmur.co.uk>
5506
5507         * mono/doc/Makefile.am (install-data-local): Handle
5508         DESTDIR.
5509
5510 2004-10-29  Colin Walters  <walters@redhat.com>
5511
5512         * bus/.cvsignore, qt/.cvsignore: Update.
5513
5514 2004-10-29  Colin Walters  <walters@redhat.com>
5515
5516         Patch from Kristof Vansant <de_lupus@pandora.be>
5517
5518         * configure.in: Detect Slackware.
5519         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5520         * bus/rc.messagebus.in: New file.
5521
5522 2004-10-29  Colin Walters  <walters@redhat.com>
5523
5524         * tools/dbus-monitor.c (filter_func): Return
5525         DBUS_HANDLER_RESULT_HANDLED in filter function
5526         for now.  See:
5527         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5528
5529 2004-10-29  Colin Walters  <walters@redhat.com>
5530
5531         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5532
5533         * bus/services.c (bus_registry_acquire_service): 
5534         Correctly retrieve service name from DBusString
5535         for printing.
5536
5537 2004-10-29  Colin Walters  <walters@redhat.com>
5538
5539         * dbus/dbus-glib.h: Update documentation to not
5540         refer to internal APIs.
5541
5542 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5543
5544         * mono/Arguments.cs (GetDBusTypeConstructor):
5545         type.UnderlyingSystemType will return "System.Byte" if you do it
5546         on "byte[]", which is not what we want.  So check the type.IsArray
5547         property and use System.Array instead.
5548
5549 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5550
5551         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5552         the DBusUserInfo structure since this is passed into the function.
5553         This would cause a double free when the function that allocated
5554         the structure would try to free it when an error occured.
5555
5556         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5557         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5558         for service activation to avoid 32bit/64bit parallel install issues
5559
5560 2004-10-21  Colin Walters  <walters@verbum.org>
5561
5562         * AUTHORS: Fix my email address, the @gnu.org one
5563         has been bouncing for some time.  Also add J5.
5564         
5565 2004-10-21  Colin Walters  <walters@verbum.org>
5566
5567         * dbus/dbus-transport-unix.c (do_authentication): Return
5568         authentication status to callers.
5569         (unix_handle_watch): If we completed authentication this round,
5570         don't do another read.  Instead wait until the next iteration,
5571         after we've read any pending data in the auth buffer.
5572         (unix_do_iteration): Ditto.
5573         (unix_handle_watch): Updated for new do_authentication prototype.
5574
5575 2004-10-18  Colin Walters  <walters@verbum.org>
5576
5577         * bus/selinux.c (bus_selinux_enabled): Handle
5578         --disable-selinux case.
5579         
5580 2004-10-18  Colin Walters  <walters@verbum.org>
5581
5582         * bus/selinux.h: Add bus_selinux_enabled.
5583         
5584         * bus/selinux.c (bus_selinux_enabled): Implement it.
5585         
5586         * bus/config-parser.c (struct include): Add
5587         if_selinux_enabled member.
5588         (start_busconfig_child): Parse if_selinux_enabled
5589         attribute for include.
5590         (bus_config_parser_content): Handle it.
5591
5592         * bus/session.conf.in, bus/system.conf.in: Add
5593         inclusion of context mapping to default config files;
5594         conditional on SELinux being enabled.
5595         
5596         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5597         
5598         * test/data/invalid-config-files/badselinux-1.conf, 
5599         test/data/invalid-config-files/badselinux-2.conf:
5600         Test files for bad syntax.
5601         
5602 2004-10-17  Colin Walters  <walters@verbum.org>
5603
5604         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5605         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5606         format specifier mismatches.
5607
5608 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5609
5610         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5611         format string.
5612
5613         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5614         pointer (bug #1540, Leonardo Boiko).
5615
5616 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5617
5618         * mono/BusDriver.cs: Changed BusDriver struct to remove
5619         the ServiceCreated and ServiceDeleted events and replace them
5620         with the new ServiceOwnerChanged event.
5621
5622         * mono/example/BusListener.cs: Added a new example program,
5623         which listens for and reports any ServiceOwnerChanged events
5624         on the bus driver.
5625
5626         * mono/example/Makefile.am (DESTDIR): Build changes for the
5627         new BusListener.cs example.
5628
5629 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5630
5631         * bus/signals.c (bus_match_rule_parse): validate the components of
5632         match rules (bug #1439).
5633
5634         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5635
5636 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5637
5638         * doc/dbus-specification.xml: document ServiceOwnerChanged
5639         signal.
5640         
5641         * bus/driver.c, bus/driver.h, bus/services.c: Use
5642         ServiceOwnerChanged signal instead of ServiceCreated and
5643         ServiceDeleted.
5644         
5645         * bus/dispatch.c: update testcase for the new signal.
5646
5647 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5648
5649         Patch from Nat Friedman <nat@novell.com>
5650
5651         * mono/Makefile.am: A number of small build fixes to allow "make
5652         distcheck" to succeed.
5653
5654         * mono/example/Makefile.am: "make distcheck" fixes.
5655
5656         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5657         key in @srcdir@.
5658
5659         * test/Makefile.am: "make distcheck" fixes.
5660
5661 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5662
5663         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5664
5665         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5666
5667         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5668         messages after the first one (bug #1389).
5669         
5670         * bus/dispatch.c (check_double_hello_message): add a test case for
5671         the double hello message bug.
5672         (check_existent_service_activation): fix check of spawning error.
5673         
5674 2004-09-16  David Zeuthen  <david@fubar.dk>
5675
5676         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5677
5678 2004-09-12  David Zeuthen  <david@fubar.dk>
5679
5680         Patch from Kay Sievers <kay.sievers@vrfy.org>
5681
5682         * bus/bus.c (bus_context_new):
5683         * bus/bus.h:
5684         * bus/main.c (usage)
5685         (main):
5686         Add commandline option --nofork to override configuration file
5687         setting.
5688
5689 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5690
5691         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5692         compilers don't like it (bug #974).
5693
5694 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5695
5696         * qt/connection.*: Applied patch by Jérôme Lodewyck
5697         <lodewyck@clipper.ens.fr> to integrate an existing
5698         connection into the Qt eventloop
5699
5700 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5701
5702         * mono/BusDriver.cs: Added.  This is a class for interacting with
5703         the org.freedesktop.DBus service.
5704
5705         * mono/Message.cs: Added a mechanism to expose the message that is
5706         currently being dispatched via the static Message.Current
5707         property.  Added Message.Sender and Message.Destination
5708         properties.
5709
5710         * mono/Handler.cs: Expose the dispatched message via
5711         Message.Current when handling method calls.
5712
5713         * mono/Service.cs: Expose the dispatched message via
5714         Message.Current when handling signal emissions.
5715         
5716         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5717         Connection.BaseService property.
5718
5719 2004-08-28  Havoc Pennington  <hp@redhat.com>
5720
5721         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5722
5723         More fixes from Steve Grubb
5724         
5725         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5726         (_dbus_listen_tcp_socket): fix fd leak
5727
5728         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5729         EINTR to a bit lower in the code
5730
5731 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5732
5733         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5734         TRUE if we are inquiring about the existence of the built-in
5735         org.freedesktop.DBus service.
5736
5737 2004-08-25  John Palmieri  <johnp@redhat.com>
5738         * bus/config-parser.c:
5739         (struct PolicyType): Add POLICY_CONSOLE
5740         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5741         (start_busconfig_child): Sets up console element when
5742         <policy at_console=""> is encountered in a policy file
5743         (append_rule_from_element): Convert console elements to console
5744         rules.
5745
5746         * bus/policy.c: 
5747         (bus_policy_create_client_policy): Add console rules to the client
5748         policy based on if the client is at the console
5749         (bus_policy_append_console_rule): New function for adding a
5750         console rule to a policy
5751         (bus_policy_merge): Handle console rule merging
5752
5753         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5754         where we check for console user files
5755         
5756         * dbus/dbus-sysdeps.c:
5757         (_dbus_file_exists): New function which checks if the given
5758         file exists
5759         (_dbus_user_at_console): New function which does the system
5760         specific process of checking if the user is at the console
5761
5762         * dbus/dbus-userdb.c:
5763         (_dbus_is_console_user): New function converts a UID to user name
5764         and then calls the system specific _dbus_user_at_console to 
5765         see if the user is at the console and therefor a console user
5766
5767 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5768
5769         * bus/config-parser.c (set_limit):
5770         * bus/dbus-daemon-1.1.in:
5771         * test/data/valid-config-files/many-rules.conf: set the
5772         max_match_rules_per_connection limt from the config file. 
5773
5774         * doc/busconfig.dtd: update the DTD.
5775
5776         * bus/driver.c: remove some unused variables.
5777
5778 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5779
5780         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5781         it's been replaced by dbus_g_bus_get
5782
5783 2004-08-23  Colin Walters  <walters@redhat.com>
5784
5785         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5786
5787         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5788
5789         * bus/selinux.c: Create a thread for policy reload notification.
5790         (bus_selinux_get_policy_root): Implement.
5791
5792         * bus/config-parser.c (start_busconfig_child)
5793         (bus_config_parser_content): Support SELinux-root relative
5794         inclusion.
5795
5796         * configure.in <HAVE_SELINUX>: Add -lpthread.
5797         
5798         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5799         (test_post_hook): Move memory checking into here.
5800         (test_pre_hook, test_post_hook): Move SELinux checks in
5801         here, but conditional on a DBUS_TEST_SELINUX environment
5802         variable.  Unfortunately we can't run the SELinux checks
5803         as a normal user, since they won't have any permissions
5804         for /selinux.  So this will have to be tested manually
5805         for now, until we have virtualization for most of
5806         libselinux.
5807         
5808 2004-08-23  Havoc Pennington  <hp@redhat.com>
5809
5810         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5811         drop supplementary groups, suggested by Steve Grubb
5812
5813 2004-08-20  Colin Walters  <walters@redhat.com>
5814
5815         * bus/config-parser.c (start_busconfig_child): Remove some unused
5816         variables.
5817         
5818         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5819         warning.
5820
5821 2004-08-17  Joe Shaw  <joeshaw@novell.com>
5822
5823         * configure.in: If --enable-mono is passed in, if we can't find
5824         mono error out.
5825
5826         * mono/Makefile.am: Use /gacutil to install assemblies into the
5827         GAC and not /root.
5828
5829 2004-08-12  Havoc Pennington  <hp@redhat.com>
5830
5831         * NEWS: update for 0.22
5832
5833         * configure.in: release 0.22
5834
5835 2004-08-11  Colin Walters  <walters@redhat.com>
5836
5837         * tools/dbus-send.c (main, usage): Add --reply-timeout
5838         argument.
5839
5840 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5841
5842         * bus/bus.c (process_config_first_time_only): get rid of an unused
5843         DBusError that was causing a memoy leak (bug #989).
5844
5845         * dbus/dbus-keyring.c, dbus/dbus-message.c:
5846         fix compilation on Solaris/Forte C (bug #974)
5847
5848         * bus/main.c (main): plug two minuscule memleaks.
5849
5850 2004-08-10  Havoc Pennington  <hp@redhat.com>
5851
5852         * doc/dbus-tutorial.xml: add some more info on GLib bindings
5853
5854 2004-08-09  Havoc Pennington  <hp@redhat.com>
5855
5856         * COPYING: switch to Academic Free License version 2.1 instead of
5857         2.0, to resolve complaints about patent termination clause.
5858
5859 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
5860
5861         * README: added documentation for the --enable-python 
5862         configure switch.
5863
5864 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5865
5866         * bus/config-parser.c (bus_config_parser_new): fix an invalid
5867         _unref in the SELinux support.
5868
5869         * doc/busconfig.dtd: update DTD for SELinux support.
5870
5871         * bus/config-loader-libxml.c: fix error handler and parser
5872         initialisation/cleanup. OOM test now works with libxml2 HEAD.
5873
5874         * configure.in: remove the warning about libxml2.
5875
5876         * dbus/dbus-bus.c: silence doxygen warning.
5877
5878 2004-07-31  Colin Walters  <walters@redhat.com>
5879
5880         * configure.in: Move #error in SELinux check to its own line.
5881
5882 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5883
5884         * dbus/dbus-internals.h (_DBUS_SET_OOM):
5885         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5886         dbus_error_set.
5887
5888         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5889         broken by the change in the _SET_OOM macros.
5890
5891 2004-07-31  Colin Walters  <walters@redhat.com>
5892
5893         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5894         BUS_SET_OOM.
5895
5896 2004-07-31  Colin Walters  <walters@redhat.com>
5897
5898         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5899         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
5900         AC_MSG_CHECKING.
5901
5902 2004-07-24  Havoc Pennington  <hp@redhat.com>
5903
5904         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5905
5906         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5907         functionality
5908
5909         * configure.in: add --enable-selinux
5910         
5911         * bus/policy.c (bus_policy_merge): add FIXME to a comment
5912
5913         * bus/main.c (main): initialize and shut down selinux
5914
5915         * bus/connection.c: store SELinux ID on each connection, to avoid 
5916         repeated getting of the string context and converting it into 
5917         an ID
5918
5919         * bus/bus.c (bus_context_get_policy): new accessor, though it
5920         isn't used
5921         (bus_context_check_security_policy): check whether the security
5922         context of sender connection can send to the security context of
5923         recipient connection
5924
5925         * bus/config-parser.c: add parsing for <selinux> and <associate>
5926         
5927         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5928         implement dbus_connection_get_unix_fd()
5929
5930         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5931         function, used by the selinux stuff
5932         
5933 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5934
5935         * bus/config-loader-libxml.c: complete the implementation of
5936         libxml backend for config file loader. Doesn't work with full OOM
5937         test yet. 
5938         
5939         * configure.in: change error when selecting libxml into a warning.
5940         
5941         * test/data/invalid-config-files: add two non-well-formed XML
5942         files. 
5943         
5944         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5945         
5946         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5947         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5948         be necessary to read all the buffer. (bug #894)
5949
5950         * bus/activation.c (bus_activation_activate_service): fix a
5951         potential assertion failure (bug #896). Small optimization in the
5952         case of auto-activation messages.
5953
5954         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5955         add test case for byte-through-vararg bug (#901). patch by Kimmo
5956         Hämäläinen. 
5957
5958 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5959
5960         * python/dbus.py:
5961         * python/dbus_bindings.pyx.in:
5962         Add dbus.init_gthreads (), allow emit_signal to pass
5963         arguments to the signal.
5964         
5965 2004-07-24  Havoc Pennington  <hp@redhat.com>
5966
5967         * AUTHORS: add some people, not really comprehensively, let me
5968         know if I missed you
5969
5970 2004-07-24  Havoc Pennington  <hp@redhat.com>
5971
5972         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5973         Owen
5974
5975         * test/Makefile.am (DIST_SUBDIRS): here also
5976
5977 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5978
5979         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5980         breaking build on Solaris, reported by Farhad Saberi on the ML.
5981
5982         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5983         va_arg invocation to account for integer promotion in the case of
5984         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5985
5986         * bus/services.c (bus_service_remove_owner): fix bug #902, use
5987         _dbus_list_get_first_link, not _dbus_list_get_first.
5988
5989         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5990
5991         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5992         handler functions so that the asserts in _dbus_object_subtree_unref
5993         do not fail.
5994
5995         * dbus/dbus-transport-unix.c (do_reading):
5996         _dbus_transport_queue_messages return value is of type
5997         dbus_bool_t, not DBusDispatchStatus.
5998         
5999 2004-07-19  David Zeuthen  <david@fubar.dk>
6000
6001         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6002
6003         * bus/dispatch.c:
6004         (check_get_connection_unix_user): Debug says GetProperty; but the
6005         method is called GetConnectionUnixUser
6006         (check_get_connection_unix_process_id): New function
6007         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6008         also call check_get_connection_unix_process_id()
6009         
6010         * bus/driver.c:
6011         (bus_driver_handle_get_connection_unix_process_id): New function,
6012         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6013         interface
6014         
6015         * dbus/dbus-auth.c:
6016         (handle_server_data_external_mech): Set pid from the credentials
6017         obtained from the socket
6018         
6019         * dbus/dbus-connection.c:
6020         (dbus_connection_get_unix_process_id): New function
6021         
6022         * dbus/dbus-connection.h: 
6023         Add prototype for dbus_connection_get_unix_process_id
6024         
6025         * dbus/dbus-transport.c:
6026         (_dbus_transport_get_unix_process_id): New function
6027         
6028         * dbus/dbus-transport.h:
6029         Add prototype for _dbus_transport_get_unix_process_id
6030         
6031 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6032
6033         * dbus/dbus-message.c: Message counter fix, patch by Christian
6034         Hammond <chipx86@gnupdate.org>
6035
6036 2004-07-18  Seth Nickell  <seth@gnome.org>
6037
6038         * python/dbus.py:
6039         * python/dbus_bindings.pyx.in:
6040         * python/tests/test-client.py:
6041
6042         Add dbus.ByteArray and dbus_bindings.ByteArray
6043         types so that byte streams can be passed back.
6044
6045         Give jdahlin the heaps of credit that are so
6046         rightfully his.
6047         
6048 2004-07-12  Seth Nickell  <seth@gnome.org>
6049
6050         * python/dbus.py:
6051
6052         Add message argument to the default object_method_handler
6053         function.
6054         
6055         * python/dbus_bindings.pyx.in:
6056
6057         Automatically return NIL when passed an empty list
6058         (we can't pass back a list since lists are typed
6059         and we don't have any idea what type the the client
6060         intended the list to be... :-( )
6061         
6062 2004-07-10  Seth Nickell  <seth@gnome.org>
6063
6064         * python/examples/Makefile.am:
6065
6066         Fix distcheck breakage caused by new examples.
6067
6068 2004-07-10  Seth Nickell  <seth@gnome.org>
6069
6070         * python/dbus.py:
6071
6072         Add "message" argument to service-side dbus.Object
6073         methods. This will break existing services written
6074         using the python bindings, but will allow extraction
6075         of all the message information (e.g. who its from).
6076
6077         Add improved "object oriented" signal handling/emission.
6078         
6079         * python/examples/example-service.py:
6080
6081         Nix this example.
6082         
6083         * python/examples/example-signal-emitter.py:
6084         * python/examples/example-signal-recipient.py:
6085
6086         Two new examples that show how to emit and receive
6087         signals using the new APIs.
6088         
6089         * python/examples/example-signals.py:
6090         * python/examples/gconf-proxy-service.py:
6091         * python/examples/gconf-proxy-service2.py:
6092
6093         Add "message" argument to service methods.
6094
6095 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6096
6097         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6098         * dbus/bus.c (dbus_bus_get_unix_user)
6099         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6100         method of org.freedesktop.DBus interface.
6101
6102         * bus/dispatch.c: test case
6103
6104 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6105
6106         * python/Makefile.am: switched include directory from glib/ to dbus/
6107         since dbus-glib.h moved
6108  
6109 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6110
6111         * configure.in: prevent building the gcj stuff and libxml loader
6112         since they are broken.
6113
6114 2004-06-20  Havoc Pennington  <hp@redhat.com>
6115
6116         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6117         codes from the dbus error names
6118         
6119         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6120         as dbus/dbus-glib.h and that breakage is now visible due to 
6121         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6122         
6123         * glib/dbus-glib.h: s/gproxy/g_proxy/
6124
6125         * dbus/dbus-shared.h: new header to hold stuff shared with
6126         binding APIs
6127         
6128         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6129         than dbus-errors.h
6130
6131         * glib/dbus-glib.h (dbus_set_g_error): move to
6132         dbus-glib-lowlevel.h
6133
6134         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6135         of stuff to enable this
6136
6137         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6138
6139         * a bunch of other changes with the same basic "separate glib 
6140         bindings from dbus.h" theme
6141         
6142 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6143
6144         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6145
6146         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6147
6148 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6149
6150         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6151         the reply value of the ServiceExists message.
6152
6153 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6154
6155         * python/dbus_bindings.pyx.in: No longer need to parse path
6156         elements and pass them as arrays of strings.  The C API now
6157         accepts plain path strings.
6158         (_build_parsed_path): removed 
6159
6160 2004-06-07  Havoc Pennington  <hp@redhat.com>
6161
6162         * doc/TODO: remove auto-activation item since it's done; sort
6163         items by importance/milestone
6164
6165 2004-06-07  Havoc Pennington  <hp@redhat.com>
6166
6167         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6168         random signature when using REQUIRED_FIELDS (this hack won't work
6169         in the long term)
6170
6171         * dbus/dbus-message.c: change the signature to be a header field,
6172         instead of message->signature special-case string. Incremental
6173         step forward. Then we can fix up code to send the signature in the
6174         message, then fix up code to validate said signature, then fix up
6175         code to not put the typecodes inline, etc.
6176         (load_one_message): don't make up the signature after the fact
6177         (decode_header_data): require signature field for the known
6178         message types
6179
6180         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6181
6182         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6183
6184 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6185
6186         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6187
6188         * mono/Handler.cs: Updated to follow new path argument for
6189         (un-)registering objects.
6190
6191         * mono/example/Makefile.am:
6192         * mono/Makefile.am:
6193         * configure.in: Bumped required version for mono and use new -pkg
6194         syntax for deps
6195
6196 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6197
6198         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6199         registration functions take the path argument as char* instead of
6200         char**.
6201
6202         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6203         split off the path decompostion part of
6204         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6205         warnings. 
6206
6207         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6208         
6209 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6210  
6211         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6212         machine approach.  A state is implemented as a function that
6213         handles incoming events as specified for that state.
6214         
6215         * doc/dbus-specification.xml: Update auth protocol state machine
6216         specification to match implementation.  Remove some leftover
6217         base64 examples.
6218
6219 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6220
6221         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6222         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6223         quiet doxygen.
6224
6225         * Doxyfile.in: remove deprecated options.
6226
6227         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6228         glib/test-thread.h, glib/test-thread-client.c,
6229         glib/test-thread-server.c, glib/test-profile.c,
6230         glib/test-dbus-glib.c: remove these unused files.
6231
6232 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6233
6234         * dbus/dbus-object-tree.c
6235         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6236         non-fallback handlers (bug #684).
6237         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6238         (find_subtree_recurse): report wether the returned subtree is an
6239         exact match or a "fallback" match higher up in the tree.
6240         (object_tree_test_iteration): update test case.
6241
6242 2004-06-01  Seth Nickell  <seth@gnome.org>
6243
6244         * python/dbus_bindings.pyx.in:
6245         * python/tests/test-client.py:
6246
6247         Round off basic type support. Add dicts (yay!), and 
6248         remaining array types.
6249
6250         Make MessageIter more general so it works for dicts too.
6251
6252         Mark all loop variables as C integers.
6253         
6254 2004-05-31  Havoc Pennington  <hp@redhat.com>
6255
6256         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6257         "in" before "out"
6258
6259         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6260
6261         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6262         option that runs the tests, and start filling in some code
6263         including for starters just dumping the interfaces to stdout
6264
6265         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6266
6267         * test/data/valid-introspection-files/lots-of-types.xml: test of
6268         an example introspection file
6269
6270         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6271         "node" (I think...)
6272
6273 2004-05-31  Seth Nickell  <seth@gnome.org>
6274
6275         * python/dbus_bindings.pyx.in:
6276         * python/tests/test-client.py:
6277
6278         Test Suite: 1
6279         Python Bindings: 0
6280
6281         Fix string array memory trashing bug... oops...
6282
6283 2004-05-30  Seth Nickell  <seth@gnome.org>
6284
6285         * python/dbus.py:
6286
6287         Add a nicer-but-less-flexible alternate API for handling 
6288         calls to virtual objects in dbus.ObjectTree.
6289
6290         Screw up the argument order to the dbus.Object constructor
6291         for consistency with dbus.ObjectTree (and to make dbus_methods
6292         optional for future extension)
6293         
6294         * python/examples/Makefile.am:
6295         * python/examples/gconf-proxy-service.py:
6296         * python/examples/gconf-proxy-service2.py:
6297
6298         Alternate implementation of gconf-proxy-service using the
6299         nicer dbus.ObjectTree API.
6300         
6301         * python/examples/example-service.py:
6302         * python/tests/test-server.py
6303
6304         Reverse the argument order to deal with dbus.Object constructor
6305         changes.
6306         
6307 2004-05-30  Seth Nickell  <seth@gnome.org>
6308
6309         * python/examples/example-client.py:
6310         * python/examples/example-service.py:
6311
6312         Take it back. Lists seem to work but they're broken
6313         in the test suite. Make the base examples use
6314         lists (works fine).
6315
6316 2004-05-30  Seth Nickell  <seth@gnome.org>
6317
6318         * python/dbus_bindings.pyx.in:
6319         * python/tests/test-client.py:
6320
6321         Add some more tests and fix errors that crop up.
6322         Unfortunately, currently it seems like marshalling
6323         and unmarshalling of lists is completely broken :-(
6324
6325 2004-05-30  Seth Nickell  <seth@gnome.org>
6326
6327         * python/dbus_bindings.pyx.in:
6328
6329         Add support for ObjectPath type.
6330
6331         * python/dbus.py:
6332
6333         Refactor message handling code to a common function.
6334         
6335         * python/tests/test-client.py:
6336         * python/tests/test-server.py:
6337
6338         Add tests that check to make sure values of all types
6339         can be echoed from a service w/o mangling.
6340         
6341 2004-05-29  Seth Nickell  <seth@gnome.org>
6342
6343         * python/dbus.py:
6344
6345         Add ObjectTree class which allows implementation
6346         of trees of "virtual" objects. Basically the python
6347         wrapper for "register_fallback".
6348         
6349         * python/examples/Makefile.am
6350         * python/examples/gconf-proxy-client.py:
6351         * python/examples/gconf-proxy-service.py:
6352
6353         Implement a simple GConf proxy service that supports
6354         get/set on string and int GConf keys using the ObjectTree.
6355         
6356 2004-05-29  Seth Nickell  <seth@gnome.org>
6357
6358         * python/dbus.py:
6359         * python/examples/example-client.py:
6360         * python/examples/example-service.py:
6361         * python/examples/list-system-services.py:
6362
6363         Add SessionBus, SystemBus and ActivationBus classes
6364         so you don't need to know the special little BUS_TYPE
6365         flag.
6366         
6367 2004-05-29  Havoc Pennington  <hp@redhat.com>
6368
6369         * bus/config-parser.c (process_test_valid_subdir): temporarily
6370         stop testing config parser OOM handling, since expat has issues
6371         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6372
6373         * bus/dbus-daemon-1.1.in: change requested_reply to
6374         send_requested_reply/receive_requested_reply so we can send the
6375         replies, not just receive them.
6376
6377         * bus/config-parser.c: parse the new
6378         send_requested_reply/receive_requested_reply
6379
6380         * bus/policy.c (bus_client_policy_check_can_send): add
6381         requested_reply argument and use it
6382
6383         * bus/bus.c (bus_context_check_security_policy): pass through
6384         requested_reply status to message send check
6385
6386         * bus/system.conf.in: adapt to requested_reply change
6387         
6388 2004-05-28  Havoc Pennington  <hp@redhat.com>
6389
6390         * test/glib/test-service-glib.c (main): remove unused variable
6391
6392         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6393
6394         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6395         from the enum, no longer in use.
6396
6397         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6398         works right.
6399
6400         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6401         whether error_name passed in is a valid error name.
6402
6403 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6404
6405         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6406         OBJECT_PATH and OBJECT_PATH_ARRAY
6407
6408 2004-05-28  Seth Nickell  <seth@gnome.org>
6409
6410         * python/examples/Makefile.am:
6411
6412         Forget to add Makefile.am. Do not pass go.
6413
6414 2004-05-28  Michael Meeks  <michael@ximian.com>
6415
6416         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6417         fix no int64 case.
6418
6419         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6420
6421         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6422         (_dbus_message_iter_get_basic_type_array): impl.
6423         drastically simplify ~all relevant _get methods to use these.
6424         (_dbus_message_iter_append_basic_array),
6425         (dbus_message_iter_append_basic): impl
6426         drastically simplify ~all relevant _append methods to use these.
6427
6428         * dbus/dbus-message-builder.c (parse_basic_type) 
6429         (parse_basic_array, lookup_basic_type): impl.
6430         (_dbus_message_data_load): prune scads of duplicate /
6431         cut & paste coding.
6432
6433         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6434         (_dbus_demarshal_basic_type): implement,
6435         (demarshal_and_validate_len/arg): beef up debug.
6436         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6437
6438 2004-05-27  Seth Nickell  <seth@gnome.org>
6439
6440         * configure.in:
6441         * python/Makefile.am:
6442
6443         Include the example python apps in the tarball.
6444         
6445         * python/examples/list-system-services.py
6446
6447         Add a python new example that fetches the list of services
6448         from the system bus.
6449         
6450 2004-05-27  Seth Nickell  <seth@gnome.org>
6451
6452         * python/dbus.py:
6453         * python/dbus_bindings.pyx.in:
6454
6455         Fix failure to notify that a signal was not handled,
6456         resulted in hung functions.
6457         
6458 2004-05-25  Colin Walters  <walters@redhat.com>
6459
6460         * tools/dbus-monitor.c (main): Monitor all types of messages.
6461
6462 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6463
6464         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6465         which unregisters the object path and disposes the handler.
6466
6467 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6468  
6469         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6470          
6471         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6472         operands to && so we call dbus_message_iter_next () for the last
6473         argument also.
6474
6475 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6476
6477         * dbus/dbus-object-tree.c
6478         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6479         children even if the requested path isn't registered.
6480         (object_tree_test_iteration): test object_tree_list_registered.
6481
6482         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6483         it to 0.
6484         
6485 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6486
6487         * doc/TODO: Remove resolved items.
6488
6489         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6490         field.
6491         
6492         * bus/connection.c (bus_connections_expect_reply): Enforce the
6493         per-connection limit on pending replies.
6494         
6495         Patch from Jon Trowbridge <trow@ximian.com>:
6496  
6497         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6498         up a watch that triggers a config reload when one end of the pipe
6499         becomes readable.
6500         (signal_handler): Instead of doing the config reload in our SIGHUP
6501         handler, just write to the reload pipe and let the associated
6502         watch handle the reload when control returns to the main loop.
6503  
6504         * bus/driver.c (bus_driver_handle_reload_config): Added.
6505         Implements a ReloadConfig method for requesting a configuration
6506         file reload via the bus driver.
6507  
6508 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6509
6510         * HACKING: Updated release instructions concerning the wiki page.
6511
6512 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6513
6514         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6515         filter against auth->allowed_mechs; we only add allowed mechs in
6516         record_mechanisms().
6517  
6518         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6519         ALLOWED_MECHS to auth-script format so we can set the list of
6520         allowed mechanisms.
6521  
6522         * data/auth/client-out-of-mechanisms.auth-script: New test to
6523         check client disconnects when it is out of mechanisms to try.
6524  
6525         * dbus/dbus-auth.c (process_command): Remove check for lines
6526         longer that 1 MB; we only buffer up maximum 16 kB.
6527  
6528         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6529         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6530         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6531         assume there might be unused bytes.
6532  
6533         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6534         client-out-of-mechs, it is handled in process_reject(). Move check
6535         for max failures to send_rejected(), as it's a server-only thing.
6536
6537         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6538         send_auth(), send_data(), send_rejected(), send_error(),
6539         send_ok(), send_begin() and send_cancel().
6540
6541 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6542
6543         Remove base64 encoding, replace with hex encoding. Original patch
6544         from trow@ximian.com, added error handling.
6545
6546         * dbus/dbus-string.c (_dbus_string_base64_encode)
6547         (_dbus_string_base64_decode): Remove.
6548         (_dbus_string_hex_decode): Add end_return argument so we can
6549         distinguish between OOM and invalid hex encoding.
6550         (_dbus_string_test): Remove base64 tests and add test case for
6551         invalid hex.
6552
6553         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6554         Replace base64 with hex.
6555
6556         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6557         for invalid hex encoded data in auth protocol.
6558
6559 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6560
6561         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6562         leak.
6563
6564 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6565
6566         * mono/dbus-sharp.dll.config.in: Added for GAC
6567         * mono/dbus-sharp.snk: Added for GAC
6568         * mono/Assembly.cs.in: Added for GAC
6569         * mono/Makefile.am: Changes for GAC installation        
6570         * configure.in: Added refs for dbus-sharp.dll.config.in and
6571         Assembly.cs.in. More fixes for mono testing
6572         * mono/example/Makefile.am: Changed var to CSC
6573         * Makefile.am: Changed flag name to DBUS_USE_CSC
6574
6575 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6576
6577         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6578         * mono/doc/*: Added documentation framework
6579         * configure.in: Added monodoc check
6580         * README: Added description of mono configure flags
6581
6582 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6583
6584         * doc/dbus-specification.xml: Added a "Required" column to the 
6585         header fields table and changed the "zero or more" verbage in
6586         the above paragraph to read "The header must contain the required 
6587         named header fields and zero or more of the optional named header 
6588         fields".
6589         * test/data/invalid-messages/*.message: Added the required PATH 
6590         named header field to the tests so that they don't fail on 
6591         'Missing path field'
6592
6593 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6594
6595         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6596         the stack by implicitly defining variable and parameter types and
6597         removing the hack of defining C pointers as python objects and later
6598         casting them.
6599
6600 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6601
6602         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6603
6604 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6605
6606         * mono/DBusType/Dict.cs: Handle empty dicts
6607         * mono/DBusType/Array.cs: Handle empty arrays
6608         * mono/Arguments.cs: Handle empty arguments
6609
6610 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6611
6612         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6613         field
6614
6615 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6616
6617         * test/data/valid-messages/standard-*.message: Update message
6618         test scripts to new header field names.
6619
6620 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6621
6622         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6623         overflow to times_we_did_each_thing array which would chop off the
6624         first character of the failure_dir string. Increased the size of
6625         the array to 7 to reflect the number of random mutation functions
6626         we have.
6627
6628 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6629
6630         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6631         unix_server->watch here, it is unreffed in disconnect.
6632         (_dbus_server_new_for_tcp_socket): convert NULL host to
6633         "localhost" here so we don't append NULL to address.
6634         
6635         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6636         various addresses, including tcp with no explicit host.
6637
6638 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6639
6640         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6641         fix incorrect setting of .name_offset in the HeaderField (it was
6642         off by two bytes, positioned right after the name and typecode)
6643
6644         * bus/bus.c (bus_context_new, bus_context_unref): test before
6645         calling dbus_server_free_data_slot and _dbus_user_database_unref
6646         in case of an error.
6647
6648         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6649         by libdbus-gtool.
6650
6651 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6652
6653         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6654         _dbus_poll() instead of select().
6655
6656 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6657
6658         * bus/main.c (signal_handler): Reload the configuration files
6659         on SIGHUP.
6660         (main): Set up our SIGHUP handler.
6661
6662         * bus/bus.c (struct BusContext): Store the config file, user and
6663         fork flag in the BusContext.
6664         (process_config_first_time_only): Added.  Contains the code
6665         (previously in bus_context_new) for setting up the BusContext from
6666         the BusConfigParser that should only be run the first time the
6667         config files are read.
6668         (process_config_every_time): Added.  Contains the code (previously
6669         in bus_context_new) for setting up the BusContext from the
6670         BusConfigParser that should be run every time the config files are
6671         read.
6672         (load_config): Added.  Builds a BusConfigParser from the config
6673         files and passes the resulting structure off to
6674         process_config_first_time_only (assuming this is the first time)
6675         and process_config_every_time.
6676         (bus_context_new): All of the config-related code has been moved
6677         to process_config_first_time_only and process_config_every_time.
6678         Now this function just does the non-config-related initializations
6679         and calls load_config.
6680         (bus_context_reload_config): Added.
6681
6682 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6683
6684         * bus/driver.c (bus_driver_handle_get_service_owner):
6685         implement a GetServiceOwner method.
6686         * doc/dbus-specification.xml: document it.
6687         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6688         
6689         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6690         implement, using the bus GetServiceOwner method.
6691
6692         * test/glib/test-dbus-glib.c:
6693         use dbus_gproxy_new_for_service_owner so that we can receive the
6694         signal. 
6695
6696 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6697
6698         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6699         dbus/dbus-message.c, dbus/dbus-protocol.h
6700         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6701
6702         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6703         dbus/dbus-message.c, dbus/dbus-protocol.h
6704         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6705
6706         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6707         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6708         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6709
6710         * doc/dbus-specification.xml (Header Fields Table):
6711         s/SERVICE/DESTINATION
6712         s/SENDER_SERVICE/SENDER
6713
6714
6715 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6716
6717         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6718         a few seconds.
6719
6720 2004-04-13  Michael Meeks  <michael@ximian.com>
6721
6722         * glib/dbus-gobject.c (handle_introspect): split out
6723         (introspect_properties): this.
6724         (handle_introspect): implement this.
6725
6726         * test/glib/Makefile.am: use the absolute path so the bus
6727         daemon's chdir ("/") doesn't kill us dead.
6728
6729         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6730
6731 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6732
6733         * bus/config-parser.c (struct BusConfigParser): Added
6734         included_files field.
6735         (seen_include): Added.  Checks whether or not a file has already
6736         been included by any parent BusConfigParser.
6737         (bus_config_parser_new): Copy the parent's included_files.
6738         (include_file): Track which files have been included, and fail on
6739         circular inclusions.
6740         (process_test_valid_subdir): Changed printf to report if we are
6741         testing valid or invalid conf files.
6742         (all_are_equiv): Changed printf to be a bit clearer about
6743         what we are actually doing.
6744         (bus_config_parser_test): Test invalid configuration files.
6745
6746 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6747
6748         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6749         argument.  If non-null, the newly-constructed BusConfigParser will
6750         be initialized with the parent's BusLimits instead of the default
6751         values.
6752         (include_file): When including a config file, pass in
6753         the current parser as the parent and then copy the BusLimits
6754         from the included BusConfigParser pack to the current parser.
6755         (process_test_valid_subdir): Renamed from process_test_subdir.
6756         (process_test_equiv_subdir): Added.  Walks through a directory,
6757         descending into each subdirectory and loading the config files
6758         it finds there.  If any subdirectory contains two config files
6759         that don't produce identical BusConfigParser structs, fail.
6760         For now, the BusConfigParser's BusPolicies are not compared.
6761         (bus_config_parser_test): Call both process_test_valid_subdir and
6762         process_test_equiv_subdir.
6763
6764         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6765         argument and pass it along to the call to bus_config_parser_new.
6766         Also made a few small changes to allow this code to compile.
6767
6768         * bus/config-loader-expat.c (bus_config_load): Take a parent
6769         argument and pass it along to the call to bus_config_parser_new.
6770
6771         * bus/bus.c (bus_context_new): Load the config file
6772         with a NULL parent argument.
6773
6774 2004-03-29  Michael Meeks  <michael@ximian.com>
6775
6776         * glib/dbus-gobject.c (introspect_properties): split
6777         out, fix mangled 'while' flow control.
6778         (introspect_signals): implement.
6779         (handle_introspect): update.
6780
6781 2004-03-29  Michael Meeks  <michael@ximian.com>
6782
6783         * glib/dbus-gobject.c (set_object_property): split out / 
6784         re-work, use the property type, and not the message type(!)
6785         (get_object_property): ditto.
6786
6787         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6788         (dbus_gvalue_marshal): make this code re-usable, needed
6789         for signals too, also on both proxy and server side.
6790         Re-write for more efficiency / readability.
6791
6792 2004-03-29  Michael Meeks  <michael@ximian.com>
6793
6794         * dbus/dbus-message.c
6795         (dbus_message_new_error_printf): impl.
6796
6797         * dbus/dbus-connection.c
6798         (dbus_connection_unregister_object_path): fix warning.
6799
6800         * configure.in: fix no-mono-installed situation.
6801
6802 2004-03-27  Havoc Pennington  <hp@redhat.com>
6803
6804         Patch from Timo Teräs:
6805         
6806         * tools/dbus-send.c (main): if --print-reply, assume type is
6807         method call; support boolean type args
6808         
6809         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6810         bunch of memleak and logic bugs
6811         
6812 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6813
6814         * mono/Arguments.cs:
6815         * mono/Introspector.cs:
6816         * mono/Handler.cs:
6817         * mono/InterfaceProxy.cs:
6818         * mono/Message.cs
6819         * mono/ProxyBuilder.cs:
6820         * mono/Service.cs:
6821         Added InterfaceProxy class to avoid building proxies for every
6822         object.
6823
6824         * dbus-message.h:
6825         * dbus-message.c (dbus_message_append_args_valist)
6826         (dbus_message_iter_get_object_path)
6827         (dbus_message_iter_get_object_path_array)
6828         (dbus_message_iter_append_object_path)
6829         (dbus_message_iter_append_object_path_array):
6830         Added object_path iter functions to handle OBJECT_PATH arguments
6831         
6832 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6833
6834         First checkin of mono bindings.
6835         * configure.in:
6836         * Makefile.am:
6837         Build stuff for the bindings
6838         * dbus-sharp.pc.in: Added for pkgconfig
6839         
6840 2004-03-21  Havoc Pennington  <hp@redhat.com>
6841
6842         * test/test-service.c (main): remove debug spew
6843
6844 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6845
6846         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6847         arrays
6848
6849         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6850         (dbus_message_iter_init_array_iterator)
6851         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6852         indicate whether the iterator is empty
6853
6854         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6855         warnings
6856
6857 2004-03-19  Havoc Pennington  <hp@redhat.com>
6858
6859         * NEWS: 0.21 updates
6860
6861         * configure.in: 0.21
6862
6863         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6864         
6865         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6866         you don't need pyrex to make dist
6867
6868         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6869         sources; run moc
6870         
6871 2004-03-18  Richard Hult  <richard@imendio.com>
6872
6873         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
6874         (dbus_message_set_auto_activation): Add doxygen docs.
6875
6876 2004-03-16  Richard Hult  <richard@imendio.com>
6877
6878         * bus/activation.c: (bus_activation_service_created),
6879         (bus_activation_send_pending_auto_activation_messages),
6880         (bus_activation_activate_service):
6881         * bus/activation.h:
6882         * bus/dispatch.c: (bus_dispatch),
6883         (check_nonexistent_service_auto_activation),
6884         (check_service_auto_activated),
6885         (check_segfault_service_auto_activation),
6886         (check_existent_service_auto_activation), (bus_dispatch_test):
6887         * bus/driver.c: (bus_driver_handle_activate_service):
6888         * bus/services.c: (bus_registry_acquire_service):
6889         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6890         (dbus_message_get_auto_activation):
6891         * dbus/dbus-message.h:
6892         * dbus/dbus-protocol.h: Implement auto-activation.
6893         
6894         * doc/dbus-specification.xml: Add auto-activation to the spec.
6895
6896 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6897
6898         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6899         fix a bug with CUSTOM types.
6900
6901         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6902         a unit test for this bug (used to fail).
6903
6904 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6905
6906         * bus/activation.c:
6907         (babysitter_watch_callback): notify all pending activations waiting for
6908           the same exec that the activation failed.
6909         (bus_activation_activate_service): shortcut the activation if we 
6910           already waiting for the same executable to start up.
6911
6912 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6913
6914         * bus/activation.c: 
6915         - Added service file reloading. 
6916           Each service files directory is kept in an hash table in 
6917           BusActivation and each BusActivationEntry knows what .service-file it
6918           was read from. So when you try to activate a service the bus will 
6919           check if it's been updated, removed or if new .service-files has 
6920           been installed.
6921         - Test code at the bottom for the service file reloading.
6922         * bus/test-main.c: (main):
6923         * bus/test.h:
6924         - added service reloading test.
6925         * dbus/dbus-sysdeps.c: 
6926         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6927
6928 2004-03-08  Michael Meeks  <michael@ximian.com>
6929
6930         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
6931         bail immediately if disconnected, to avoid busy loop.
6932
6933         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6934         cleanup cut/paste/inefficiency.
6935
6936 2004-03-01  David Zeuthen  <david@fubar.dk>
6937
6938         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6939         bug where args were used twice. This bug resulted in a segfault
6940         on a Debian/PPC system when starting the messagebus daemon. Include
6941         dbus-sysdeps.h for DBUS_VA_COPY
6942
6943         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6944
6945         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6946         appropriate va_copy implementation. From GLib
6947         
6948 2004-02-24  Joe Shaw  <joe@ximian.com>
6949
6950         * bus/services.c (bus_registry_acquire_service): We need to pass
6951         in the service name to dbus_set_error() to prevent a crash.
6952
6953 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6954
6955         * AUTHORS: Reveal my True identity.
6956
6957 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6958
6959         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6960         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6961
6962 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6963
6964         * doc/TODO: Added not about better error check of configuration files.
6965
6966 2003-12-02  Richard Hult  <richard@imendio.com>
6967
6968         * Update AFL version to 2.0 throughout the source files to reflect
6969         the update that was done a while ago.
6970
6971 2003-12-02  Richard Hult  <richard@imendio.com>
6972
6973         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6974         wrote_dict_key to FALSE on the iter that the dict is appended to,
6975         just like when appending other types. Fixes a bug where a dict
6976         couldn't be put inside a dict.
6977         (dbus_message_iter_append_dict_key): Fix typo in warning message.
6978         (message_iter_test, _dbus_message_test): Add test case for dict
6979         inside dict.
6980
6981 2003-12-01  David Zeuthen  <david@fubar.dk>
6982
6983         * python/dbus.py: Add the actual message when calling the reciever
6984         of a signal such that parameters can be inspected. Add the method
6985         remove_signal_receiver
6986         
6987 2003-11-26  Mikael Hallendal  <micke@imendio.com>
6988
6989         * bus/*.[ch]:
6990         * dbus/*.[ch]:
6991         * glib/*.[ch]: Made ref functions return the pointer
6992
6993 2003-11-25  Zack Rusin  <zack@kde.org>
6994
6995         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6996
6997         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
6998         wrappers,
6999
7000         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7001         the Integrator and to better fit with the server,
7002
7003 2003-11-24  Zack Rusin  <zack@kde.org>
7004
7005         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7006         the integrator handles it now
7007
7008         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7009         since QTimer wasn't really meant to be used the way DBusTimeout is
7010
7011 2003-11-24  Zack Rusin  <zack@kde.org>
7012
7013         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7014         Integrator class which integrates D-BUS with the Qt event loop,
7015
7016         * qt/connection.h, qt/connection.cpp: Move all the code which
7017         was dealing with D-BUS integration to the Integrator class,
7018         and start using Integrator,
7019
7020 2003-11-23  Zack Rusin  <zack@kde.org>
7021
7022         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7023         wrapper
7024
7025         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7026         switching namespaces to DBusQt, reworking the class,
7027
7028         * Makefile.cvs: switching dependencies so that it matches KDE 
7029         schematics,
7030         
7031         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7032         the library
7033
7034 2003-11-19  Havoc Pennington  <hp@redhat.com>
7035
7036         * NEWS: update
7037
7038         * configure.in: bump version to 0.20
7039
7040         * configure.in (have_qt): add yet another place to look for qt
7041         (someone hand trolltech a .pc file...)
7042
7043 2003-11-01  Havoc Pennington  <hp@redhat.com>
7044
7045         * doc/dbus-specification.xml: add state machine docs on the auth
7046         protocol; just a first draft, I'm sure it's wrong.      
7047
7048 2003-10-28  David Zeuthen  <david@fubar.dk>
7049
7050         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7051         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7052         
7053 2003-10-28  Havoc Pennington  <hp@redhat.com>
7054
7055         * dbus/dbus-message.c (get_next_field): delete unused function
7056
7057 2003-10-28  Havoc Pennington  <hp@redhat.com>
7058
7059         * bus/expirelist.c (do_expiration_with_current_time): detect
7060         failure of the expire_func due to OOM
7061
7062         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7063
7064         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7065         NoReply error that's now created by the bus when the service exits
7066
7067 2003-10-28  Havoc Pennington  <hp@redhat.com>
7068
7069         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7070         tests for set_path, set_interface, set_member, etc.
7071
7072         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7073
7074         * dbus/dbus-message.c (set_string_field): always just delete and
7075         re-append the field; accept NULL for deletion
7076         (re_align_fields_recurse): reimplement
7077         
7078 2003-10-26  Havoc Pennington  <hp@redhat.com>
7079
7080         * dbus/dbus-connection.c: fix docs to properly describe the
7081         disconnected message
7082         (_dbus_connection_notify_disconnected): remove this function; 
7083         we can't synchronously add the disconnected message, we have to 
7084         do it after we've queued any remaining real messages
7085         (_dbus_connection_get_dispatch_status_unlocked): queue the
7086         disconnect message only if the transport has finished queueing all
7087         its real messages and is disconnected.
7088         (dbus_connection_disconnect): update the dispatch status here
7089
7090 2003-10-22  Havoc Pennington  <hp@redhat.com>
7091
7092         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7093
7094         * bus/connection.c (bus_transaction_send_from_driver): set the
7095         destination to the connection's base service
7096
7097 2003-10-20  Havoc Pennington  <hp@redhat.com>
7098
7099         hmm, make check is currently not passing.
7100         
7101         * doc/dbus-specification.xml: add requirement that custom type
7102         names follow the same rules as interface names.
7103
7104         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7105         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7106         'map'
7107
7108         * doc/dbus-specification.xml: update type codes to match
7109         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7110         CUSTOM. Add type OBJECT_PATH to the spec.
7111
7112 2003-10-17  Havoc Pennington  <hp@redhat.com>
7113
7114         * bus/driver.c (create_unique_client_name): use "." as separator
7115         in base service names instead of '-'
7116
7117         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7118         byte at the end of the string
7119
7120         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7121         optimization macros since string validation seems to be a slow
7122         point.
7123         
7124         * doc/dbus-specification.xml: restrict valid
7125         service/interface/member/error names. Add test suite code for the
7126         name validation.
7127
7128         * dbus/dbus-string.c: limit service/interface/member/error names 
7129         to [0-9][A-Z][a-z]_
7130
7131         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7132         format arg to verbose spew
7133
7134         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7135         memory, return instead of g_error
7136
7137         * test/test-service.c (path_message_func): support emitting a
7138         signal on request
7139
7140         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7141         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7142         assuming the activation bus was the session bus so that services
7143         started manually will still register.
7144         (init_connections_unlocked): fix so that in OOM situation we get
7145         the same semantics when retrying the function
7146         
7147         * test/test-service.c (main): change to use path registration, to
7148         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7149         than DBUS_BUS_SESSION
7150
7151 2003-10-16  Havoc Pennington  <hp@redhat.com>
7152
7153         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7154
7155         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7156         coverage of the tests
7157         (coverage-report.txt): don't move the .da and .bbg files around
7158
7159 2003-10-16  Havoc Pennington  <hp@redhat.com>
7160
7161         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7162         to put there
7163
7164 2003-10-16  Havoc Pennington  <hp@redhat.com>
7165
7166         * bus/connection.c (bus_pending_reply_expired): either cancel or
7167         execute, not both
7168         (bus_connections_check_reply): use unlink, not remove_link, as we
7169         don't want to free the link; fixes double free mess
7170
7171         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7172         where no reply was received
7173
7174         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7175         fix a refcount leak
7176
7177         * bus/signals.c (match_rule_matches): add special cases for the
7178         bus driver, so you can match on sender/destination for it.
7179
7180         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7181         DBUS_PRINT_BACKTRACE is set
7182
7183         * dbus/dbus-internals.c: add pid to assertion failure messages
7184
7185         * dbus/dbus-connection.c: add message type code to the debug spew
7186
7187         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7188         sender=foo not service=foo
7189
7190         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7191         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7192         DBUS_ACTIVATION_ADDRESS instead
7193
7194         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7195         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7196
7197         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7198         context struct
7199
7200         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7201         (dbus_message_iter_get_object_path_array): new function (half
7202         finished, disabled for the moment)
7203         
7204         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7205         DBUS_MESSAGE_TYPE_ERROR
7206
7207         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7208         avoid redirecting stderr to /dev/null
7209         (babysit): close stdin if not doing the "exit_with_session" thing
7210
7211         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7212         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7213         stdout/stdin, so things don't get confused
7214         
7215         * bus/system.conf.in: fix to allow replies, I modified .conf
7216         instead of .conf.in again.
7217
7218 2003-10-14  David Zeuthen  <david@fubar.dk>
7219
7220         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7221         argtype to arg_type when raising unknown arg type exception.
7222         Changed type list to reflect the changes in dbus-protocol.h so 
7223         the bindings actually work.
7224
7225 2003-10-14  Havoc Pennington  <hp@redhat.com>
7226
7227         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7228         to have a bug keeping it from outputting the .da files sometimes
7229         (string_get_string): don't append garbage nul bytes to the string.
7230
7231 2003-10-15  Seth Nickell  <seth@gnome.org>
7232
7233         * python/Makefile.am:
7234
7235         Include dbus_h_wrapper.h in the dist tarball.
7236
7237 2003-10-14  Havoc Pennington  <hp@redhat.com>
7238
7239         * bus/bus.c (bus_context_check_security_policy): revamp this to
7240         work more sanely with new policy-based requested reply setup
7241
7242         * bus/connection.c (bus_transaction_send_from_driver): set bus
7243         driver messages as no reply
7244
7245         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7246         requested_reply attribute on allow/deny rules
7247
7248         * bus/system.conf: add <allow requested_reply="true"/>
7249
7250         * bus/driver.c (bus_driver_handle_message): fix check for replies
7251         sent to the bus driver, which was backward. How did this ever work
7252         at all though? I think I'm missing something.
7253
7254         * dbus/dbus-message.c (decode_header_data): require error and
7255         method return messages to have a reply serial field to be valid
7256         (_dbus_message_loader_queue_messages): break up this function;
7257         validate that reply serial and plain serial are nonzero; 
7258         clean up the OOM/error handling.
7259         (get_uint_field): don't return -1 from this
7260         (dbus_message_create_header): fix signed/unsigned bug
7261
7262         * bus/connection.c (bus_connections_expect_reply): save serial of
7263         the incoming message, not reply serial
7264
7265 2003-10-14  Havoc Pennington  <hp@redhat.com>
7266
7267         * bus/connection.c: implement pending reply tracking using
7268         BusExpireList
7269
7270         * bus/bus.c (bus_context_check_security_policy): verify that a
7271         reply is pending in order to allow a reply to be sent. Deny 
7272         messages of unknown type.
7273
7274         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7275
7276         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7277         (bus_context_get_reply_timeout): new
7278
7279 2003-10-13  Seth Nickell  <seth@gnome.org>
7280
7281         * python/Makefile.am:
7282
7283         Pass "make distcheck": remove a couple files from DIST_FILES
7284         that weren't included in the final version.
7285
7286 2003-10-12  Havoc Pennington  <hp@pobox.com>
7287
7288         Added test code that 1) starts an actual bus daemon and 2) uses
7289         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7290         more testing possible, but this is the basic framework.
7291         
7292         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7293         empty proxy lists from the proxy list hash
7294
7295         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7296         couple of return_if_fail checks
7297
7298         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7299         to allocate, so everything is cleared to NULL as it should be.
7300
7301         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7302         source as data to dbus_connection_set_timeout_functions() as the 
7303         timeout functions expected
7304
7305         * test/glib/run-test.sh: add a little script to start up a message
7306         bus and run tests using it
7307
7308         * tools/dbus-launch.1: updates
7309
7310         * tools/dbus-launch.c (main): add --config-file option
7311
7312         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7313         that could never be reached.
7314
7315         * dbus/dbus-message.c (dbus_message_new_method_return) 
7316         (dbus_message_new_error, dbus_message_new_signal): set the
7317         no-reply-expected flag on all these. Redundant, but may
7318         as well be consistent.
7319
7320 2003-10-11  Havoc Pennington  <hp@pobox.com>
7321
7322         * test/decode-gcov.c (function_solve_graph): make broken block
7323         graph a nonfatal error since it seems to be broken. Need to debug
7324         this.
7325
7326         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7327         can't just check type > INVALID < LAST anymore
7328
7329         * dbus/dbus-message.c (dbus_message_get_signature): new function
7330         (dbus_message_has_signature): new function
7331         (struct DBusMessage): add signature field (right now it isn't sent
7332         over the wire, just generated on the fly)
7333         (dbus_message_copy): copy the signature, and init strings to
7334         proper length to avoid some reallocs
7335         (dbus_message_iter_init_array_iterator): return void, since it
7336         can't fail
7337         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7338         (_dbus_message_loader_queue_messages): add silly temporary hack to
7339         fill in message->signature on load
7340
7341         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7342         characters, so they are relatively human-readable.
7343
7344 2003-10-11  Havoc Pennington  <hp@pobox.com>
7345
7346         * dbus/dbus-message.c (_dbus_message_test): add more test
7347         coverage, but #if 0 for now since they uncover a bug 
7348         not fixed yet; I think in re_align_field_recurse()
7349         (re_align_field_recurse): add FIXME about broken assertion
7350
7351         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7352
7353         * bus/connection.c: share a couple code bits with expirelist.c
7354
7355         * bus/expirelist.h, bus/expirelist.c: implement a generic
7356         expire-items-after-N-seconds facility, was going to share between
7357         expiring connections and replies, decided not to use for expiring
7358         connections for now.
7359
7360         * COPYING: include AFL 2.0 (still need to change all the file headers)
7361
7362 2003-10-09  Havoc Pennington  <hp@redhat.com>
7363
7364         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7365         gcc 3.3. Not that we do anything about it yet.
7366
7367         * bus/signals.c (bus_match_rule_parse): impose max length on the
7368         match rule text
7369
7370         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7371
7372 2003-10-09  Havoc Pennington  <hp@redhat.com>
7373
7374         Make matching rules theoretically work (add parser).
7375         
7376         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7377         the case where destination is explicitly specified as bus driver
7378         and someone else is eavesdropping.
7379         
7380         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7381         definition of eavesdropping and assertion
7382
7383         * tools/dbus-send.c (main): use dbus_message_type_from_string
7384
7385         * bus/signals.c (bus_match_rule_parse): implement
7386
7387         * dbus/dbus-message.c (dbus_message_type_from_string): new
7388
7389         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7390
7391 2003-10-02  Havoc Pennington  <hp@pobox.com>
7392
7393         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7394         dbus_gproxy_oneway_call
7395
7396         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7397         (dbus_server_setup_with_g_main): fix to allow calling them more
7398         than once on the same args
7399         (dbus_bus_get_with_g_main): new function
7400
7401 2003-10-02  Havoc Pennington  <hp@redhat.com>
7402
7403         * doc/dbus-tutorial.xml: write some stuff
7404
7405 2003-09-29  Havoc Pennington  <hp@pobox.com>
7406
7407         * configure.in: split checks for Doxygen from XML docs, check for
7408         xmlto
7409
7410         * doc/Makefile.am: XML-ify all the docs, and add a blank
7411         dbus-tutorial.xml
7412
7413 2003-09-29  Havoc Pennington  <hp@pobox.com>
7414
7415         * Merge dbus-object-names branch. To see the entire patch 
7416         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7417         it's huuuuge though.
7418         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7419         
7420 2003-09-28  Havoc Pennington  <hp@pobox.com>
7421
7422         * HACKING: update to reflect new server
7423
7424 2003-09-26  Seth Nickell  <seth@gnome.org>
7425
7426         * python/dbus.py:
7427         * python/examples/example-signals.py:
7428
7429         Start implementing some notions of signals. The API
7430         is really terrible, but they sort of work (with the
7431         exception of being able to filter by service, and to
7432         transmit signals *as* a particular service). Need to
7433         figure out how to make messages come from the service
7434         we registered :-(
7435         
7436         * python/dbus_bindings.pyx.in:
7437
7438         Removed duplicate message_handler callbacks.
7439         
7440 2003-09-25  Havoc Pennington  <hp@redhat.com>
7441
7442         * bus/session.conf.in: fix my mess
7443
7444 2003-09-25  Havoc Pennington  <hp@pobox.com>
7445
7446         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7447
7448 2003-09-25  Seth Nickell  <seth@gnome.org>
7449
7450         * python/examples/example-service.py:
7451
7452         Johan notices complete wrong code in example-service, but
7453         completely wrong in a way that works exactly the same (!).
7454         Johan is confused, how could this possibly work? Example
7455         code fails to serve purpose of making things clear.
7456         Seth fixes.
7457
7458 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7459
7460         * doc/dbus-specification.sgml: don't require header fields
7461         to be 4-byte aligned and specify that fields should be
7462         distinguished from padding by the fact that zero is not
7463         a valid field name.
7464         
7465         * doc/TODO: remove re-alignment item and add item to doc
7466         the OBJECT_PATH type.
7467         
7468         * dbus/dbus-message.c:
7469         (HeaderField): rename the original member to value_offset
7470         and introduce a name_offset member to keep track of where
7471         the field actually begins.
7472         (adjust_field_offsets): remove.
7473         (append_int_field), (append_uint_field),
7474         (append_string_field): don't align the start of the header
7475         field to a 4-byte boundary.
7476         (get_next_field): impl finding the next marhsalled field
7477         after a given field.
7478         (re_align_field_recurse): impl re-aligning a number of
7479         already marshalled fields.
7480         (delete_field): impl deleting a field of any type and
7481         re-aligning any following fields.
7482         (delete_int_or_uint_field), (delete_string_field): remove.
7483         (set_int_field), (set_uint_field): no need to re-check
7484         that we have the correct type for the field.
7485         (set_string_field): ditto and impl re-aligning any
7486         following fields.
7487         (decode_header_data): update to take into account that
7488         the fields aren't 4-byte aligned any more and the new
7489         way to distinguish padding from header fields. Also,
7490         don't exit when there is too much header padding.
7491         (process_test_subdir): print the directory.
7492         (_dbus_message_test): add test to make sure a following
7493         field is re-aligned correctly after field deletion.
7494         
7495         * dbus/dbus-string.[ch]:
7496         (_dbus_string_insert_bytes): rename from insert_byte and
7497         allow the insert of multiple bytes.
7498         (_dbus_string_test): test inserting multiple bytes.
7499
7500         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7501         warning note to docs about having to re-align any
7502         marshalled values following the string.
7503         
7504         * dbus/dbus-message-builder.c:
7505         (append_string_field), (_dbus_message_data_load):
7506         don't align the header field.
7507         
7508         * dbus/dbus-auth.c: (process_test_subdir): print the
7509         directory.
7510         
7511         * test/break-loader.c: (randomly_add_one_byte): upd. for
7512         insert_byte change.
7513         
7514         * test/data/invalid-messages/bad-header-field-alignment.message:
7515         new test case.
7516         
7517         * test/data/valid-messages/unknown-header-field.message: shove
7518         a dict in the unknown field.
7519
7520 2003-09-25  Seth Nickell  <seth@gnome.org>
7521
7522         * python/dbus.py:
7523         * python/dbus_bindings.pyx.in:
7524
7525         Handle return values.
7526         
7527         * python/examples/example-client.py:
7528         * python/examples/example-service.py:
7529
7530         Pass back return values from the service to the client.
7531         
7532 2003-09-24  Seth Nickell  <seth@gnome.org>
7533
7534         * python/dbus.py:
7535
7536         Connect Object methods (when you are sharing an object) up... pass
7537         in a list of methods to be shared. Sharing all the methods just
7538         worked out too weird. You can now create nice Services over the
7539         DBus in Python. :-)
7540         
7541         * python/dbus_bindings.pyx.in:
7542
7543         Keep references to user_data tuples passed into C functions so 
7544         Python doesn't garbage collect on us.
7545
7546         Implement MethodReturn and Error subclasses of Message for creating
7547         DBusMessage's of those types.
7548         
7549         * python/examples/example-client.py:
7550         * python/examples/example-service.py:
7551
7552         Simple example code showing both how create DBus services and objects,
7553         and how to use them.
7554
7555 2003-09-23  Havoc Pennington  <hp@pobox.com>
7556
7557         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7558
7559 2003-09-23  Havoc Pennington  <hp@redhat.com>
7560
7561         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7562         (dbus_gproxy_disconnect_signal): implement
7563         (dbus_gproxy_manager_remove_signal_match): implement
7564         (dbus_gproxy_manager_add_signal_match): implement
7565         (dbus_gproxy_oneway_call): implement
7566
7567 2003-09-23  Havoc Pennington  <hp@pobox.com>
7568
7569         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7570         subclass. This means dropping the transparent thread safety of the
7571         proxy; you now need a separate proxy per-thread, or your own
7572         locking on the proxy. Probably right anyway.
7573         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7574
7575 2003-09-22  Havoc Pennington  <hp@redhat.com>
7576
7577         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7578
7579 2003-09-21  Seth Nickell  <seth@gnome.org>
7580
7581         First checkin of the Python bindings.
7582         
7583         * python/.cvsignore:
7584         * python/Makefile.am:
7585         * python/dbus_bindings.pyx.in:
7586         * python/dbus_h_wrapper.h:
7587
7588         Pieces for Pyrex to operate on, building a dbus_bindings.so
7589         python module for low-level access to the DBus APIs.
7590         
7591         * python/dbus.py:
7592
7593         High-level Python module for accessing DBus objects.
7594
7595         * configure.in:
7596         * Makefile.am:
7597
7598         Build stuff for the python bindings.
7599
7600         * acinclude.m4:
7601
7602         Extra macro needed for finding the Python C header files.
7603
7604 2003-09-21  Havoc Pennington  <hp@pobox.com>
7605
7606         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7607         implementing the proxy manager, didn't get very far.
7608
7609         * dbus/dbus-bus.c (dbus_bus_add_match): new
7610         (dbus_bus_remove_match): new
7611
7612         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7613         path_name argument; adjust the other not-yet-implemented 
7614         gproxy constructors to be what I think they should be.
7615
7616 2003-09-21  Havoc Pennington  <hp@pobox.com>
7617
7618         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7619         by default for message bus connections.
7620
7621         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7622         exit_on_disconnect flag is set and we process the disconnected
7623         signal.
7624         (dbus_connection_set_exit_on_disconnect): new function
7625
7626 2003-09-21  Havoc Pennington  <hp@pobox.com>
7627
7628         Get matching rules mostly working in the bus; only actually
7629         parsing the rule text remains. However, the client side of
7630         "signal connections" hasn't been started, this patch is only the
7631         bus side.
7632         
7633         * dbus/dispatch.c: fix for the matching rules changes
7634         
7635         * bus/driver.c (bus_driver_handle_remove_match)
7636         (bus_driver_handle_add_match): send an ack reply from these
7637         method calls
7638
7639         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7640         arguments, reported by Seth Nickell
7641
7642         * bus/config-parser.c (append_rule_from_element): support
7643         eavesdrop=true|false attribute on policies so match rules 
7644         can be prevented from snooping on the system bus.
7645
7646         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7647         and "destination" in attribute names; fix some docs bugs; 
7648         add eavesdrop=true|false attribute
7649
7650         * bus/driver.c (bus_driver_handle_add_match)
7651         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7652         messages
7653
7654         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7655         rid of broadcast service concept, signals are just always broadcast
7656
7657         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7658         mostly implement matching rules stuff (currently only exposed as signal
7659         connections)
7660
7661 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7662
7663         * doc/dbus-specification.sgml: Change the header field name
7664         to be an enum and update the rest of the spec to reference
7665         the fields using the conventinal name.
7666
7667         * dbus/dbus-protocol.h: update to reflect the spec.
7668
7669         * doc/TODO: add item to remove the 4 byte alignment requirement.
7670         
7671         * dbus/dbus-message.c: Remove the code to generalise the
7672         header/body length and serial number header fields as named
7673         header fields so we can reference field names using the 
7674         protocol values.
7675         (append_int_field), (append_uint_field), (append_string_field):
7676         Append the field name as a byte rather than four chars.
7677         (delete_int_or_uint_field), (delete_string_field): reflect the
7678         fact that the field name and typecode now occupy 4 bytes instead
7679         of 8.
7680         (decode_string_field), (decode_header_data): update to reflect
7681         protocol changes and move the field specific encoding from
7682         decode_string_field() back into decode_header_data().
7683         
7684         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7685         Add utility to aid debugging.
7686         
7687         * dbus/dbus-message-builder.c:
7688         (append_string_field), (_dbus_message_data_load): Update to
7689         reflect protocol changes; Change the FIELD_NAME directive
7690         to HEADER_FIELD and allow it to take the field's conventional
7691         name rather than the actual value.
7692         
7693         * test/data/*/*.message: Update to use HEADER_FIELD instead
7694         of FIELD_NAME; Always align the header on an 8 byte boundary
7695         *before* updating the header length.
7696
7697 2003-09-15  Havoc Pennington  <hp@pobox.com>
7698
7699         * dbus/dbus-pending-call.c: add the get/set object data
7700         boilerplate as for DBusConnection, etc. Use generic object data
7701         for the notify callback.
7702
7703         * glib/dbus-gparser.c (parse_node): parse child nodes
7704
7705         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7706         
7707         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7708         contain functions shared between the convenience lib and the
7709         installed lib
7710
7711         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7712         -export-symbols-regex to the GLib library
7713
7714         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7715         fix the locking in here, and add a default handler for
7716         Introspect() that just returns sub-nodes.
7717
7718 2003-09-14  Havoc Pennington  <hp@pobox.com>
7719
7720         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7721         rather than gfoo consistent
7722
7723         * glib/dbus-gproxy.h: delete for now, move contents to
7724         dbus-glib.h, because the include files don't work right since we
7725         aren't in the dbus/ subdir.
7726         
7727         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7728         (dbus_gproxy_end_call): finish
7729         (dbus_gproxy_begin_call): finish
7730
7731         * glib/dbus-gmain.c (dbus_set_g_error): new
7732
7733         * glib/dbus-gobject.c (handle_introspect): include information
7734         about child nodes in the introspection
7735
7736         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7737         function to help in implementation of introspection
7738
7739         * dbus/dbus-object-tree.c
7740         (_dbus_object_tree_list_registered_and_unlock): new function
7741
7742 2003-09-12  Havoc Pennington  <hp@pobox.com>
7743
7744         * glib/dbus-gidl.h: add common base class for all the foo_info
7745         types
7746
7747         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7748         similar to kdcop
7749
7750         * test/Makefile.am: try test srcdir -ef . in addition to test
7751         srcdir = ., one of them should work (yeah lame)
7752         
7753         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7754         library
7755         
7756         * glib/dbus-gparser.h: make description_load routines return
7757         NodeInfo* not Parser*
7758
7759         * Makefile.am (SUBDIRS): build test dir after all library dirs
7760
7761         * configure.in: add GTK+ detection
7762
7763 2003-09-07  Havoc Pennington  <hp@pobox.com>
7764
7765         * Make Doxygen contented.
7766
7767 2003-09-07  Havoc Pennington  <hp@pobox.com>
7768
7769         * doc/dbus-specification.sgml: more updates
7770
7771 2003-09-06  Havoc Pennington  <hp@pobox.com>
7772
7773         * doc/dbus-specification.sgml: partial updates
7774
7775         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7776         zillionth time; hopefully I edited the right file this time.
7777
7778         * bus/config-parser.c (append_rule_from_element): support
7779         send_type, send_path, receive_type, receive_path
7780
7781         * bus/policy.c: add message type and path to the list of things
7782         that can be "firewalled"
7783
7784 2003-09-06  Havoc Pennington  <hp@pobox.com>
7785
7786         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7787         (dbus_connection_register_object_path): make this not handle
7788         messages to paths below the given path
7789
7790 2003-09-03  Havoc Pennington  <hp@pobox.com>
7791
7792         * test/glib/Makefile.am: add this with random glib-linked test
7793         programs
7794
7795         * glib/Makefile.am: remove the random test programs from here,
7796         leave only the unit tests
7797
7798         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7799         uscore/javacaps conversion, and fix     
7800         (get_object_property, set_object_property): change to .NET
7801         convention for mapping props to methods, set_FooBar/get_FooBar, 
7802         since one language has such a convention we may as well copy it. 
7803         Plus real methods in either getFooBar or get_foo_bar style won't 
7804         collide with this convention.
7805
7806 2003-09-01  Havoc Pennington  <hp@pobox.com>
7807
7808         * glib/dbus-gparser.c: implement
7809
7810         * glib/dbus-gobject.c: start implementing skeletons support
7811
7812         * configure.in: when disabling checks/assert, also define
7813         G_DISABLE_ASSERT and G_DISABLE_CHECKS
7814
7815 2003-09-01  Havoc Pennington  <hp@pobox.com>
7816
7817         * glib/Makefile.am: rearrange a bunch of files and get "make
7818         check" framework set up
7819
7820 2003-08-31  Havoc Pennington  <hp@pobox.com>
7821
7822         * fix build with --disable-tests
7823
7824 2003-08-30  Havoc Pennington  <hp@pobox.com>
7825
7826         * dbus/dbus-connection.c: purge DBusMessageHandler
7827
7828         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
7829         use callbacks everywhere
7830
7831 2003-08-30  Havoc Pennington  <hp@pobox.com>
7832
7833         * test/data/valid-config-files/system.d/test.conf: change to 
7834         root for the user so warnings don't get printed
7835
7836         * dbus/dbus-message.c: add dbus_message_get_path,
7837         dbus_message_set_path
7838         
7839         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7840         dispatching to a path
7841
7842         * dbus/dbus-string.c (_dbus_string_validate_path): add
7843
7844         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7845         (_dbus_marshal_object_path): implement
7846
7847         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
7848         to contain the path to the target object
7849         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7850         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7851
7852 2003-08-30  Havoc Pennington  <hp@pobox.com>
7853
7854         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7855
7856 2003-08-29  Havoc Pennington  <hp@pobox.com>
7857
7858         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7859         registered
7860         (struct DBusObjectSubtree): shrink this
7861         a lot, since we may have a lot of them
7862         (_dbus_object_tree_free_all_unlocked): implement
7863         (_dbus_object_tree_dispatch_and_unlock): implement
7864
7865 2003-08-29  Havoc Pennington  <hp@pobox.com>
7866
7867         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7868
7869 2003-08-28  Havoc Pennington  <hp@pobox.com>
7870
7871         purge DBusObjectID
7872         
7873         * dbus/dbus-connection.c: port to no ObjectID, create a
7874         DBusObjectTree, rename ObjectTree to ObjectPath in public API
7875
7876         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
7877         everything except UnregisterFunction and MessageFunction
7878         
7879         * dbus/dbus-marshal.c: port away from DBusObjectID, 
7880         add DBUS_TYPE_OBJECT_PATH
7881         
7882         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
7883         dbus/dbus-objectid.[hc]: remove these, we are moving to 
7884         path-based object IDs
7885
7886 2003-08-25  Havoc Pennington  <hp@pobox.com>
7887
7888         Just noticed that dbus_message_test is hosed, I wonder when I
7889         broke that. I thought make check was passing earlier...
7890         
7891         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
7892         container tree, will replace most of dbus-object-registry
7893
7894         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7895         screwup
7896
7897 2003-08-19  Havoc Pennington  <hp@pobox.com>
7898
7899         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7900         (dbus_message_is_error): fix this function
7901
7902         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7903         match
7904
7905         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7906         reflect clarified man page
7907         (bus_client_policy_check_can_send): ditto
7908         
7909         * bus/session.conf.in: fixup
7910
7911         * bus/system.conf.in: fixup
7912
7913 2003-08-18  Havoc Pennington  <hp@redhat.com>
7914
7915         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7916
7917         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7918         dumb bug created earlier (wrong order of args to
7919         decode_header_data())
7920         
7921         * tools/dbus-send.c: port
7922
7923         * tools/dbus-print-message.c (print_message): port
7924
7925         * test/data/*messages: port all messages over
7926         
7927         * dbus/dbus-message-builder.c: support including 
7928         message type
7929         
7930         * bus/driver.c: port over
7931         
7932         * bus/dispatch.c: port over to new stuff
7933
7934         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7935         rename disconnect signal to "Disconnected"
7936
7937 2003-08-17  Havoc Pennington  <hp@pobox.com>
7938
7939         This doesn't compile yet, but syncing up so I can hack on it from
7940         work. What are branches for if not broken code? ;-)
7941         
7942         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7943         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7944         DBUS_HEADER_FIELD_ERROR_NAME
7945         
7946         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7947         for the interface+member pairs
7948         (string_hash): change to use g_str_hash algorithm
7949         (find_direct_function, find_string_function): refactor these to
7950         share most code.
7951         
7952         * dbus/dbus-message.c: port all of this over to support 
7953         interface/member fields instead of name field
7954
7955         * dbus/dbus-object-registry.c: port over
7956         
7957         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7958         from _dbus_string_validate_name
7959
7960         * bus/dbus-daemon-1.1: change file format for the 
7961         <deny>/<allow> stuff to match new message naming scheme
7962
7963         * bus/policy.c: port over
7964
7965         * bus/config-parser.c: parse new format
7966         
7967 2003-08-16  Havoc Pennington  <hp@pobox.com>
7968
7969         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7970         broken assertion
7971
7972         * glib/dbus-gproxy.c: some hacking
7973
7974 2003-08-15  Havoc Pennington  <hp@redhat.com>
7975
7976         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7977
7978         * dbus/dbus-connection.c
7979         (dbus_connection_send_with_reply_and_block): factor out internals;
7980         change to convert any error replies to DBusError instead of 
7981         returning them as a message
7982
7983 2003-08-15  Havoc Pennington  <hp@pobox.com>
7984
7985         * dbus/dbus-connection.c, 
7986         dbus/dbus-pending-call.c: Finish the pending call stuff
7987
7988 2003-08-14  Havoc Pennington  <hp@redhat.com>
7989
7990         * dbus/dbus-pending-call.c: start on new object that will replace
7991         DBusMessageHandler and ReplyHandlerData for tracking outstanding
7992         replies
7993
7994         * dbus/dbus-gproxy.c: start on proxy object used to communicate
7995         with remote interfaces
7996
7997         * dbus/dbus-gidl.c: do the boring boilerplate in here
7998         
7999 2003-08-12  Havoc Pennington  <hp@pobox.com>
8000
8001         * bus/dispatch.c (bus_dispatch): make this return proper 
8002         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8003
8004         * dbus/dbus-errors.c (dbus_set_error): use
8005         _dbus_string_append_printf_valist
8006
8007         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8008         (_dbus_string_append_printf): new
8009
8010         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8011         UNKNOWN_METHOD
8012
8013         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8014         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8015         message is unhandled.
8016
8017 2003-08-11  Havoc Pennington  <hp@pobox.com>
8018
8019         * bus/test.c (client_disconnect_handler): change to return
8020         HANDLED (would have been REMOVE_MESSAGE)
8021
8022         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8023         HANDLED/NOT_YET_HANDLED instead of
8024         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8025         should be used.
8026
8027 2003-08-10  Havoc Pennington  <hp@pobox.com>
8028
8029         * tools/dbus-send.c (main): add --type argument, for now
8030         supporting only method_call and signal types.
8031
8032         * tools/dbus-print-message.c: print message type
8033
8034         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8035         init connection->objects
8036
8037         * doc/dbus-specification.sgml: fix sgml
8038
8039         * bus/*.c: port over to object-instance API changes
8040
8041         * test/test-service.c: ditto
8042         
8043         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8044         name, we will have to fix up the rest of the code to also handle
8045         this
8046         (dbus_message_new): generic message-creation call
8047         (set_string_field): allow appending name field
8048
8049 2003-08-06  Havoc Pennington  <hp@pobox.com>
8050
8051         * dbus/dbus-object-registry.c: implement signal connection 
8052         and dispatch
8053
8054         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8055
8056         * dbus/dbus-internals.c (_dbus_memdup): new function
8057
8058 2003-08-02  Havoc Pennington  <hp@pobox.com>
8059
8060         * dbus/dbus-message.c (dbus_message_get_no_reply)
8061         (dbus_message_set_no_reply): add these and remove
8062         set_is_error/get_is_error
8063
8064         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8065         remove the ERROR flag, since there's now an ERROR type
8066
8067 2003-08-01  Havoc Pennington  <hp@pobox.com>
8068
8069         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8070         implement
8071
8072         * dbus/dbus-message.c (dbus_message_get_type): new function
8073
8074         * doc/dbus-specification.sgml: add "type" byte to messages
8075
8076 2003-08-01  Havoc Pennington  <hp@pobox.com>
8077
8078         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8079         a message type enum to distinguish kinds of message
8080         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8081         that need not be replied to
8082
8083 2003-08-01  Havoc Pennington  <hp@pobox.com>
8084
8085         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8086         (unpack_8_octets): fix no-64-bit-int bug
8087
8088         * dbus/dbus-object-registry.c (validate_id): validate the 
8089         connection ID bits, not just the instance ID.
8090
8091         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8092         the connection-global 33 bits of the object ID
8093
8094         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8095         object ID in the new way
8096
8097         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8098         define server/client/instance bits.
8099
8100 2003-07-30  Havoc Pennington  <hp@pobox.com>
8101
8102         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8103         build
8104
8105 2003-07-13  Havoc Pennington  <hp@pobox.com>
8106
8107         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8108         fields to DBusObjectVTable and DBusObjectInfo
8109
8110 2003-07-12  Havoc Pennington  <hp@pobox.com>
8111
8112         * dbus/dbus-object-registry.c: implement unit test,
8113         fix bugs discovered in process
8114
8115         * dbus/dbus-connection.c: remove handler_table and
8116         register_handler(), add DBusObjectRegistry usage
8117
8118         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8119         (dbus_object_id_set_null): new functions
8120
8121 2003-07-08  Havoc Pennington  <hp@pobox.com>
8122
8123         * dbus/dbus-object.c: implement some of this
8124
8125         * dbus/dbus-object-registry.c
8126         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8127         param
8128         (_dbus_object_registry_new): handle OOM
8129
8130 2003-07-08  Havoc Pennington  <hp@pobox.com>
8131
8132         * dbus/dbus-object.h: sketch out an API for registering objects
8133         with a connection, that allows us to use as little as 24 bytes
8134         per object and lets application code represent an object in 
8135         any conceivable way.
8136
8137         * dbus/dbus-object-registry.c: implement the hard bits of the
8138         DBusConnection aspect of object API. Not yet wired up.
8139         
8140 2003-07-06  Havoc Pennington  <hp@pobox.com>
8141
8142         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8143         (_dbus_marshal_object_id): new
8144         (_dbus_demarshal_object_id): new
8145         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8146         consolidate identical switch cases. Don't conditionalize handling
8147         of DBUS_TYPE_UINT64, need to handle the type always.
8148         (_dbus_marshal_validate_arg): consolidate identical cases, and
8149         handle DBUS_TYPE_OBJECT_ID
8150
8151         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8152
8153         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8154
8155 2003-09-28  Havoc Pennington  <hp@pobox.com>
8156
8157         * real 0.13 release
8158
8159 2003-09-28  Havoc Pennington  <hp@pobox.com>
8160
8161         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8162         to work with Debian db2html
8163
8164 2003-09-28  Havoc Pennington  <hp@pobox.com>
8165
8166         * configure.in: 0.13
8167
8168         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8169         stylesheet-images for benefit of Debian
8170         
8171         Change back to using filesystem-linked sockets for the system
8172         bus, so only root can create the default system bus address.
8173         
8174         * bus/system.conf.in: change to use
8175         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8176
8177         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8178         from here.
8179
8180         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8181         here, and AC_DEFINE DBUS_SYSTEM_PATH
8182
8183 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8184
8185         * doc/TODO:
8186         * doc/busconfig.dtd:
8187         Add busconfig DTD.
8188         
8189 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8190
8191         * doc/dbus-specification.sgml:
8192         Add activation reply values.
8193         
8194 2003-08-05  Havoc Pennington  <hp@redhat.com>
8195
8196         * configure.in: 0.12
8197
8198 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8199
8200         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8201         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8202         (add_watch), (remove_watch), (create_source):
8203         Refcount fds, fixes some reentrancy issues.
8204         
8205 2003-07-30  Havoc Pennington  <hp@redhat.com>
8206
8207         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8208         bus address to be abstract if we have abstract sockets
8209
8210         * NEWS: update
8211
8212 2003-07-28  Havoc Pennington  <hp@redhat.com>
8213
8214         * bus/messagebus.in: fix to avoid processname/servicename 
8215         confusion, from Michael Kearey
8216         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8217         
8218 2003-07-23  Havoc Pennington  <hp@pobox.com>
8219
8220         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8221         fix from Andy Hanton to remove broken "+1"
8222
8223 2003-07-16  Havoc Pennington  <hp@pobox.com>
8224
8225         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8226         babysitter process, as suggested by Thomas Leonard, so 
8227         an "eval `dbus-launch --exit-with-session`" will actually 
8228         return
8229
8230 2003-07-16  Havoc Pennington  <hp@pobox.com>
8231
8232         * configure.in: print out EXPANDED_* variables in the summary at
8233         the end; clean up the code that computes EXPANDED_ variables and
8234         get the ones using exec_prefix right. Should make things work
8235         when you build without --prefix
8236
8237 2003-06-29  Havoc Pennington  <hp@pobox.com>
8238
8239         * mono/Test.cs (class Test): fire up a main loop and run it
8240
8241         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8242         done once, the app has to do it
8243
8244 2003-06-26  Havoc Pennington  <hp@pobox.com>
8245
8246         * mono/Connection.cs: set up connection with the glib main loop
8247
8248 2003-07-01  Havoc Pennington  <hp@redhat.com>
8249
8250         * doc/dbus-specification.sgml: clarify the format of a type code,
8251         change suggested by Jim Blandy
8252
8253 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8254
8255         * doc/Makefile.am:
8256         * tools/Makefile.am: Don't assume srcdir == builddir.
8257
8258         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8259         the allocated block.
8260         (_dbus_memory_test): New function.
8261         * dbus/dbus-test.h: Add _dbus_memory_test ().
8262         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8263
8264         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8265         of %c%c%c%c.
8266         (dbus_message_new): Remove obsolete @todo.
8267
8268         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8269         (_dbus_marshal_set_uint64): Fix comment.
8270
8271         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8272         hardcode FIELD_REPLY_SERIAL.
8273
8274         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8275         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8276
8277         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8278         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8279
8280 2003-06-24  Havoc Pennington  <hp@pobox.com>
8281
8282         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8283
8284 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8285
8286         * configure.in:
8287         * gcj/.cvsignore:
8288         * gcj/Hello.java:
8289         * gcj/Makefile.am:
8290         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8291         * gcj/org/.cvsignore:
8292         * gcj/org/Makefile.am:
8293         * gcj/org/freedesktop/.cvsignore:
8294         * gcj/org/freedesktop/Makefile.am:
8295         * gcj/org/freedesktop/dbus/.cvsignore:
8296         * gcj/org/freedesktop/dbus/Makefile.am:
8297         * gcj/org/freedesktop/dbus/Message.java: (Message),
8298         (Message.Message):
8299         * gcj/org/freedesktop/dbus/natMessage.cc:
8300         Fix the build system.
8301
8302 2003-06-22  Havoc Pennington  <hp@pobox.com>
8303
8304         * mono/Connection.cs: add more bindings
8305
8306         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8307         more than once.
8308
8309 2003-06-22  Havoc Pennington  <hp@pobox.com>
8310
8311         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8312         Start wrapping more stuff.
8313
8314 2003-06-22  Havoc Pennington  <hp@pobox.com>
8315
8316         * mono/Message.cs: implement Message.Wrap() that ensures we only
8317         have a single C# wrapper per DBusMessage, assuming it works which
8318         it probably doesn't.
8319
8320         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8321         (dbus_message_free_data_slot): new
8322         (dbus_message_set_data): new
8323         (dbus_message_get_data): new
8324
8325 2003-06-22  Havoc Pennington  <hp@pobox.com>
8326
8327         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8328         (_dbus_data_slot_allocator_alloc): rework these to keep a
8329         reference count on each slot and automatically manage a global
8330         slot ID variable passed in by address
8331
8332         * bus/bus.c: convert to new dataslot API
8333
8334         * dbus/dbus-bus.c: convert to new dataslot API
8335
8336         * dbus/dbus-connection.c: convert to new dataslot API
8337
8338         * dbus/dbus-server.c: convert to new dataslot API
8339
8340         * glib/dbus-gmain.c: ditto
8341
8342         * bus/test.c: ditto
8343
8344         * bus/connection.c: ditto
8345
8346 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8347
8348         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8349         after the gcj checks so that the correct configuration tags
8350         will be added to libtool.
8351
8352         * dbus-glib-1.pc.in: No need to specify any includes since
8353         dbus-1.pc.in has those.
8354
8355 2003-06-22  Havoc Pennington  <hp@pobox.com>
8356
8357         * mono/*, gcj/*, configure.in, Makefile.am:
8358         Check in makefiles and subdirs for mono and gcj bindings.
8359         Neither binding actually exists, just trying to get through
8360         all the build and other boring bits.
8361
8362 2003-06-21  Philip Blundell  <philb@gnu.org>
8363
8364         * tools/dbus-monitor.1: Updated.
8365
8366         * tools/dbus-send.1: Likewise.
8367
8368 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8369
8370         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8371         for hangup and error after checking read so we won't discard
8372         pending data if both hangup and read are set.
8373
8374 2003-06-19  Philip Blundell  <philb@gnu.org>
8375
8376         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8377
8378         * tools/dbus-send.c: Accept both --system and --session.
8379
8380         * tools/dbus-monitor.c: Same here.
8381
8382 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8383
8384         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8385         from C++ (Patch by Miloslav Trmac).
8386
8387 2003-06-15  Joe Shaw  <joe@assbarn.com>
8388
8389         * configure.in: Check for socklen_t.
8390
8391         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8392
8393         * test/test-segfault.c: Add #include <sys/time.h>
8394
8395         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8396         dbus-launch needs it.
8397
8398 2003-06-09  Havoc Pennington  <hp@redhat.com>
8399
8400         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8401         SUN_LEN, it breaks abstract socket usage
8402
8403         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8404         starts of lines.
8405
8406 2003-06-04  Havoc Pennington  <hp@pobox.com>
8407
8408         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8409         using unix:abstract=/foo, and when listening in a tmpdir
8410         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8411
8412         * dbus/dbus-transport.c (_dbus_transport_open): support
8413         unix:abstract=/foo
8414
8415         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8416         support abstract sockets
8417
8418         * dbus/dbus-transport-unix.c
8419         (_dbus_transport_new_for_domain_socket): support abstract sockets
8420
8421         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8422         toggle as an argument, implement abstract namespace support
8423         (_dbus_listen_unix_socket): ditto
8424
8425         * configure.in: add --enable-abstract-sockets and implement
8426         a configure check for autodetection of the right value.
8427
8428 2003-06-01  Havoc Pennington  <hp@pobox.com>
8429
8430         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8431         in /tmp (though on Linux this will end up being useless,
8432         when we add abstract namespace support)
8433
8434         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8435         subst'ing it
8436
8437 2003-05-28  Colin Walters  <walters@verbum.org>
8438
8439         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8440
8441 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8442
8443         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8444
8445 2003-05-17  Colin Walters  <walters@gnu.org>
8446
8447         * tools/dbus-send.c: Don't exit with an error code if --help was
8448         passed.  Default to using the session bus instead of the system
8449         one.
8450
8451         * tools/dbus-launch.c: Ditto.
8452
8453         * tools/dbus-monitor.c: Ditto.
8454
8455         * tools/dbus-send.1: Update with new arguments.
8456
8457         * tools/dbus-launch.c: Emit code to export variables.  New
8458         arguments -s and -c to specify shell syntax, and a bit of code to
8459         autodetect syntax.  Also, allow specifying a program to run.
8460
8461         * tools/dbus-launch.1: Update with new arguments.
8462
8463         * tools/dbus-send.1: Ditto.
8464
8465         * tools/dbus-monitor.1: Ditto.
8466
8467 2003-05-17  Havoc Pennington  <hp@pobox.com>
8468
8469         * bus/config-parser.c (merge_included): merge in policies from
8470         child configuration file.
8471
8472         * bus/policy.c (bus_policy_merge): function to merge two policies
8473         together
8474
8475 2003-05-16  Havoc Pennington  <hp@redhat.com>
8476
8477         * dbus/dbus-connection.c: disable verbose lock spew
8478
8479         * tools/dbus-send.c: add --print-reply command line option
8480
8481         * tools/dbus-print-message.h (print_message): new util function
8482         shared by dbus-send and dbus-monitor
8483
8484         * tools/dbus-monitor.c (handler_func): exit on disconnect
8485
8486         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8487         disconnected, don't try to use the read_watch
8488
8489         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8490         so we can find this bug more easily
8491
8492 2003-05-16  Havoc Pennington  <hp@redhat.com>
8493
8494         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8495         NULL as DBusHashTable is annoyingly likely to do.
8496
8497 2003-05-16  Colin Walters  <walters@verbum.org>
8498
8499         * tools/dbus-monitor.c: Add --session argument and usage()
8500         function.
8501
8502         * tools/dbus-monitor.1: Update with new --session arg.
8503
8504         * bus/Makefile.am (install-data-hook): Create
8505         $(libdir)/dbus-1.0/services so that the session bus is happy.
8506
8507 2003-05-15  Havoc Pennington  <hp@redhat.com>
8508
8509         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8510         on non-x86. ifdef's are evil.
8511
8512 2003-05-15  Havoc Pennington  <hp@redhat.com>
8513
8514         * configure.in: 0.11
8515
8516         * NEWS: update
8517
8518         * bus/Makefile.am (initddir): apparently we are supposed to put
8519         init scripts in /etc/rc.d/init.d not /etc/init.d
8520
8521         * bus/Makefile.am: remove the "you must --enable-tests to make
8522         check" as it broke distcheck
8523
8524         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8525
8526 2003-05-13  James Willcox  <jwillcox@gnome.org>
8527
8528         * configure.in:
8529         * bus/activation.c: (bus_activation_service_created),
8530         (bus_activation_activate_service):
8531         * bus/driver.c: (bus_driver_send_service_deleted),
8532         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8533         (bus_driver_send_service_acquired),
8534         (bus_driver_send_welcome_message),
8535         (bus_driver_handle_list_services):
8536         * bus/session.conf.in:
8537         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8538         (dbus_bus_service_exists), (dbus_bus_activate_service):
8539         * dbus/dbus-bus.h:
8540
8541         Add some convenience API which lets you activate a service, and did a
8542         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8543         and dbus_message_get_args()
8544
8545 2003-05-11  Havoc Pennington  <hp@pobox.com>
8546
8547         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8548         calling _dbus_marshal_validate_arg() for every byte in a byte
8549         array, etc.
8550
8551         * dbus/dbus-message-handler.c: use atomic reference counting to
8552         reduce number of locks slightly; the global lock in here sucks
8553
8554         * dbus/dbus-connection.c
8555         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8556         update_dispatch_status that can be called with lock held; then use
8557         in a couple places to reduce locking/unlocking
8558         (dbus_connection_send): hold the lock over the whole function
8559         instead of acquiring it twice.
8560
8561         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8562
8563         * bus/connection.c (bus_connections_setup_connection): fix access
8564         to already-freed memory.
8565
8566         * dbus/dbus-connection.c: keep a little cache of linked list
8567         nodes, to avoid using the global linked list alloc lock in the
8568         normal send-message case. Instead we just use the connection lock
8569         that we already have to take.
8570
8571         * dbus/dbus-list.c (_dbus_list_find_last): new function
8572
8573         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8574         change to use a struct for the atomic type; fix docs,
8575         they return value before increment, not after increment.
8576
8577         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8578         (_dbus_string_append_8_aligned): new functions to try to
8579         microoptimize this operation.
8580         (reallocate_for_length): break this out of set_length(), to
8581         improve profile info, and also so we can consider inlining the
8582         set_length() part.
8583
8584         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8585         strings with some preallocation, cuts down on our calls to realloc
8586         a fair bit. Though if we can get the "move entire string to empty
8587         string" optimization below to kick in here, it would be better.
8588
8589         * dbus/dbus-string.c (_dbus_string_move): just call
8590         _dbus_string_move_len
8591         (_dbus_string_move_len): add a special case for moving
8592         an entire string into an empty string; we can just
8593         swap the string data instead of doing any reallocs.
8594         (_dbus_string_init_preallocated): new function
8595
8596 2003-05-11  Havoc Pennington  <hp@pobox.com>
8597
8598         Write a "test-profile" that does echo client-server with threads;
8599         profile reveals lock contention, memcpy/realloc of buffers, and
8600         UTF-8 validation as hot spots. 20% of lock contention eliminated
8601         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8602         contention is global mempool locks for GList and DBusList.
8603
8604         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8605         x86 implementation
8606
8607         * dbus/dbus-connection.c (struct DBusConnection): use
8608         dbus_atomic_t for the reference count
8609
8610         * dbus/dbus-message.c (struct DBusMessage): declare
8611         dbus_atomic_t values as volatile
8612
8613         * configure.in: code to detect ability to use atomic integer
8614         operations in assembly, from GLib patch
8615
8616         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8617         time, tired of it being wrong in threads and forked processes
8618
8619         * glib/test-profile.c: a little program to bounce messages back
8620         and forth between threads and eat CPU
8621
8622         * dbus/dbus-connection.c: add debug spew macros for debugging
8623         thread locks; include config.h at top; fix deadlock in
8624         dbus_connection_flush()
8625
8626 2003-05-08  Havoc Pennington  <hp@pobox.com>
8627
8628         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8629         data from getting written, and there wasn't a good reason to
8630         use _exit really.
8631
8632         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8633         dbus_verbose lines in test coverage
8634         (main): add list of functions sorted by # of untested blocks
8635         to the coverage report
8636
8637         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8638
8639         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8640
8641         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8642         extend test coverage
8643
8644         * test/data/auth/cancel.auth-script: test canceling an
8645         authentication
8646
8647         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8648         aren't used. in CVS history if we end up needing them.
8649
8650 2003-05-04  Havoc Pennington  <hp@pobox.com>
8651
8652         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8653         unit test
8654
8655         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8656         function, which assumed length was in # of strings, not bytes
8657
8658         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8659         missing coverage
8660
8661         * dbus/dbus-connection.c
8662         (_dbus_connection_queue_received_message): disable function for
8663         now, we are only using it in test mode
8664
8665         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8666         remove a mistaken FIXME
8667
8668 2003-05-04  Havoc Pennington  <hp@pobox.com>
8669
8670         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8671         unlock mutex on successful return, patch from Anders Gustafsson
8672
8673 2003-05-04  Havoc Pennington  <hp@pobox.com>
8674
8675         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8676         Anders Gustafsson
8677
8678 2003-05-04  Havoc Pennington  <hp@pobox.com>
8679
8680         * tools/dbus-launch.c: implement
8681
8682         * bus/main.c (main), bus/bus.c (bus_context_new):
8683         implement --print-pid and --fork
8684
8685 2003-05-03  Havoc Pennington  <hp@redhat.com>
8686
8687         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8688         the address had no value, and add to test suite. Fix and
8689         regression test from Miloslav Trmac
8690
8691 2003-05-03  Havoc Pennington  <hp@pobox.com>
8692
8693         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8694         watch is invalid when handled
8695
8696         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8697         dbus-launch utility to launch the bus from a shell script.  Didn't
8698         actually implement dbus-launch yet, it's just a placeholder still.
8699
8700 2003-05-03  Havoc Pennington  <hp@pobox.com>
8701
8702         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8703         daemon; also documents daemon config file, so replaces
8704         doc/config-file.txt. Corrected some stuff from config-file.txt in
8705         the process of moving it.
8706
8707 2003-05-03  Havoc Pennington  <hp@pobox.com>
8708
8709         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8710         add some man pages
8711
8712 2003-05-03  Colin Walters  <walters@verbum.org>
8713
8714         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8715         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8716
8717         * Makefile.am: Update to use new .pc versioning scheme.
8718
8719 2003-05-02  Havoc Pennington  <hp@redhat.com>
8720
8721         * bus/system.conf.in: allow send/receive to/from message bus
8722         service
8723
8724 2003-04-30  Havoc Pennington  <hp@redhat.com>
8725
8726         * configure.in: print a note when building with unit tests and
8727         without assertions
8728
8729 2003-04-30  Havoc Pennington  <hp@redhat.com>
8730
8731         * Makefile.am: add a check-local that complains if you didn't
8732         configure with --enable-tests
8733
8734 2003-04-29  Havoc Pennington  <hp@redhat.com>
8735
8736         * glib/dbus-gmain.c: docs cleanups
8737
8738         * dbus/dbus-types.h: add docs on int64 types
8739
8740         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8741         public API docs section
8742
8743 2003-04-29  Havoc Pennington  <hp@redhat.com>
8744
8745         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8746         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8747         parallel install API version, not with the D-BUS package version.
8748
8749         * HACKING: move some of README over here
8750
8751         * README: updates, and document API/ABI policy
8752
8753         * configure.in: reindentation
8754
8755 2003-04-29  Havoc Pennington  <hp@redhat.com>
8756
8757         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8758         to use this library" to be sure people have the right
8759         expectations.
8760
8761 2003-04-28  Havoc Pennington  <hp@redhat.com>
8762
8763         * configure.in: add --enable-docs which by default is auto yes if
8764         doxygen and db2html found, no otherwise; but can be forced on/off
8765
8766         * doc/Makefile.am: conditionalize whether to build docs on
8767         --enable-docs
8768
8769 2003-04-28  Havoc Pennington  <hp@redhat.com>
8770
8771         * configure.in: 0.10
8772
8773         * NEWS: update
8774
8775         * bus/system.conf.in: add <includedir>system.d</includedir>
8776
8777         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8778         username was provided but not uid
8779
8780         * bus/config-parser.c (struct BusConfigParser): keep track of
8781         whether the parser is toplevel or was included; change some
8782         of the error handling if it's included.
8783
8784 2003-04-27  Havoc Pennington  <hp@pobox.com>
8785
8786         Unbreak my code...
8787
8788         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8789         report correct status if we finish processing authentication
8790         inside this function.
8791
8792         * bus/activation.c (try_send_activation_failure): use
8793         bus_transaction_send_error_reply
8794
8795         * bus/connection.c (bus_connection_get_groups): return an error
8796         explaining the problem
8797
8798         * bus/bus.c (bus_context_check_security_policy): implement
8799         restriction here that inactive connections can only send the
8800         hello message. Also, allow bus driver to send anything to
8801         any recipient.
8802
8803         * bus/connection.c (bus_connection_complete): create the
8804         BusClientPolicy here instead of on-demand.
8805         (bus_connection_get_policy): don't return an error
8806
8807         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8808         sender field in message being replied to
8809
8810         * bus/bus.c (bus_context_check_security_policy): fix silly typo
8811         causing it to return FALSE always
8812
8813         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8814         we checked sender rather than destination
8815
8816 2003-04-25  Havoc Pennington  <hp@redhat.com>
8817
8818         test suite is slightly hosed at the moment, will fix soon
8819
8820         * bus/connection.c (bus_connections_expire_incomplete): fix to
8821         properly disable the timeout when required
8822         (bus_connection_set_name): check whether we can remove incomplete
8823         connections timeout after we complete each connection.
8824
8825         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8826         probably still broken.
8827
8828         * bus/services.c (bus_registry_acquire_service): implement max
8829         number of services owned, and honor allow/deny rules on which
8830         services a connection can own.
8831
8832         * bus/connection.c (bus_connection_get_policy): report errors here
8833
8834         * bus/activation.c: implement limit on number of pending
8835         activations
8836
8837 2003-04-25  Havoc Pennington  <hp@redhat.com>
8838
8839         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8840         where we used >= 0 instead of != DBUS_UID_UNSET.
8841
8842 2003-04-25  Havoc Pennington  <hp@redhat.com>
8843
8844         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8845         were toggled without add/remove, fix from Anders Gustafsson
8846
8847 2003-04-24  Havoc Pennington  <hp@redhat.com>
8848
8849         * test/data/valid-config-files/basic.conf: add <limit> tags to
8850         this test
8851
8852         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8853         <limit> tag in configuration file.
8854
8855 2003-04-24  Havoc Pennington  <hp@redhat.com>
8856
8857         * bus/dispatch.c: somehow missed some name_is
8858
8859         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8860         (_dbus_timeout_set_interval): new
8861
8862         * bus/connection.c (bus_connections_setup_connection): record time
8863         when each connection is first set up, and expire them after the
8864         auth timeout passes.
8865
8866 2003-04-24  Havoc Pennington  <hp@redhat.com>
8867
8868         * dbus/dbus-message.c (dbus_message_name_is): rename
8869         (dbus_message_service_is): rename
8870         (dbus_message_sender_is): rename
8871         (dbus_message_get_service): rename
8872
8873 2003-04-24  Havoc Pennington  <hp@redhat.com>
8874
8875         * configure.in: add --enable-checks
8876
8877         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8878
8879         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8880         to use thread locks.
8881         (_dbus_connection_handler_destroyed_locked): move some private
8882         functions into proper docs group
8883
8884         * dbus/dbus-internals.h: add _dbus_return_if_fail,
8885         _dbus_return_val_if_fail
8886
8887         Throughout: use dbus_return_if_fail
8888
8889 2003-04-23  James Willcox  <jwillcox@gnome.org>
8890
8891         * glib/dbus-glib.h:
8892         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8893         (dbus_connection_setup_with_g_main),
8894         (dbus_server_setup_with_g_main):
8895         * glib/test-dbus-glib.c: (main):
8896         * glib/test-thread-client.c: (main):
8897         * glib/test-thread-server.c: (new_connection_callback), (main):
8898         * tools/dbus-monitor.c: (main):
8899
8900         Added a GMainContext argument to dbus_connection_setup_with_g_main()
8901         and dbus_server_setup_with_g_main().
8902
8903 2003-04-20  Havoc Pennington  <hp@pobox.com>
8904
8905         * doc/dbus-specification.sgml: document the restrictions on
8906         message and service names
8907
8908 2003-04-22  Havoc Pennington  <hp@redhat.com>
8909
8910         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8911         support, and do some code cleanups to share more code and
8912         speed up array marshal/demarshal.
8913
8914         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8915
8916         * configure.in: generate dbus-arch-deps.h
8917
8918         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8919         64-bit typecodes
8920
8921 2003-04-22  Havoc Pennington  <hp@redhat.com>
8922
8923         * test/data/valid-messages/opposite-endian.message: fix test
8924         to use proper type for rply field
8925
8926         * test/data/invalid-messages: add tests for below validation
8927
8928         * dbus/dbus-message.c (decode_header_data): validate field types,
8929         and validate that named fields are valid names
8930         (decode_name_field): consider messages in the
8931         org.freedesktop.Local. namespace to be invalid.
8932
8933         * dbus/dbus-string.c (_dbus_string_validate_name): new
8934
8935 2003-04-19  Havoc Pennington  <hp@pobox.com>
8936
8937         * bus/driver.c (bus_driver_handle_hello): check limits and
8938         return an error if they are exceeded.
8939
8940         * bus/connection.c: maintain separate lists of active and inactive
8941         connections, and a count of each. Maintain count of completed
8942         connections per user. Implement code to check connection limits.
8943
8944         * dbus/dbus-list.c (_dbus_list_unlink): export
8945
8946         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8947         number of bytes in the message queue for a connection
8948
8949 2003-04-18  Havoc Pennington  <hp@pobox.com>
8950
8951         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8952
8953         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8954         memleaks
8955
8956         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8957         on realloc be sure to update the pointer in the keyring
8958
8959         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8960         offset to avoid writing to unallocated memory
8961
8962         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8963         try the next mechanism, so we properly handle OOM
8964
8965         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8966         on OOM.
8967         (_dbus_keyring_new): fix OOM bug
8968         (_dbus_keyring_new_homedir): always set error; impose a maximum
8969         number of keys we'll load from the file, mostly to speed up the
8970         test suite and make its OOM checks more useful, but also for
8971         general sanity.
8972
8973         * dbus/dbus-auth.c (process_error_server): reject authentication
8974         if we get an error from the client
8975         (process_cancel): on cancel, send REJECTED, per the spec
8976         (process_error_client): send CANCEL if we get an error from the
8977         server.
8978
8979 2003-04-18  Havoc Pennington  <hp@pobox.com>
8980
8981         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8982         debug spew
8983
8984         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8985         handling problem
8986
8987         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8988         about DBUS_TEST_HOMEDIR once
8989
8990         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8991         the environment
8992
8993         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8994         config file so we test the right thing
8995
8996         Throughout: assorted docs improvements
8997
8998 2003-04-18  Havoc Pennington  <hp@pobox.com>
8999
9000         * glib/dbus-gmain.c: adapt to watch changes
9001
9002         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9003
9004         * dbus/dbus-server.h: remove dbus_server_handle_watch
9005
9006         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9007
9008         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9009         like DBusTimeout, so we don't need dbus_connection_handle_watch
9010         etc.
9011
9012 2003-04-17  Havoc Pennington  <hp@redhat.com>
9013
9014         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9015         database usage so it all goes via the DBusUserDatabase cache.
9016
9017 2003-04-17  Havoc Pennington  <hp@redhat.com>
9018
9019         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9020         there was an OOM watch we skipped, we always return TRUE so we
9021         iterate again to have a look at it again. Fixes test suite hang.
9022         Code rearrangement also lets us lose some memset and only iterate
9023         over callbacks once.
9024
9025         * bus/driver.c (bus_driver_handle_message): sense of test for
9026         reply was backward
9027
9028 2003-04-16  Havoc Pennington  <hp@pobox.com>
9029
9030         * doc/dbus-specification.sgml: make spec say serials are unsigned
9031
9032         * dbus/dbus-message.h: change message serials to unsigned
9033
9034         * dbus/dbus-connection.c: adapt to message serials being unsigned
9035
9036 2003-04-15  Havoc Pennington  <hp@pobox.com>
9037
9038         * bus/bus.c: create and keep around a shared DBusUserDatabase
9039         object.
9040
9041         * bus/connection.c (bus_connection_get_groups): don't cache
9042         groups for user in the connection object, since user database
9043         object now does that.
9044
9045 2003-04-16  Havoc Pennington  <hp@redhat.com>
9046
9047         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9048         list of size counters
9049         (_dbus_message_loader_putback_message_link): put back a popped link
9050
9051         * dbus/dbus-connection.c
9052         (dbus_connection_set_max_live_messages_size): rename
9053         max_received_size
9054         (dbus_connection_get_outgoing_size): get size of outgoing
9055         queue
9056         (_dbus_connection_set_connection_counter): remove this cruft
9057
9058 2003-04-14  Havoc Pennington  <hp@redhat.com>
9059
9060         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9061         caching, but at some point we might want to be able to use a
9062         different database.
9063
9064         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9065         SHA1 conf file to test the sha1 auth mechanism, since the regular
9066         test always uses EXTERNAL when available.
9067
9068         * configure.in,
9069         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9070         add conf file that requires use of sha1 auth
9071
9072 2003-04-13  Havoc Pennington  <hp@pobox.com>
9073
9074         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9075         from Philip Blundell to send messages and monitor them.
9076
9077 2003-04-13  Havoc Pennington  <hp@pobox.com>
9078
9079         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9080         callbacks
9081
9082         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9083         users
9084
9085         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9086         fix to only recover unused bytes if we're already authenticated
9087         (_dbus_transport_get_is_authenticated): fix to still mark us
9088         authenticated if there are unused bytes.
9089
9090         * bus/dispatch.c: implement security policy checking
9091
9092         * bus/connection.c (bus_transaction_send_from_driver): new
9093
9094         * bus/bus.c (bus_context_check_security_policy): new
9095
9096         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9097         now we just set the DBusError and it gets converted to an error
9098         reply.
9099
9100         * bus/connection.c (allow_user_function): enable code using actual
9101         data from the config file
9102
9103         * bus/policy.c (list_allows_user): handle wildcard rules for
9104         user/group connection perms
9105
9106 2003-04-13  Havoc Pennington  <hp@pobox.com>
9107
9108         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9109
9110         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9111
9112         * bus/policy.c (bus_policy_append_mandatory_rule)
9113         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9114         (bus_policy_append_group_rule): new functions
9115
9116 2003-04-12  Havoc Pennington  <hp@pobox.com>
9117
9118         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9119
9120         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9121         the pid/gid/uid, just for paranoia.
9122
9123         * test/break-loader.c (randomly_do_n_things): find a byte
9124         containing a type code, and randomly change it to a different
9125         type code.
9126
9127 2003-04-12  Havoc Pennington  <hp@pobox.com>
9128
9129         * bus/policy.h: change BusPolicy to be the thing from the config
9130         file, and rename old BusPolicy to BusClientPolicy
9131
9132         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9133         match change in how policy works
9134
9135         * dbus/dbus-internals.h: mark assert_not_reached as
9136         __attribute((noreturn))__
9137
9138 2003-04-11  Havoc Pennington  <hp@redhat.com>
9139
9140         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9141         the broadcast service. Use boolean return for ServiceExists.
9142
9143 2003-04-11  Havoc Pennington  <hp@redhat.com>
9144
9145         * configure.in: add another directory to look for qt in.
9146
9147 2003-04-11  Havoc Pennington  <hp@redhat.com>
9148
9149         * AUTHORS: add Colin Walters
9150
9151 2003-04-11  Havoc Pennington  <hp@redhat.com>
9152
9153         * NEWS: update
9154
9155         * configure.in: 0.9
9156
9157 2003-04-11  Havoc Pennington  <hp@redhat.com>
9158
9159         * bus/messagebus.in: remove pid file when stopping the
9160         message bus, since the bus won't have privileges to remove it
9161         itself.
9162
9163 2003-04-11  Havoc Pennington  <hp@redhat.com>
9164
9165         * bus/bus.c (bus_context_new): move credentials change after
9166         creating pidfile
9167
9168 2003-04-11  Havoc Pennington  <hp@pobox.com>
9169
9170         * test/decode-gcov.c: add "below average functions" to the
9171         coverage report, and change how some of the code works.
9172
9173         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9174         not in the coverage stats.
9175
9176         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9177         couple places so running the test suite doesn't result in megaspam.
9178
9179 2003-04-11  Havoc Pennington  <hp@pobox.com>
9180
9181         * bus/dispatch.c (check_existent_service_activation): accept a no
9182         memory error in a place we didn't before
9183
9184         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9185         in case the first one failed," since the test suite is less
9186         broken now.
9187
9188 2003-04-10  Havoc Pennington  <hp@pobox.com>
9189
9190         * bus/dispatch.c (check_segfault_service_activation): add test
9191         for launching an executable that just crashes.
9192
9193         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9194         don't leave a million cores. We'll see how portable this is.
9195
9196 2003-04-10  Havoc Pennington  <hp@pobox.com>
9197
9198         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9199         the possible parent failures before we fork, so that we don't
9200         fail to create a babysitter after creating the child.
9201
9202         * bus/activation.c (bus_activation_activate_service): kill child
9203         if we don't successfully complete the activation.
9204
9205 2003-04-10  Havoc Pennington  <hp@redhat.com>
9206
9207         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9208         the connection if it's disconnected
9209
9210         * bus/activation.c (bus_activation_service_created): use new
9211         transaction features to roll back removal of pending activation if
9212         we don't successfully create the service after all. Don't remove
9213         pending activation if the function fails.
9214
9215         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9216         (_dbus_list_insert_after_link): new code to facilitate
9217         services.c fixes
9218
9219         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9220         new functionality, so we can preallocate the ability to insert
9221         into a hash table.
9222
9223         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9224         allowing us to put custom hooks in a transaction to be used for
9225         cancelling said transaction
9226
9227         * doc/dbus-specification.sgml: add some discussion of secondary
9228         service owners, and disallow zero-length service names
9229
9230         * bus/services.c (bus_registry_acquire_service): new function,
9231         splits out part of bus_driver_handle_acquire_service() and fixes
9232         a bug where we didn't remove the service doing the acquiring
9233         from the secondary queue if we failed to remove the current owner
9234         from the front of the queue.
9235
9236 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9237
9238         * doc/dbus-specification.sgml:
9239         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9240
9241 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9242
9243         * bus/.cvsignore:
9244         * glib/.cvsignore:
9245         * test/.cvsignore:
9246         Added files to cvsignore
9247
9248         * dbus/dbus-message.h:
9249         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9250         Make get_named() take two out argument and return a boolean.
9251         (dbus_message_iter_get_args_valist):
9252         Update usage of get_named().
9253         (dbus_message_iter_append_byte):
9254         Fix typo
9255         (dbus_message_iter_append_named)
9256         Fix typo
9257         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9258         More tests.
9259
9260 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9261
9262         * dbus/dbus-marshal.[ch]:
9263         Add array_type_pos argument to _dbus_marshal_validate_arg.
9264         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9265
9266         * dbus/dbus-message.[ch]:
9267         Multi-dimensional arrays have full type specification in the
9268         outermost array. Iter code re-arranged to handle this.
9269         Added some more iter tests.
9270
9271         * doc/dbus-specification.sgml:
9272         Add me to authors.
9273         Remove old FIXME.
9274         Update new array encoding description.
9275         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9276
9277         * test/data/invalid-messages/array-with-mixed-types.message:
9278         * test/data/valid-messages/array-of-array-of-uint32.message:
9279         Change to the new array format.
9280
9281         * test/data/invalid-messages/too-short-dict.message:
9282         Fix bug in test.
9283
9284         * test/data/valid-messages/recursive-types.message:
9285         Fix up and extend test.
9286
9287 2003-04-10  Havoc Pennington  <hp@pobox.com>
9288
9289         * bus/dispatch.c: lots of fixes
9290
9291         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9292         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9293         that was crack, broke the test service.
9294
9295         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9296         handling to avoid piling up errors if we get a failure on the
9297         first address.
9298
9299         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9300         pid in assertion failures.
9301
9302         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9303         to some fixed size of file descriptor array. Don't return TRUE
9304         anytime a timeout exists, that led to lots of busy loop silliness
9305         in the tests.
9306
9307 2003-04-09  Havoc Pennington  <hp@redhat.com>
9308
9309         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9310         I'd checked this in earlier but hadn't.
9311
9312 2003-04-09  Havoc Pennington  <hp@redhat.com>
9313
9314         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9315         the activation test (man this is getting old!)
9316
9317 2003-04-09  Havoc Pennington  <hp@redhat.com>
9318
9319         * test/test-utils.c: use dispatch status function to fix this up
9320
9321         * bus/connection.c (connection_watch_callback): don't dispatch
9322         from here
9323         (connection_timeout_callback): don't dispatch from here
9324         (bus_connections_setup_connection): set the dispatch status function
9325         (bus_connection_disconnected): unset it
9326
9327         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9328         used to add a connection to be dispatched
9329         (_dbus_loop_iterate): do the dispatching at the end of each
9330         iteration
9331
9332         * dbus/dbus-connection.c
9333         (dbus_connection_set_dispatch_status_function): new function
9334         allowing us to fix up main loop usage
9335         (_dbus_connection_last_unref): free all the various function
9336         user data
9337         (dbus_connection_dispatch): call the DispatchStatusFunction
9338         whenever this function returns
9339         (dbus_connection_handle_watch): call DispatchStatusFunction
9340         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9341         (reply_handler_timeout): call DispatchStatusFunction
9342         (dbus_connection_flush): call DispatchStatusFunction
9343
9344 2003-04-09  Havoc Pennington  <hp@redhat.com>
9345
9346         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9347         a memory leak
9348
9349         * bus/dispatch.c (check_service_activated): fix bug in test
9350
9351         * dbus/dbus-mainloop.c (check_timeout): fix this up
9352
9353         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9354         verbose output so we can sort out output from different processes,
9355         e.g. in the activation case.
9356
9357 2003-04-08  Colin Walters  <walters@gnu.org>
9358
9359         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9360         the pid file.
9361         (bus_context_new): Set it.
9362         (bus_context_unref): Use it to delete the pid file.
9363
9364 2003-04-08  Havoc Pennington  <hp@redhat.com>
9365
9366         * test/data/invalid-messages/array-with-mixed-types.message:
9367         regression test that fails for the moment
9368
9369         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9370         tests for convenience
9371
9372         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9373         array of nil, it broke things.
9374
9375         * test/data/invalid-messages/array-of-nil.message: regression test
9376
9377         * test/data/valid-messages/array-of-array-of-uint32.message:
9378         happened to write this so added it to suite
9379
9380 2003-04-08  Havoc Pennington  <hp@redhat.com>
9381
9382         * bus/driver.c (bus_driver_handle_acquire_service): init
9383         retval/reply before checking name
9384
9385         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9386         recursion depth argument
9387
9388         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9389         in the public struct for future extension
9390
9391         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9392         typo
9393
9394         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9395         message
9396
9397         * doc/dbus-specification.sgml: fix typo
9398
9399 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9400
9401         Implemented recursive types, named types and new-style iters
9402
9403         * bus/driver.c:
9404         * glib/test-thread-client.c: (thread_func):
9405         * glib/test-thread-server.c: (handle_test_message):
9406         * test/test-service.c: (handle_echo):
9407         Update to new api
9408
9409         * dbus/Makefile.am:
9410         * dbus/dbus-dict.c:
9411         * dbus/dbus-dict.h:
9412         * dbus/dbus.h
9413         Remove DBusDict
9414
9415         * dbus/dbus-internals.c: (_dbus_type_to_string):
9416         Update for new types.
9417
9418         * dbus/dbus-marshal.[ch]:
9419         Implement recursive types and the new marshalling format.
9420         Remove hardcoded dict marshalling.
9421         Marshal named types.
9422
9423         * dbus/dbus-message-builder.c:
9424         Add BYTE_ARRAY.
9425         Remove references to old types
9426
9427         * dbus/dbus-message.[ch]:
9428         New non-refcounted iter API that supports recursive iters.
9429         Use iters for appending, including support for recursive
9430         iters.
9431         Add byte and named type support.
9432         Update everything to new marshalling formats.
9433         Add tests for new API.
9434
9435         * dbus/dbus-protocol.h:
9436         Remove old array types.
9437         Add types: BYTE, ARRAY, DICT, NAMED
9438
9439         * dbus/dbus-string.c:
9440         * dbus/dbus-sysdeps.c:
9441         Make parse_double locale safe.
9442
9443         * dbus/dbus-test-main.c:
9444         Call setlocale.
9445
9446         * dbus/dbus-test.c:
9447         Kill dict test
9448
9449         * doc/dbus-specification.sgml:
9450         Update spec
9451
9452         * test/data/incomplete-messages/missing-body.message:
9453         * test/data/invalid-messages/bad-boolean.message:
9454         * test/data/invalid-messages/bad-boolean-array.message:
9455         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9456         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9457         * test/data/invalid-messages/too-short-dict.message:
9458         * test/data/valid-messages/dict-simple.message:
9459         * test/data/valid-messages/dict.message:
9460         * test/data/valid-messages/emptiness.message:
9461         * test/data/valid-messages/lots-of-arguments.message:
9462         * test/data/valid-messages/no-padding.message:
9463         * test/data/valid-messages/recursive-types.message:
9464         Add missing NAME fields
9465         Fix up dicts & arrays
9466
9467         * test/data/invalid-messages/dict-with-nil-value.message:
9468         Removed, this is not invalid anymore.
9469
9470         * test/data/valid-messages/recursive-types.message:
9471         Add new test for deeply recursive types.
9472
9473 2003-04-07  Havoc Pennington  <hp@pobox.com>
9474
9475         * bus/driver.c (bus_driver_handle_acquire_service): return an
9476         error if you try to acquire a service that starts with ':'
9477
9478 2003-04-07  Havoc Pennington  <hp@redhat.com>
9479
9480         * doc/dbus-specification.sgml: require that base service names
9481         start with ':' and that the base service is created/deleted
9482         as first and last things a connection does on the bus
9483
9484         * bus/dispatch.c (check_existent_service_activation): lots more
9485         work on the activation test; it doesn't fully pass yet...
9486
9487         * test/test-service.c (main): fix so we don't memleak the
9488         connection to the message bus
9489         (filter_func): accept a message asking us to exit
9490
9491 2003-04-06  Havoc Pennington  <hp@pobox.com>
9492
9493         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9494         from Colin Walters
9495
9496         * configure.in: fixes to Qt detection from Colin Walters
9497
9498         * doc/Makefile.am: Only remove generated docbook dirs if they
9499         exist, from Colin Walters
9500
9501         * dbus/dbus-bus.c: change how we set well-known connections to
9502         NULL, so that it works if a single connection is stored in
9503         two well-known array slots.
9504
9505         * test/Makefile.am: remove a lot of stuff that isn't immediately
9506         useful, it's in CVS history if we want it.
9507
9508         * test/test-service.c: use dbus-mainloop instead of that
9509         watch.[hc] crack
9510
9511 2003-04-06  Havoc Pennington  <hp@pobox.com>
9512
9513         * dbus/Makefile.am: split lists of sources into stuff that goes in
9514         the library, util functions that go in the lib and are also used
9515         elsewhere, and util functions that are used in tests/daemon but
9516         don't go in the lib.
9517
9518         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9519         here so it can be used in test binaries also
9520
9521 2003-04-06  Havoc Pennington  <hp@pobox.com>
9522
9523         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9524         here in the parent process, so we can return an error if it
9525         fails. Also, move some of the code into the child so the parent
9526         is less hosed if we fail midway through.
9527
9528         * bus/bus.c (bus_context_new): move pidfile detection further up
9529         in the function, before we start overwriting sockets and such.
9530
9531         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9532
9533         * configure.in: add --with-system-pid-file and --with-system-socket
9534
9535 2003-04-06  Colin Walters  <walters@verbum.org>
9536
9537         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9538
9539         * bus/system.conf.in: Declare a pidfile.
9540
9541         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9542         create one (if appropriate).
9543
9544         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9545         (struct BusConfigParser) [pidfile]: New.
9546         (element_type_to_name, merge_included, start_busconfig_child)
9547         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9548         (bus_config_parser_unref): Free it.
9549         (bus_config_parser_get_pidfile): New function.
9550
9551         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9552
9553         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9554
9555         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9556
9557         * dbus/dbus-sysdeps.h: Prototype it.
9558
9559 2003-04-06  Havoc Pennington  <hp@pobox.com>
9560
9561         * bus/bus.c (bus_context_new): print the address in here, rather
9562         than in main(), because we need to do it before forking the daemon
9563
9564         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9565         on the service nonexistent error
9566
9567         * bus/driver.c (bus_driver_handle_acquire_service): set the
9568         sender on the AcquireService reply
9569
9570         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9571         server also listen on a UNIX socket so services can connect to it.
9572
9573 2003-04-06  Havoc Pennington  <hp@pobox.com>
9574
9575         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9576         so it detects deadlocks and also we actually init threads when
9577         debugging.
9578
9579 2003-04-06  Havoc Pennington  <hp@pobox.com>
9580
9581         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9582         save the domain socket name, and unlink it when we disconnect the
9583         server. Means that at least when we exit normally, we won't leave
9584         a bunch of junk in /tmp
9585
9586         * dbus/dbus-transport-unix.c
9587         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9588         memory management). (I was making a real change here but then
9589         didn't)
9590
9591 2003-04-06  Havoc Pennington  <hp@pobox.com>
9592
9593         * bus/bus.c (bus_context_new): fix wrong handling of
9594         server_data_slot_unref() in the error case.
9595
9596         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9597         "(condition) != 0" to _dbus_real_assert so that
9598         "_dbus_assert (pointer)" doesn't cause a warning
9599
9600         * bus/main.c (main): accept --print-address option to print out
9601         the message bus address
9602
9603         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9604
9605         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9606         "tmpdir" option to unix: address on client side
9607
9608         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9609         to unix: address
9610
9611         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9612         we can use to create sockets in the test suite.
9613
9614         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9615         cleanly. To be used for testing.
9616
9617         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9618
9619         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9620
9621         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9622         handle trying to call this when there's no servers active
9623
9624 2003-04-05  Havoc Pennington  <hp@pobox.com>
9625
9626         * NEWS: update
9627
9628         * configure.in: 0.8
9629
9630 2003-04-05  Havoc Pennington  <hp@pobox.com>
9631
9632         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9633         crash on startup. Need to get "try starting the daemon"
9634         in the test suite I guess. ;-)
9635
9636         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9637         tracked the number of open connections; it's better done in
9638         application-specific code as you want it to span all servers etc.
9639
9640 2003-04-05  Havoc Pennington  <hp@pobox.com>
9641
9642         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9643         patch from Colin Walters
9644
9645 2003-04-05  Havoc Pennington  <hp@pobox.com>
9646
9647         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9648         reality; in fact multiple mechanisms are allowed.
9649
9650         * dbus/dbus-internals.c (_dbus_real_assert)
9651         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9652         _dbus_assert_not_reached() into functions, so that they don't show
9653         up in basic block counts for test coverage, and don't use up as
9654         much disk space. Does mean slower execution speed though, so
9655         assumes --disable-asserts is the normal production case.
9656
9657 2003-04-05  Havoc Pennington  <hp@pobox.com>
9658
9659         * test/Makefile.am (dist-hook): also dist *.in files
9660
9661         * NEWS: update
9662
9663         * configure.in: 0.7
9664
9665 2003-04-05  Havoc Pennington  <hp@pobox.com>
9666
9667         * dbus/dbus-string.c: docs warning
9668
9669         * dbus/dbus-spawn.c: missing docs
9670
9671         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9672
9673 2003-04-05  Havoc Pennington  <hp@pobox.com>
9674
9675         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9676         magic from GLib
9677
9678         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9679         to -1 once we've reaped the babysitter
9680         (_dbus_babysitter_handle_watch): do as much work as we can, not
9681         just one go of it
9682
9683         * bus/activation.c: add code using DBusBabysitter so that we
9684         handle it when a service fails to start up properly.
9685         (bus_activation_service_created): don't remove the activation
9686         entries as we go, just let them get removed when we free the pending
9687         activation. Unref reply messages after sending them.
9688
9689 2003-04-05  Havoc Pennington  <hp@pobox.com>
9690
9691         * test/decode-gcov.c (main): print per-directory stats in the report
9692
9693         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9694
9695 2003-04-05  Havoc Pennington  <hp@pobox.com>
9696
9697         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9698
9699         * test/decode-gcov.c: hack up a little program to suck data
9700         out of gcov files. Yes this is sort of silly.
9701
9702         * configure.in: define something in config.h and do an
9703         AM_CONDITIONAL when gcov is enabled
9704
9705 2003-04-04  Havoc Pennington  <hp@redhat.com>
9706
9707         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9708         return a "babysitter" object that is used to monitor the status of
9709         the spawned process and reap it when required.
9710
9711         * test/test-segfault.c, test/test-exit.c,
9712         test/test-sleep-forever.c: binaries that do various lame things,
9713         used in the test suite.
9714
9715         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9716
9717 2003-04-03  Havoc Pennington  <hp@pobox.com>
9718
9719         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9720         in preparation for modifying it, dbus-sysdeps is getting
9721         a bit unmanageable.
9722
9723 2003-04-03  Havoc Pennington  <hp@redhat.com>
9724
9725         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9726         have multiple ones
9727
9728         * bus/*.[hc]: adapt to mainloop change
9729
9730 2003-04-03  Havoc Pennington  <hp@redhat.com>
9731
9732         * bus/activation.c (load_directory): fix up memleaks
9733         (bus_activation_entry_free): free the entry
9734
9735         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9736         we get one from the message bus; fix memleaks.
9737
9738         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9739
9740 2003-04-03  Havoc Pennington  <hp@pobox.com>
9741
9742         * bus/config-parser.c (bus_config_parser_unref): free
9743         list of mechanisms, bug discovered by test suite enhancements
9744         (putting system.conf and session.conf into suite)
9745
9746         * test/Makefile.am, test/test-service.c: add placeholder for a
9747         test service that we'll activate as part of test suite. Doesn't
9748         do anything yet.
9749
9750         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9751         setting NULL value, and use system malloc not dbus_malloc()
9752         when we have unavoidable memleakage.
9753
9754         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9755         didn't work, and support DBUS_BUS_ACTIVATION.
9756
9757         * bus/activation.c (child_setup): pass our well-known bus type to
9758         the child
9759
9760         * bus/config-parser.c: support <type> to specify well-known type
9761
9762         * doc/dbus-specification.sgml: document the env variables to
9763         locate well-known buses and find service activator
9764
9765 2003-04-02  Havoc Pennington  <hp@redhat.com>
9766
9767         * test/Makefile.am (all-local): add a rule to copy tests to
9768         builddir, so we can have generated tests. Use this to remove the
9769         silly hack for testing system.conf and session.conf. Will use this
9770         shortly to generate .service files pointing to test binaries.
9771
9772 2003-04-02  Havoc Pennington  <hp@redhat.com>
9773
9774         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9775         current alloc and needed new length, not max of the doubled
9776         allocation and needed new length. Also, when building tests,
9777         don't do the double-allocation stuff, just realloc every time.
9778
9779 2003-04-02  Havoc Pennington  <hp@redhat.com>
9780
9781         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9782         in error messages
9783         (_dbus_string_get_dirname): new
9784         (_dbus_sysdeps_test): new
9785         (_dbus_directory_open): include dirnames in error messages
9786
9787         * bus/config-parser.c: interpret <include> and <includedir> and
9788         <servicedir> relative to config file location if the given
9789         filename is not absolute.
9790
9791         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9792
9793 2003-04-02  Havoc Pennington  <hp@redhat.com>
9794
9795         * bus/connection.c (bus_transaction_send_error_reply): set sender
9796         service for the error, and unref the reply on success
9797
9798         * bus/activation.c: convert to use BusTransaction so OOM can be
9799         handled correctly
9800         (bus_activation_service_created): set sender of the message
9801
9802 2003-04-01  Havoc Pennington  <hp@redhat.com>
9803
9804         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9805         <includedir> (at least mostly)
9806
9807         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9808         first, then the user ID
9809
9810 2003-04-01  Havoc Pennington  <hp@pobox.com>
9811
9812         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9813         function
9814
9815         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9816
9817         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9818
9819         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9820         socket 0777, and unlink any existing socket.
9821
9822         * bus/bus.c (bus_context_new): change our UID/GID and fork if
9823         the configuration file so specifies; set up auth mechanism
9824         restrictions
9825
9826         * bus/config-parser.c (bus_config_parser_content): add support
9827         for <fork> option and fill in code for <auth>
9828
9829         * bus/system.conf.in: add <fork/> to default configuration,
9830         and limit auth mechanisms to EXTERNAL
9831
9832         * doc/config-file.txt (Elements): add <fork>
9833
9834         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9835         (_dbus_change_identity): new function
9836
9837 2003-03-31  Havoc Pennington  <hp@redhat.com>
9838
9839         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9840         (_dbus_listen_unix_socket): fix off-by-one error in null
9841         termination spotted by Nalin
9842
9843 2003-03-31  Havoc Pennington  <hp@redhat.com>
9844
9845         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9846         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9847         having a real home directory available.
9848
9849 2003-03-31  Havoc Pennington  <hp@redhat.com>
9850
9851         * bus/Makefile.am (install-data-hook): create /var/run/dbus
9852
9853         * bus/messagebus.in: add init script for Red Hat /etc/init.d
9854
9855         * configure.in: add support for specifying a style of init script
9856         to install
9857
9858 2003-03-31  Havoc Pennington  <hp@redhat.com>
9859
9860         Fix some annoying DBusString API and fix all affected code.
9861
9862         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9863         max_length argument
9864         (_dbus_string_get_data): change to return string instead of using
9865         an out param
9866         (_dbus_string_get_const_data): ditto
9867         (_dbus_string_get_data_len): ditto
9868         (_dbus_string_get_const_data_len): ditto
9869
9870 2003-03-31  Havoc Pennington  <hp@redhat.com>
9871
9872         * bus/main.c (main): fix up the command line arguments to be nicer
9873
9874 2003-03-31  Havoc Pennington  <hp@redhat.com>
9875
9876         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9877         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9878         final location that lands in the config file
9879
9880         * bus/config-loader-expat.c (bus_config_load): fix type of
9881         XML_Parser variable
9882
9883         * doc/TODO: remove TODO item for dbus_bus_get()
9884
9885         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9886
9887 2003-03-31  Havoc Pennington  <hp@pobox.com>
9888
9889         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9890         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9891         argument since they are always client side
9892
9893         * dbus/dbus-server.c (dbus_server_get_address): new function
9894
9895         * bus/main.c (main): take the configuration file as an argument.
9896
9897         * test/data/valid-config-files/debug-allow-all.conf: new file to
9898         use with dispatch.c tests for example
9899
9900         * bus/test-main.c (main): require test data dir
9901
9902         * bus/bus.c (bus_context_new): change this to take a
9903         configuration file name as argument
9904
9905         * doc/config-file.txt (Elements): add <servicedir>
9906
9907         * bus/system.conf, bus/session.conf: new files
9908
9909         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9910         well-known socket if none set
9911
9912         * configure.in: create system.conf and session.conf
9913
9914 2003-03-30  Havoc Pennington  <hp@pobox.com>
9915
9916         * bus/config-parser.c: hacking
9917
9918         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9919         to shut down, since it could cause weirdness with the DBusList
9920         lock
9921
9922         * dbus/dbus-list.c (_dbus_list_test): add tests for the
9923         link-oriented stack routines
9924         (alloc_link): free the mempool if the first alloc from it fails
9925
9926         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9927
9928         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9929         from GLib
9930         (_dbus_string_skip_white): new
9931
9932         * doc/config-file.txt (Elements): add <includedir>
9933
9934 2003-03-28  Havoc Pennington  <hp@pobox.com>
9935
9936         * dbus/dbus-string.c (_dbus_string_copy_data_len)
9937         (_dbus_string_copy_data): new functions
9938
9939 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
9940
9941         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9942         * dbus/dbus-bus.h:
9943         Add dbus_bus_get.
9944
9945         * dbus/dbus-memory.c:
9946         Fix a doc comment.
9947
9948 2003-03-28  Havoc Pennington  <hp@pobox.com>
9949
9950         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9951         I think it may have just been superstition. Not sure.
9952
9953         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9954         failures that were not being handled.
9955
9956         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9957
9958         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9959         row that will fail on out-of-memory.
9960
9961         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9962         function for testing out-of-memory handling.
9963
9964         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9965         allocation functions, they do map exactly to the expat ones.
9966
9967 2003-03-27  Havoc Pennington  <hp@redhat.com>
9968
9969         * bus/config-loader-libxml.c (bus_config_load): add another error
9970         check
9971
9972 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9973
9974         * doc/TODO:
9975         Add note about automatic service activation.
9976
9977         * doc/dbus-specification.sgml:
9978         Rename the specification and clarify a few things.
9979
9980 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9981
9982         * Doxyfile.in:
9983         * dbus/dbus-address.c:
9984         * dbus/dbus-dict.c:
9985         * dbus/dbus-marshal.c:
9986         * dbus/dbus-server-debug-pipe.c:
9987         * dbus/dbus-transport-unix.c:
9988         Fix documentation warnings.
9989
9990 2003-03-26  Havoc Pennington  <hp@pobox.com>
9991
9992         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9993         after every test so it's quick and easy to see which leaked, and
9994         so we test multiple dbus_shutdown() calls
9995
9996         * configure.in: change configure.in XML stuff to also support
9997         expat
9998
9999         * config-loader-libxml.c: some hacking
10000
10001         * config-loader-expat.c: some hacking
10002
10003         * config-parser.c: some hacking, plus tests
10004
10005 2003-03-25  Havoc Pennington  <hp@redhat.com>
10006
10007         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10008
10009         * configure.in: add --with-xml option to specify XML library,
10010         right now only libxml is supported.
10011
10012         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10013         nonworking code between home and work, still just stubs
10014
10015 2003-03-24  Havoc Pennington  <hp@redhat.com>
10016
10017         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10018         file
10019
10020         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10021         NULL argument for "message" if the error is a well-known one,
10022         fill in a generic message in this case.
10023
10024         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10025         favor of DBusError
10026
10027         * bus/test.c (bus_test_flush_bus): add
10028
10029         * bus/policy.c (bus_policy_test): test code stub
10030
10031 2003-03-24  Havoc Pennington  <hp@pobox.com>
10032
10033         * bus/connection.c (bus_connections_setup_connection): set up
10034         the "can this user connect" function, but it always returns
10035         TRUE until we have a config file parser so we can have a config
10036         file that allows connections.
10037
10038 2003-03-23  Havoc Pennington  <hp@pobox.com>
10039
10040         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10041         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10042         the mutex, so we can check for proper memory management
10043         and OOM handling.
10044
10045         * dbus/dbus-dataslot.c: remove the mutex from
10046         DBusDataSlotAllocator and lock it manually when using it,
10047         to simplify fitting it into the global slots framework.
10048
10049         * dbus/dbus-threads.c (init_static_locks): rework how we're
10050         handling global locks so they are easily shut down.
10051
10052         * bus/policy.c (bus_policy_append_rule): fix
10053
10054         * bus/test-main.c (main): check for memleaks
10055
10056         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10057         test suite check for memleaks
10058
10059         * dbus/dbus-memory.c: add support in test mode for tracking
10060         number of outstanding blocks
10061
10062 2003-03-23  Havoc Pennington  <hp@pobox.com>
10063
10064         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10065         policies code
10066
10067         * dbus/dbus-hash.h: add ULONG hash keys
10068
10069         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10070         (_dbus_get_group_id): new function
10071
10072 2003-03-20  Havoc Pennington  <hp@redhat.com>
10073
10074         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10075         new function
10076         (dbus_connection_get_unix_user): new function
10077
10078 2003-03-20  Havoc Pennington  <hp@pobox.com>
10079
10080         * bus/connection.c (bus_connection_send_oom_error): assert that
10081         message has a sender
10082         (connection_execute_transaction): ditto
10083         (bus_connection_preallocate_oom_error): fix to set the sender, and
10084         set recipient to the destination service, not the bus driver
10085
10086         * bus/policy.c: hacking
10087
10088         * dbus/dbus-message.c (dbus_message_service_is): new function
10089         (dbus_message_sender_is): new
10090
10091 2003-03-19  Havoc Pennington  <hp@redhat.com>
10092
10093         * bus/policy.c: start sketching code for policy restrictions on
10094         what connections can do.
10095
10096 2003-03-18  Havoc Pennington  <hp@redhat.com>
10097
10098         * doc/TODO: some notes on high-level todo items. Little nitpick
10099         stuff is all in @todo, so no need to add it here.
10100
10101         * doc/config-file.txt: some notes on how config file might look
10102
10103 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10104
10105         * configure.in: 0.6
10106
10107         * NEWS: Update.
10108
10109 2003-03-17  Havoc Pennington  <hp@redhat.com>
10110
10111         * dbus/dbus-internals.h: add gcc attributes so that
10112         our printf-style functions warn on bad arguments to
10113         format
10114
10115         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10116         format bug
10117
10118         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10119         printf format bug
10120
10121 2003-03-17  Havoc Pennington  <hp@redhat.com>
10122
10123         * bus/test-main.c (main): make it print something as it runs
10124         so make check doesn't look stuck
10125
10126         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10127         from CVS, now obsolete
10128
10129 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10130
10131         * bus/dispatch.c: (bus_dispatch):
10132         Refetch the service name since it may have been reallocated
10133         when dbus_message_set_sender was called.
10134
10135         * dbus/dbus-sysdeps.c: (_dbus_accept):
10136         Add address and address length variables and use them to stop
10137         valgrind from complaining.
10138
10139 2003-03-17  Havoc Pennington  <hp@pobox.com>
10140
10141         All tests pass, no memleaks, no valgrind complaints.
10142
10143         * bus/test.c: refcount handler_slot
10144
10145         * bus/connection.c (bus_connections_new): refcount
10146         connection_data_slot
10147
10148         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10149         bytes so that auth scripts pass.
10150
10151         * bus/dispatch.c: init message_handler_slot so it gets allocated
10152         properly
10153
10154         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10155
10156         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10157         dealloc server_pipe_hash when no longer used for benefit of
10158         leak checking
10159
10160         * dbus/dbus-auth.c (process_command): memleak fix
10161
10162         * bus/dispatch.c (check_hello_message): memleak fix
10163
10164 2003-03-16  Havoc Pennington  <hp@pobox.com>
10165
10166         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10167
10168 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10169
10170         * bus/activation.c (bus_activation_activate_service): Append
10171         the pending activation entry to the list of pending activations.
10172
10173 2003-03-16  Havoc Pennington  <hp@pobox.com>
10174
10175         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10176         connections
10177
10178         * dbus/dbus-address.c (create_entry): fix OOM handling when
10179         failing to alloc entry->method
10180
10181 2003-03-16  Havoc Pennington  <hp@pobox.com>
10182
10183         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10184         the watch
10185
10186         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10187         add some missing dbus_set_result
10188
10189         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10190         alloc the DBusMessageHandler
10191
10192         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10193         the transport here, since we call this from the finalizer; it
10194         resulted in a double-finalize.
10195
10196         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10197         where we tried to use transport->connection that was NULL,
10198         happened when transport was disconnected early on due to OOM
10199
10200         * bus/*.c: adapt to handle OOM for watches/timeouts
10201
10202         * dbus/dbus-transport-unix.c: port to handle OOM during
10203         watch handling
10204
10205         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10206         reference to unused bytes instead of a copy
10207
10208         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10209         out of memory
10210
10211         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10212         FALSE on OOM
10213
10214         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10215         of memory
10216
10217 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10218
10219         * doc/dbus-specification.sgml:
10220         Document reply message for ActivateService.
10221
10222 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10223
10224         * bus/activation.c: (bus_pending_activation_entry_free),
10225         (bus_pending_activation_free), (bus_activation_new),
10226         (bus_activation_unref), (bus_activation_service_created),
10227         (bus_activation_activate_service):
10228         * bus/activation.h:
10229         * bus/bus.c: (bus_context_new):
10230         * bus/desktop-file.c: (new_section):
10231         * bus/driver.c: (bus_driver_send_service_deleted),
10232         (bus_driver_handle_activate_service):
10233         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10234         * bus/services.h:
10235         * dbus/dbus-connection.c:
10236         (dbus_connection_send_with_reply_and_block):
10237         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10238         * dbus/dbus-protocol.h:
10239         Make activation work better. Now pending activations will be queued
10240         and the daemon won't try to activate services that are already registered.
10241
10242 2003-03-16  Havoc Pennington  <hp@pobox.com>
10243
10244         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10245         connection data
10246
10247         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10248         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10249
10250 2003-03-16  Havoc Pennington  <hp@pobox.com>
10251
10252         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10253         this. always run the test suite before commit...
10254
10255         * bus/*: adapt to DBusConnection API changes
10256
10257         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10258         requires renaming stuff to avoid dbus_connection_dispatch name
10259         conflict.
10260
10261         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10262         function
10263
10264         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10265         separate from _dbus_message_loader_return_buffer()
10266
10267         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10268         this, because it's now always broken to use; the number of
10269         messages in queue vs. the number still buffered by the message
10270         loader is undefined/meaningless. Should use
10271         dbus_connection_get_dispatch_state().
10272         (dbus_connection_dispatch): rename from
10273         dbus_connection_dispatch_message
10274
10275 2003-03-16  Havoc Pennington  <hp@pobox.com>
10276
10277         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10278         implementation
10279
10280 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10281
10282         * dbus/dbus-connection.c:
10283         (dbus_connection_send_with_reply_and_block):
10284         Decrease connection->n_incoming when removing an entry
10285         from the list.
10286         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10287         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10288         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10289         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10290         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10291         (dbus_dict_get_byte_array):
10292         Handle NULL arrays and strings. Also add support for byte arrays.
10293
10294         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10295         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10296         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10297         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10298         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10299         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10300         * dbus/dbus-marshal.h:
10301         Add support for marshalling and demarshalling empty arrays and strings.
10302
10303         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10304         (dbus_message_append_string_array),
10305         (dbus_message_iter_get_boolean),
10306         (dbus_message_iter_get_boolean_array),
10307         (dbus_message_iter_get_int32_array),
10308         (dbus_message_iter_get_uint32_array),
10309         (dbus_message_iter_get_double_array),
10310         (dbus_message_iter_get_byte_array),
10311         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10312         (check_message_handling):
10313         Add support for getting empty arrays and dicts.
10314
10315         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10316         Don't do any validation at all for now, that's better than just checking
10317         for ASCII.
10318
10319         * test/data/valid-messages/emptiness.message:
10320         New test message with lots of empty arrays.
10321
10322 2003-03-16  Havoc Pennington  <hp@pobox.com>
10323
10324         * dbus/dbus-connection.c
10325         (_dbus_connection_queue_received_message_link): new function that
10326         can't fail due to OOM
10327
10328         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10329         new function pops a message together with a list link
10330         containing it.
10331
10332         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10333         message queuing functions to avoid needing to alloc memory
10334
10335 2003-03-16  Havoc Pennington  <hp@pobox.com>
10336
10337         Oops - test code was only testing failure of around 30 of the
10338         mallocs in the test path, but it turns out there are 500+
10339         mallocs. I believe this was due to misguided linking setup such
10340         that there was one copy of dbus_malloc etc. in the daemon and one
10341         in the shared lib, and only daemon mallocs were tested. In any
10342         case, the test case now tests all 500+ mallocs, and doesn't pass
10343         yet, though there are lots of fixes in this patch.
10344
10345         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10346         this so that it doesn't need to allocate memory, since it
10347         has no way of indicating failure due to OOM (and would be
10348         annoying if it did).
10349
10350         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10351
10352         * bus/Makefile.am: rearrange to create two self-contained
10353         libraries, to avoid having libraries with overlapping symbols.
10354         that was resulting in weirdness, e.g. I'm pretty sure there
10355         were two copies of global static variables.
10356
10357         * dbus/dbus-internals.c: move the malloc debug stuff to
10358         dbus-memory.c
10359
10360         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10361         empty.
10362
10363         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10364
10365         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10366         on failure.
10367
10368         * bus/dispatch.c (bus_dispatch_add_connection): free
10369         message_handler_slot when no longer using it, so
10370         memory leak checkers are happy for the test suite.
10371
10372         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10373
10374         * bus/bus.c (new_connection_callback): disconnect in here if
10375         bus_connections_setup_connection fails.
10376
10377         * bus/connection.c (bus_connections_unref): fix to free the
10378         connections
10379         (bus_connections_setup_connection): if this fails, don't
10380         disconnect the connection, just be sure there are no side
10381         effects.
10382
10383         * dbus/dbus-string.c (undo_alignment): unbreak this
10384
10385         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10386         leaking
10387         (_dbus_auth_new): fix the order in which we free strings
10388         on OOM failure
10389
10390         * bus/connection.c (bus_connection_disconnected): fix to
10391         not send ServiceDeleted multiple times in case of memory
10392         allocation failure
10393
10394         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10395         get the base service name
10396         (dbus_bus_register_client): don't return base service name,
10397         instead store it on the DBusConnection and have an accessor
10398         function for it.
10399         (dbus_bus_register_client): rename dbus_bus_register()
10400
10401         * bus/dispatch.c (check_hello_message): verify that other
10402         connections on the bus also got the correct results, not
10403         just the one sending hello
10404
10405 2003-03-15  Havoc Pennington  <hp@pobox.com>
10406
10407         Make it pass the Hello handling test including all OOM codepaths.
10408         Now to do other messages...
10409
10410         * bus/services.c (bus_service_remove_owner): fix crash when
10411         removing owner from an empty list of owners
10412         (bus_registry_ensure): don't leave service in the list of
10413         a connection's owned services if we fail to put the service
10414         in the hash table.
10415
10416         * bus/connection.c (bus_connection_preallocate_oom_error): set
10417         error flag on the OOM error.
10418
10419         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10420         handle _dbus_transport_set_connection failure
10421
10422         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10423         to create watches up front and simply enable/disable them as
10424         needed.
10425         (unix_connection_set): this can now fail on OOM
10426
10427         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10428         of enabling/disabling a watch or timeout.
10429
10430         * bus/loop.c (bus_loop_iterate): don't touch disabled
10431         watches/timeouts
10432
10433         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10434
10435 2003-03-15  Havoc Pennington  <hp@pobox.com>
10436
10437         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10438         write useful test code, after all that futzing around ;-)
10439
10440         Test does not yet pass because we can't handle OOM in
10441         _dbus_transport_messages_pending (basically,
10442         dbus_connection_preallocate_send() does not prealloc the write
10443         watch). To fix this, I think we need to add new stuff to
10444         set_watch_functions, namely a SetEnabled function so we can alloc
10445         the watch earlier, then enable it later.
10446
10447         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10448         dbus-memory.c to the convenience lib
10449
10450         * bus/test.c: rename some static functions to keep them clearly
10451         distinct from stuff in connection.c. Handle client disconnection.
10452
10453 2003-03-14  Havoc Pennington  <hp@pobox.com>
10454
10455         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10456         transport, tests more of the real codepath. Set up clients
10457         with bus_setup_debug_client.
10458
10459         * bus/test.c (bus_setup_debug_client): function to set up debug
10460         "clients" on the main loop
10461
10462         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10463         support
10464
10465         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10466         server type
10467
10468         * dbus/dbus-server-debug.c: support a debug server based on pipes
10469
10470         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10471         (_dbus_close): new function
10472
10473         * configure.in: check for socketpair
10474
10475 2003-03-14  Havoc Pennington  <hp@redhat.com>
10476
10477         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10478         cheesy hack
10479
10480         * dbus/dbus-transport-debug.c: rework this a good bit to be
10481         less complicated. hopefully still works.
10482
10483         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10484         manually
10485
10486         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10487         after running it
10488
10489         * dbus/dbus-message.c (dbus_message_copy): rename from
10490         dbus_message_new_from_message, fix it up to copy
10491         all the message fields, add test case
10492
10493         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10494         not quite passing yet
10495
10496 2003-03-14  Havoc Pennington  <hp@pobox.com>
10497
10498         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10499         until no work remains" in test code. (the large diff here
10500         is just code movement, no actual changes)
10501
10502         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10503         1, no point waiting around for test code.
10504         (_dbus_server_debug_accept_transport): unref the timeout
10505         after adding it (right?)
10506
10507         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10508
10509 2003-03-13  Havoc Pennington  <hp@redhat.com>
10510
10511         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10512         out of memory
10513
10514         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10515         of memory
10516
10517         * dbus/dbus-connection.h: Make AddWatchFunction and
10518         AddTimeoutFunction return a bool so they can fail on out-of-memory
10519
10520         * bus/bus.c (bus_context_new): set up timeout handlers
10521
10522         * bus/connection.c (bus_connections_setup_connection): set up
10523         timeout handlers
10524
10525         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10526         can fail
10527
10528         * bus/bus.c (bus_context_new): adapt to changes
10529
10530         * bus/connection.c: adapt to changes
10531
10532         * test/watch.c: adapt to DBusWatch changes
10533
10534         * bus/dispatch.c (bus_dispatch_test): started adding this but
10535         didn't finish
10536
10537 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10538
10539         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10540
10541 2003-03-13  Havoc Pennington  <hp@pobox.com>
10542
10543         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10544         set up a test framework as for the library
10545
10546 2003-03-12  Havoc Pennington  <hp@pobox.com>
10547
10548         Throughout: purge global variables, introduce BusActivation,
10549         BusConnections, BusRegistry, etc. objects instead.
10550
10551         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10552         message bus object
10553
10554         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10555         going to redo this a bit differently I think
10556
10557 2003-03-12  Havoc Pennington  <hp@redhat.com>
10558
10559         Mega-patch that gets the message bus daemon initially handling
10560         out-of-memory. Work still needed. Also lots of random
10561         moving stuff to DBusError instead of ResultCode.
10562
10563         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10564
10565         * dbus/dbus-connection.c
10566         (dbus_connection_send_with_reply_and_block): use DBusError
10567
10568         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10569         DBusResultCode
10570
10571         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10572         code here, as the only failure possible is OOM.
10573
10574         * bus/connection.c (bus_connection_disconnect):
10575         rename bus_connection_disconnected as it's a notification only
10576
10577         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10578         "name" on get_args failure, should be done by get_args;
10579         don't disconnect client for bad args, just return an error.
10580         (bus_driver_handle_service_exists): ditto
10581
10582         * bus/services.c (bus_services_list): NULL-terminate returned array
10583
10584         * bus/driver.c (bus_driver_send_service_lost)
10585         (bus_driver_send_service_acquired): send messages from driver to a
10586         specific client to the client's unique name, not to the broadcast
10587         service.
10588
10589         * dbus/dbus-message.c (decode_header_data): reject messages that
10590         contain no name field
10591         (_dbus_message_get_client_serial): rename to
10592         dbus_message_get_serial and make public
10593         (_dbus_message_set_serial): rename from set_client_serial
10594         (_dbus_message_set_reply_serial): make public
10595         (_dbus_message_get_reply_serial): make public
10596
10597         * bus/connection.c (bus_connection_foreach): allow stopping
10598         iteration by returning FALSE from foreach function.
10599
10600         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10601         (dbus_connection_free_preallocated_send)
10602         (dbus_connection_preallocate_send): new API for sending a message
10603         without possibility of malloc failure.
10604         (dbus_connection_send_message): rename to just
10605         dbus_connection_send (and same for whole function family)
10606
10607         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10608
10609         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10610
10611         * bus/activation.c: handle/return errors
10612
10613         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10614
10615         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10616         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10617         (_dbus_result_from_errno): move to this file
10618
10619 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10620
10621         * dbus/dbus-marshal.c:
10622         (_dbus_marshal_set_string):
10623         Take a length argument so we can marshal the correct string
10624         length.
10625
10626         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10627         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10628         (_dbus_marshal_test):
10629         * dbus/dbus-marshal.h:
10630         Add support for marshalling and demarshalling dicts.
10631
10632         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10633         Add support for TYPE DICT.
10634
10635         * dbus/dbus-message.c: (set_string_field):
10636         Adjust header padding.
10637
10638         (dbus_message_append_args_valist), (dbus_message_append_dict),
10639         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10640         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10641         (check_message_handling), (check_have_valid_message):
10642         * dbus/dbus-message.h:
10643         Add functions for setting and getting dicts.
10644
10645         * dbus/dbus-protocol.h:
10646         Add DBUS_TYPE_DICT.
10647
10648         * dbus/dbus.h:
10649         Add dbus-dict.h
10650
10651         * doc/dbus-specification.sgml:
10652         Add information about how dicts are marshalled.
10653
10654         * test/data/invalid-messages/dict-with-nil-value.message:
10655         * test/data/invalid-messages/too-short-dict.message:
10656         * test/data/valid-messages/dict-simple.message:
10657         * test/data/valid-messages/dict.message:
10658         Add sample messages containing dicts.
10659
10660 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10661
10662         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10663
10664 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10665
10666         * dbus/Makefile.am:
10667         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10668         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10669         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10670         (dbus_dict_set_double), (dbus_dict_set_string),
10671         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10672         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10673         (dbus_dict_set_string_array), (_dbus_dict_test):
10674         * dbus/dbus-dict.h:
10675         Fix according to comments from Havoc.
10676
10677 2003-03-06  Michael Meeks  <michael@server.home>
10678
10679         * configure.in: if we don't have kde-config, disable have_qt.
10680
10681 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10682
10683         * dbus/Makefile.am:
10684         Add dbus-dict.[ch]
10685
10686         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10687         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10688         (dbus_dict_remove), (dbus_dict_get_value_type),
10689         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10690         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10691         (dbus_dict_put_double), (dbus_dict_put_string),
10692         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10693         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10694         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10695         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10696         (dbus_dict_get_double), (dbus_dict_get_string),
10697         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10698         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10699         (dbus_dict_get_string_array), (_dbus_dict_test):
10700         * dbus/dbus-dict.h:
10701         Add DBusDict implementation
10702
10703         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10704         * dbus/dbus-test.h:
10705         Add _dbus_dict_test
10706
10707 2003-03-04  Havoc Pennington  <hp@pobox.com>
10708
10709         * test/data/auth/*: adapt to changes
10710
10711         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10712         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10713         userid
10714
10715         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10716         more stuff from being in a context name, to make the protocol
10717         simpler to deal with
10718
10719         * dbus/dbus-errors.c (dbus_error_has_name): new function
10720         (dbus_error_is_set): new function
10721
10722         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10723         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10724
10725         * dbus/dbus-connection.c (dbus_connection_flush): also read
10726         messages during a flush operation
10727
10728         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10729
10730 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10731
10732         * configure.in: Check for gethostbyname on Solaris.
10733
10734         * dbus/dbus-transport.c: (_dbus_transport_open):
10735         Remove duplicate "tcp" entry.
10736
10737         * doc/dbus-specification.sgml:
10738         Clarify some things.
10739
10740 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10741
10742         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10743         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10744         (_dbus_keyring_test):
10745         * dbus/dbus-md5.c: (_dbus_md5_compute):
10746         * dbus/dbus-sha.c: (_dbus_sha_compute):
10747         Plug memory leaks.
10748
10749 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10750
10751         * README: Add some things.
10752
10753 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10754
10755         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10756         after case DBUS_TYPE_BOOELAN.
10757
10758 2003-03-02  Havoc Pennington  <hp@pobox.com>
10759
10760         * test/break-loader.c (randomly_set_extreme_ints): add test that
10761         sets really huge and small integers
10762
10763         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10764         that length of boolean array fits in the string, and that
10765         string has room for boolean value in single-bool case.
10766
10767         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10768         optional value to "ALIGN" command which is what to fill the
10769         alignment with.
10770
10771         * test/data/valid-messages/no-padding.message: add regression
10772         test for the message padding problem
10773
10774 2003-03-02  Havoc Pennington  <hp@pobox.com>
10775
10776         * dbus/dbus-message.c (decode_header_data): fix to always init
10777         message_padding, from Benjamin Dauvergne
10778
10779 2003-03-02  Havoc Pennington  <hp@pobox.com>
10780
10781         * configure.in: 0.5
10782
10783         * NEWS: Update.
10784
10785 2003-03-01  Joe Shaw  <joe@assbarn.com>
10786
10787         * configure.in: Check for "struct cmsgcred" and try to access its
10788         members for BSD-like unices.
10789
10790         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10791         _dbus_read_credentials_unix_socket().
10792         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10793         read() for reading the credential byte off the unix socket.  Use
10794         struct cmsgcred on systems that support it.
10795
10796 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10797
10798         * glib/Makefile.am:
10799         * configure.in:
10800         Make gthreads-2.0 dependency optional. Don't build thread test if
10801         its not found.
10802
10803 2003-02-27  Havoc Pennington  <hp@pobox.com>
10804
10805         * dbus/dbus-connection.c
10806         (dbus_connection_send_message_with_reply_and_block): fix doh!
10807         doh! doh! bug that resulted in never removing a reply from the
10808         queue, no wonder we called get_reply_serial so much ;-)
10809
10810         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10811         and client serial instead of demarshaling them every time
10812
10813 2003-02-27  Havoc Pennington  <hp@pobox.com>
10814
10815         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10816         more inlined, using dbus-string-private.h, speeds things up
10817         substantially
10818
10819         * dbus/dbus-string.c (_dbus_string_free): apply align offset
10820         when freeing the string
10821         (_dbus_string_steal_data): fix for align offset
10822         (undo_alignment): new function
10823
10824 2003-02-26  Havoc Pennington  <hp@redhat.com>
10825
10826         All kinds of audit fixes from Owen, plus initial attempt to
10827         handle unaligned memory returned from malloc.
10828
10829         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10830         leave room for align_offset and nul byte
10831         (fixup_alignment): function to track an align_offset and
10832         ensure real->str is aligned
10833         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10834         to allow a nul byte plus align offset
10835         (_dbus_string_lock): fix overflow issue
10836         (_dbus_string_init_const_len): add assertions on sanity of len,
10837         assign allocated to be ALLOCATION_PADDING larger than len
10838         (set_length): fixup the overflow handling
10839         (_dbus_string_get_data_len): fix overflow in assertion
10840         (open_gap): detect overflow in size of gap to be opened
10841         (_dbus_string_lengthen): add overflow check
10842         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10843         (_dbus_string_append): add overflow check
10844         (_dbus_string_append_unichar): overflow
10845         (_dbus_string_delete): fix overflow in assertion
10846         (_dbus_string_copy_len): overflow in assertion
10847         (_dbus_string_replace_len): overflows in assertions
10848         (_dbus_string_find): change to implement in terms of
10849         _dbus_string_find_to
10850         (_dbus_string_find_to): assorted fixage
10851         (_dbus_string_equal_c_str): assert c_str != NULL,
10852         fix logic so the function works
10853         (_dbus_string_ends_with_c_str): fix overflow thingy
10854         (_dbus_string_base64_encode): overflow fix
10855         (_dbus_string_validate_ascii): overflow
10856         (_dbus_string_validate_nul): overflow
10857
10858 2003-02-26  Havoc Pennington  <hp@redhat.com>
10859
10860         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10861
10862 2003-02-26  Alexander Larsson  <alexl@redhat.com>
10863
10864         * configure.in:
10865         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10866
10867         * dbus/dbus-connection.c:
10868         * dbus/dbus-connection.h:
10869         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10870         Add dbus_connection_set_wakeup_main_function and use it when queueing
10871         incoming and outgoing messages.
10872
10873
10874         * dbus/dbus-dataslot.c:
10875         Threadsafe usage of DBusDataSlotAllocator
10876
10877         * dbus/dbus-message.c: (dbus_message_get_args_iter):
10878         dbus_new can fail.
10879
10880         * dbus/dbus-server-unix.c:
10881         Add todo comment
10882
10883         * glib/dbus-gmain.c:
10884         Implement the new wakeup functions for glib.
10885
10886         * glib/Makefile.am:
10887         * glib/test-thread-client.c:
10888         * glib/test-thread-server.c:
10889         * glib/test-thread.h:
10890         Initial cut at some thread test code. Not really done yet.
10891
10892 2003-02-26  Havoc Pennington  <hp@pobox.com>
10893
10894         * dbus/dbus-connection.c
10895         (dbus_connection_send_message_with_reply_and_block): fix crash
10896         where we ref'd the outgoing message instead of the returned reply
10897
10898         * dbus/dbus-transport-unix.c (do_authentication): check read watch
10899         at the end of this function, so if we didn't need to read for
10900         authentication, we reinstall it for receiving messages
10901
10902         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10903         a NULL sender for peer-to-peer case
10904
10905         * dbus/dbus-transport-unix.c (check_read_watch): handle
10906         !authenticated case correctly
10907
10908         * glib/dbus-gmain.c: add support for DBusServer
10909
10910         * dbus/dbus-server.c: add data slot support
10911
10912         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10913         return values and handle errors
10914
10915         * dbus/dbus-dataslot.c: factor out the data slot stuff from
10916         DBusConnection
10917
10918         * Doxyfile.in (INPUT): add glib subdir
10919
10920         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10921         setup_with_g_main instead of hookup_with_g_main; write docs
10922
10923 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10924
10925         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10926         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10927         * dbus/dbus-message.c: (dbus_message_append_boolean),
10928         (dbus_message_append_boolean_array),
10929         (dbus_message_get_args_valist), (_dbus_message_test):
10930         * dbus/dbus-message.h:
10931         * doc/dbus-specification.sgml:
10932         Various fixes as pointed out by Havoc.
10933
10934         * test/data/invalid-messages/bad-boolean-array.message:
10935         * test/data/invalid-messages/bad-boolean.message:
10936         Add invalid boolean value test cases.
10937
10938 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10939
10940         * dbus/dbus-internals.c: (_dbus_type_to_string):
10941         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10942         (_dbus_marshal_validate_arg):
10943         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10944         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10945         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10946         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10947         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10948         (dbus_message_iter_get_double),
10949         (dbus_message_iter_get_boolean_array), (message_iter_test):
10950         * dbus/dbus-message.h:
10951         * dbus/dbus-protocol.h:
10952         * doc/dbus-specification.sgml:
10953         * test/data/valid-messages/lots-of-arguments.message:
10954         Add support for boolean and boolean array types.
10955
10956 2003-02-23  Havoc Pennington  <hp@pobox.com>
10957
10958         * dbus/dbus-keyring.c: finish most of this implementation and
10959         simple unit test
10960
10961         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10962         these barf if the error isn't cleared to NULL
10963
10964         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10965         (_dbus_create_directory): new function
10966
10967         * dbus/dbus-errors.c (dbus_set_error): fix warning
10968
10969         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10970         (_dbus_string_hex_decode): new function
10971         (test_hex_roundtrip): test code
10972
10973         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10974
10975         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10976
10977         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10978         the save-to-temp/rename trick to atomically write the new file
10979         (_dbus_string_parse_uint): new function
10980
10981 2003-02-22  Havoc Pennington  <hp@pobox.com>
10982
10983         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10984
10985 2003-02-22  Havoc Pennington  <hp@pobox.com>
10986
10987         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10988         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10989
10990         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10991
10992         * dbus/test/data/sha-1: add US government test suite for SHA-1
10993
10994 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10995
10996         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10997         Make string arrays NULL-terminated.
10998
10999         * dbus/dbus-memory.c: (dbus_free_string_array):
11000         * dbus/dbus-memory.h:
11001         New function for freeing NULL-terminated string arrays.
11002
11003         * dbus/dbus-message-builder.c: (append_quoted_string),
11004         (_dbus_message_data_load):
11005         Add support for array types.
11006
11007         * dbus/dbus-message.c: (check_message_handling):
11008         Add more types as test cases.
11009
11010         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11011         (_dbus_string_parse_double):
11012         Add the start offset to the end offset.
11013
11014         * test/data/valid-messages/lots-of-arguments.message:
11015         New test message with lots of arguments.
11016
11017 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11018
11019         * dbus/dbus-message.c: (dbus_message_append_nil),
11020         (dbus_message_append_int32), (dbus_message_append_uint32),
11021         (dbus_message_append_double), (dbus_message_append_string),
11022         (dbus_message_append_int32_array),
11023         (dbus_message_append_uint32_array),
11024         (dbus_message_append_double_array),
11025         (dbus_message_append_byte_array),
11026         (dbus_message_append_string_array):
11027         Fix all out-of-memory handling in these functions.
11028
11029 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11030
11031         * dbus/dbus-message.c: (dbus_message_append_nil):
11032         Fix a silly.
11033
11034 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11035
11036         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11037         (dbus_message_append_nil), (dbus_message_append_int32_array),
11038         (dbus_message_append_uint32_array),
11039         (dbus_message_append_double_array),
11040         (dbus_message_append_byte_array),
11041         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11042         (dbus_message_iter_get_int32_array),
11043         (dbus_message_iter_get_uint32_array),
11044         (dbus_message_iter_get_double_array),
11045         (dbus_message_iter_get_byte_array),
11046         (dbus_message_iter_get_string_array):
11047
11048         * dbus/dbus-message.h:
11049         Add functions for appending and getting arrays.
11050
11051 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11052
11053         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11054         element size at least 8 bytes, fixes mempool tests on
11055         64-bit machines.
11056
11057 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11058
11059         * dbus/dbus-transport-unix.c (unix_do_iteration):
11060         Unlock the connection mutex during a blocking select call.
11061         Add todo about how we need a way to wake up the select.
11062
11063         * dbus/dbus-connection-internal.h:
11064         * dbus/dbus-connection.c:
11065         Add _dbus_connection_lock and _dbus_connection_unlock.
11066
11067 2003-02-19  Havoc Pennington  <hp@pobox.com>
11068
11069         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11070         Doxyfile.in, not Doxyfile
11071
11072         * dbus/dbus-keyring.c: do some hacking on this
11073
11074         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11075
11076         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11077         dbus_error_init
11078         (dbus_set_error): remove dbus_error_init, check for message ==
11079         NULL *before* we sprintf into it, and add @todo about including
11080         system headers in this file
11081
11082         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11083
11084         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11085
11086         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11087         get various bits of user information based on either username
11088         or user ID
11089         (_dbus_homedir_from_username): new function
11090
11091 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11092
11093         * configure.in:
11094         Add check for nonposix getpwnam_r
11095
11096         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11097         Align the pool element size to a sizeof (void *) boundary.
11098
11099         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11100         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11101         General Solaris fixes.
11102
11103         * test/data/valid-messages/simplest-manual.message:
11104         Explicitly state that we want little-endian packing.
11105
11106 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11107
11108         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11109
11110         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11111         Added to create a transport connecting using a tcp/ip socket.
11112
11113         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11114         to a tcp socket at given host and port.
11115         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11116         hostname and port.
11117
11118         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11119
11120         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11121         Added to create a server listening on a TCP/IP socket.
11122
11123 2003-02-19  Havoc Pennington  <hp@pobox.com>
11124
11125         Throughout: mop up all the Doxygen warnings and undocumented
11126         stuff.
11127
11128         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11129         to search any paths.
11130
11131         * dbus/dbus-threads.c: move global mutex initializers to
11132         dbus-internals.h, multiple prototypes was confusing doxygen
11133         besides being kind of ugly
11134
11135         * Doxyfile (PREDEFINED): have Doxygen define
11136         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11137         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11138         (do not abuse the feature! it's for stuff like the autogenerated
11139         macros in dbus-md5.c, not just for things you don't feel like
11140         documenting...)
11141
11142 2003-02-18  Havoc Pennington  <hp@pobox.com>
11143
11144         * dbus/dbus-string.c (_dbus_string_zero): new function
11145
11146         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11147         wrap it in some dbus-friendly API
11148
11149         * dbus/dbus-types.h: add 16-bit types
11150
11151 2003-02-18  Joe Shaw  <joe@assbarn.com>
11152
11153         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11154         credentials from our currently running process.
11155         (get_word): Fix a buglet where we were copying the entire length
11156         instead of relative to our position.
11157
11158         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11159         keys on the stack... it's 640k of data.
11160
11161         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11162         read the credentials byte off the socket, even if we don't have
11163         SO_PEERCRED.
11164         (_dbus_poll): Implement poll() using select() for systems which
11165         don't have it.
11166
11167         * glib/test-dbus-glib.c (main): Print out an error if no
11168         parameters are given.
11169
11170         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11171         can fallback to a secondary auth mechanism if the first fails.
11172
11173 2003-02-18  Havoc Pennington  <hp@pobox.com>
11174
11175         * AUTHORS: add Alex
11176
11177 2003-02-17  Havoc Pennington  <hp@pobox.com>
11178
11179         * doc/dbus-specification.sgml: lots of cosmetic
11180         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11181         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11182         s/server/bus/ (except in authentication section). Add a section
11183         "Message Bus Message Routing"
11184
11185 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11186
11187         Release 0.4
11188
11189         * NEWS: Update
11190
11191 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11192
11193         * doc/dbus-specification.sgml:
11194         Specification updates.
11195
11196 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11197
11198         * bus/activation.c: (bus_activation_init), (child_setup),
11199         (bus_activation_activate_service):
11200         * bus/activation.h:
11201         * bus/main.c: (main):
11202         Set DBUS_ADDRESS environment variable.
11203
11204         * dbus/dbus-errors.c: (dbus_set_error):
11205         Don't use va_copy since that's a C99 feature.
11206
11207         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11208         (_dbus_spawn_async):
11209         * dbus/dbus-sysdeps.h:
11210         Add child_setup_func to _dbus_spawn_async.
11211
11212         * doc/dbus-specification.sgml:
11213         Update specification.
11214
11215         * test/spawn-test.c: (setup_func), (main):
11216         Fix test.
11217
11218 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11219
11220         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11221         Added todo.
11222
11223 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11224
11225         * doc/.cvsignore:
11226         * doc/Makefile.am:
11227         * doc/dbus-test-plan.sgml:
11228         Add test plan document.
11229
11230         * test/Makefile.am:
11231         Fix distcheck.
11232
11233 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11234
11235         * dbus/dbus-message.c: (decode_header_data),
11236         (_dbus_message_loader_return_buffer):
11237         Set the header padding amount when loading a message.
11238
11239 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11240
11241         * bus/dispatch.c: (send_one_message):
11242         Only send broadcast messages to registered connections.
11243
11244         * dbus/dbus-message.c: (dbus_message_name_is):
11245         * dbus/dbus-message.h:
11246         New convenience function.
11247
11248         * dbus/dbus-transport-debug.c: (do_reading):
11249         Only dispatch one message per run.
11250
11251         * test/Makefile.am:
11252         * test/bus-test.c: (new_connection_callback), (die),
11253         (test_hello_client1_handler), (test_hello_client2_handler),
11254         (test_hello_replies), (main):
11255
11256         * test/bus-test-loop.[ch]:
11257         Add these.
11258
11259 2003-02-16  Havoc Pennington  <hp@pobox.com>
11260
11261         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11262         backward conditional
11263
11264 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11265
11266         * dbus/dbus-connection.c:
11267         Implement sent_message_with_reply. (with_reply_and block is still
11268         busted).
11269         Made dispatch_message not lose message if OOM.
11270
11271         * dbus/dbus-errors.h:
11272         Add NoReply error (for reply timeouts).
11273
11274 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11275
11276         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11277         Actually free keys and values when destroying hashtable.
11278
11279 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11280
11281         * dbus/dbus-auth.c: (client_try_next_mechanism):
11282         Plug a leak.
11283
11284         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11285         Return TRUE if there's no thread implementation around.
11286
11287         * glib/dbus-gmain.c: (free_source),
11288         (dbus_connection_hookup_with_g_main):
11289         Make sure to remove the GSource when the connection is finalized.
11290
11291 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11292
11293         * bus/dispatch.c: (bus_dispatch_message_handler):
11294         * dbus/dbus-errors.h:
11295         Return an error if someone tries to send a message to a service
11296         that doesn't exist.
11297
11298 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11299
11300         * bus/activation.c: (load_directory), (bus_activation_init),
11301         (bus_activation_activate_service):
11302         * bus/activation.h:
11303         * bus/driver.c:
11304         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11305         More work on the activation handling.
11306
11307         * dbus/dbus-errors.h:
11308         Add some error messages
11309
11310         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11311         * dbus/dbus-message.h:
11312         New function that creates an error message.
11313
11314         * dbus/dbus-protocol.h:
11315         Add ACTIVATE_SERVER message.
11316
11317         * dbus/dbus-server-unix.c: (unix_handle_watch),
11318         (_dbus_server_new_for_domain_socket):
11319         Call _dbus_fd_set_close_on_exec.
11320
11321         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11322         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11323         (_dbus_fd_set_close_on_exec):
11324         * dbus/dbus-sysdeps.h:
11325         Add _dbus_fd_set_close_on exec function. Also add function that checks
11326         that all open fds are set to close-on-exec and warns otherwise.
11327
11328         * dbus/dbus-transport-unix.c:
11329         (_dbus_transport_new_for_domain_socket):
11330         Call _dbus_fd_set_close_on_exec.
11331
11332 2003-02-16  Havoc Pennington  <hp@pobox.com>
11333
11334         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11335         allow people to avoid setting SIGPIPE to SIG_IGN
11336         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11337         we've been asked not to
11338
11339 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11340
11341         * dbus/dbus-list.c: (_dbus_list_append_link),
11342         (_dbus_list_prepend_link):
11343         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11344         (dbus_realloc):
11345         Warning fixes.
11346
11347 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11348
11349         * bus/Makefile.am:
11350         * bus/activation.c: (bus_activation_entry_free),
11351         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11352         * bus/activation.h:
11353         * bus/main.c: (main):
11354         Add simple activation support, doesn't work yet though.
11355
11356 2003-02-15   Zack Rusin  <zack@kde.org>
11357
11358         * qt/dbus-qthread.cpp:  small casting fix
11359
11360 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11361
11362         * dbus/dbus-errors.c: (dbus_set_error):
11363         * dbus/dbus-errors.h:
11364         Add a few errors and make dbus_set_error void.
11365
11366         * dbus/dbus-sysdeps.c:
11367         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11368         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11369         * dbus/dbus-sysdeps.h:
11370         Add _dbus_spawn_async.
11371
11372         * test/spawn-test.c: (main):
11373         Test for _dbus_spawn_async.
11374
11375 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11376
11377         * dbus/dbus-internals.h:
11378         Fix build without tests.
11379
11380         * dbus/dbus-list.c: (alloc_link):
11381         Fix a segfault when a malloc fails.
11382
11383         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11384         (dbus_malloc0), (dbus_realloc):
11385         Add support for malloc debugging.
11386
11387 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11388
11389         * dbus/dbus-threads.c:
11390         * dbus/dbus-threads.h:
11391         Add condvars. Remove static mutext from API.
11392         Implement static mutexes by initializing them from threads_init.
11393
11394         * glib/dbus-gthread.c:
11395         * qt/dbus-qthread.cpp:
11396         Update with the thread api changes.
11397
11398
11399         * dbus/dbus-list.c:
11400         * dbus/dbus-list.h:
11401         Turn StaticMutex into normal mutex + init function.
11402         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11403         _dbus_list_append_link, _dbus_list_prepend_link
11404
11405
11406         * dbus/dbus-sysdeps.c:
11407         * dbus/dbus-sysdeps.h:
11408         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11409         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11410
11411         * dbus/dbus-protocol.h:
11412         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11413
11414         * dbus/dbus-message.c:
11415         Make ref/unref atomic.
11416         Fix some docs.
11417
11418         * dbus/dbus-connection-internal.h:
11419         * dbus/dbus-connection.c:
11420         * dbus/dbus-connection.h:
11421         Make threadsafe.
11422         Change _peek to _borrow,_return & _steal_borrowed.
11423         Change disconnect callback to event.
11424         Make dbus_connection_dispatch_messages reentrant.
11425
11426         * dbus/dbus-transport.c:
11427         Don't ref the connection on calls to the transport
11428         implementation.
11429
11430         * dbus/dbus-message-handler.c:
11431         Make threadsafe.
11432
11433         * glib/dbus-gmain.c:
11434         Don't use peek_message anymore
11435
11436         * test/Makefile.am:
11437         * test/debug-thread.c:
11438         * test/debug-thread.h:
11439         Simple thread implementation that asserts() on deadlocks in
11440         single-threaded code.
11441
11442         * test/bus-test.c:
11443         (main) Call debug_threads_init.
11444
11445         * test/watch.c:
11446         Use disconnect message instead of disconnect callback.
11447
11448         * bus/connection.c:
11449         * bus/connection.h:
11450         Don't call dbus_connection_set_disconnect_function. Instead export
11451         bus_connection_disconnect.
11452
11453         * bus/dispatch.c:
11454         Call bus_connection_disconnect when we get a disconnected message.
11455
11456 2003-02-15  Havoc Pennington  <hp@pobox.com>
11457
11458         * dbus/dbus-message.c (dbus_message_new): fool around with the
11459         docs
11460
11461 2003-02-14  Havoc Pennington  <hp@pobox.com>
11462
11463         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11464
11465         * dbus/dbus-memory.c: fail if the debug functions indicate we
11466         should
11467
11468         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11469         (_dbus_decrement_fail_alloc_counter): debug functions to
11470         simulate memory allocation failures
11471
11472 2003-02-14  Havoc Pennington  <hp@pobox.com>
11473
11474         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11475         to DBusError
11476
11477 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11478
11479         * bus/driver.c: (bus_driver_handle_hello):
11480         * bus/driver.h:
11481         * bus/services.c: (bus_service_lookup):
11482         Reorder message sending so we get a more sane order.
11483
11484         * test/bus-test.c: (message_handler):
11485         Fix tyop.
11486
11487 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11488
11489         * bus/driver.c: (bus_driver_send_service_deleted),
11490         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11491         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11492         (bus_driver_send_welcome_message),
11493         (bus_driver_handle_list_services),
11494         (bus_driver_handle_acquire_service),
11495         (bus_driver_handle_service_exists):
11496         * dbus/dbus-bus.c: (dbus_bus_register_client),
11497         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11498         * dbus/dbus-errors.c: (dbus_result_to_string):
11499         * dbus/dbus-errors.h:
11500         * dbus/dbus-message.c: (dbus_message_append_args),
11501         (dbus_message_append_args_valist), (dbus_message_get_args),
11502         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11503         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11504         (dbus_message_iter_get_byte_array),
11505         (dbus_message_iter_get_string_array), (message_iter_test),
11506         (check_message_handling), (_dbus_message_test):
11507         * dbus/dbus-message.h:
11508         * test/bus-test.c: (main):
11509         Change fields to arguments in messages, so that they won't be
11510         confused with header fields.
11511
11512         * glib/test-dbus-glib.c: (main):
11513         Remove append_fields from hello message.
11514
11515 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11516
11517         * dbus/dbus-errors.c:
11518         * dbus/dbus-message.c:
11519         * dbus/dbus-string.c:
11520         Documentation fixes.
11521
11522 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11523
11524         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11525         (remove_timeout):
11526         Implement support for timeouts in dbus-glib.
11527
11528 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11529
11530         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11531         * dbus/dbus-message.c: (process_test_subdir):
11532         * test/break-loader.c: (find_breaks_based_on):
11533         Plug some memory leaks.
11534
11535 2003-02-13  Richard Hult  <rhult@codefactory.se>
11536
11537         * bus/main.c: Fix build.
11538
11539         * dbus/dbus-errors.h:
11540         * dbus/dbus-errors.c: Fix copyright for Anders.
11541
11542 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11543
11544         * bus/Makefile.am:
11545         Add utils.[ch]
11546
11547         * bus/connection.c: (bus_connection_foreach):
11548         Fix a warning.
11549
11550         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11551         (unescape_string), (new_section), (parse_section_start),
11552         (parse_key_value), (report_error), (bus_desktop_file_load),
11553         (bus_desktop_file_get_string):
11554         * bus/desktop-file.h:
11555         Use DBusError for error reporting.
11556
11557         * bus/dispatch.c: (send_one_message),
11558         (bus_dispatch_message_handler):
11559         * bus/driver.c: (bus_driver_send_service_deleted),
11560         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11561         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11562         (bus_driver_send_welcome_message),
11563         (bus_driver_handle_list_services),
11564         (bus_driver_handle_acquire_service),
11565         (bus_driver_handle_service_exists):
11566         * bus/loop.c: (bus_loop_run):
11567         * bus/main.c:
11568         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11569
11570         * bus/utils.c: (bus_wait_for_memory):
11571         * bus/utils.h:
11572         New files with general utility functions.
11573
11574         * dbus/dbus-internals.h:
11575         Remove _DBUS_HANDLE_OOM.
11576
11577 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11578
11579         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11580         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11581         * dbus/dbus-errors.h:
11582         Add DBusError structure.
11583
11584 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11585
11586         * test/data/valid-messages/standard-acquire-service.message:
11587         * test/data/valid-messages/standard-hello.message:
11588         * test/data/valid-messages/standard-list-services.message:
11589         * test/data/valid-messages/standard-service-exists.message:
11590         Add some standard messages.
11591
11592 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11593
11594         * bus/driver.c: (bus_driver_send_welcome_message),
11595         (bus_driver_handle_list_services),
11596         (bus_driver_handle_acquire_service),
11597         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11598         Update for API changes in libdbus.
11599
11600         * dbus/dbus-message.c: (dbus_message_new_reply):
11601         * dbus/dbus-message.h:
11602         Remove the name argument. The spec states that replies shouldn't
11603         have a name.
11604
11605 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11606
11607         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11608         (report_error), (bus_desktop_file_load), (lookup_section),
11609         (lookup_line), (bus_desktop_file_get_raw),
11610         (bus_desktop_file_get_string):
11611         * bus/desktop-file.h:
11612         Some fixes, and new functions for getting a key value from a section.
11613
11614 2003-02-13  Havoc Pennington  <hp@pobox.com>
11615
11616         * test/data/auth/fail-after-n-attempts.auth-script: new test
11617
11618         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11619         reject the client.
11620
11621 2003-02-13  Havoc Pennington  <hp@pobox.com>
11622
11623         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11624         dbus_credentials_match were backward
11625
11626         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11627         NO_CREDENTIALS and ROOT_CREDENTIALS
11628
11629         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11630         into here. Never process more commands after we've reached an
11631         end state; store further data as unused bytes.
11632
11633         * test/data/auth/*: add more auth tests
11634
11635         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11636         command to match exact string and EXPECT_UNUSED to match unused
11637         bytes
11638
11639         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11640
11641 2003-02-12  Havoc Pennington  <hp@pobox.com>
11642
11643         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11644         \r off of popped lines
11645
11646         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11647         scripts
11648
11649         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11650         SEND, append \r\n
11651
11652 2003-02-12  Havoc Pennington  <hp@pobox.com>
11653
11654         * dbus/Makefile.am: remove break-loader from the build, since it
11655         moved.
11656
11657         * configure.in: add --enable-gcov to turn on coverage profiling
11658         flags and disable optimization
11659
11660 2003-02-10  Havoc Pennington  <hp@pobox.com>
11661
11662         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11663         initial cut at test framework for DBusAuth from laptop.
11664         Doesn't quite work yet but it compiles and I need to get
11665         it off the 266mhz laptop. ;-)
11666
11667         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11668         fix a memleak in error case
11669
11670 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11671
11672         * bus/Makefile.am:
11673         * bus/desktop-file.c:
11674         * bus/desktop-file.h:
11675         Add a desktop file parser.
11676
11677 2003-02-11  Zack Rusin  <zack@kde.org>
11678
11679         * qt/message.[h|cpp]: sample implementation
11680         of the KDE wrapper for DBusMessage
11681
11682 2003-02-09  Zack Rusin  <zack@kde.org>
11683
11684         * test/bus-test.c: make_it_compile
11685         * doc/dbus-specification.sgml: minimal semantic fix
11686
11687 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11688
11689         Release 0.3
11690
11691         * NEWS: Update
11692
11693 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11694
11695         * dbus/Makefile.am:
11696         * dbus/dbus-break-loader.c:
11697         * test/Makefile.am:
11698         * test/break-loader.c:
11699         Move dbus-break-loader to test/ and rename it to break-loader.
11700
11701 2003-02-02  Havoc Pennington  <hp@pobox.com>
11702
11703         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11704         for code to manage cookies in your home directory
11705
11706         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11707
11708         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11709         to authenticate, then disconnect the client.
11710
11711 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11712
11713         * dbus/dbus-message.c (dbus_message_append_fields):
11714         Correct docs.
11715
11716 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11717
11718         * doc/dbus-specification.sgml:
11719         Update address format section.
11720
11721 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11722
11723         * test/Makefile.am:
11724         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11725         (message_handler), (new_connection_callback), (loop_quit),
11726         (loop_run), (main):
11727         Add bus test.
11728
11729 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11730
11731         * bus/driver.c: (bus_driver_handle_service_exists):
11732         Simplify the code a bit.
11733
11734         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11735         Fix a silly.
11736
11737 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11738
11739         * bus/Makefile.am:
11740         Add libdbus-daemon.la and link to it.
11741
11742 2003-02-01  James Willcox  <jwillcox@gnome.org>
11743
11744         * bus/driver.c: (bus_driver_handle_own_service):
11745         Actually include the service reply code in the message.
11746
11747 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11748
11749         * bus/driver.c: (bus_driver_handle_service_exists):
11750         Don't unref the incoming message.
11751
11752 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11753
11754         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11755
11756 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11757
11758         * dbus/dbus-server.c: (dbus_server_listen):
11759         * dbus/dbus-transport.c: (_dbus_transport_open):
11760         ifdef out the calls to the debug transport and server.
11761
11762 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11763
11764         * dbus/dbus-watch.c (dbus_watch_get_flags):
11765         Add note in the docs that ERROR or HANGUP won't be returned
11766         and are assumed always on.
11767
11768         * glib/dbus-gmain.c (add_watch):
11769         Always add IO_ERR | IO_HUP
11770
11771         * dbus/dbus-message.h:
11772         Add semicolon after dbus_message_iter_get_string_array().
11773         Makes qt code build again
11774
11775 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11776
11777         * bus/driver.c: (create_unique_client_name),
11778         (bus_driver_handle_hello):
11779         Don't take a name, just use a numeric id to identify
11780         each client.
11781
11782         * dbus/Makefile.am:
11783         * dbus/dbus-bus.c: (dbus_bus_register_client),
11784         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11785         * dbus/dbus-bus.h:
11786         Add new convenience functions for communicating with the bus.
11787
11788         * dbus/dbus-message.h:
11789
11790         * dbus/dbus-protocol.h:
11791         Fix a typo.
11792
11793 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11794
11795         * dbus/dbus-message.c (dbus_message_append_fields):
11796         Add some more doc comments.
11797
11798 2003-02-01  Havoc Pennington  <hp@pobox.com>
11799
11800         * dbus/dbus-break-loader.c (randomly_modify_length): change
11801         a 4-byte value in the message as if it were a length
11802
11803         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11804         execute bit on saved files
11805
11806 2003-02-01  Havoc Pennington  <hp@pobox.com>
11807
11808         * dbus/dbus-break-loader.c (main): new program to find messages
11809         that break the loader.
11810
11811         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11812         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11813
11814         * dbus/dbus-string.c (_dbus_string_set_byte): new
11815
11816 2003-01-31  Havoc Pennington  <hp@pobox.com>
11817
11818         * dbus/dbus-message.c: refactor the test code to be more general,
11819         in preparation for writing a "randomly permute test cases to
11820         try to break the loader" program.
11821
11822 2003-01-31  Havoc Pennington  <hp@pobox.com>
11823
11824         * doc/dbus-specification.sgml: work on the specification
11825
11826         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11827         the protocol version of the message.
11828
11829         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11830         no longer specifies that.
11831         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11832         1/2/3/4)
11833
11834         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11835         "break" for DBUS_TYPE_NIL, remove @todo
11836
11837 2003-01-31  Havoc Pennington  <hp@pobox.com>
11838
11839         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11840         just set_is_error/get_is_error as this is a commonly-used
11841         function, and write docs.
11842
11843 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
11844
11845         * dbus/dbus-address.c: (dbus_address_entry_free):
11846         Free key and value lists.
11847
11848         * dbus/dbus-internals.c: (_dbus_type_to_string):
11849         Add the types we didn't have.
11850
11851         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11852         (_dbus_marshal_validate_arg):
11853         Add NIL types.
11854
11855         * dbus/dbus-message.c: (dbus_message_set_sender):
11856         Remove todo about being able to set sender to NULL.
11857
11858         (dbus_message_set_is_error_reply),
11859         (dbus_message_get_is_error_reply):
11860         * dbus/dbus-message.h:
11861         New functions.
11862
11863         * dbus/dbus-protocol.h:
11864         Add error reply flag.
11865
11866         * test/data/valid-messages/opposite-endian.message:
11867         Add NIL type to test.
11868
11869 2003-01-31  Havoc Pennington  <hp@pobox.com>
11870
11871         * doc/dbus-specification.sgml: fully specify the header.  Add
11872         flags and major protocol version, and change header/body len to
11873         unsigned.
11874
11875         * dbus/dbus-message-builder.c (append_saved_length): append length
11876         as uint32
11877
11878         * dbus/dbus-message.c (dbus_message_create_header): change header
11879         length and body length to unsigned. Add the new fields from the
11880         spec
11881         (_dbus_message_loader_return_buffer): unsigned header/body len
11882
11883 2003-01-30  Havoc Pennington  <hp@pobox.com>
11884
11885         * dbus/dbus-auth.c: rework to use only REJECTED, no
11886         MECHANISMS
11887
11888         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11889         use REJECTED, suggested by Mark McLoughlin
11890
11891 2003-01-30  Havoc Pennington  <hp@pobox.com>
11892
11893         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11894         a better way to report errors here. e.g.  "unix address lacks
11895         path" or something. also "no such file" when the path doesn't
11896         exist, etc.
11897
11898         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11899         leaking list nodes
11900         (dbus_parse_address): add @todo about documenting address format,
11901         and allowing , and ; to be escaped
11902
11903 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
11904
11905         * dbus/Makefile.am:
11906         Add dbus-address.[ch]
11907
11908         * dbus/dbus-address.c: (dbus_address_entry_free),
11909         (dbus_address_entries_free), (create_entry),
11910         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11911         (dbus_parse_address), (_dbus_address_test):
11912         * dbus/dbus-address.h:
11913         New files for dealing with address parsing.
11914
11915         * dbus/dbus-connection.c:
11916         Document timeout functions.
11917
11918         * dbus/dbus-message.c:
11919         Document dbus_message_new_from_message.
11920
11921         * dbus/dbus-server-debug.c:
11922         Document.
11923
11924         * dbus/dbus-server.c: (dbus_server_listen):
11925         Parse address and use correct server implementation.
11926
11927         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11928         * dbus/dbus-string.h:
11929         New function with test.
11930
11931         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11932         * dbus/dbus-test.h:
11933         Add address tests.
11934
11935         * dbus/dbus-transport-debug.c:
11936         Document.
11937
11938         * dbus/dbus-transport.c: (_dbus_transport_open):
11939         Parse address and use correct transport implementation.
11940
11941 2003-01-30  Havoc Pennington  <hp@pobox.com>
11942
11943         * dbus/dbus-message.c: use message->byte_order instead of
11944         DBUS_COMPILER_BYTE_ORDER throughout.
11945         (dbus_message_create_header): pad header to align the
11946         start of the body of the message to 8-byte boundary
11947
11948         * dbus/dbus-marshal.h: make all the demarshalers take const
11949         DBusString arguments.
11950
11951         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11952         validate message args here, so we don't have to do slow validation
11953         later, and so we catch bad messages as they are incoming. Also add
11954         better checks on header_len and body_len. Also fill in
11955         message->byte_order
11956
11957         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11958         implemented properly)
11959         (_dbus_string_validate_nul): new function to check all-nul
11960
11961         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11962         get_arg_end_pos and remove all validation
11963         (_dbus_marshal_validate_arg): actually do validation here.
11964
11965 2003-01-29  Havoc Pennington  <hp@pobox.com>
11966
11967         * dbus/dbus-message.c (check_message_handling): fix assertion
11968         failure on set_client_serial
11969
11970 2003-01-28  Havoc Pennington  <hp@pobox.com>
11971
11972         * dbus/dbus-server-debug.c: Add doc section comments
11973
11974         * dbus/dbus-transport-debug.c: add doc section comments
11975
11976 2003-01-28  Havoc Pennington  <hp@redhat.com>
11977
11978         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11979         the reverse order from how I had it
11980         (_dbus_string_base64_encode): reverse encoding order. I was
11981         basically byteswapping everything during encoding.
11982
11983 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
11984
11985         * dbus/dbus-connection-internal.h:
11986         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11987         (_dbus_connection_remove_timeout):
11988         Add functions for adding and removing timeouts.
11989
11990         * dbus/dbus-message.c: (dbus_message_new_from_message):
11991         Add new function that takes a message and creates an exact
11992         copy of it, but with the refcount set to 1.
11993         (check_message_handling):
11994         Fix build error.
11995
11996         * dbus/dbus-server-protected.h:
11997         * dbus/dbus-server.c: (_dbus_server_init_base),
11998         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11999         (dbus_server_set_timeout_functions):
12000         (_dbus_server_remove_timeout):
12001         New functions so that a server can add and remove timeouts.
12002
12003         (dbus_server_listen):
12004         Add commented out call to dbus_server_debug_new.
12005
12006         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12007         Actually set the handler, doh.
12008
12009         * dbus/dbus-transport.c: (_dbus_transport_open):
12010         Add commented out call to dbus_transport_debug_client_new.
12011
12012         * dbus/Makefile.am:
12013         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12014
12015 2003-01-28  Havoc Pennington  <hp@pobox.com>
12016
12017         * dbus/dbus-message.c (check_message_handling): function to check
12018         on the loaded message, iterates over it etc.
12019
12020 2003-01-28  Havoc Pennington  <hp@pobox.com>
12021
12022         * test/Makefile.am (dist-hook): fix make distdir
12023
12024         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12025
12026 2003-01-27  Havoc Pennington  <hp@pobox.com>
12027
12028         * dbus/dbus-mempool.c (time_for_size): replace printf with
12029         _dbus_verbose
12030
12031         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12032         empty lines; fix the SAVE_LENGTH stuff to be
12033         START_LENGTH/END_LENGTH so it actually works; couple other
12034         bugfixes
12035
12036         * test/Makefile.am (dist-hook): add dist-hook for .message files
12037
12038         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12039         can be constant or locked.
12040         (_dbus_string_free): allow freeing a const string as
12041         documented/intended
12042
12043         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12044
12045         * dbus/dbus-test-main.c (main): take an argument which is the
12046         directory containing test data
12047
12048         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12049         argument to this and load all the messages in test/data/
12050         checking that they can be loaded or not loaded as appropriate.
12051
12052 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12053
12054         * bus/dispatch.c: (bus_dispatch_message_handler):
12055         Dispatch messages sent to services.
12056
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):
12060         Add helper functions for sending service related messages.
12061
12062         (bus_driver_send_welcome_message):
12063         Send HELLO_REPLY instead of WELCOME.
12064
12065         (bus_driver_handle_list_services):
12066         Send LIST_SERVICES_REPLY instead of SERVICES.
12067
12068         (bus_driver_handle_own_service),
12069         (bus_driver_handle_service_exists):
12070         New message handlers.
12071
12072         (bus_driver_handle_message):
12073         Invoke new message handlers.
12074
12075         (bus_driver_remove_connection):
12076         Don't remove any services here since that's done automatically
12077         by bus_service_remove_owner now.
12078
12079         * bus/driver.h:
12080         New function signatures.
12081
12082         * bus/services.c: (bus_service_add_owner):
12083         Send ServiceAcquired message if we're the only primary owner.
12084
12085         (bus_service_remove_owner):
12086         Send ServiceAcquired/ServiceLost messages.
12087
12088         (bus_service_set_prohibit_replacement),
12089         (bus_service_get_prohibit_replacement):
12090         Functions for setting prohibit replacement.
12091
12092         (bus_service_has_owner):
12093         New function that checks if a connection is in the owner queue of
12094         a certain service.
12095
12096         * bus/services.h:
12097         Add new function signatures.
12098
12099         * dbus/dbus-list.c: (_dbus_list_test):
12100         Add tests for _dbus_list_remove_last and traversing the list backwards.
12101
12102         * dbus/dbus-list.h:
12103         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12104         go any further, so return NULL then.
12105
12106         * dbus/dbus-protocol.h:
12107         Add new messages, service flags and service replies.
12108
12109 2003-01-26  Havoc Pennington  <hp@pobox.com>
12110
12111         * dbus/dbus-message-builder.c: implement, completely untested.
12112
12113         * test/data/*: add data to be used in testing.
12114         ".message" files are our simple loadable text format.
12115         ".message-raw" will be binary dumps of messages.
12116
12117         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12118
12119 2003-01-26  Havoc Pennington  <hp@pobox.com>
12120
12121         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12122
12123         * dbus/dbus-errors.c (dbus_result_to_string): add
12124         file errors
12125
12126         * dbus/dbus-message-builder.c: new file, will contain code to load
12127         up messages from files. Not implemented yet.
12128
12129 2003-01-26  Havoc Pennington  <hp@pobox.com>
12130
12131         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12132         the sender by setting to NULL
12133
12134 2003-01-26  Havoc Pennington  <hp@pobox.com>
12135
12136         The unit tests pass, but otherwise untested.  If it breaks, the
12137         tests should have been better. ;-)
12138
12139         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12140         the connection.
12141
12142         * dbus/dbus-message.c: redo everything so we maintain
12143         message->header as the only copy of the various fields.
12144         This avoids the possibility of out-of-memory in some cases,
12145         for example dbus_message_lock() can't run out of memory anymore,
12146         and avoids extra copying. Figured I may as well go ahead and do
12147         this since it was busted for dbus_message_lock to not return
12148         failure on OOM, and dbus_message_write_header was totally
12149         unchecked for OOM. Also fixed some random other bugs.
12150
12151         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12152         that strings are nul-terminated. Also, end_pos can be equal
12153         to string length just not greater than, I think.
12154         (_dbus_marshal_set_int32): new function
12155         (_dbus_marshal_set_uint32): new function
12156         (_dbus_marshal_set_string): new function
12157
12158         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12159         a warning, init timeout_list to NULL
12160         (dbus_connection_send_message): don't use uninitialized variable
12161         "serial"
12162
12163         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12164
12165 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12166
12167         * bus/driver.c: (bus_driver_handle_hello),
12168         (bus_driver_send_welcome_message):
12169         Plug leaks
12170
12171 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12172
12173         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12174         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12175         (dbus_connection_unref):
12176         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12177         * dbus/dbus-message.c: (dbus_message_unref),
12178         Plug memory leaks.
12179
12180         (dbus_message_get_fields):
12181         Remove debugging printout.
12182
12183         (_dbus_message_loader_return_buffer):
12184         Don't store the header string.
12185
12186         (_dbus_message_test):
12187         Plug leaks.
12188
12189 2003-01-26  Richard Hult  <rhult@codefactory.se>
12190
12191         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12192         the file descriptor list, since it can change under us.
12193
12194 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12195
12196         * glib/dbus-gmain.c: (dbus_connection_prepare),
12197         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12198         (remove_watch), (dbus_connection_hookup_with_g_main):
12199         Rewrite the glib handling to use its own GSource instead of a
12200         GIOChannel so we can catch messages put in the queue while waiting
12201         for a reply.
12202
12203 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12204
12205         * bus/Makefile.am:
12206         * bus/connection.c: (connection_disconnect_handler),
12207         (connection_watch_callback), (bus_connection_setup):
12208         * bus/dispatch.c: (send_one_message),
12209         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12210         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12211         * bus/dispatch.h:
12212         * bus/driver.c: (bus_driver_send_service_deleted),
12213         (bus_driver_send_service_created), (bus_driver_handle_hello),
12214         (bus_driver_send_welcome_message),
12215         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12216         (bus_driver_handle_message):
12217         * bus/driver.h:
12218         Refactor code, put the message dispatching in its own file. Use
12219         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12220         is disconnected.
12221
12222 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12223
12224         * dbus/dbus-internals.h:
12225         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12226
12227         * dbus/dbus-message.c: (dbus_message_get_sender):
12228         * dbus/dbus-message.h:
12229         Implement dbus_message_get_sender.
12230
12231         * dbus/dbus-protocol.h:
12232         Add message and service defines.
12233
12234 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12235
12236         * dbus/dbus-connection.c: (dbus_connection_send_message):
12237         * dbus/dbus-message-internal.h:
12238         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12239         (dbus_message_write_header):
12240         Remove _dbus_messag_unlock and don't set the client serial on a
12241         message if one already exists.
12242
12243 2003-01-24  Havoc Pennington  <hp@pobox.com>
12244
12245         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12246         list_pool
12247
12248         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12249         on OOM
12250
12251 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12252
12253         * dbus/dbus-list.c: (alloc_link), (free_link):
12254         Use a memory pool for the links.
12255
12256 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12257
12258         * bus/connection.c: (bus_connection_foreach):
12259         * bus/connection.h:
12260         Add new bus_connection_foreach function.
12261
12262         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12263         Add function that broadcasts a message to all clients.
12264
12265         (bus_driver_send_service_created), (bus_driver_handle_hello),
12266         (bus_driver_send_welcome_message),
12267         (bus_driver_handle_list_services), (bus_driver_message_handler):
12268         Implement functions that take care of listing services, and notifying
12269         clients when new services are created.
12270
12271         * bus/services.c: (bus_services_list):
12272         * bus/services.h:
12273         Add new function that returns an array of strings with the currently
12274         registered services.
12275
12276         * glib/dbus-glib.h:
12277         * glib/dbus-gmain.c:
12278         Update copyright year.
12279
12280 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12281
12282         * dbus/dbus-connection.c: (dbus_connection_send_message):
12283         Unlock the message in case it was sent earlier.
12284
12285         (dbus_connection_send_message_with_reply_and_block):
12286         Remove the reply message from the list.
12287
12288         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12289         Set array_len and new_pos correctly.
12290
12291         (_dbus_marshal_test):
12292         Remove debug output.
12293
12294         * dbus/dbus-message-internal.h:
12295         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12296         New function that returns the reply serial.
12297
12298         (_dbus_message_unlock):
12299         New function that unlocks a message and resets its header.
12300
12301         (dbus_message_append_string_array),
12302         (dbus_message_get_fields_valist),
12303         (dbus_message_iter_get_field_type),
12304         (dbus_message_iter_get_string_array),
12305         (dbus_message_get_fields),
12306         (dbus_message_append_fields_valist):
12307         Handle string arrays.
12308
12309         (dbus_message_set_sender):
12310         Make this function public since the bus daemon needs it.
12311
12312         (decode_header_data):
12313         Set the reply serial to -1 initially.
12314
12315         * dbus/dbus-message.h:
12316         Add dbus_message_set_sender.
12317
12318 2003-01-24  Havoc Pennington  <hp@pobox.com>
12319
12320         * doc/dbus-specification.sgml: add some stuff
12321
12322 2003-01-22  Havoc Pennington  <hp@pobox.com>
12323
12324         * doc/dbus-specification.sgml: Start to document the protocol.
12325
12326 2003-01-22  Havoc Pennington  <hp@pobox.com>
12327
12328         * dbus/dbus-connection.c
12329         (dbus_connection_send_message_with_reply_and_block): add some @todo
12330
12331         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12332
12333 2003-01-21  Havoc Pennington  <hp@pobox.com>
12334
12335         (patch untested because can't compile)
12336
12337         * bus/driver.c (create_unique_client_name): make this function
12338         never recycle client names. Also, caller should initialize
12339         the DBusString.
12340
12341         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12342
12343 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12344
12345         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12346         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12347         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12348         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12349         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12350         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12351         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12352         * dbus/dbus-marshal.h:
12353         * dbus/dbus-protocol.h:
12354         Add support for marshalling and demarshalling integer, double
12355         and string arrays.
12356
12357 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12358
12359         * bus/Makefile.am:
12360         Add driver.[ch]
12361
12362         * bus/connection.c: (connection_disconnect_handler):
12363         Remove the connection from the bus driver's list.
12364
12365         (connection_watch_callback): Dispatch messages.
12366
12367         (free_connection_data): Free connection name.
12368
12369         (bus_connection_setup): Add connection to the bus driver's list.
12370         (bus_connection_remove_owned_service):
12371         (bus_connection_set_name), (bus_connection_get_name):
12372         Add functions for setting and getting the connection's name.
12373
12374         * bus/connection.h:
12375         Add function headers.
12376
12377         * bus/driver.c: (create_unique_client_name),
12378         (bus_driver_handle_hello_message),
12379         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12380         (bus_driver_add_connection), (bus_driver_remove_connection):
12381         * bus/driver.h:
12382         * bus/main.c:
12383         * bus/services.c: (bus_service_free):
12384         * bus/services.h:
12385         New file that handles communication and registreation with the bus
12386         itself.
12387
12388 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12389
12390         * dbus/dbus-connection.c: (dbus_connection_send_message):
12391         Add a new client_serial parameter.
12392
12393         (dbus_connection_send_message_with_reply):
12394         Remove a @todo since we've implemented the blocking function.
12395
12396         (dbus_connection_send_message_with_reply_and_block):
12397         New function that sends a message and waits for a reply and
12398         then returns the reply.
12399
12400         * dbus/dbus-connection.h:
12401         Add new functions.
12402
12403         * dbus/dbus-errors.c: (dbus_result_to_string):
12404         * dbus/dbus-errors.h:
12405         Add new DBUS_RESULT.
12406
12407         * dbus/dbus-message-internal.h:
12408         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12409         (_dbus_message_set_sender), (dbus_message_write_header),
12410         (dbus_message_new_reply), (decode_header_data),
12411         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12412         * dbus/dbus-message.h:
12413         Add new functions that set the reply serial and sender.
12414         Also marshal and demarshal them correctly and add test.
12415
12416         * dbus/dbus-protocol.h:
12417         Add new DBUS_MESSAGE_TYPE_SENDER.
12418
12419         * glib/dbus-glib.h:
12420         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12421         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12422         (dbus_connection_hookup_with_g_main):
12423         * glib/test-dbus-glib.c: (main):
12424         Rewrite to use GIOChannel and remove the GSource crack.
12425
12426         * test/echo-client.c: (main):
12427         * test/watch.c: (check_messages):
12428         Update for changed APIs
12429
12430 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12431
12432         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12433
12434         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12435         Create a DBusTimeoutList.
12436         (dbus_connection_set_timeout_functions): Add new function to
12437         set timeout callbacks
12438
12439         * dbus/dbus-connection.h: Add public DBusTimeout API.
12440
12441         * dbus/dbus-message.c: (dbus_message_get_service):
12442         * dbus/dbus-message.h:  New function.
12443
12444         * dbus/dbus-server.c: Fix small doc typo.
12445
12446         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12447
12448 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12449
12450         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12451         of the string, just as long as specified.
12452
12453 2003-01-19  Havoc Pennington  <hp@pobox.com>
12454
12455         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12456         new function
12457
12458         * dbus/dbus-server.c (dbus_server_set_max_connections)
12459         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12460         keep track of current number of connections, and add API for
12461         setting a max (but haven't implemented enforcing the max yet)
12462
12463 2003-01-18  Havoc Pennington  <hp@pobox.com>
12464
12465         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12466         reading/writing if read_watch != NULL or write_watch != NULL.
12467
12468         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12469         the message loader code to actually load message->header and
12470         message->body into the newly-created message.
12471
12472         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12473         in OOM case
12474
12475         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12476         (dbus_connection_get_max_message_size)
12477         (dbus_connection_set_max_live_messages_size)
12478         (dbus_connection_get_max_live_messages_size): implement some
12479         resource limitation functions
12480
12481         * dbus/dbus-resources.c: new file implementing some of the
12482         resource limits stuff
12483
12484         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12485         missing docs, add @todo to handle OOM etc.
12486
12487         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12488         docs
12489
12490 2003-01-18  Havoc Pennington  <hp@pobox.com>
12491
12492         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12493         connection if it hasn't been already.
12494
12495         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12496         replace with DisconnectFunction.
12497
12498 2003-01-18  Havoc Pennington  <hp@pobox.com>
12499
12500         Building --disable-verbose-mode --disable-asserts --disable-tests
12501         cuts the library from 112K to 45K or so
12502
12503         * configure.in: check for varargs macro support,
12504         add --enable-verbose-mode, --enable-asserts.
12505
12506         * dbus/dbus-internals.h (_dbus_assert): support
12507         DBUS_DISABLE_ASSERT
12508         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12509
12510 2003-01-18  Havoc Pennington  <hp@pobox.com>
12511
12512         * dbus/dbus-test.c: include config.h so that tests actually run
12513
12514         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12515         so the failure mode when that assumption fails will be plenty
12516         obvious.
12517
12518 2003-01-18  Havoc Pennington  <hp@pobox.com>
12519
12520         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12521
12522         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12523         the distribution
12524
12525         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12526         since we don't want to use those in make check
12527
12528 2003-01-15  Havoc Pennington  <hp@redhat.com>
12529
12530         Release 0.2
12531
12532         * NEWS: update
12533
12534 2003-01-15  Havoc Pennington  <hp@redhat.com>
12535
12536         * test/Makefile.am: fix so that test source code ends up in the
12537         distribution on make distcheck
12538
12539 2003-01-15  Havoc Pennington  <hp@redhat.com>
12540
12541         Release 0.1.
12542
12543         * NEWS: update
12544
12545 2003-01-15  Havoc Pennington  <hp@redhat.com>
12546
12547         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12548         fix build when --disable-tests
12549
12550         * Makefile.am (EXTRA_DIST): put HACKING in here
12551
12552         * HACKING: document procedure for making a tarball release.
12553
12554 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12555
12556         * bus/connection.c: (connection_error_handler),
12557         (bus_connection_setup):
12558         * bus/main.c: (main):
12559         Make sure that the DBusConnectionData struct is NULLed
12560         out to prevent a segfault.
12561
12562         * dbus/dbus-errors.c: (dbus_result_to_string):
12563         * dbus/dbus-errors.h:
12564         * dbus/dbus-message.c: (dbus_message_get_fields),
12565         (dbus_message_get_fields_valist), (_dbus_message_test):
12566         * dbus/dbus-message.h:
12567         Make dbus_message_get_fields return a result code so we can
12568         track invalid fields as well as oom.
12569
12570 2003-01-11  Havoc Pennington  <hp@pobox.com>
12571
12572         * configure.in: change --enable-test/--enable-ansi action-if-given
12573         to enable_foo=$enableval instead of enable_foo=yes
12574
12575 2003-01-08  Havoc Pennington  <hp@pobox.com>
12576
12577         * dbus/dbus-string.c (_dbus_string_align_length): new function
12578
12579         * dbus/dbus-test-main.c: move main() for test app here
12580         * dbus/dbus-test.c
12581         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12582         symbol to run tests, because dbus-test isn't in the main
12583         library
12584
12585         Code review nitpicks.
12586
12587         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12588         for people with narrow emacs ;-). Assert client_serial was filled
12589         in. Assert message->name != NULL.
12590         (dbus_message_append_fields): have "first_field_type" arg separate
12591         from va list, needed for C++ binding that also uses varargs IIRC
12592         and helps with type safety
12593         (dbus_message_new): add @todo about using DBusString to store
12594         service/name internally
12595         (dbus_message_new): don't leak ->service and ->name on OOM later
12596         in the function
12597         (dbus_message_unref): free the service name
12598         (dbus_message_get_fields): same change to varargs
12599         i.e. first_field_type
12600         (_dbus_message_loader_return_buffer): assert that the message data
12601         is aligned (if not it's a bug in our code). Put in verbose griping
12602         about why we set corrupted = TRUE.
12603         (decode_header_data): add FIXME that char* is evil.  Was going to
12604         add FIXME about evil locale-specific string.h strncmp, but just
12605         switched to wacky string-as-uint32 optimization. Move check for
12606         "no room for field name" above get_const_data_len() to avoid
12607         assertion failure in get_const_data_len if we have trailing 2
12608         bytes or the like. Check for service and name fields being
12609         provided twice. Don't leak service/name on error. Require field
12610         names to be aligned to 4 bytes.
12611
12612         * dbus/dbus-marshal.c: move byte swap stuff to header
12613         (_dbus_pack_int32): uscore-prefix
12614         (_dbus_unpack_int32): uscore-prefix
12615         (_dbus_unpack_uint32): export
12616         (_dbus_demarshal_string): add @todo complaining about use of
12617         memcpy()
12618         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12619         handling allowing corrupt data to go unchecked
12620
12621 2003-01-08  Havoc Pennington  <hp@redhat.com>
12622
12623         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12624         to the select() as needed for authentication. (should be using
12625         _dbus_poll() not select, but for another day)
12626
12627         * dbus/dbus.h: include dbus/dbus-protocol.h
12628
12629 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12630
12631         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12632         dbus-connection.h
12633
12634 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12635
12636         * dbus/dbus-internals.c: (_dbus_type_to_string):
12637         New function that returns a string describing a type.
12638
12639         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12640         * dbus/dbus-marshal.h:
12641         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12642         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12643         (dbus_message_iter_get_byte_array):
12644         * dbus/dbus-message.h:
12645         Add new convenience functions for appending and getting message fields.
12646         Also add demarshalling routines for byte arrays.
12647
12648 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12649
12650         * dbus/dbus-connection-internal.h:
12651         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12652         (_dbus_connection_get_next_client_serial),
12653         (dbus_connection_send_message):
12654         * dbus/dbus-internals.h:
12655         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12656         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12657         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12658         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12659         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12660         (_dbus_verbose_bytes), (_dbus_marshal_test):
12661         * dbus/dbus-marshal.h:
12662         * dbus/dbus-message-internal.h:
12663         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12664         (dbus_message_write_header), (_dbus_message_lock),
12665         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12666         (dbus_message_get_name), (dbus_message_append_int32),
12667         (dbus_message_append_uint32), (dbus_message_append_double),
12668         (dbus_message_append_string), (dbus_message_append_byte_array),
12669         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12670         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12671         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12672         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12673         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12674         (decode_header_data), (_dbus_message_loader_return_buffer),
12675         (message_iter_test), (_dbus_message_test):
12676         * dbus/dbus-message.h:
12677         * dbus/dbus-protocol.h:
12678         * dbus/dbus-test.c: (main):
12679         * dbus/dbus-test.h:
12680         * glib/test-dbus-glib.c: (message_handler), (main):
12681         * test/echo-client.c: (main):
12682         * test/watch.c: (check_messages):
12683         Make messages sendable and receivable for real.
12684
12685 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12686
12687         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12688         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12689         * dbus/dbus-message.c: (dbus_message_append_int32),
12690         (dbus_message_append_uint32), (dbus_message_append_double),
12691         (dbus_message_append_string), (dbus_message_append_byte_array):
12692         Handle OOM restoration.
12693
12694 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12695
12696         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12697         (_dbus_demarshal_string), (_dbus_marshal_test):
12698         * dbus/dbus-marshal.h:
12699         * dbus/dbus-message.c: (dbus_message_get_name),
12700         Document these functions.
12701
12702         (dbus_message_append_int32), (dbus_message_append_uint32),
12703         (dbus_message_append_double), (dbus_message_append_string),
12704         (dbus_message_append_byte_array):
12705         * dbus/dbus-message.h:
12706         Add functions for adding message fields of different types.
12707
12708         * dbus/dbus-protocol.h:
12709         Add the different types.
12710
12711 2003-01-05  Havoc Pennington  <hp@pobox.com>
12712
12713         * bus/connection.c: implement routines for handling connections,
12714         first thing is keeping a list of owned services on each connection
12715         and setting up watches etc.
12716
12717         * bus/services.c: implement a mapping from service names to lists
12718         of connections
12719
12720         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12721
12722         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12723         to use static mutexes for global data
12724
12725         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12726         collection of functions to set/get application-specific data
12727         on the DBusConnection.
12728
12729 2003-01-04  Havoc Pennington  <hp@pobox.com>
12730
12731         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12732         (_dbus_poll): new function
12733
12734         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12735         copied from GLib
12736
12737         * bus/loop.c: initial code for the daemon main loop
12738
12739 2003-01-04  Havoc Pennington  <hp@pobox.com>
12740
12741         * test/watch.c (error_handler): make it safe if the error handler
12742         is called multiple times (if we s/error handler/disconnect
12743         handler/ we should just guarantee it's called only once)
12744
12745         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12746         error handler on disconnect (it's quite possible we should
12747         just change the error handler to a "disconnect handler," I'm
12748         not sure we have any other meaningful errors)
12749
12750         * configure.in: check for getpwnam_r
12751
12752         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12753         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12754         mechanism as in SASL spec, using socket credentials
12755
12756         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12757         (_dbus_send_credentials_unix_socket): new function
12758
12759         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12760         dbus_accept()
12761         (_dbus_write): only check errno if <0 returned
12762         (_dbus_write_two): ditto
12763
12764 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12765
12766         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12767         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12768         (_dbus_marshal_test):
12769         * dbus/dbus-marshal.h:
12770         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12771         to _dbus_marshal_utf8_string. Also fix some tests.
12772
12773 2002-12-28  Harri Porten  <porten@kde.org>
12774
12775         * configure.in: added check for C++ compiler and a very cheesy
12776         check for the Qt integration
12777
12778         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12779
12780         * qt/Makefile.am: added
12781
12782         * qt/.cvsignore: added
12783
12784         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12785         latter, added #ifdef QT_THREAD_SUPPORT guard.
12786
12787         * dbus/Makefile.am: added missing headers for make dist
12788
12789 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12790
12791         * dbus/Makefile.am: fixup export-symbols-regex.
12792
12793 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12794
12795         * acinclude.m4: Add this file and put the
12796         PKG_CHECK_MODULE macro in it.
12797
12798 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12799
12800         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12801         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12802         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12803         (_dbus_marshal_test):
12804         Make the demarshalling routines align the pos argument.
12805         Add string marshalling tests and fix the obvious bugs
12806         discovered.
12807
12808 2002-12-26  Havoc Pennington  <hp@pobox.com>
12809
12810         * dbus/dbus-auth.c: fixes fixes fixes
12811
12812         * dbus/dbus-transport-unix.c: wire up support for
12813         encoding/decoding data on the wire
12814
12815         * dbus/dbus-auth.c (_dbus_auth_encode_data)
12816         (_dbus_auth_decode_data): append to target string
12817         instead of nuking it.
12818
12819 2002-12-26  Havoc Pennington  <hp@pobox.com>
12820
12821         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12822         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12823         doh
12824
12825         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12826         avoid swap_bytes() overhead (ignoring possible assembly stuff for
12827         now). Main point is because I wanted unpack_uint32 to implement
12828         _dbus_verbose_bytes
12829         (_dbus_verbose_bytes): new function
12830
12831         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12832
12833         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12834         mechanism to handle a corrupt message stream
12835         (_dbus_message_loader_new): fix preallocation to only prealloc,
12836         not prelengthen
12837
12838         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12839         (_dbus_string_test): enhance tests for copy/move and fix the
12840         functions
12841
12842         * dbus/dbus-transport-unix.c: Hold references in more places to
12843         avoid reentrancy problems
12844
12845         * dbus/dbus-transport.c: ditto
12846
12847         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12848         leak reference count in no-message case
12849
12850         * test/watch.c (do_mainloop): handle adding/removing watches
12851         during iteration over the watches. Also, ref the connection/server
12852         stored on a watch, so we don't try to mangle a destroyed one.
12853
12854         * dbus/dbus-transport-unix.c (do_authentication): perform
12855         authentication
12856
12857         * dbus/dbus-auth.c (get_state): add a state
12858         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12859         (_dbus_auth_get_unused_bytes): append the unused bytes
12860         to the passed in string, rather than prepend
12861
12862         * dbus/dbus-transport.c (_dbus_transport_init_base): create
12863         the auth conversation DBusAuth
12864
12865         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12866         (_dbus_transport_new_for_domain_socket): when creating a
12867         transport, pass in whether it's a client-side or server-side
12868         transport so we know which DBusAuth to create
12869
12870 2002-12-03  Havoc Pennington  <hp@pobox.com>
12871
12872         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12873         _after_ finalizing the derived members
12874         (unix_connection_set): unref watch if we fail to add it
12875
12876         * dbus/dbus-connection.c (dbus_connection_unref): delete the
12877         transport first, so that the connection owned by the
12878         transport will be valid as the transport finalizes.
12879
12880         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12881         if necessary, and remove watches from the connection.
12882
12883         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12884
12885 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
12886
12887         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12888         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12889         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12890         (_dbus_marshal_test):
12891         * dbus/dbus-marshal.h:
12892         Add string marshal functions and have the demarshal functions
12893         return the new position.
12894
12895 2002-12-25  Havoc Pennington  <hp@pobox.com>
12896
12897         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12898         it is a simple protocol that just maps directly to SASL.
12899
12900         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12901         initial implementation, not actually used yet.
12902
12903         * dbus/dbus-string.c (_dbus_string_find): new function
12904         (_dbus_string_equal): new function
12905         (_dbus_string_base64_encode): new function
12906         (_dbus_string_base64_decode): new function
12907
12908 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
12909
12910         * dbus/Makefile.am:
12911         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12912         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12913         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12914         (_dbus_demarshal_uint32), (_dbus_marshal_test):
12915         * dbus/dbus-marshal.h:
12916         * dbus/dbus-protocol.h:
12917         * dbus/dbus-test.c: (main):
12918         * dbus/dbus-test.h:
12919         Add un-optimized marshalling/demarshalling routines.
12920
12921 2002-12-25  Harri Porten  <porten@kde.org>
12922
12923         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12924
12925 2002-12-24  Zack Rusin  <zack@kde.org>
12926
12927         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12928         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12929         main loop stuff
12930
12931 2002-12-24  Havoc Pennington  <hp@pobox.com>
12932
12933         * glib/dbus-gthread.c: fix include
12934
12935         * glib/dbus-glib.h: rename DBusMessageHandler for now.
12936         I think glib API needs to change, though, as you don't
12937         want to use DBusMessageFunction, you want to use the
12938         DBusMessageHandler object. Probably
12939         dbus_connection_open_with_g_main_loop()
12940         and dbus_connection_setup_g_main_loop() or something like that
12941         (but think of better names...) that just create a connection
12942         that has watch/timeout functions etc. already set up.
12943
12944         * dbus/dbus-connection.c
12945         (dbus_connection_send_message_with_reply): new function just to
12946         show how the message handler helps us deal with replies.
12947
12948         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12949
12950         * dbus/dbus-string.c (_dbus_string_test): free a string that
12951         wasn't
12952
12953         * dbus/dbus-hash.c: use memory pools for the hash entries
12954         (rebuild_table): be more paranoid about overflow, and
12955         shrink table when we can
12956         (_dbus_hash_test): reduce number of sprintfs and write
12957         valid C89. Add tests for case where we grow and then
12958         shrink the hash table.
12959
12960         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12961
12962         * dbus/dbus-connection.c (dbus_connection_register_handler)
12963         (dbus_connection_unregister_handler): new functions
12964
12965         * dbus/dbus-message.c (dbus_message_get_name): new
12966
12967         * dbus/dbus-list.c: fix docs typo
12968
12969         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12970         an object representing a handler for messages.
12971
12972 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12973
12974         * glib/dbus-glib.h:
12975         * glib/dbus-gthread.c: (dbus_gthread_init):
12976         Don't use the gdbus prefix for public functions.
12977
12978 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12979
12980         * Makefile.am:
12981         * configure.in:
12982         Add GLib checks and fixup .pc files
12983
12984         * glib/Makefile.am:
12985         * glib/dbus-glib.h:
12986         * glib/dbus-gmain.c: (gdbus_connection_prepare),
12987         (gdbus_connection_check), (gdbus_connection_dispatch),
12988         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12989         (dbus_connection_gsource_new):
12990         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12991         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12992         * glib/test-dbus-glib.c: (message_handler), (main):
12993         Add GLib support.
12994
12995 2002-12-15  Harri Porten  <porten@kde.org>
12996
12997         * autogen.sh: check for libtoolize before attempting to use it
12998
12999         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13000         struct.
13001
13002         * .cvsignore: ignore more stamp files
13003
13004         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13005
13006         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13007         without make install.
13008
13009 2002-12-15  Havoc Pennington  <hp@pobox.com>
13010
13011         * dbus/dbus-threads.c: add thread stubs that a higher library
13012         layer can fill in. e.g. the GLib wrapper might fill them in with
13013         GThread stuff. We still need to use this thread API to
13014         thread-safe-ize the library.
13015
13016 2002-12-12  Havoc Pennington  <hp@pobox.com>
13017
13018         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13019         below new interfaces and include fewer system headers.
13020
13021         * dbus/dbus-sysdeps.c (_dbus_read): new function
13022         (_dbus_write): new function
13023         (_dbus_write_two): new function
13024         (_dbus_connect_unix_socket): new function
13025         (_dbus_listen_unix_socket): new function
13026
13027         * dbus/dbus-message-internal.h: change interfaces to use
13028         DBusString
13029
13030 2002-12-11  Havoc Pennington  <hp@pobox.com>
13031
13032         * dbus/dbus-types.h: add dbus_unichar
13033
13034         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13035
13036         * dbus/dbus-connection.c (dbus_connection_send_message): return
13037         TRUE on success
13038
13039         * dbus/dbus-transport.c: include dbus-watch.h
13040
13041         * dbus/dbus-connection.c: include dbus-message-internal.h
13042
13043         * HACKING: add file with coding guidelines stuff.
13044
13045         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13046         handling here, for security purposes (as in vsftpd). Not actually
13047         using this class yet.
13048
13049         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13050         system/libc usage here, as in vsftpd, for ease of auditing (and
13051         should also simplify portability). Haven't actually moved all the
13052         system/libc usage into here yet.
13053
13054 2002-11-25  Havoc Pennington  <hp@pobox.com>
13055
13056         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13057         always print the first verbose message.
13058
13059 2002-11-24  Havoc Pennington  <hp@pobox.com>
13060
13061         * test/echo-client.c, test/echo-server.c: cheesy test
13062         clients.
13063
13064         * configure.in (AC_CHECK_FUNCS): check for writev
13065
13066         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13067         function
13068
13069         * dbus/dbus-list.c (_dbus_list_foreach): new function
13070
13071         * dbus/dbus-internals.c (_dbus_verbose): new function
13072
13073         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13074         representing a server that listens for connections.
13075
13076         * dbus/.cvsignore: create
13077
13078         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13079         public API for reporting errors
13080
13081         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13082         public object representing a connection that
13083         sends/receives messages. (Same object used for
13084         both client and server.)
13085
13086         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13087         Basic abstraction for different kinds of stream
13088         that we might read/write messages from.
13089
13090 2002-11-23  Havoc Pennington  <hp@pobox.com>
13091
13092         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13093         _DBUS_INT_MAX
13094
13095         * dbus/dbus-test.c (main): add list test, and include
13096         dbus-test.h as intended
13097
13098         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13099         (_dbus_hash_table_remove_int): return value indicates
13100         whether the entry existed to remove
13101
13102         * dbus/dbus-list.c: add linked list utility class,
13103         with docs and tests
13104
13105         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13106         array sometimes.
13107
13108 2002-11-23  Havoc Pennington  <hp@pobox.com>
13109
13110         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13111         DBUS_END_DECLS to nothing, that should fix this once and for all
13112
13113         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13114
13115         * dbus/dbus-message.c, dbus/dbus-hash.c:
13116         add some missing @brief
13117
13118 2002-11-23  Havoc Pennington  <hp@pobox.com>
13119
13120         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13121         to avoid confusing Doxygen
13122
13123         * dbus/dbus-hash.c: @} not }@
13124
13125         * dbus/dbus-message.c (struct DBusMessage): split out
13126         internals docs
13127
13128 2002-11-23  Havoc Pennington  <hp@pobox.com>
13129
13130         * configure.in: pile on more warning flags if using gcc
13131
13132         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13133         to document static functions
13134
13135         * configure.in: add summary to end of configure so it
13136         looks nice and attractive
13137
13138         * dbus/dbus-hash.c: finish implementation and write unit
13139         tests and docs
13140
13141         * configure.in: add --enable-tests to enable unit tests
13142
13143         * dbus/dbus-test.c: test program to run unit tests
13144         for all files in dbus/*, initially runs a test for
13145         dbus-hash.c
13146
13147         * dbus/dbus-internals.h: file to hold some internal utility stuff
13148
13149 2002-11-22  Havoc Pennington  <hp@redhat.com>
13150
13151         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13152         "ported" away from Tcl
13153
13154         * dbus/dbus-types.h: header for types such as dbus_bool_t
13155
13156 2002-11-22  Havoc Pennington  <hp@redhat.com>
13157
13158         * dbus/dbus.h: fixups for doc warnings
13159
13160         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13161         macros
13162         (QUIET): make it quiet so we can see warnings
13163
13164         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13165
13166 2002-11-22  Havoc Pennington  <hp@redhat.com>
13167
13168         * Makefile.am: include "Doxyfile" target in all-local
13169
13170         * configure.in: generate the Doxyfile
13171
13172         * Doxyfile.in: move Doxyfile here, so we can use
13173         configure to generate a Doxyfile with the right
13174         version number etc.
13175
13176 2002-11-22  Havoc Pennington  <hp@redhat.com>
13177
13178         * dbus/dbus-message.c: move inline docs into .c file
13179
13180         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13181         so all docs are under doc/
13182         (MAN_EXTENSION): generate man pages. Use extension
13183         ".3dbus" which matches ".3qt" on my system,
13184         I guess this is OK, I don't know really.
13185         (FILE_PATTERNS): look for .c files not .h, makes sense
13186         for plain C I think
13187
13188 2002-11-22  Havoc Pennington  <hp@pobox.com>
13189
13190         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13191         because any app can be a server, and any app can be a client,
13192         the bus is a special kind of server.
13193
13194 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13195
13196         * Doxyfile : adding. Still needs Makefile rules to be generated
13197         automatically (just run "doxygen" in the toplevel dir for now to
13198         generate docs)
13199
13200         * dbus/dbus-message.h : Adding sample docs (javadoc since
13201         resembles gtk-doc a little more)
13202
13203         * dbus/dbus.h : Adding sample docs
13204
13205 2002-11-21  Havoc Pennington  <hp@redhat.com>
13206
13207         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13208         so we can allow ourselves to include files directly,
13209         instead of having to use dbus.h
13210
13211         * dbus/dbus.h: fill in
13212
13213         * dbus/dbus-message.h: sketch out a sample header file.
13214         Include griping if you include it directly instead of
13215         via dbus.h
13216
13217         * dbus/dbus-macros.h: new file with macros for extern "C",
13218         TRUE/FALSE, NULL, etc.
13219
13220         * doc/file-boilerplate.c: put include guards in here
13221
13222 2002-11-21  Havoc Pennington  <hp@redhat.com>
13223
13224         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13225
13226         * COPYING: include the GPL as well, and license code
13227         under both AFL and GPL.
13228
13229 2002-11-21  Havoc Pennington  <hp@redhat.com>
13230
13231         * acconfig.h: get rid of this
13232
13233         * autogen.sh (run_configure): add --no-configure option
13234
13235         * configure.in: remove AC_ARG_PROGRAM to make
13236         autoconf complain less. add AC_PREREQ.
13237         add AC_DEFINE third arg.
13238
13239 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13240
13241         * doc/Makefile.am:
13242         Fix references so we can distcheck.
13243
13244 2002-11-21  Havoc Pennington  <hp@redhat.com>
13245
13246         * Initial module creation
13247