b0fb670a115a60e9e79f91ff17546fcf73bd9916
[platform/upstream/dbus.git] / ChangeLog
1 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com
2
3         * qt/qdbusinternalfilters.cpp: Don't show the parent's
4           contents (r528208)
5
6 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com
7
8         * qt/Makefile.am: fix the dependency for
9           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
10           not in qdbusconnection.cpp.
11           Thanks to Jakub Stachowski <stachowski@hypair.net> for
12           spotting this.
13
14 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
15
16         * qt/examples/listnames.cpp:
17         * qt/examples/Makefile.am: Three ways to list the names on the
18           bus.
19
20 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
21
22         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
23           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
24
25 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
26
27         Merge from Subversion:
28         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
29           something that exists (r526315)
30         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
31           slots/signals (r526316)
32         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
33           also return an unknown-method error if the parameters don't
34           match for org.freedesktop.DBus.Properties. (r526842)
35         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
36         * qt/qdbusintegrator.cpp: Restore the proper order of
37           delivery: don't make method returns be delivered on priority
38           (r528150)
39
40 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
41
42         * configure.in qt/Makefile.am: add qt/examples
43         * qt/examples: Add QtDBus example programs:
44           - hello: Hello, World
45           - ping: Simple method-calling program
46           - pong: Simple object-exporting program (not using adaptors)
47           - complexping: Interactive method-calling program 
48                 (also gets and sets properties).
49           - complexpong: Sample program exporting methods, signals and
50                 properties, using adaptors.
51           - dbus: Simple implementation of a generic method-calling
52                 program, similar to 'dbus-send', but with semantics
53                 similar to 'dcop'.
54           - chat: Simplistic chat program, implemented using signals
55                 and the system bus. Looks like IRC.
56
57 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
58
59         * configure.in: Detect QtGui (necessary for one of the
60           example programs). Note: this increases the minimum required
61           version of Qt to 4.1.3.
62
63 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
64
65         * test/qt/*: Sync with KDE Subversion revision 523647.
66         Update the testcases to the new API. Remove testcases for
67         classes that are no longer public or have been removed.
68
69 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
70
71         * qt/*: 
72         * dbus/qdbus.h: Sync with KDE Subversion revision
73         523647. Hopefully, this will be the last of the
74         source-incompatible changes. Documentation has been improved;
75         support for QList<basic-types> has been added; QDBusObject is
76         gone; QDBus(Abstract)Interface is now a QObject with
77         auto-generated meta-object; QDBusIntrospection is marked
78         private, since QMetaObject can be used now; lots of bugfixes.
79
80 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
81
82         Patch from Milosz Derezynski <internalerror at gmail.com>
83         
84         * configure.in:
85         Output the service directory in the configure summary
86
87         * dbus-1.pc.in:
88         Add session_bus_services_dir
89
90 2006-03-10  Ross Burton  <ross@openedhand.com>
91
92         * tools/dbus-print-message.c:
93         Add support for object paths and signatures.
94
95 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
96
97         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
98         config reload.
99         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
100         information caches
101         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
102         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
103         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
104         * dbus/dbus-userdb.h: Add function to flush all user/group information
105         caches.
106
107 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
108
109         * qt/dbusidl2cpp.cpp:
110         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
111         for dcopidl2cpp, found in the KDE installations (or the more
112         modern kalyptus): generate Qt4 C++ code for the input XML
113         introspection. Currently no IDL parsing.
114
115 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
116
117         * test/qt/*: Update the self-tests.
118
119 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
120
121         * qt/*: 
122         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
123         represents the first feature-complete version of the Qt4
124         bindings since I took ove maintainership.
125
126 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
127
128         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
129         dir. This is C++, so we can't use the DBus ones.
130
131 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
132
133         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
134         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
135
136 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
137
138         * dbus/dbus-connection.c: 
139         (_dbus_connection_block_pending_call):
140         Check to see if our data has already been read off the connection
141         by another blocking pending call before we block in poll.
142         (check_for_reply_and_update_dispatch_unlocked):
143         Code taken from _dbus_connection_block_pending_call - checks for
144         an already read reply and updates the dispatch if there is one.
145
146         * test/name-test/test-pending-call-dispatch.c:
147         New test for making sure we don't get stuck polling a 
148         dbus connection which has no data on the socket when
149         blocking out of order on two or more pending calls.
150
151 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
152
153         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
154         make/automake don't detect that we're talking about the same
155         .lo file if I specify the full path to the source files.
156
157 2006-02-26  Havoc Pennington  <hp@redhat.com>
158
159         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
160
161         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
162         session bus variable is unset, suggest "man dbus-launch" and "man
163         dbus-daemon" to figure out how to fix the problem
164
165 2006-02-25  Havoc Pennington  <hp@redhat.com>
166
167         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
168         should make this thing use the new glib options parser
169
170 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
171
172         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
173         .lo files taking moc sources.
174
175 2006-02-25  Havoc Pennington  <hp@redhat.com>
176
177         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
178         and install it as a public header
179
180 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
181
182         * Released 0.61
183
184 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
185         
186         * proxies.py: Fix the callchain
187
188 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
189         
190         * patch from Sjoerd Simons <sjoerd at debian.org>:      
191
192         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
193         dbus/dbus-sysdeps.c
194
195         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
196         call _dbus_group_info_free_allocated which causes infinite loop,
197         correctly call _dbus_group_info_free
198
199 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
200
201         * qt/qdbusinterface_p.h:
202         * qt/qdbusinterface.cpp: Use the standard
203         org.freedesktop.DBus.Method.NoReply annotation for the "async"
204         calls instead of creating one for us.
205
206         * qt/qdbusconnection_p.h:
207         * qt/qdbusintegrator.cpp: Remove debugging code.
208
209         * qt/qdbusintegrator.cpp:
210         * qt/qdbusmessage.cpp:
211         * qt/qdbusmessage_p.h:
212         * qt/qdbusmessage.h: Change the behaviour of automatic
213         reply-sending: now a reply is always sent, unless the caller
214         didn't request one or if the user slot has already sent one.
215
216 2006-02-16  Robert McQueen  <robot101@debian.org>
217
218         * configure.in: Patch from Debian packages by Sjoerd Simons
219         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
220         arguments so it's possible to build both bindings in the
221         same tree.
222
223         * qt/Makefile.am: Fix truncated value so that make dist works.
224
225 2006-02-16  Robert McQueen  <robot101@debian.org>
226
227         * acinclude.m4, configure.in: Patch from Brad Hards
228         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
229         improving quoting, re-ordering a few checks, and a few other
230         aesthetic tidy-ups.
231
232 2006-02-16  Robert McQueen  <robot101@debian.org>
233
234         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
235         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
236         assertion that the next element to read from the iter is fixed in
237         size. This is not the case when you are at the end of the iter,
238         because the next element type is INVALID.
239
240         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
241         a bogus assert which means that you may not initialise a 0-length
242         string unless you provide a non-NULL pointer. This prevented
243         you from marshalling messages containing zero-length arrays in
244         some cases.
245
246         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
247         from Rob to correct bogus asserts when trying to demarshal an
248         array and get_fixed_array got you 0 elements. Append nothing to
249         the GArray in this case.
250
251         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
252         an empty array via the glib bindings. Without all of the above
253         patches, this new test fails.
254
255 2006-02-16  Robert McQueen  <robot101@debian.org>
256
257         * glib/dbus-gmain.c: Make the previous commit compile.
258
259         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
260         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
261         specify sender_keyword="foo", path_keyword="bar" when adding
262         a signal listener, so that you can bind to signals generically
263         but still do something useful in your callback.
264
265         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
266         chars so that they're not cast to chars and made negative. Thanks
267         to Jakub Stachowski for reporting this and testing the fix.
268
269 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
270
271         * dbus/dbus-glib.h:
272         * glib/dbus-gmain.h:
273         (dbus_g_connection_open): new method for openning
274         a connection to an arbitrary address in the glib bindings
275
276         * ChangeLog: checkin last entry which doesn't seem to be commited
277
278 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
279
280         * tools/dbus-launch.c: Fixed sh syntax output
281
282 2006-02-13  Robert McQueen  <robot101@debian.org>
283
284         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
285         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
286         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
287         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
288         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
289         missing piece of the glib bindings jigsaw puzzle. This modifies
290         the existing specialised types to have N type parameters (rather
291         than the current 1 or 2 for arrays and dictionaries respectively).
292         You can then use this to get a glib type to represent any arbitrary
293         D-Bus struct type using dbus_g_type_get_struct. The only
294         implementation of these types is with GValueArrays as before,
295         but it's now possible to store these in arrays, emit them in
296         signals, etc.
297
298 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
299
300         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
301         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
302         <thiago.macieira at trolltech.com>
303
304 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
305
306         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
307         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
308
309 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
310
311         * bus/connection.c (bus_connections_expect_reply): Make
312         pending reply limit not common to all connections (Bug #5416)
313         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
314
315 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
316
317         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
318
319 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
320
321         * gcj/Makefile.am: point to correct jar command (Bug #4529)
322         patch from Doug Goldstein <cardoe at gentoo.org>
323
324 2006-02-09  Joe Shaw  <joeshaw@novell.com>
325
326         * mono/Arguments.cs: Fix a magic number in the mono bindings
327         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
328
329 2006-01-27  Robert McQueen  <robot101@debian.org>
330
331         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
332         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
333         when generating the client-side methods, instead of overloading
334         CSymbol which broke everything horribly. My apologies.
335
336 2006-01-27  Robert McQueen  <robot101@debian.org>
337
338         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
339         by me and Rob Taylor to add a simple_free function to D-Bus map
340         and collection types, which allows those types which can be freed
341         with a GDestroyNotify (such as GHashTables and GArrays, but not
342         GPtrArrays) to be stored as the values in hashtables.
343
344         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
345         Patch by Rob Taylor to add nested dicts to the glib tests to check
346         the above code works, and appears not to leak when called repeatedly.
347
348 2006-01-27  Robert McQueen  <robot101@debian.org>
349
350         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
351         to free a D-Bus allocated string with dbus_free () instead of
352         g_free ().
353
354 2006-01-27  Iain Holmes  <iain@openedhand.com>
355
356         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
357         method from being called multiple times.
358
359 2006-01-19  Robert McQueen  <robot101@debian.org>
360
361         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
362         <rob.taylor@collabora.co.uk> to add support for generating bindings
363         to arrays that are represented as GPtrArrays rather than GArrays (ie
364         size-variable things, such as strings, objects, structs, etc).
365
366 2006-01-05  Robert McQueen  <robot101@debian.org>
367
368         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
369         <ricardo.kekki@movial.fi> to make it possible to inherit from
370         DBusGProxy, by splitting the DBusGProxy struct into a public part and
371         a private part, and moving the setting of the DBusGProxyManager into a
372         connection property, allowing proper GObject construction.
373
374 2006-01-05  Robert McQueen  <robot101@debian.org>
375
376         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
377         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
378         annotations when generating glib client bindings.
379
380 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
381
382         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
383
384         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
385
386 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
387
388         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
389
390 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
391
392         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
393
394 2005-12-19  Ross Burton  <ross@openedhand.com>
395
396         * doc/dbus-tutorial.xml:
397         Document the Glib client-side bindings, and list all possible annotations.
398
399 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
400
401         * dbus/bus.c (dbus_bus_release_name): Add documentation
402
403 2005-12-06  Robert McQueen  <robot101@debian.org>
404
405         * python/service.py: s/sucessful/successful/ so we're allocating to
406         and reading from the same variable. Oops.
407
408 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
409
410         * Released 0.60
411
412 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
413
414         * test/qt/Makefile.am: build from srcdir
415
416         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
417         Note - this code is wrong and needs to be fixed by the Qt binding
418         developers.  The flags should be treated as bitfields and not enums.
419
420         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
421
422 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
423
424         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
425           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
426           in production code
427
428 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
429
430         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
431         method for getting messages off the bus in the absence of a
432         mainloop.  This method is much like 
433         dbus_connection_read_write_dispatch except it does not dispatch
434         the messages to a registered filter function.  Instead it
435         allows a developer to process messages by directly popping
436         them off the bus.
437
438 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
439
440         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
441         the parser to continue instead of returning error
442         (bus_desktop_file_load): Do not free parser data when
443         parse_section_start or parse_key_value fails because it was 
444         already freed by parser_free (patch from Carlos Garcia Campos  
445         <carlosgc at gnome.org>)
446
447 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
448
449         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
450         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
451         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
452         test/test-segfault.c, test/test-utils.c,
453         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
454         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
455         Various cleanup of dead code and compiler warnings (patch from
456         Kjartan Maraas <kmaraas at gnome.org>) 
457
458 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
459
460         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
461         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
462
463 2005-11-27  Robert McQueen  <robot101@debian.org>
464
465         * python/dbus_bindings.pyx: Repair my previous commit which reverted
466         part of the preceding one. Oops. Merge patch by Johan Hedberg
467         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
468         on big-endian platforms.
469
470         * test/python/test-client.py: Add some 16-bit integers to the test
471         values.
472
473 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
474
475         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
476         method return message for property getters
477
478 2005-11-27  Robert McQueen  <robot101@debian.org>
479
480         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
481         with type v of an instance of dbus.Variant(foo, type='x') caused
482         it to be boxed twice before sending over the bus.
483
484         * python/dbus_bindings.pyx, python/service.py,
485         test/python/test-client.py: Update the constants for the new
486         request_name flags, and update comments/test cases now that queueing
487         is the default action.
488
489 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
490
491         * configure.in:
492         - Change version to 0.60 for impending release
493         - upped the sonames because of ABI and API breakage
494
495 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
496
497         * configure.in: Add test/name-test/Makefile to the generated
498         Makefile list
499
500         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
501         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
502         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
503         not to queue an ower if it can't be the primary owner
504
505         * bus/bus.h: Add new internal BusOwner struct
506
507         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
508         to bus_registry_ensure and don't set the prohibit_replacement flag
509         since they are now set per BusOwner and not per name.
510         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
511         that returns the list of connections in a name's connection queue
512         
513         * bus/services.c (struct BusService): remove prohibit_replacement field
514         (struct BusOwner): new struct for keeping track of queued connections
515         and their associated flags for the queue
516         (struct BusRegistry): add a BusOwner memory pool
517         (bus_registry_new): initialize the BusOwner memory pool
518         (bus_registry_unref): free the BusOwner memory pool
519         (_bus_service_find_owner_link): new internal method for
520         searching the queue for a specific connection
521         (bus_owner_set_flags): new method for adding setting the flags on a
522         bus owner
523         (bus_owner_new): new method that creates a BusOwner object from the
524         pool and sets its flags
525         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
526         (bus_registry_ensure): Add the flags parameter
527         (bus_registry_acquire_service): Switch from using raw connections to
528         using the BusOwner struct
529         Add new state machine for dealing with the new set of flags
530         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
531         cancel_ownership, free_ownership_cancel_data, 
532         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
533         restore_ownership, free_ownership_restore_data, 
534         add_restore_ownership_to_transaction): Switch to using BusOwner 
535         instead of raw connections
536         (bus_service_add_owner): Add flags parameter
537         Switch to using BusOwner instead of raw connections
538         Add state machine for dealing with the new set of flags
539         (bus_service_swap_owner): Swaps the first and second owners in the
540         queue.  Used to make sure proper signals are sent when a service looses 
541         or gains primary ownership.  We never insert an owner at the top of the
542         queue.  Instead we insert it in the second position and then swap.
543         (bus_service_remove_owner): Remove the owner from the queue sending
544         out the NameLost and NameOwnerChanged signals if the we were the 
545         primary owner
546         (bus_service_get_primary_owners_connection): New method that extracts
547         the connection from the primary owner
548         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
549         connection
550         (bus_service_get_allow_replacement): Changed from the old 
551         bus_service_get_prohibit_replacement method.  Checks the flags of the 
552         primary owner and returns if it can be replaced or not
553         (bus_service_set_prohibit_replacement): removed
554         (bus_service_has_owner): returns TRUE if and owner with
555         the specified connection exists in the queue
556         
557         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
558         method that only compiles if tests are enabled.  Allows us to get the 
559         unique name of a connection so we can check it against the queue when
560         doing regression tests
561
562         * bus/activation.c (bus_activation_send_pending_auto_activate),
563         bus/dispatch.c (bus_dispatch),  
564         bus/driver.c (bus_driver_handle_get_service_owner, 
565         bus_driver_handle_get_connection_unix_user, 
566         bus_driver_handle_get_connection_unix_process_id,
567         bus_driver_handle_get_connection_selinux_security_context),
568         bus/signals.c (connection_is_primary_owner): 
569         use bus_service_get_primary_owners_connection instead of
570         bus_service_get_primary_owner
571
572         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
573         _dbus_listen_unix_socket): Calculate the length of the socket
574         path and use that instead of using a fixed length which was
575         causing socket names to contain many trailing Nul bytes.
576
577         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
578         (dbus_g_method_get_sender): New method for extracting the sender 
579         from a DBusGMethodInvocation
580         (dbus_g_method_return_get_reply): changed name to 
581         dbus_g_method_get_reply
582         (dbus_g_method_return_send_reply): changed name to
583         dbus_g_method_send reply
584
585         * doc/dbus-specification.xml: New docs that describe how the new
586         queueing system works and talks about the changes to the how
587         we specify socket names
588
589         * glib/examples/example-service.c, 
590         glib/examples/example-signal-emitter.c,
591         glib/examples/statemachine/statemachine-server.c:
592         Changed the RequestName flags to the new system
593
594         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
595         regression test suite for testing various states of the new
596         queueing system
597         
598 2005-11-15  Robert McQueen  <robot101@debian.org>
599
600         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
601         Taylor to add two methods, dbus_g_method_return_get_reply and
602         dbus_g_method_return_send_reply, to allow you to get the reply
603         message from a DBusGMethodInvocation, append arbitrary stuff to it,
604         and send it. The GLib bindings can't marshal a return value of
605         something like a(s) if the array is empty - ultimately they should be
606         made to heed the signature of the out arguments as the Python bindings
607         now can, but this is a workable interim solution which might have
608         other applications.
609
610 2005-11-15  Robert McQueen  <robot101@debian.org>
611
612         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
613         method to org.freedesktop.DBus to release a bus name or give up
614         waiting in the queue for it.
615
616         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
617         dbus_bus_release_name method to send the ReleaseName method calls.
618         Add constants for the return values to dbus/dbus-shared.h.
619
620         * doc/dbus-specification.xml: Document the new ReleaseName method
621         in the specification.
622
623         * python/dbus_bindings.pyx: Add a low-level python binding for the
624         release name method.
625
626         * python/exceptions.py, python/service.py: Make freeing BusName
627         objects release the name. Add a NameExistsException, and fix a
628         bug with creating UnknownMethodException.
629
630         * test/python/test-client.py: Add tests for freeing BusName
631         objects causing names to be released.
632
633 2005-11-14  Robert McQueen  <robot101@debian.org>
634
635         * python/service.py: Include the traceback in the error reply when we
636         send an exception over the bus. _BEST_ _PATCH_ _EVER_
637
638 2005-11-14  David Zeuthen  <davidz@redhat.com>
639
640         Patch from Timo Hoenig <thoenig@suse.de>.
641
642         * bus/bus.c: I've recently investigated why the automatic reload
643         of configuration files does not work as expected.
644
645         Currently, reloading configuration files does only work when
646         running dbus-daemon with --nodaemon.  If we are running as daemon
647         we're hitting a dnotify bug once we fork the process.
648
649         We're initializing the dnotify fds before calling fork().  Once
650         the child process forked it does still have the fds (and they
651         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
652         getting SIGIO as changes are made to the configuration files.
653
654         The attached patch moves the initialization of the dnotify fds to
655         process_config_postinit().  This is safe for all current code
656         paths and solves the dnotify disfunction.  If we're running
657         dbus-daemon as daemon the fds for dnotify are now being
658         initialized after fork() for the child process.
659
660         * configure.in: The current configure.in check for dnotify probes
661         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
662         match for 'xlinux', too. Additionally I have adapted the configure
663         option's style to match with the others.
664
665 2005-11-14  Robert McQueen  <robot101@debian.org>
666
667         * python/decorators.py, python/service.py: Add a new argument to the
668         dbus.service.method decorator called sender_keyword, which if set,
669         specifies the name of an argument which will be provided the bus
670         name of the method caller.
671
672         * test/python/test-client.py, test/python/test-service.py: Add a
673         method and test to check the sender_keyword functionality.
674
675 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
676
677         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
678         empty reply so blocking calls don't block forever (Patch from Sjoerd 
679         Simons <sjoerd at luon.net>)
680
681         * AUTHORS: Add Robert McQueen for his work on the Python
682         Bindings and other parts of D-Bus
683
684 2005-11-07  Robert McQueen  <robot101@debian.org>
685
686         * python/decorators.py: Change emit_signal function to use the
687         signature annotation of the signal when marhsalling the arguments from
688         the service. Fix a bug where the code checking signature length
689         against argument length referenced the wrong variable.
690
691         * python/introspect_parser.py: Avoid adding the type signature of
692         signal arguments to any methods which occur after them in the
693         introspection data (!) by making the parser a little more careful
694         about its current state.
695
696         * python/service.py: Remove debug prints from last commit (again :D).
697
698         * test/python/test-client.py, test/python/test-service.py: Add test
699         signals with signature decorators to test the strict marshalling code
700         gives errors at the right time. Could do with checking the signals
701         actually get emitted too, given that the test does nothing with
702         signals at the moment...
703
704 2005-11-07  Robert McQueen  <robot101@debian.org>
705
706         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
707         instances to stop madness of creating new instances representing
708         the same bus connection all the time, rendering any tracking of
709         match rules and bus names quite meaningless. Caught a bug where
710         the private argument to SessionBus() and friends was being passed
711         in as use_default_mainloop by mistake. Still some problems with
712         multiple dbus_binding.Connection instances representing the same
713         low-level connection (eg when you use both SessionBus() and
714         StarterBus() in same process), but it's a lot better now than it
715         was.
716
717         * python/dbus_bindings.pyx: Add constants with the return values
718         for bus_request_name().
719
720         * python/service.py: Store bus name instances in a per-dbus.Bus cache
721         and retrieve the same instances for the same name, so deletion can be
722         done with refcounting. Also now throws some kind of error if you
723         don't actually get the name you requested, unlike previously...
724
725         * test/python/test-client.py: Add tests for instance caching of buses
726         and bus name objects.
727
728 2005-11-04  Robert McQueen  <robot101@debian.org>
729
730         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
731         marshalling of boolean values. Add some booleans to the values in
732         the test client.
733
734         * python/decorators.py, python/service.py: Add an 'async_callbacks'
735         argument to the dbus.service.method decorator, which allows you to
736         name arguments to take two callback functions for replying with
737         return values or an exception.
738
739         * test/python/test-client.py, test/python/test-service.py: Add test
740         case using asynchronous method reply functions, both return values and
741         errors, and from within both the function itself and from a mainloop
742         callback.
743
744         * python/decorators.py, python/service.py: Perform checking that the
745         number of method/signal arguments matches the number of types in the
746         signature at class loading time, not when you first introspect the
747         class.
748
749         * python/service.py: Remove debug print left by the last commit.
750
751 2005-11-03  Robert McQueen  <robot101@debian.org>
752
753         * python/service.py: Heavy refactoring of method invocation, with
754         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
755         in favour of a new _message_cb that uses seperate functions for
756         looking up the method to call, marshalling the return values, and
757         sending exceptions as errors, and is easier to follow as a
758         consequence.  Fixes some corner cases about returning things that
759         don't match your declared out_signature, allows exceptions to define
760         _dbus_error_name and have it be sent over the bus as the error name,
761         and paves the way for cool stuff like heeding the message no reply
762         flag, asynchronous method implementations, informing the method of the
763         sender, and including backtraces in the error messages.
764
765         * test/python/test-client.py: Catch and print exceptions thrown in the
766         async callback tests, rather than passing them to the low-level
767         bindings to be ignored in a noisy and frustrating manner.
768
769 2005-11-03  Robert McQueen  <robot101@debian.org>
770
771         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
772         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
773         tweak others to be consistent.
774
775         * test/python/test-client.py: Tweak output of testInheritance.
776
777 2005-10-29  Robert McQueen  <robot101@debian.org>
778
779         * python/service.py: Major changes to allow multiple inheritance
780         from classes that define D-Bus interfaces:
781         
782          1. Create a new Interface class which is the parent class of
783             Object, and make the ObjectType metaclass into InterfaceType.
784         
785          2. Patch written with Rob Taylor to replace use of method_vtable
786             with code that walks the class's __MRO__ (method resolution order)
787             to behave like Python does when invoking methods and allow
788             overriding as you'd expect. Code is quite tricky because
789             we have to find two methods, the one to invoke which has the
790             right name and isn't decorated with the /wrong/ interface,
791             and the one to pick up the signatures from which is decorated
792             with the right interface.
793         
794             The same caveats apply as to normal multiple inheritance -
795             this has undefined behaviour if you try and inherit from two
796             classes that define a method with the same name but are
797             decorated with different interfaces. You should decorate
798             your overriding method with the interface you want.
799         
800          3. Replace grungy introspection XML generation code in the metaclass
801             with dictionaries that cope correctly with multiple inheritance
802             and the overriding of methods. This also uses the signature
803             decorations to provide correct introspection data, including
804             the debut appearance of the types of your return values. :D
805
806         * test/python/test-client.py, test/python/test-service.py: Add a test
807         case to try invoking an method that overrides one inherited from a
808         D-Bus interface class.
809
810 2005-10-29  Robert McQueen  <robot101@debian.org>
811
812         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
813         Add checking for the end of struct character when marshalling a
814         struct in MessageIter.append_strict.
815
816         * python/examples/example-service.py,
817         python/examples/gconf-proxy-service.py,
818         python/examples/gconf-proxy-service2.py: Update to use gobject
819         mainloop directly rather than appearing to depend on gtk.
820
821         * python/test/test-client.py, python/test/test-server.py: Remove
822         obsolete and broken test scripts for old bindings. We have up to date
823         and working tests in test/python/.
824
825 2005-10-29  Robert McQueen  <robot101@debian.org>
826
827         * python/decorators.py: Add optional arguments to the method and
828         signal decorators to allow you to specify the signature of arguments
829         and return values. Preserve the doc strings of signal functions in the
830         decorated version, for pydoc and friends.
831
832         * python/dbus_bindings.pyx, python/proxies.py: Replace the
833         parse_signature_block function with an iterable dbus.Signature()
834         type. Fix a bug in MessageIter.append_strict where you could append
835         anything by claiming it was a string.
836
837         * python/service.py: Use the out_signature decoration on methods to
838         marshal return values, meaning you no longer require dbus.Array()
839         or dbus.Dictionary() to indicate the type when returning empty
840         arrays or dictionaries. Fix a bug where exceptions which are defined
841         in __main__ are not turned into error replies.
842
843         * test/python/test-client.py, test/python/test-service.py: Add test
844         for correct marshalling of return values according to out_signature.
845         Fix a bug in the async call test where the error_handler is missing a
846         self argument.
847
848 2005-10-29  Robert McQueen  <robot101@debian.org>
849
850         * glib/Makefile.am, glib/examples/Makefile.am,
851         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
852         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
853
854         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
855
856         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
857         from Ubuntu by Daniel Silverstone to allow specifying match rules on
858         the command line.
859
860 2005-10-27  Ross Burton  <ross@openedhand.com>
861
862         * dbus/dbus-marshal-header.c:
863         Remove dead code.
864
865         * glib/dbus-gobject.c:
866         Stop compiler warning.
867
868 2005-10-25  Ross Burton  <ross@openedhand.com>
869
870         * dbus/dbus-auth.c:
871         * dbus/dbus-server-unix.c:
872         * dbus/dbus-transport-unix.c:
873         * glib/dbus-gmain.c:
874         * glib/dbus-gobject.c:
875         Add some const keywords.
876
877 2005-10-25  Ross Burton  <ross@openedhand.com>
878
879         * doc/dbus-specification.xml:
880         Document the NoReply annotation.
881
882         * glib/dbus-binding-tool-glib.h:
883         * glib/dbus-binding-tool-glib.c:
884         Respect the NoReply annotation.
885
886 2005-10-24  Robert McQueen <robot101@debian.org>
887
888         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
889         derive from unicode instead of str, and encode/decode UTF-8 when
890         marshalling/unmarshalling bus messages
891
892         * python/introspect_parser.py: encode introspection data as UTF-8
893         before passing the buffer into libxml2
894
895         * test/python/test-client.py: add unicode test strings
896
897         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
898         ignore generated python test files
899
900 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
901
902         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
903         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
904         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
905
906         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
907         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
908         when constructing struct signatures
909
910         * python/_dbus.py (Bus): handle private connections using the
911         private keyword in the constructor. defaults to private=False
912         (Bus::close): new method to close a connection to the bus
913
914         * python/dbus_bindings.pyx (Connection::close): renamed method
915         was previously called disconnect
916         (bus_get): now supports getting a private connection
917
918         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
919         keyword is set to True.  if it is, execute the method without waiting
920         for a reply
921         (ProxyObject::_introspect_execute_queue): new method for executing
922         all the pending methods that were waiting for the introspect to
923         finish.  this is called when introspect either succeeds or fails
924         (ProxyObject::_introspect_error_handler): call queued methods
925
926 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
927
928         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
929         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
930
931         * python/service.py (Object::_message_cb): handle exceptions correctly
932         by sending them over the wire to the calling app.  This makes sure
933         the client returns immediately instead of waiting the 15 seconds to
934         timeout.
935
936         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
937         Add a test to benchmark how long it takes to introspect a service and 
938         call a method which returns a large element (pretty fast)
939
940         * test/python/test-service.py (TestObject::GetComplexArray): new test 
941         method which pushes a lot of data
942
943 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
944
945         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
946         reclaim memory outside of the loop and use del istead of just setting
947         the key to None
948
949 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
950
951         * python/service.py (ObjectType::_reflect_on_signal): Always close
952         signal tag even when there are no arguments
953
954 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
955
956         * configure.in: Set mono, mono-docs and Qt3 to default
957         to no instead of auto when building.  These bindings do not
958         have full time maintainers and will not be supported for the
959         1.0 release.
960
961 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
962
963         patches from Michael Krivoruchko <misha at sun.com>: 
964         
965         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
966         _dbus_connection_message_sent, 
967         _dbus_connection_send_preallocated_unlocked_no_update, 
968         _dbus_connection_pop_message_link_unlocked): handle the case when path 
969         is NULL when calling _dbus_verbose
970
971         * configure.in: check for functions getpeerucred and getpeereid
972
973         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
974         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
975         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
976         Patch was only tested on Solaris 10 x86 so it might be issues
977         with other platforms (i.e. BSDs and MacOSX)
978         
979
980 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
981
982         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
983         instead of marshal basic so we can handle recursive types in a variant
984
985         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
986         in variants
987
988         * test/glib/test-service-glib.c, test-service-glib.xml
989         (my_object_echo_variant [EchoVariant], 
990         my_object_process_variant_of_array_of_ints123
991         [ProcessVariantOfArrayOfInts123]): 
992         Add two test methods
993
994         * python/introspect_parser.py: New module for parsing introspect
995         data.
996
997         * python/dbus_bindings.pyx:
998         (various places): when throwing errors fix to use errormsg instead 
999         of message local variable because Pyrex can get confused with other 
1000         message variables (initial patch by Robert McQueen 
1001         <robert.mcqueen at collabora.co.uk>)
1002         (MessageIter::parse_signature_block): new method for getting the next
1003         block in a signiture.
1004         (MessageIter::append_strict): new method for appending values strictly
1005         using the passed in signature instead of guessing at the type
1006         (MessageItter:: append_dict, append_struct, append_array): use 
1007         signatures to marshal children if the signature is available
1008         
1009         * python/exceptions.py (IntrospectionParserException): new exception
1010
1011         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1012         introspected signatures if available, else we fall back to the
1013         old way of doing things.
1014         (ProxyObject::_introspect_reply_handler ): parse introspection data
1015         
1016         * python/service.py (ObjectType::_reflect_on_method): Properly
1017         terminate <method> if there are no args in the reflection data
1018
1019         * test/python/test-client.py: add tests for talking with the GLib
1020         test server.  This gives us better coverage for introspection since
1021         python to python will always generate arguments as variants.  It also
1022         allows us to test the robustness of the GLib bindings and interlanguage
1023         communications.
1024
1025         
1026 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1027
1028         * bus/driver.c (bus_driver_handle_introspect): Add signals
1029         to the introspect data. (patch from Daniel P. Berrange 
1030         <dan at berrange.com>)
1031
1032         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1033         
1034         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1035         _dbus_connection_run_builtin_filters): Changed these to
1036         be unlock_no_update functions and call 
1037         _dbus_connection_send_unlocked_no_update instead of
1038         dbus_connection_send to avoid locking errors.
1039         
1040         * doc/TODO: Removed the make Ping test TODO
1041         
1042 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1043
1044         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1045         We now copy the message from a DBusError and then free 
1046         the error object befor throwing the error
1047
1048         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1049         DBusBindingOutputMode enum which was causing a warning.
1050         #include <time.h> so using time_t is explicitly defined
1051
1052 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1053
1054         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1055         - dbus/dbus-bus.c
1056         (internal_bus_get): new method that take over the heavy lifting
1057         of dbus_bus_get and adds the ability to get a private connection
1058         to the bus
1059         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1060         interface as in previous versions
1061         (dbus_bus_get_private): new method that is a wrapper to 
1062         internal_bus_get to get a private connection to the bus
1063
1064         - dbus/dbus-bus.h
1065         (dbus_bus_get_private): add as a public libdbus interface
1066
1067         - dbus-1.pc.in: output system_bus_default_address and 
1068         sysconfdir variables so apps can use them when compiling
1069
1070 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1071         * dbus/qt: New Qt bindings
1072
1073 2005-09-12  Waldo Bastian  <bastian@kde.org>
1074
1075         * dbus/dbus-marshal-validate.c,
1076         doc/dbus-specification.xml, test/Makefile.am,
1077         test/test-names.c: allow hyphens in bus names.
1078
1079 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1080
1081         * test/data/auth/fallback.auth-script: we don't
1082         retry the EXTERNAL method when we know its going
1083         to fail anymore.
1084
1085 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1086
1087         * dbus/dbus-connection-internal.h: rename
1088         (add|remove|toggle)_(watch|timeout) to unlocked()
1089         
1090         * dbus/dbus-connection.c: ditto.
1091         
1092         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1093         Update some callers for the renaming.
1094
1095 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1096
1097         * dbus/dbus-auth.c: (record_mechanisms): don't
1098         retry the first auth mechanism because we know
1099         we're just going to get rejected again.
1100         
1101         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1102         Fix thinko ... and what a nasty little bugger to
1103         track down you were ...
1104
1105         * dbus/dbus-connection.c:
1106         (_dbus_connection_add_watch),
1107         (_dbus_connection_remove_watch): add note about
1108         these needing the connection to be locked.
1109         (_dbus_connection_get_dispatch_status_unlocked):
1110         set status to DATA_REMAINS when we queue the
1111         disconnected message.
1112         
1113         * bus/dispatch.c:
1114         (bus_dispatch): fix warning.
1115         (check_existent_service_no_auto_start):
1116         Expect ChildSignaled error too.
1117         (check_existent_hello_from_self): fix another
1118         couple of warnings.
1119         
1120 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1121
1122         Patches from James Willcox <snorp@snorp.net>
1123
1124         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1125
1126         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1127         support array "out" parameters.
1128
1129         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1130         for 16-bit int support.
1131
1132 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1133
1134         * Released 0.50
1135
1136         * Patch from Steve Grubb:
1137         - bus/activation.c (bus_activation_service_reload_test): clean up
1138         some indentation
1139         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1140         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1141         buffer overflows in the test suite.  This is non critical because
1142         it can not be exploited and this code is only run when doing a 
1143         make check.
1144
1145         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1146         - configure.in: Don't check and link against kdecore, only qt headers
1147         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1148         - gcj/org/freedesktop/dbus/Makefile.am:
1149         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1150         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1151         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1152         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1153         - tools/Makefile.am: Add platform extentions to binaries 
1154         (i.e. .exe on windows)
1155
1156         * configure.in: 
1157         - Make it so if no suitable version of python is found we only 
1158         disable building python instead of exiting the configure script
1159         - Require version 2.4 of glib for glib bindings
1160         - Up version to 0.50
1161
1162         * python/__init__.py: Sync version with libdbus to (0,50,0)
1163         
1164 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1165
1166         * dbus/dbus-object-tree.c (find_subtree_recurse):
1167         a couple of optimizations (bug #710):
1168         - do a binary search in the tree
1169         - insert a new child at the right place directly, no need for
1170           qsort anymore
1171         - do the "double alloc" thing when allocating children
1172
1173 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1174
1175         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1176
1177         * python/dbus_bindings.pyx: Memory management foo
1178         (global): remove hacky _user_data_references global list
1179         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1180         tuples. Unref user_data
1181         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1182         (Connection::__del__): Remove and replace with __dealloc__ method
1183         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1184         to keep tuple from being deallocated instead of the global var hack
1185         (Connection::register_object_path): Stuff user_data into a tuple.
1186         Use Py_INCREF to keep tuple from being deallocated instead of the 
1187         global var hack
1188         (Connection::register_fallback): Stuff user_data into a tuple.
1189         Use Py_INCREF to keep tuple from being deallocated instead of the 
1190         global var hack
1191         (GIL_safe_pending_call_notification): Don't unref the message
1192         because it gets unreffed when going out of scope.  Py_XDECREF
1193         the user_data
1194         (PendingCall::__del__): Remove and replace with __dealloc__ method
1195         (PendingCall::set_notify): ref the pending call because we will
1196         need it to stick around for when the notify callback gets called
1197         (Message::__del__): Remove and replace with __dealloc__ method
1198
1199         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1200         gthreads_init to match up with the dbus call
1201
1202         * python/glib.py (init_threads): Changed to threads_init to match
1203         up with gobject.threads_init().  init_threads is kept for backwards
1204         compat but will most likely be deprecated in the future
1205
1206         * test/python/test-client.py: 
1207         - revamp to use Python's unittest functionality
1208         - add async call tests
1209         - setup threads in glib and dbus so we make sure locks are working
1210         
1211 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1212
1213         * python/dbus_bindings.pyx 
1214         (_pending_call_notification, cunregister_function_handler, 
1215         cmessage_function_handler): All callback functions have been rearranged 
1216         to workaround a bug in Pyrex when working with the GIL which is Python's 
1217         global lock when dealing with threads.  They have been split into
1218         a wrapper function (which assumes the name of the old function) and
1219         a _GIL_safe_<function name> function which contains the functionality
1220         of the old function.  This ensures that Pyrex does not write code
1221         the lock is released.
1222         
1223
1224 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1225
1226         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1227         GIL global lock when calling back into Python
1228
1229 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1230
1231         * Release 0.36.2
1232
1233         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1234
1235         * bus/policy.c (bus_policy_allow_user): change default "user is
1236         allowed" to be "user has same uid as the bus itself"; any
1237         allow/deny rules will override.
1238
1239         * bus/session.conf.in: don't allow all users, since now by default
1240         the user that ran the bus can connect.
1241
1242 2005-08-26  Colin Walters  <walters@verbum.org>
1243
1244         * tools/dbus-print-message.c (print_message): Flush stdout
1245         after printing a message, so that redirecting to a file, then
1246         hitting Ctrl-C works.
1247
1248 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1249
1250         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1251         (EmptyMessage): new class that subclasses Message.  This is a workaround
1252         to a Pyrex bug that fails to call __del__ when the Message object goes out
1253         of scope.  For some reason subclassing Message fixes this bug
1254         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1255         - s/Message(_create=0)/EmptyMessage everywhere else
1256         
1257         * test/python/test-{server|client}.py: add the python/.libs directory
1258         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1259         get picked up from the system
1260
1261 2005-08-25  Colin Walters  <walters@verbum.org>
1262
1263         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1264         to Ryan Lortie for the suggestion.
1265
1266 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1267
1268         * test/python: Add python regression test
1269
1270         * configure.in: Add test/python/Makefile
1271
1272         * test/Makefile.am: Add the python directory to SUBDIRS
1273
1274 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1275
1276         * Release 0.36.1
1277
1278         * python/_dbus.py: 
1279         (Interface::connect_to_signal): propigate keywords for match on args
1280         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1281
1282         * python/proxies.py (ProxyObject::connect_to_signal):
1283         propigate keywords for match on args
1284
1285         * Makefile.am: point everything to pyexecdir since python borks
1286         on multilib
1287
1288 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1289
1290         * Release 0.36
1291
1292 2005-08-23  Colin Walters  <walters@verbum.org>
1293
1294         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1295
1296 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1297
1298         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1299         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1300         of defining DBusConnection ourselves.
1301
1302 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1303
1304         * python/dbus.pth: New path file to fix up problems when installing
1305         c libraries to lib64 and python files to lib.
1306
1307         * python/Makefile.am: install dbus.pth in the correct spot
1308
1309 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1310         * ChangeLog: clean up my last entry a bit
1311
1312         * doc/introspect.xsl: New stylesheet for converting introspection data
1313         into browser renderable xhtml. Contributed by Lennart Poettering.
1314
1315         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1316         Poettering.
1317
1318         * doc/dbus-tutorial.xml: 
1319         - Add Colin Walter to the Authors section for authoring the GLib
1320         section
1321         - Add descriptions of the new signature and type functionality
1322         in the Python complex type mapping section
1323         - Add a sidenote on the new args matching functionality in 
1324         the Python bindings
1325         - Fixed up some of the examples to use the gobject.MainLoop
1326         instead of gtk.main
1327         
1328         * python/_dbus.py:
1329         (Bus::_create_args_dict): New. Converts a hash of arg matches
1330         to a more useable format
1331         (Bus::add_signal_receiver): add a **keywords parameter for catching
1332         arg match parameters
1333         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1334         arg match parameters
1335         
1336         * python/matchrules.py:
1337         (MatchTree::exec_matches): Check for arg matches
1338         (SignalMatchRule::add_args_match): New method
1339         (SignalMatchRule::execute): Added args_list parameter as an optimization
1340         so we don't have to marshal the args more than once
1341         (SignalMatchRule::match_args_from_list): New method that checks to see
1342         if the rule's arg matches match an argument list.  Only arguments
1343         set in the rule are checked.
1344         (SignalMatchRule::match_args_from_rule): New method that checks to see
1345         if the rule's arg matches match another rule's.  All args have to match
1346         in order for this method to return true.  If either rule has more args
1347         then it is not a match.
1348         (SignalMatchRule::is_match): Add args match
1349         (SignalMatchRule::repr): Add args to the final output if they exist
1350
1351 2005-08-17  Ross Burton  <ross@burtonini.com>
1352
1353         * glib/dbus-gproxy.c:
1354         (dbus_g_proxy_call_no_reply): unref the message once sent.
1355         (dbus_g_proxy_call): protect against NULL proxy.
1356
1357 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1358
1359         * python/__init__.py: Version updated (0, 43, 0)
1360         
1361         * python/dbus_bindings.pyx: 
1362         - Fixed type objects to have self passed into __init__
1363         - Added the Variant type
1364         - Add the ability to specify types or signatures for Array, Variant 
1365         and Dictionary
1366         (Connection::send_with_reply_handlers): return a PendingCall object
1367         (_pending_call_notification): handle the case when an error is returned 
1368         without an error message in the body
1369         (MessageIter::get_boolean): return True or False instead of an integer
1370         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1371         and add checks for objects with embeded signatures or types (Array, 
1372         Variant and Dictionary)
1373         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1374         (MessageIter::append_dict): handle embeded types or signatures
1375         (MessageIter::append_array): handle embeded types or signatures
1376         (MessageIter::append_variant): new method
1377         
1378         * python/proxies.py:
1379         (DeferedMethod): New. Dummy executable object used when queuing calls 
1380         blocking on introspection data
1381         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1382         or shorter timeouts for method calls
1383         (ProxyObject): Add first pass at an introspection state machine
1384         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1385         introspection. 
1386         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1387         the usual mechanisms for sending messages.  This is to avoid a deadlock
1388         where the Intospect call would be queued waiting for the Introspect 
1389         call to finish ;-)
1390         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1391         when introspection returns with no error
1392         (ProxyObject::_introspect_error_handler): New.  This method is called 
1393         when introspection encounters an error
1394         (ProxyObject::__getattr__): Code to handle different introspection 
1395         states.  Queue async calls or block blocking calls if we are 
1396         introspecting.  Pass through as normal if we are not or are done with 
1397         introspecting.
1398         
1399         * python/service.py: Import signal and method from decorators.py
1400
1401         * python/types.py: Add Variant type
1402
1403 2005-08-16  Colin Walters  <walters@verbum.org>
1404
1405         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1406         DBusError message is NULL.
1407
1408 2005-08-09  Havoc Pennington  <hp@redhat.com>
1409
1410         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1411         malloc'd copy of the name parameter
1412
1413 2005-08-09  Havoc Pennington  <hp@redhat.com>
1414
1415         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1416         warning if the reply serial is set to 0
1417
1418 2005-08-04  Colin Walters  <walters@verbum.org>
1419
1420         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1421         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1422         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1423         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1424         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1425         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1426         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1427         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1428         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1429         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1430         
1431         Prefix name with _ to ensure they're not exported.  All callers
1432         updated.
1433
1434         * glib/dbus-gvalue.c (typecode_to_gtype)
1435         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1436         (signature_iter_to_g_type_dict)
1437         (signature_iter_to_g_type_array)
1438         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1439         (dbus_gtypes_from_arg_signature):
1440         Move to dbus-gsignature.c.
1441
1442         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1443         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1444         (dbus_binding_tool_output_glib_client): Ditto.
1445
1446         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1447         and dbus-gsignature.h
1448
1449         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1450         unused variable.
1451
1452 2005-08-03  Colin Walters  <walters@verbum.org>
1453
1454         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1455         catch any incompatible changes accidentally made.
1456
1457 2005-08-03  Havoc Pennington  <hp@redhat.com>
1458
1459         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1460         typo, from Julien Puydt
1461
1462         * bus/connection.c (bus_connection_disconnected): we were always
1463         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1464
1465 2005-08-01  Colin Walters  <walters@verbum.org>
1466
1467         Patch from Joe Markus Clarke:   
1468         
1469         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1470         use-after-free.
1471
1472 2005-08-01  Colin Walters  <walters@verbum.org>
1473         
1474         Patch from Joe Markus Clarke:   
1475         
1476         * tools/dbus-send.c (main): 
1477         
1478         Don't use C99 style initializers (bug #3933).
1479         
1480 2005-08-01  Colin Walters  <walters@verbum.org>
1481
1482         Patch from Joe Markus Clarke:   
1483
1484         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1485         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1486         * glib/dbus-gobject.c (write_interface):
1487
1488         Don't use C99 style initializers (bug #3933).
1489
1490 2005-07-31  Havoc Pennington  <hp@redhat.com>
1491
1492         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1493         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1494
1495 2005-07-30  Havoc Pennington  <hp@redhat.com>
1496
1497         * fix a bunch of Doxygen warnings and mistakes
1498
1499 2005-07-30  Havoc Pennington  <hp@redhat.com>
1500
1501         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1502         DBUS_BUILD_TESTS since it's now used in production code
1503
1504 2005-07-29  Havoc Pennington  <hp@redhat.com>
1505
1506         * test/glib/test-profile.c (write_junk): initialize the junk
1507         buffer so valgrind doesn't have a breakdown
1508
1509 2005-07-29  Havoc Pennington  <hp@redhat.com>
1510
1511         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1512         (match_rule_matches): remove unused arg
1513         (test_matching): add tests for match_rule_matches()
1514
1515         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1516         do arg0='foo' arg5='bar' in the match rules
1517         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1518
1519         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1520
1521 2005-07-29  Ross Burton  <ross@openedhand.com>
1522
1523         * dbus/dbus-connection.c:
1524         Don't create a DBusCondVar which is never used.
1525
1526 2005-07-27  Ross Burton  <ross@openedhand.com>
1527
1528         * dbus/dbus-message.c:
1529         Reduce the size of the maximum cached message to 10K.
1530
1531 2005-07-25  Ross Burton  <ross@openedhand.com>
1532
1533         * glib/dbus-gproxy.c:
1534         Remove matches when all proxies are unregistered.
1535
1536 2005-07-24  Colin Walters  <walters@verbum.org>
1537
1538         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1539         typedata; recursive arrays won't have it.
1540
1541         * test/glib/test-dbus-glib.c:
1542         * test/glib/test-service-glib.c:
1543         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1544         
1545 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1546
1547         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1548         proxies.py, service.py: Cleanup of code after running it through the
1549         pyflakes code checker mostly dealing with undefined names.  
1550         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1551
1552 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1553
1554         * NEWS: Update to 0.35.2
1555
1556 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1557
1558         * python/_dbus.py: Remove import of the dbus.services
1559         module as it no longer exists (patch from Dimitur Kirov)
1560
1561         * python/service.py (Object::__init__): Fixed typo
1562         s/name/bus_name (patch from Dimitur Kirov)
1563
1564         * python/examples/example-signal-emitter.py: import dbus.glib
1565         to get the main loop and use glib mainloop instead of gtk so
1566         X doesn't have to be running.
1567
1568         * python/examples/example-signal-recipient.py: import dbus.glib
1569         to get the main loop and use glib mainloop instead of gtk so
1570         X doesn't have to be running. Import the decorators module
1571         directly.
1572
1573         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1574         didn't pick up on but are needed to build
1575
1576         * configure.in: upped version to 0.35.2
1577
1578         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1579         added Colin Walters' SELinux API rename patch from head 
1580         s/unix sercurity context/selinux security context/
1581
1582 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1583
1584         * python/Makefile.am: dbus_binding.pxd.in should be included 
1585         in EXTRA_DIST not dbus_binding.pxd
1586         fix up $(srcdir) hopefully for the last time
1587
1588         * NEWS: Update to 0.35.1
1589
1590 2005-07-16  Colin Walters  <walters@verbum.org>
1591
1592         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1593         from bus_driver_handle_get_connection_unix_security_context.  Update for
1594         error usage.
1595         (message_handlers): Update for renames.
1596
1597         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1598         _dbus_string_init failure correctly.
1599         (bus_selinux_append_context): Convert SID to context.  Append it
1600         as a byte array.
1601         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1602         hasn't been called.
1603
1604         * bus/selinux.h: Update prototype.
1605
1606         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1607         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1608
1609 2005-07-15  Colin Walters  <walters@verbum.org>
1610
1611         * doc/TODO: Add note about convenience wrappers.
1612
1613 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1614
1615         * NEWS: Update to 0.35
1616
1617 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1618
1619         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1620         so distcheck doesn't fail
1621
1622         * glib/examples/Makefile.am: Add example-service.xml and 
1623         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1624
1625         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1626         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1627
1628         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1629         compiler looks in the right places during distcheck
1630
1631 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1632
1633         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1634         to fail
1635
1636 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1637
1638         * python/examples/example-service.py,
1639         python/examples/example-signal-emitter.py: Fixed up examples
1640         for API changes
1641
1642 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1643
1644         * python/__init__.py: Upped to version (0,42,0) because of
1645         the API change
1646
1647 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1648
1649         * ChangeLog: fix date in last entry
1650
1651         * configure.in, bus/system.conf.in: add the ability to configure 
1652         the system bus user at compiletime with the --with-dbus-user flag
1653         (patch from Kristof Vansant)
1654
1655 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1656
1657         * bus/dispatch.c, test/test-service.c: Add testcase
1658         for sending messages to oneself (TODO item).
1659
1660         * python/service.py (class Object): Swap ordering of bus_name 
1661         and object_path parameters to better support inheritance.
1662
1663         * doc/dbus-tutorial.xml: change Python docs to reflect change
1664         in parameter ordering and fix the inheritance section.
1665
1666         * doc/TODO: remove sending message to oneself TODO item
1667
1668 2005-07-15  Ross Burton  <ross@openedhand.com>
1669
1670         * glib/dbus-gproxy.c:
1671         Fix a leak when calling methods via the proxy.
1672
1673 2005-07-15  Colin Walters  <walters@verbum.org>
1674
1675         * bus/selinux.c (bus_selinux_append_context): Wrap in
1676         HAVE_SELINUX.
1677
1678 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1679
1680         * python/_dbus.py (Bus::remove_signal_receiver):
1681         don't add a callback to the match if none has been passed in
1682         
1683         * python/matchrules.py (SignalMatchTree::remove): if the rule
1684         being matched does not have a callback treat it as a wildcard
1685         fix matching logic
1686
1687         * doc/dbus-tutorial.xml: Add Python tutorial
1688
1689 2005-07-14  Colin Walters  <walters@verbum.org>
1690
1691         * bus/driver.c
1692         (bus_driver_handle_get_connection_unix_security_context): New function.
1693         (message_handlers): Add.
1694
1695         * bus/selinux.c (bus_selinux_append_context): New function; appends
1696         security context to message.
1697
1698         * bus/selinux.h: Prototype.
1699
1700         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1701
1702 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1703
1704         * bus/activation.c: clean up all tabs to be 8 spaces 
1705         (bus_activation_activate_service): make sure we clean up
1706         if activation fails
1707
1708         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1709         (check_shell_fail_service_auto_start): New function
1710         tests to make sure we get fail properly when trying to auto start a service
1711         with a faulty command line
1712         (check_shell_service_success_auto_start): New function tests to make sure
1713         auto started services get the arguments on the command line
1714
1715         * test/test-shell-service.c: Added service for testing auto-starting with 
1716         command line arguments
1717
1718         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1719         test/data/valid-service-files/debug-shell-echo-success.service.in:
1720         Added service files for testing auto-starting with command line arguments
1721
1722         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1723
1724 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1725
1726         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1727         
1728         * dbus/Makefile.am: added new files to build.
1729
1730         * bus/activation.c (bus_activation_activate_service): support
1731         activation commands with parameters.
1732
1733         * test/shell-test.c: added test program for the shell parsing
1734         code.
1735
1736 2005-07-13  David Zeuthen  <davidz@redhat.com>
1737
1738         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1739         64 bit signed and unsigned parameters
1740
1741 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1742
1743         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1744
1745         * python/service.py (class Name): renamed BusName to make it clearer
1746         what the object is for (a name on the bus)
1747
1748         * python/examples/example-service.py,
1749         python/examples/example-signal-emitter.py: change the Name object to
1750         BusName
1751
1752 2005-07-12  Colin Walters  <walters@verbum.org>
1753
1754         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1755
1756         * tools/dbus-launch.c: Include sys/select.h.
1757
1758 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1759         * python/dbus_bindings.pyx.in: removed
1760
1761         * python/dbus_bindings.pyx: Added.
1762         - Fixed some memleaks (patch from 
1763         Sean Meiners <sean.meiners@linspireinc.com>)
1764         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1765         own pxd file (Pyrex definition)
1766         - Broke out glib dependancies into its own pyx module
1767         
1768         * python/dbus_bindings.pdx: Added.
1769         - Defines C class Connection for exporting to other modules
1770
1771         * python/dbus_glib_bindings.pyx: Added.
1772         - New module to handle lowlevel dbus-glib mainloop integration
1773
1774         * python/glib.py: Added.
1775         - Registers the glib mainloop when you import this module
1776
1777         * python/services.py: Removed (renamed to service.py)
1778         
1779         * python/service.py: Added.
1780         - (class Server): renamed Name
1781
1782         * python/__init__.py: Bump ro version (0,41,0)
1783         -don't import the decorators or service module
1784         by default.  These now reside in the dbus.service namespace
1785
1786         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1787         setup function on creation 
1788
1789         * python/examples/example-service.py,
1790         python/examples/example-signal-emitter.py: update examples
1791
1792         * python/examples/gconf-proxy-service.py,
1793         python/examples/gconf-proxy-service2.py: TODO fix these up
1794
1795         * doc/TODO: Addition
1796         - Added a Python Bindings 1.0 section
1797         - added "Add match on args or match on details to match rules"
1798
1799
1800 2005-07-12  Colin Walters  <walters@verbum.org>
1801
1802         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1803         (statemachine-glue.h): 
1804         * glib/examples/Makefile.am (example-service-glue.h) 
1805         (example-signal-emitter-glue.h): 
1806         * glib/Makefile.am (dbus-glib-error-switch.h): 
1807         Add libtool --mode=execute so we use the built library instead
1808         of any installed one.
1809
1810 2005-07-11  Colin Walters  <walters@verbum.org>
1811
1812         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1813         (dbus_g_value_types_init): Remove assertion.
1814         (dbus_g_value_get_g_type, dbus_g_value_open)
1815         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1816         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1817         functions related to DBusGValue.  Now we marshal/demarshal
1818         structures as GValueArray.
1819         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1820         structures.
1821         (signature_iter_to_g_type_array): Don't call
1822         signature_iter_to_g_type_struct.
1823         (signature_iter_to_g_type_struct): Delete.
1824         (dbus_gvalue_to_signature): Delete.
1825         (dbus_gvalue_to_signature): New function with same name as other
1826         one; we can convert structures to signatures.
1827         (demarshal_valuearray): New function.
1828         (get_type_demarshaller): Use it.
1829         (demarshal_recurse): Delete.
1830         (marshal_proxy): New function.
1831         (marshal_map): Warn if we can't determine signature from type.
1832         (marshal_collection_ptrarray): Ditto.
1833         (marshal_collection_array): Ditto.
1834         (get_type_marshaller): Use marshal_valuearray.
1835         (marshal_recurse): Delete.
1836         (_dbus_gvalue_test): Add some tests.
1837
1838         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
1839         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1840         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1841         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1842         (dbus_g_value_free): Remove prototypes.
1843
1844         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1845         G_TYPE_VALUE_ARRAY.
1846
1847         * glib/examples/example-service.c:
1848         * glib/examples/example-client.c: Implement GetTuple.
1849
1850         * test/glib/test-dbus-glib.c:
1851         * test/glib/test-service-glib.c:
1852         * test/glib/test-service-glib.xml: Add structure tests.
1853
1854 2005-07-10  Colin Walters  <walters@verbum.org>
1855
1856         * doc/TODO: Knock off some GLib items with this patch.
1857
1858         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
1859         (_dbus_gvalue_signals_error): New functions.
1860
1861         * glib/dbus-gvalue-utils.h: Prototype them.
1862
1863         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1864         and change to not output const/retval flags for input args.  All
1865         callers updated.
1866         (invoke_object_method): Refactor to handle return values.  Add
1867         some more comments in various places.  Remove debug g_print.
1868
1869         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1870
1871         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1872         Handle G_TYPE_NONE.
1873         (compute_gsignature): New function; refactored from code from
1874         compute_marshaller and compute_marshaller_name.  Enhance to
1875         handle return values and async ops more cleanly.  Update for
1876         async ops returning NONE instead of BOOLEAN.
1877         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1878         and output appropriate string.
1879         (generate_glue): Handle return value annotation.  Also don't dump
1880         constness flag for input arguments.
1881
1882         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1883         files shared between installed library and utilities.
1884         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1885         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1886         binding tool can access gtype utility functions.
1887
1888         * test/glib/test-service-glib.c: 
1889         * test/glib/test-service-glib.xml: 
1890         * test/glib/test-dbus-glib.c: Add some tests for return values.
1891
1892 2005-07-09  Colin Walters  <walters@verbum.org>
1893
1894         * glib/dbus-gparser.c (parse_annotation): Add annotations to
1895         argument if available, not method.
1896
1897         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1898         (invoke_object_method): First, remove some redundant
1899         GValues (object_value, error_value) in favor of working on
1900         array directly.  Second, rework constness to be less buggy.
1901         Now we iterate directly over the argument metadata instead
1902         of parallel iterating over output signature and metadata.
1903
1904         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1905
1906         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1907         annotation on input args.
1908         
1909 2005-07-09  Colin Walters  <walters@verbum.org>
1910
1911         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1912         Define.
1913
1914         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1915         annotation.
1916
1917         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1918         (method_dir_signature_from_object_info): Handle arg_iterate change.
1919         (write_interface): Ditto.
1920         (lookup_object_info): Don't barf if format_version is > 0.
1921         (invoke_object_method): Handle arg constness.
1922
1923         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1924         (arg_info_new): Create.
1925         (arg_info_unref): Destroy.
1926         (arg_info_get_annotations, arg_info_get_annotation) 
1927         (arg_info_add_annotation): New functions.
1928
1929         * glib/dbus-gidl.h: Prototype them.
1930
1931         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1932         args, disallow them in properties.
1933         (parse_annotation): Handle arg annotations.
1934
1935         * test/glib/test-service-glib.xml: 
1936         * test/glib/test-service-glib.c: Update to make some methods
1937         const.
1938
1939 2005-07-08  Colin Walters  <walters@verbum.org>
1940
1941         * test/glib/test-service-glib.xml: 
1942         * test/glib/test-service-glib.c:
1943         * test/glib/test-dbus-glib.c: Test a{sv}.
1944
1945         * glib/examples/statemachine/statemachine.c:
1946         * glib/examples/statemachine/statemachine-server.c:
1947         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1948         add progress bar, etc.
1949
1950         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1951         needed anymore due to generic array/map marshalling.
1952         (dbus_g_value_types_init): Don't register basic arrays or the
1953         string/string hash.
1954         (dbus_gtype_from_signature_iter): Don't try to recurse into
1955         variants.
1956         (dbus_gtype_to_signature): Check collection/map before type
1957         metadata.
1958         (demarshal_garray_basic): Renamed to demarshal_collection_array.
1959         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1960         generic map creation/append functions instead of hash table
1961         specifically.
1962         (get_type_demarshaller): Handle maps.
1963         (demarshal_collection): Dispatch on collection type to either
1964         demarshal_collection_ptrarray or demarshal_collection_array.
1965         (get_type_marshaller): Handle maps.
1966         (marshal_collection): Dispatch collection type to either
1967         marshal_collection_ptrarray or marshal_collection_array.
1968         (_dbus_gvalue_test): New test.
1969
1970         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1971         (hash_free_from_gtype): Use it to free GValues.
1972         (hashtable_append): New function.
1973         (ptrarray_append): Fix prototype.
1974         (slist_append): Ditto.
1975         (_dbus_gvalue_utils_test): Extend tests.
1976
1977         * glib/dbus-gtype-specialized.c
1978         (dbus_g_type_specialized_init_append): Renamed from
1979         dbus_g_type_specialized_collection_init_append.  Remove const from
1980         value, since we steal it.
1981         (dbus_g_type_specialized_map_append): New function.
1982
1983         * glib/dbus-gtype-specialized.h: Update prototypes.
1984         Add DBusGTypeSpecializedMapAppendFunc.
1985
1986         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1987         _dbus_gvalue_test.
1988         
1989         * glib/dbus-gtest.h: Prototype it.
1990
1991 2005-07-08  Ross Burton  <ross@openedhand.com>
1992
1993         * dbus/dbus-glib.h:
1994         Add DBysGAsyncData for the async bindings.
1995
1996         * glib/dbus-binding-tool-glib.c:
1997         Re-enable the async bindings.
1998
1999         * test/glib/test-dbus-glib.c:
2000         Add a test for the generated async bindings.
2001
2002 2005-07-08  Colin Walters  <walters@verbum.org>
2003
2004         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2005         connection concept.
2006         
2007 2005-07-08  Colin Walters  <walters@verbum.org>
2008         
2009         * tools/Makefile.am: Kill of print-introspect in favor of using
2010         dbus-send --print-reply=literal.
2011
2012         * test/glib/test-service-glib.xml: 
2013         * test/glib/test-service-glib.c (my_object_get_objs): New test
2014         for "ao".
2015
2016         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2017         (main): Test GetObjs.
2018
2019         * glib/examples/statemachine/Makefile.am:
2020         * glib/examples/statemachine/sm-marshal.list:
2021         * glib/examples/statemachine/statemachine-client.c:
2022         * glib/examples/statemachine/statemachine-server.c:
2023         * glib/examples/statemachine/statemachine-server.xml:
2024         * glib/examples/statemachine/statemachine.c:
2025         * glib/examples/statemachine/statemachine.h:
2026         * glib/examples/statemachine/statemachine.xml:
2027
2028         New example.
2029
2030         * glib/examples/example-service.c (main): Move invocation
2031         of dbus_g_object_type_install_info earlier, to emphasize it
2032         should only be done once.
2033
2034         * glib/examples/example-signal-emitter.c (main): Ditto.
2035
2036         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2037
2038         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2039         (dbus_gvalue_marshal): Update prototypes.
2040
2041         * glib/dbus-gvalue.c: Update all marshalling functions to take
2042         const GValue instead of GValue.
2043         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2044         types.
2045         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2046         change.
2047         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2048         Return a newly-allocated string.
2049         (demarshal_proxy, demarshal_object_path, demarshal_object)
2050         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2051         we get the wrong types from message.
2052         (get_type_demarshaller): New function, extracted from
2053         dbus_gvalue_demarshal.
2054         (demarshal_collection): New function, demarshals generic
2055         collection.
2056         (dbus_gvalue_demarshal): Just invoke result of
2057         get_type_demarshaller.  Throw error if we don't have one.
2058         (marshal_garray_basic): Abort on OOM.
2059         (get_type_marshaller): New function, extracted from
2060         dbus_gvalue_marshal.
2061         (collection_marshal_iterator, marshal_collection): New functions;
2062         implements generic marshalling for an iteratable specialized
2063         collection.
2064         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2065
2066         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2067         G_TYPE_STRING.
2068         (ptrarray_value_from_gvalue): Ditto.
2069         (ptrarray_append, ptrarray_free): New functions.
2070         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2071         (slist_append, slist_end_append, slist_free): New functions.
2072         (dbus_g_type_specialized_builtins_init): Add append fuctions
2073         for GPtrArray and GSList.  Register GSList.
2074         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2075
2076         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2077         New.
2078         (dbus_g_type_specialized_collection_init_append)
2079         (dbus_g_type_specialized_collection_append)
2080         (dbus_g_type_specialized_collection_end_append): Prototype.
2081         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2082         end_append_func.
2083
2084         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2085         (dbus_g_type_specialized_collection_append) 
2086         (dbus_g_type_specialized_collection_end_append): New functions.
2087         (dbus_g_type_map_value_iterate): Take const GValue.
2088         (dbus_g_type_collection_value_iterate): Ditto.
2089
2090         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2091         _dbus_gvalue_utils_test.
2092         
2093         * glib/dbus-gtest.h: Prototype it.
2094
2095         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2096         using uninitialized owner_list.
2097         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2098         public API.
2099         (dbus_g_proxy_end_call_internal): Update to use error set
2100         from dbus_gvalue_demarshal instead of setting it here.
2101         (dbus_g_proxy_begin_call): Move return_if_fail here.
2102
2103         * glib/dbus-gobject.c (write_interface): Update for
2104         dbus_gtype_to_signature returning new string.
2105
2106         * configure.in: Add glib/examples/statemachine.
2107
2108 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2109
2110         * configure.in: Add a configure option, --with-console-auth-dir
2111         
2112         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2113         new setting.  Patch from Kay Sievers.
2114
2115 2005-07-06  Colin Walters  <walters@verbum.org>
2116
2117         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2118         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2119         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2120         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2121         Delete in favor of dbus_g_proxy_begin_call and
2122         dbus_g_proxy_cancel_call.
2123         (DBusGProxyCall, DBusGProxyCallNotify): New.
2124         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2125         data, and destroy function.  This replaces
2126         dbus_g_pending_call_set_notify.
2127         (dbus_g_proxy_cancel_call): Prototype.
2128         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2129
2130         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2131         pending_calls map.
2132         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2133         internal proxy for calls to the bus. Remove
2134         pending_nameowner_calls, now the internal proxy keeps track.
2135         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2136         pending_nameowner_calls.
2137         (got_name_owner_cb): Update prototype, and use
2138         dbus_g_proxy_end_call.
2139         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2140         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2141         favor of using internal proxy.
2142         (dbus_g_proxy_manager_unregister): Update to use
2143         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2144         (dbus_g_proxy_init): Initialize pending calls map.
2145         (dbus_g_proxy_constructor): New.
2146         (dbus_g_proxy_class_init): Add get/set property functions,
2147         constructor, and add NAME, PATH, and INTERFACE properties.
2148         (cancel_pending_call): New function.
2149         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2150         cancel them.
2151         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2152         (GPendingNotifyClosure): New structure.
2153         (d_pending_call_notify, d_pending_call_free): Moved here from
2154         dbus-glib.c.
2155         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2156         ordering.
2157         (manager_begin_bus_call): New internal function for talking to
2158         internal bus proxy.
2159         (dbus_g_proxy_new): Construct object using GObjet properties.
2160         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2161         Create closure of same, and insert call into map of pending calls.
2162         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2163         call.  Look up pending call in current set.  Remove it when we've
2164         completed.
2165         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2166         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2167         and destroy function directly.
2168         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2169         (dbus_g_proxy_call): Invoke with NULL callback.
2170         (dbus_g_proxy_cancel_call): New function, replaces
2171         dbus_g_pending_call_cancel.
2172
2173         * glib/dbus-gparser.c (validate_signature): Fix call to
2174         dbus_set_g_error.
2175
2176         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2177         New quark for attaching metadata to GType.
2178         (info_hash): Delete.
2179         (lookup_object_info): Look up using quark.
2180         (dbus_g_object_type_install_info): Check that a type is classed,
2181         not that it's an object.  Also just install type data using quark
2182         instead of using global hash.
2183
2184         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2185         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2186         (GPendingNotifyClosure): Delete.
2187         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2188         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2189
2190         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2191         client method generation until we can fix it...
2192         
2193         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2194         (load_from_service_thread_func): Ditto.
2195
2196         * tools/dbus-names-model.c (struct NamesModel): Hold
2197         DBusGProxyCall.
2198         (have_names_notify): Update prototype, use
2199         dbus_g_proxy_cancel_call.
2200         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2201
2202         * tools/dbus-monitor.c (filter_func): Update for print_message
2203         API change.
2204
2205         * test/glib/test-dbus-glib.c: Add more tests for async
2206         invocations.  Update many begin_call/end_call pairs to just use
2207         dbus_g_proxy_call.
2208
2209         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2210         allows us to dump print-introspect.c.
2211
2212         * tools/dbus-print-message.h (print_message): Add literal argument
2213         to print_message which is intended to allow printing arguments without
2214         metadata like "string=".
2215
2216         * tools/dbus-print-message.c (print_iter): Add literal argument.
2217         (print_message): Allow printing string messages literally.
2218
2219 2005-07-05  Colin Walters  <walters@verbum.org>
2220
2221         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2222         Remove value refcount leak, original patch from Jorn Baayen
2223         <jorn@openedhand.com>.  Also remove useless extra value in favor
2224         of prepending to value array directly.
2225
2226 2005-07-02  Colin Walters  <walters@verbum.org>
2227
2228         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2229
2230 2005-07-01  Colin Walters  <walters@verbum.org>
2231
2232         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2233         
2234         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2235         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2236         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2237         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2238
2239 2005-06-30  Colin Walters  <walters@verbum.org>
2240
2241         * test/glib/test-dbus-glib.c:
2242         * test/glib/test-service-glib.c:
2243         * test/glib/test-service-glib.xml: Update tests for new error
2244         setting bits, also add async tests (patch from Ross Burton).
2245
2246         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2247         DBUS_GLIB_THREADS_LIBS.
2248
2249         * glib/dbus-gproxy.c (get_name_owner)
2250         (dbus_g_pending_call_end_valist): Ditto.
2251
2252         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2253         domain (GQuark) to DBusGErrorInfo.  
2254         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2255         quark in error_metadata.  Take message interface as default
2256         error message interface.
2257         (gerror_to_dbus_error_message): Pass message interface.
2258         (dbus_set_g_error): Resurrected.
2259         (dbus_g_error_info_free): New function.
2260         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2261         of _peek to actually create the object class if it hasn't been
2262         created yet.
2263         (dbus_g_error_domain_register): New function.
2264
2265         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2266
2267         * glib/dbus-gparser.c (validate_signature): Ditto.
2268
2269         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2270         (dbus_g_error_domain_register): Prototype.
2271
2272         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2273         Update tests.
2274
2275 2005-06-29  Colin Walters  <walters@verbum.org>
2276
2277         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2278         DBUS_TYPE_G_OBJECT_PATH.
2279
2280         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2281         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2282         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2283         (dbus_g_object_path_get_g_type): New function.
2284         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2285         to DBUS_TYPE_G_OBJECT_PATH by default.
2286         (demarshal_proxy): Remove unused name variable.
2287         (demarshal_object_path, marshal_object_path): New functions.
2288         (demarshal_proxy_array, marshal_proxy_array): Delete.
2289         
2290         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2291         DBUS_TYPE_G_OBJECT_PATH to char *.
2292         (dbus_g_type_get_lookup_function): Map builtin
2293         DBUS_TYPE_G_OBJECT_PATH.
2294
2295         * test/glib/test-dbus-glib.c
2296         * test/glib/test-service-glib.c (my_object_objpath): 
2297         Adapt tests to new object path marshalling.
2298
2299 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2300
2301         * configure.in: force check for Python >= 2.4
2302
2303 2005-06-29  Colin Walters  <walters@verbum.org>
2304         
2305         Patch from Ross Burton <ross@openedhand.com>
2306         
2307         * glib/dbus-gobject.c (invoke_object_method): Unset object
2308         value in all cases, not only in async case.
2309
2310 2005-06-29  Colin Walters  <walters@verbum.org>
2311
2312         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2313         name_call for keeping track of any outgoing GetNameOwner call.
2314         Also add for_owner and associated.
2315         (struct _DBusGProxyManager): Add owner_names, which is hash table
2316         that maps a base name to a list of names it owns (that we're
2317         interested in).  Add pending_nameowner_calls which is a list of
2318         all outstanding GetNameOwner; avoids us having to iterate over
2319         every proxy.  Add unassociated_proxies which keeps track of name
2320         proxies with no associated name owner.
2321         (dbus_g_proxy_manager_unref): Destroy owner_names.
2322         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2323         name refcounts.
2324         (find_name_in_info, name_owner_foreach)
2325         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2326         (dbus_g_proxy_manager_monitor_name_owner)
2327         (dbus_g_proxy_manager_unmonitor_name_owner)
2328         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2329         New functions; they manipulate the owner_names mapping.
2330         (got_name_owner_cb): New function.
2331         (get_name_owner): New function, extracted from
2332         dbus_g_proxy_new_for_name_owner.
2333         (dbus_g_proxy_manager_register): For now we need to keep track of
2334         all NameOwnerChanged.  Also if the proxy is for a name, if we
2335         don't already know the name owner, queue a new GetNameOwner
2336         request and add it to our list of unassociated proxies.  Otherwise
2337         inc the refcount.
2338         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2339         cancel any pending GetNameOwner call, etc.
2340         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2341         the owner_names mapping to look up the current names for the
2342         signal source, and dispatch to any proxies for that name.
2343         (dbus_g_proxy_new): Initialize new members.
2344         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2345         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2346         (dbus_g_pending_call_end_valist): New function, extracted from
2347         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2348         but want to use the GLib infrastructure.  Also note how many
2349         arguments in reply were over.
2350         (dbus_g_pending_call_end): New function, just call
2351         dbus_g_pending_call_end_valist.
2352         (dbus_g_proxy_end_call_internal): Just call
2353         dbus_g_pending_call_end_valist.
2354
2355         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2356         of builtin marshaller for STRING_STRING_STRING.
2357
2358         * test/glib/test-dbus-glib.c: 
2359         * test/glib/test-service-glib.c:
2360         * test/glib/test-service-glib.xml:
2361         Extend tests to cover name proxies, destruction of owner proxies,
2362         etc.
2363         
2364         * glib/examples/example-signal-recipient.c
2365         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2366         
2367         * tools/dbus-send.c (main): Print D-BUS error name in addition
2368         to message.
2369
2370 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2371
2372         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2373         cmessage_function_handler): Patch from 
2374         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2375         by using the Py_GILState_Ensure/Release to synchronize with the
2376         python runtime.
2377         
2378 2005-06-28  Ray Strode  <rstrode@redhat.com>
2379
2380         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2381         babysitter helper process on last unref, bug #2813.
2382
2383 2005-06-27  Colin Walters  <walters@verbum.org>
2384
2385         * test/glib/test-dbus-glib.c: 
2386         * test/glib/test-service-glib.c:
2387         * test/glib/test-service-glib.xml:
2388         Test hash table signal emitting.
2389
2390         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2391         types to their fundamental basis types, since this is what
2392         marshallers operate on.  Also add an entry for VOID__BOXED.
2393         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2394
2395 2005-06-26  Havoc Pennington  <hp@redhat.com>
2396
2397         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2398         from Don Park
2399
2400 2005-06-26  Colin Walters  <walters@verbum.org>
2401
2402         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2403         (dbus_g_error_set): New public function from its ashes; used by
2404         both service-side method implementation and GLib bindings
2405         internals.
2406         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2407         (_dbus_glib_test): Add some tests.
2408
2409         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2410
2411         * test/glib/test-service-glib.c (my_object_throw_error): Use
2412         dbus_g_error_set.
2413
2414         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2415         errors thrown by dbus_g_error_set.
2416
2417         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2418
2419         * glib/dbus-gparser.c (validate_signature): Ditto.
2420
2421         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2422         (dbus_g_proxy_end_call_internal): Ditto.
2423
2424         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2425         converts DBUS_ERROR_x to DBUS_GERROR_x.
2426         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2427
2428         * doc/TODO: Remove error TODO.
2429
2430         * doc/dbus-tutorial.xml: Update with documentation about error
2431         handling.
2432
2433         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2434         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2435         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2436
2437 2005-06-22  Colin Walters  <walters@verbum.org>
2438         
2439         Patch from Ross Burton <ross@openedhand.com>
2440
2441         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2442
2443 2005-06-20  Colin Walters  <walters@verbum.org>
2444
2445         * configure.in: Add glib/examples.
2446
2447         * glib/Makefile.am: Add examples/
2448
2449         * glib/examples/.cvsignore
2450         * glib/examples/Makefile.am
2451         * glib/examples/example-client.c
2452         * glib/examples/example-service.c
2453         * glib/examples/example-service.xml
2454         * glib/examples/example-signal-emitter.c
2455         * glib/examples/example-signal-emitter.xml
2456         * glib/examples/example-signal-recipient.c:
2457         New files; GLib binding examples, ported from
2458         python/examples.
2459
2460 2005-06-20  Colin Walters  <walters@verbum.org>
2461
2462         * dbus/dbus-glib.h: 
2463         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2464         dbus_g_proxy_call.
2465
2466         * glib/dbus-binding-tool-glib.c: 
2467         * doc/dbus-tutorial.xml: 
2468         * test/glib/test-dbus-glib.c: Update for rename.
2469         
2470 2005-06-20  Colin Walters  <walters@verbum.org>
2471
2472         Patch suggested by Ross Burton <ross@openedhand.com>
2473
2474         * glib/dbus-gobject.c (export_signals): Free signal name.
2475         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2476         memory leak.  Add a bit of documentation.
2477         (dbus_g_method_return_error): Free context, and note we do
2478         so.
2479
2480 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2481
2482         * dbus/dbus-glib.h:
2483         * glib/dbus-gobject.c:
2484         * glib/dbus-gproxy.c:
2485         * glib/dbus-gvalue.c: Predeclare structs as 
2486         typedef struct _Something Something instead of 
2487         typedef struct Something Something, so we can 
2488         redeclare the prototypes. Other GNOME libraries 
2489         do this already.
2490
2491 2005-06-17  Colin Walters  <walters@verbum.org>
2492
2493         * tools/dbus-names-model.c (have_names_notify): Fix call
2494         to dbus_g_proxy_end_call.
2495         
2496 2005-06-17  Colin Walters  <walters@verbum.org>
2497
2498         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2499         spew warnings if we get malformed remote signals.
2500
2501         * glib/dbus-gobject.c (propsig_iterate): New function.
2502         (lookup_object_info): New function, extracted from
2503         lookup_object_and_method.
2504         (introspect_properties, introspect_signals): Delete; these
2505         are merged into write_interface.
2506         (write_interface): Write out signals and properties here;
2507         dump the org.gtk.object stuff and use the interface given
2508         in the introspection data blob.  Also fix up property XML.
2509         (lookup_values): New function.
2510         (introspect_interfaces): Gather a mapping from interface to a
2511         list of its methods, signals, and properties, then write out
2512         each interface.
2513         (lookup_object_and_method): Use lookup_object_info.
2514         (struct DBusGSignalClosure): Add interface.
2515         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2516         we can just use the constant data.
2517         (dbus_g_signal_closure_finalize): Don't free signal name.
2518         (signal_emitter_marshaller): Use interface from signal closure.
2519         (export_signals): Only export signals mentioned in introspection
2520         blob.
2521         (dbus_g_connection_register_g_object): Warn if we have no
2522         introspection data for an object.
2523         (funcsig_equal): Remove unused variable.
2524         (dbus_g_object_register_marshaller): Take varargs instead of
2525         list.
2526         (dbus_g_object_register_marshaller_array): New function,
2527         extracted from old dbus_g_object_register_marshaller.
2528
2529         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2530         signals and property data.
2531         (write_quoted_string): New function, extracted from generate_glue.
2532         (generate_glue): Write signals and properties to introspection
2533         blob.
2534
2535         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2536         exported_signals and exported_properties.
2537         (dbus_g_object_register_marshaller): Update prototype.
2538         (dbus_g_object_register_marshaller_array): Prototype.
2539         
2540         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2541
2542         * test/glib/test-service-glib.c: Add new test signals and method
2543         to emit them.
2544
2545         * test/glib/test-service-glib.xml: Add some test signals.
2546
2547         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2548         and my-object-marshal.h
2549         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2550         my-object-marshal.c.
2551         (my-object-marshal.c, my-object-marshal.h): Implement.
2552
2553         * test/glib/.cvsignore: Update.
2554
2555         * doc/TODO: Remove two GLib TODO items fixed by this
2556         patch.
2557
2558 2005-06-16  Colin Walters  <walters@verbum.org>
2559
2560         * doc/TODO: Update for GLib bindings.
2561         
2562 2005-06-16  Colin Walters  <walters@verbum.org>
2563
2564         * glib/dbus-binding-tool-glib.c:
2565         * glib/dbus-gobject.c:
2566         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2567         from Ross Burton, for his GLib bindings work.
2568
2569 2005-06-16  Colin Walters  <walters@verbum.org>
2570
2571         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2572         to iterate instead of walking to G_TYPE_INVALID.
2573
2574         Patch based on a patch from Ryan Gammon.
2575
2576 2005-06-16  Colin Walters  <walters@verbum.org>
2577
2578         * bus/bus.c (bus_context_new): Set parser to NULL
2579         after we unref it (Patch from Chris Boscolo, #2174).
2580         
2581 2005-06-16  Colin Walters  <walters@verbum.org>
2582
2583         * python/dbus_bindings.pyx.in: Import size_t,
2584         __int64_t, __uint64_t, and __signed.
2585
2586         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2587         Define cmsg struct, output it.
2588         (_dbus_read_credentials_unix_socket):
2589         Use cmsg struct.
2590         
2591         Patch from Joe Markus Clarke for FreeBSD support.
2592         
2593 2005-06-16  Colin Walters  <walters@verbum.org>
2594
2595         * tools/dbus-send.c (append_array): Use strtok.
2596         (append_dict): New function.
2597         (type_from_name): New function, extracted from main.
2598         (main): Handle sending dicts.
2599
2600         * tools/dbus-print-message.c (print_iter): Print dict
2601         entries.
2602         
2603 2005-06-16  Colin Walters  <walters@verbum.org>
2604
2605         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2606         values as the empty string (#2948).
2607         
2608 2005-06-16  Colin Walters  <walters@verbum.org>
2609
2610         * dbus/Makefile.am:
2611         * mono/doc/Makefile.am:
2612         * test/glib/Makefile.am:
2613
2614         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2615
2616 2005-06-16  Colin Walters  <walters@verbum.org>
2617
2618         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2619         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2620
2621         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2622         Increment pointer after swapping fixed array.  Add assertion
2623         for array length.
2624                 
2625 2005-06-15  Colin Walters  <walters@verbum.org>
2626
2627         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2628         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2629         
2630 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2631
2632         * NEWS: Update to 0.34
2633
2634 2005-06-15  David Zeuthen  <davidz@redhat.com>
2635
2636         * configure.in (LT_CURRENT): Revert back to 1 as the library
2637         hasn't changed and we've certainly not committed to protocol
2638         stability yet.  All this does is to break ABI. See commit note
2639         from hp@redhat.com 2005-05-05 for details.
2640         
2641 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2642
2643         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2644         (_dbus_connection_run_builtin_filters): New method
2645         (dbus_connection_dispatch): Run the builtin filters which in turn
2646         runs the peer filter which handles Ping messages.
2647
2648         * doc/TODO: 
2649          - Ping isn't handled: This patch fixes it
2650          
2651          - Add a test case for the Ping message: added TODO item
2652
2653 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2654
2655         * dbus/dbus-message.c:
2656         (dbus_message_has_path): New method
2657         (dbus_message_has_interface): New method
2658         (dbus_message_has_member): New method
2659
2660         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2661         New method
2662
2663         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2664         the keyring directory is private to the user
2665
2666         * doc/TODO:
2667          - The convenience functions in dbus-bus.h should perhaps have
2668          the signatures that they would have if they were autogenerated
2669          stubs. e.g. the acquire service function. We should also evaluate
2670          which of these functions to include, in light of the fact that
2671          GLib/Qt native stubs will probably also exist.: Punted
2672
2673          - add dbus_message_has_path(), maybe has_member/interface:
2674          fixed in this patch
2675
2676          - in dbus-keyring.c, enforce that the keyring dir is not
2677          world readable/writable: Fixed in this patch
2678
2679 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2680
2681         * dbus/dbus-marshal-validate.h: Added a new validation
2682         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2683         out of memory errors when validating signitures
2684
2685         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2686         in places where we previously used DBUS_VALID and a FALSE return 
2687         value to indicate OOM
2688         
2689         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2690         Use a stack to track the number of elements inside containers.  The 
2691         stack values are then used to validate that dict entries have only two
2692         elements within them.
2693         (validate_body_helper): check the reason for failure when validating
2694         varients
2695         
2696         * dbus/dbus-message.c (load_message): use 
2697         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2698         DBUS_VALID and a FALSE return value to indicate OOM
2699
2700         * doc/TODO: remove "- validate dict entry number of fields" as this
2701         patch fixes it
2702
2703 2005-06-14  David Zeuthen  <davidz@redhat.com>
2704
2705         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2706         watches (if applicable) and add new watches
2707
2708         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2709         (main): Setup SIGIO signal handler if using D_NOTIFY
2710
2711         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2712
2713         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2714         (merge_included): Also merge conf_dirs list
2715         (bus_config_parser_unref): Clear conf_dirs list
2716         (include_dir): Add directory to conf_dirs list
2717         (bus_config_parser_get_conf_dirs): New function
2718
2719         * bus/dir-watch.[ch]: New files
2720
2721         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2722
2723         * configure.in: Add checks for D_NOTIFY on Linux
2724
2725 2005-06-14  Colin Walters  <walters@verbum.org>
2726
2727         * glib/dbus-binding-tool-glib.c:
2728         * glib/dbus-gobject.c:
2729         * glib/dbus-gvalue.c: Fix indentation and brace style.
2730         
2731 2005-06-14  Ross Burton <ross@openedhand.com>.
2732
2733         * glib/dbus-glib.h: Make DBusGMethodInvocation
2734         a private structure.  Rearrange prototypes a bit.
2735         
2736         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2737         documentation for first_arg_type.
2738         
2739         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2740         here, add documentation.  Move dbus_g_method_return
2741         and dbus_g_method_return_error into public API
2742         section.
2743
2744 2005-06-14  Colin Walters  <walters@verbum.org>
2745
2746         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2747         Add missing return statements, noticed by Ross Burton.
2748         
2749 2005-06-13  Ross Burton <ross@openedhand.com>.
2750
2751         * glib/dbus-gobject.c: Handle errors on message
2752         demarshalling by sending error message back.
2753         * glib/dbus-gvalue.c: Initialize return variables.
2754
2755 2005-06-13  Colin Walters  <walters@verbum.org>
2756
2757         * glib/Makefile.am: Fix thinko in last patch.
2758
2759 2005-06-13  Colin Walters  <walters@verbum.org>
2760
2761         * glib/Makefile.am: Move dbus-gtype-specialized.c
2762         and dbus-gtype-specialized.h into a _HEADERS variable,
2763         install them.
2764
2765 2005-06-12  Colin Walters  <walters@verbum.org>
2766
2767         Async signals and various bugfixes and testing by
2768         Ross Burton <ross@openedhand.com>.
2769
2770         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2771         (dbus_gvalue_genmarshal_name_from_type)
2772         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2773         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2774         (dbus_g_value_types_init, dbus_gtype_from_signature)
2775         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2776         (dbus_gtypes_from_arg_signature): New function prototypes.
2777         (dbus_gvalue_demarshal): Take context and error arguments.
2778         (dbus_gvalue_demarshal_variant): New function.
2779         (dbus_gvalue_demarshal_message): New function.
2780         (dbus_gvalue_store): Delete.
2781
2782         * glib/dbus-gvalue.c:
2783
2784         File has been almost entirely rewritten; now we special-case
2785         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2786         hash tables correctly, etc.  Full support for recursive values
2787         is not yet complete.
2788
2789         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2790         argument of signal to G_TYPE_POINTER since we now pass a
2791         structure.
2792         (lookup_g_marshaller): Delete in favor of
2793         _dbus_gobject_lookup_marshaller.
2794         (marshal_dbus_message_to_g_marshaller): Use
2795         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2796         to handle remote signal callbacks.
2797         (dbus_g_proxy_new_from_proxy): New function; creates a new
2798         DBusGProxy by copying an existing one.
2799         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2800         (dbus_g_proxy_get_path): New functions.
2801         (dbus_g_proxy_marshal_args_to_message): New function;
2802         factored out of existing code.
2803         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2804         from a varargs array.
2805         (dbus_g_proxy_begin_call_internal): New function.
2806         (dbus_g_proxy_end_call_internal): New function.
2807         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2808         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2809         after collecting args into value array.
2810         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2811         invoke dbus_g_proxy_end_call_internal.
2812         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2813         end_call_internal.
2814         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2815         types.
2816         (array_free_all): New function.
2817         (dbus_g_proxy_add_signal): Take GTypes.
2818
2819         * glib/dbus-gobject.h:
2820         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2821         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2822         Prototype.
2823
2824         * glib/dbus-gobject.c: Add a global marshal_table hash which
2825         stores mappings from type signatures to marshallers.  Change lots
2826         of invocations of dbus_gtype_to_dbus_type to
2827         dbus_gtype_to_signature.
2828         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2829         (introspect_signals): Fix test for query.return_type.
2830         (set_object_property): Update invocation of dbus_gvalue_demarshal.
2831         (invoke_object_method): Many changes.  Handle asynchronous
2832         invocations.  Convert arguments with
2833         dbus_gvalue_demarshal_message.  Handle errors.  Use
2834         DBusSignatureIter instead of strlen on args. Handle all arguments
2835         generically.  Special-case variants.
2836         (dbus_g_method_return, dbus_g_method_return_error): New function.
2837         (DBusGSignalClosure): New structure, closes over signal
2838         information.
2839         (dbus_g_signal_closure_new): New function.
2840         (dbus_g_signal_closure_finalize): New function.
2841         (signal_emitter_marshaller): New function; is special marshaller
2842         which emits signals on bus.
2843         (export_signals): New function; introspects object signals and
2844         connects to them.
2845         (dbus_g_object_type_install_info): Take GType instead of
2846         GObjectClass.
2847         (dbus_g_connection_register_g_object): Invoke export_signals.
2848         (dbus_g_connection_lookup_g_object): New function.
2849         (DBusGFuncSignature) New structure; used for mapping type
2850         signatures to marshallers.
2851         (funcsig_hash): New function; hashes DBusGFuncSignature.
2852         (funcsig_equal): New function; compares DBusGFuncSignature.
2853         (_dbus_gobject_lookup_marshaller): New function.
2854         (dbus_g_object_register_marshaller): New function; used to
2855         register a marshaller at runtime for a particular signature.
2856
2857         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2858
2859         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2860         which notes a server method implementation should be
2861         asynchronous.
2862
2863         * glib/dbus-binding-tool-glib.c
2864         (dbus_binding_tool_output_glib_server): Call
2865         dbus_g_value_types_init.
2866         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
2867         variants specially.
2868         (dbus_g_type_get_lookup_function): Turn GType into an invocation
2869         of a lookup function.
2870         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2871         (write_untyped_out_args): New method; write output arguments.
2872         (write_formal_declarations_for_direction): Function for
2873         writing prototypes.
2874         (write_formal_parameters_for_direction): Function for
2875         writing implementations.
2876         (write_typed_args_for_direction): Function for writing
2877         arguments prefixed with GTypes.
2878         (write_async_method_client): Write out async version
2879         of method.
2880
2881         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2882         (dbus_g_type_get_marshal_name): Move mapping from GType
2883         to marshal name into here.
2884         (dbus_g_type_get_c_name): Move into here.
2885         (compute_marshaller): Convert signature to type with
2886         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2887         (compute_marshaller_name): Ditto.
2888         (compute_marshaller): Handle async signal annotations.
2889         (gather_marshallers): Return if we don't have a known
2890         prefix.
2891         (generate_glue): Collect introspection blob here, and
2892         write all of the blob at the end.  This allows an object
2893         with multiple interfaces to work.
2894         Mark async methods in introspection blob.
2895
2896         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2897         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2898         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2899
2900         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2901         avoids people accidentally using DBUS_TYPE_* which should
2902         not be necessary anymore.
2903         Do include dbus-gtype-specialized.h, which are utilities
2904         for GLib container types.
2905         Add various #defines for types such as
2906         DBUS_TYPE_G_BOOLEAN_ARRAY.
2907         (DBusGValueIterator, DBusGValue): Define, not fully used
2908         yet.
2909         (dbus_g_value_get_g_type): Type for recursive value.
2910         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2911         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2912         (dbus_g_value_free): Prototypes.
2913         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2914         (dbus_g_proxy_set_interface): Prototype.
2915         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2916         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2917         types.
2918         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2919         Accessors.
2920         (DBusGAsyncData, DBusGMethodInvocation): Structures for
2921         doing async invocations.
2922         (dbus_g_method_return, dbus_g_method_return_error):
2923         Prototypes.
2924         * doc/dbus-tutorial.xml: Update GLib section.
2925         
2926         * tools/dbus-viewer.c (load_child_nodes): Update
2927         for new invocation type of dbus_g_proxy_end_call.
2928         (load_from_service_thread_func): Ditto.
2929
2930         * tools/print-introspect.c (main): Ditto.
2931
2932         * tools/dbus-names-model.c (have_names_notify)
2933         (names_model_reload, names_model_set_connection)
2934         Use GTypes.
2935
2936         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2937         needed since Python bindings use GLib bindings.
2938
2939         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2940         Add --prefix argument.
2941
2942         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
2943         unneeded --ignore-unsupported arg.
2944         
2945         * test/glib/test-service-glib.c: 
2946         * test/glib/test-service-glib.xml:
2947         * test/glib/test-dbus-glib.c: Add many more tests.
2948
2949 2005-06-06  David Zeuthen  <davidz@redhat.com>
2950
2951         * doc/TODO: Add item about need to remove deprecated functions.
2952
2953         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2954
2955         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2956         to repair the ABI which was broken with the last commit.
2957
2958 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
2959
2960         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2961         (dbus_connection_disconnect): renamed to dbus_connection_close 
2962         for API symmetry with dbus_connection_open
2963         (_dbus_connection_open_internal): 
2964         s/dbus_connection_disconnect/dbus_connection_close
2965
2966         * dbus/dbus-bus.c (dbus_bus_get):
2967         s/dbus_connection_disconnect/dbus_connection_close
2968
2969         * bus/connection.c (bus_connections_unref, 
2970         bus_connections_setup_connection, bus_connections_expire_incomplete):
2971         s/dbus_connection_disconnect/dbus_connection_close
2972
2973         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2974         kill_client_connection_unchecked, check_hello_connection):
2975         s/dbus_connection_disconnect/dbus_connection_close
2976
2977         * bus/bus.c (new_connection_callback):
2978         s/dbus_connection_disconnect/dbus_connection_close
2979
2980         * tools/dbus-send.c (main):
2981         s/dbus_connection_disconnect/dbus_connection_close
2982
2983         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2984         s/dbus_connection_disconnect/dbus_connection_close
2985         
2986         * test/test-service.c (path_message_func, filter_func):
2987         s/dbus_connection_disconnect/dbus_connection_close
2988         
2989         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
2990         
2991 2005-05-25  Colin Walters  <walters@verbum.org>
2992
2993         * dbus/dbus-protocol.h: Move various bus service #defines such
2994           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2995           dbus/dbus-shared.h.
2996         * dbus/dbus-shared.h: Various defines moved here.
2997         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2998
2999 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3000
3001         * python/__init__.py: Python bindings deserve a minor version
3002         update.  Upped to (0, 40, 2)
3003
3004 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3005
3006         * python/decorators.py: add explicitly_pass_message decorator
3007         for passing in the dbus message as keyword for edge case signal
3008         handling
3009
3010         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3011         to conform with what dbus expects for match rules
3012         (SignalMatchRule.execute): add the dbus message as a keyword
3013         if the signal handler has requested it
3014
3015         * python/examples/example/signal-recipient.py: added some more
3016         examples on how to hook up to signals
3017
3018 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3019
3020         * python/decorators.py: import dbus_bindings
3021
3022         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3023         SignalMatchNode): new classes that implement wildcard signal
3024         callback matching using a tree lookup. Heavily modified from a
3025         patch sent by Celso Pinto (fd.o bug #3241)
3026
3027         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3028         use new match classes to handle signals.
3029
3030 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3031         
3032         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3033
3034 2005-05-18  Havoc Pennington  <hp@redhat.com>
3035
3036         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3037         gettext. Not really worth requiring yet perhaps, but any
3038         production quality 1.0 would require it so we should go ahead and
3039         get things set up. We do have a couple token calls to
3040         bindtextdomain in the code already.
3041
3042 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3043
3044         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3045         when using recursive g_main_loops
3046
3047         * python/_dbus.py (class Bus): add the ProxyObjectClass
3048         alias for ProxyObject to make it easier for the Twisted 
3049         networking framework to integrate dbus.
3050
3051         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3052         alias for ProxyMethod to make it easier for the Twisted 
3053         networking framework to integrate dbus. 
3054
3055 2005-05-11  Ross Burton  <ross@openedhand.com>
3056
3057         * glib/dbus-glib-tool.c: Add --prefix argument.
3058         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3059         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3060         Add prefix argument.
3061         (generate_glue): Pass prefix argument down.
3062         (dbus_binding_tool_output_glib_server): Pass prefix to
3063         glib-genmarshal.
3064         
3065 2005-05-11  Colin Walters  <walters@verbum.org>
3066
3067         * tools/dbus-send.c (append_array): New function.
3068         (append_arg): Broken out from main.
3069         (main): Add cheesy hack to send arrays and variants.
3070         (usage): Update.
3071         * tools/dbus-print-message.c (print_iter): Broken out
3072         from main.
3073
3074 2005-05-11  Colin Walters  <walters@verbum.org>
3075
3076         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3077         New function, returns signature string for signature iter.
3078         * dbus/dbus-signature.h: Prototype it.
3079         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3080         New function, returns signature string for message iter.
3081         (dbus_message_iter_get_array_len): New function, returns
3082         length of array.
3083         (dbus_message_iter_get_fixed_array): Fix assertion; this
3084         function should be used when the iter is pointing to the
3085         contents of an array
3086         * dbus/dbus-message.h: Prototypes.
3087         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3088         New function; returns length of an array.
3089         * dbus/dbus-marshal-recursive.h: Prototype it.
3090         
3091 2005-05-11  Colin Walters  <walters@verbum.org>
3092
3093         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3094         compilation error.
3095         
3096 2005-05-08  Havoc Pennington  <hp@redhat.com>
3097
3098         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3099         daemon's pid, not the parent's pid, to the file descriptor.
3100         Reported by Taj Morton.
3101
3102 2005-05-05  Havoc Pennington  <hp@redhat.com>
3103
3104         * configure.in (LT_*): add notes on how the libtool versioning
3105         works to save thinking. Increment soname to indicate protocol
3106         breakage (though really the library interface hasn't changed I
3107         guess)
3108
3109         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3110         verify the GUID received from server matches what we were
3111         expecting, if we had an expectation
3112
3113         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3114         (_dbus_auth_get_guid_from_server): new function
3115         (send_begin): parse the OK args
3116
3117         * doc/dbus-specification.xml: add GUID to the auth protocol
3118
3119 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3120
3121         * Fix my name in previous changelog ;)
3122
3123         * python/proxies.py (ProxyObject.__getattr__): add further patch
3124         from Anthony Baxter to throw an AttributeError when python 
3125         __special__ functions are called instead of marshling them over 
3126         the bus (Bug#1685 comment 3).
3127
3128 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3129
3130         * python/Makefile.am: changed to use pyexecdir for the binding
3131         shared libraries (Bug#2494)
3132
3133         * python/exceptions.py: bring exceptions over from the bindings
3134         so they can be used in applications (Bug#2036)
3135         Make all exceptions derive from DBusException
3136
3137         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3138         of classes so that print obj doesn't throw an exception (Bug #1685)
3139
3140 2005-05-03  Ross Burton  <ross@openedhand.com>
3141
3142         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3143         Return if we get an error during registration.  Set up a
3144         weak reference on object to unregister if object is destroyed.
3145         (unregister_gobject): New function.
3146         
3147 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3148
3149         * python/dbus_bindings.pyx.in: 
3150         - added new type classes for hinting to the marashaler what type 
3151         to send over the wire
3152         - added int16 and uint16 marshalers
3153         - Fixed a bug in the type constants that caused int32 to go out
3154         as uint16 over the wire
3155         * python/dbus.py: split up into different files and renamed _dbus.py
3156         * python/__init__.py, python/_util.py, python/decorators.py, 
3157         python/exceptions.py, python/proxies.py, python/services.py,
3158         python/types.py: new files split off from dbus.py
3159         * python/Makefile.am: Add new files, remove dbus.py and 
3160         install all python files to <python module dir>/dbus
3161         * python/examples/*: Added #!/usr/bin/env python to the top of
3162         every example.  Patch provided by Tatavarty Kalyan
3163
3164 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3165
3166         * NEWS: Update to 0.33
3167
3168 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3169
3170         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3171         method for doing async calls
3172         (_pending_call_notification): New C function for handling pendning call
3173         callbacks
3174         (set_notify): New method for setting pending call notification
3175         
3176         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3177         Async capabilities added to remote method calls
3178         (Sender): class removed
3179         (RemoteService): class removed
3180         (ObjectTree): class removed for now
3181         (RemoteObject): Renamed to ProxyObject
3182         (RemoteMethod): Renamed to ProxyMethod
3183         (method): Decorator added for decorating python methods as dbus methods
3184         (signal): Decorator added for decorating python methods as signal emitters
3185         (ObjectType): Metaclass added for generating introspection data and the
3186         method callback vtable
3187         (Interface): Wrapper class added to wrap objects in a dbus interface
3188         (Object): Uses ObjectType as its metaclass and exports Introspect
3189         of the org.freedesktop.DBus.Introspectable interface
3190         (ValidationException, UnknownMethodException): new exceptions
3191
3192         * python/examples/*: Modified to fit with the new bindings
3193
3194 2005-04-23  Havoc Pennington  <hp@redhat.com>
3195
3196         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3197         reported by Tony Houghton
3198
3199         * test/test-service.c (main): test
3200         dbus_connection_get_object_path_data()
3201
3202         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3203         the exact_match
3204         (_dbus_object_tree_get_user_data_unlocked): new function used by
3205         dbus_connection_get_object_path_data()
3206         (do_register): add assertion test for get_user_data_unlocked
3207         (object_tree_test_iteration): more tests
3208
3209         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3210         new function from Dan Reed to let you get the user data from 
3211         dbus_connection_register_object_path()
3212
3213 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3214
3215         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3216         in numerous places that did not account for the NULL terminator
3217         (signature_from_seed): changed the manual string copy loop to 
3218         just use strcpy instead
3219         make check should now pass
3220
3221 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3222
3223         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3224         so that it allows messages that are not signals to pass in 
3225         NULL as the interface.
3226
3227 2005-04-18  David Zeuthen  <davidz@redhat.com>
3228
3229         * glib/dbus-gmain.c (io_handler_destroy_source): 
3230         (timeout_handler_destroy_source, connection_setup_free): 
3231         Also unref the source to avoid memory leaks.
3232
3233 2005-04-13  David Zeuthen  <davidz@redhat.com>
3234
3235         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3236         more reasonable, yet still totally arbitrary, value :-). 
3237
3238 2005-04-13  David Zeuthen  <davidz@redhat.com>
3239
3240         * doc/TODO: Added an "important for 1.0" item about selinux
3241         allow/deny messages
3242
3243 2005-04-13  David Zeuthen  <davidz@redhat.com>
3244
3245         * bus/selinux.c: Add c-file-style to top of file
3246         (log_audit_callback): Don't free the data here anymore
3247         (bus_selinux_check): Don't take spid and tpid since appending
3248         that to auxdata may OOM.
3249         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3250         to the caller if we are OOM by taking an error object.
3251         (bus_selinux_allows_send): -do-
3252
3253         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3254         and bus_selinux_allows_send
3255
3256         * bus/bus.c (bus_context_check_security_policy): Pass error and
3257         pass on OOM thrown by bus_selinux_allows_send()
3258
3259         * bus/services.c (bus_registry_acquire_service): Pass error and
3260         pass on OOM thrown by bus_selinux_allows_acquire_service()
3261
3262 2005-04-13  Havoc Pennington  <hp@redhat.com>
3263
3264         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3265         message at a time to avoid monopolizing the main loop, bug 
3266         #2953 from Benjamin Otte
3267
3268 2005-04-09  Havoc Pennington  <hp@redhat.com>
3269
3270         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3271         possible overlap, fix from Daniel Reed
3272         (fixup_alignment): fix signedness warnings
3273         (_dbus_string_append_unichar): ditto
3274
3275 2005-04-09  Havoc Pennington  <hp@redhat.com>
3276
3277         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3278
3279         * glib/dbus-glib-tool.c (main): fix warning
3280
3281         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3282
3283         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3284         add a new function that can be used in simple applications that
3285         don't have a main loop and are willing to block
3286
3287 2005-04-05  David Zeuthen  <davidz@redhat.com>
3288
3289         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3290
3291         * glib/dbus-gmain.c:
3292         (io_handler_destroy_source): Remove from list of IO handlers
3293         of the ConnectionSetup object
3294         (timeout_handler_destroy_source): -do- for timeout handlers
3295         (io_handler_source_finalized): Don't remove from list since
3296         we now do that in io_handler_destroy_source(). Renamed from
3297         io_handler_source_destroyed
3298         (timeout_handler_source_destroyed): -do- for timeout handlers
3299         (connection_setup_free): It is now safe to iterate over all
3300         IO and timeout handlers as the _destroy_source removes them
3301         from the list synchronously
3302
3303 2005-03-30  Havoc Pennington  <hp@redhat.com>
3304
3305         * configure.in: change check to gtk 2.4
3306
3307         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3308         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3309         to 2.4
3310
3311 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3312
3313         * News: Update 0.32
3314
3315         * HACKING: Fixed realease instructions.  configure.in should be updated to
3316           the next release by the person who made the last release.
3317
3318 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3319
3320         * python/lvalue_cast_post_process.py - removed.  Patch has been
3321           submitted to Pyrex maintainers that fixes gcc4.0 errors
3322
3323         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3324
3325 2005-03-24  Daniel Reed  <n@ml.org>
3326
3327         * tools/Makefile.am: Make print-introspect and
3328         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3329
3330 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3331
3332         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3333
3334         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3335           had in Red Hat packages for a while but for some reason never 
3336           got merged upstream
3337           (_dbus_is_a_number): New checks if a string
3338           can be converted to a number and does the conversion if it can
3339           (_dbus_user_database_lookup): Add check to see if the given username
3340           is a udi.  This allows udi's to be used instead of usernames in the
3341           config file.
3342           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3343           is a gdi.  This allows gdi's to be used instead of groupnames in the
3344           config file.
3345
3346 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3347
3348         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3349           code so that it compiles with gcc4.0
3350
3351         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3352           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3353           results back to dbus_binding.c
3354
3355 2005-03-20  Colin Walters  <walters@verbum.org>
3356
3357         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3358
3359         * configure.in: Require GTK+ 2.6.
3360         
3361 2005-03-20  Colin Walters  <walters@verbum.org>
3362
3363         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3364
3365 2005-03-17  Tom Parker  <palfrey@tevp.net>
3366
3367         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3368         print DBUS_UID_UNSET; instead print passed username.  Also
3369         be sure to actually use gid looked up in cache.
3370         
3371         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3372         for DBUS_GID_UNSET and groupname.
3373
3374 2005-03-17  Colin Walters  <walters@verbum.org>
3375
3376         * bus/print-introspect.c: Move to tools/.
3377         * bus/run-with-tmp-session-bus.sh: Ditto.
3378         
3379         * glib/Makefile.am (dbus-glib-bindings.h): Move
3380         generation to tools/Makefile.am.
3381
3382         * test/glib/run-test.sh: Update to handle move
3383         of run-with-tmp-session-bus.sh.
3384
3385         * test/glib/test-service-glib.c: Update to handle
3386         move of dbus-glib-bindings.h.
3387
3388         * tools/print-introspect.c: Moved here
3389         from bus/, and ported to GLib bindings.
3390
3391         * tools/run-with-tmp-session-bus.sh: Moved here
3392         from bus/.
3393
3394         * tools/Makefile.am: Generate dbus-glib-bindings.h
3395         and dbus-bus-introspect.xml here.
3396
3397         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3398         Update.
3399
3400 2005-03-17  Colin Walters  <walters@verbum.org>
3401
3402         * bus/driver.c (write_args_for_direction): Use
3403         _dbus_string_get_const_data to retrieve string;
3404         _dbus_string_get_const_data_len doesn't actually return
3405         a NULL-terminated substring.
3406
3407         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3408         (main): Change to use org_freedesktop_DBus_request_name
3409         instead of using g_proxy_begin_call/end_call.
3410
3411 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3412
3413         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3414         generating the finalizer.  Fixes from Ben Maurer.
3415
3416 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3417
3418         * mono/BusDriver.cs: Update method names: ListServices
3419         becomes ListNames; GetOwner becomes GetNameOwner.
3420
3421         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3422         onto the eval stack when removing the delegate.
3423
3424 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3425
3426         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3427         LT_CURRENT.  Set it to the autoconf variable.
3428                                                                                 
3429         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3430         classes that disconnects the signal handler delegate from the
3431         service object.  Fixes a big leak of proxy objects on the
3432         client side of things.  Patch from Ben Maurer
3433         <bmaurer@ximian.com>
3434
3435 2005-03-12  Colin Walters  <walters@verbum.org>
3436
3437         * bus/driver.c (write_args_for_direction): New function,
3438         parses a type signature into arguments and outputs to
3439         XML.
3440         (bus_driver_handle_introspect): Use it instead of
3441         hardcoding XML for certain signatures.
3442         
3443         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3444         dependency on dbus-daemon.
3445
3446         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3447         argument, pass it to dbus_binding_tool_output_glib_client.
3448
3449         * glib/dbus-binding-tool-glib.c
3450         (generate_client_glue): Protect against multiple inclusion.
3451         (dbus_binding_tool_output_glib_client): Add
3452         G_BEGIN_DECLS/G_END_DECLS.
3453
3454         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3455         Change to just take iface prefix directly.
3456         (write_formal_parameters): Clarify error message.
3457         (check_supported_parameters): New function; checks to see type
3458         signatures of method parameters are supported.
3459         (generate_client_glue): Handle ignore_unsupported flag.
3460         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3461         parameter.
3462
3463         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3464         --ignore-unsupported by default until glib bindings
3465         support arrays.
3466
3467 2005-03-11  Colin Walters  <walters@verbum.org>
3468
3469         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3470         install it.
3471
3472         * bus/print-introspect.c: New file; prints introspection
3473         data for a given name and object path.
3474
3475         * bus/run-with-tmp-session-bus.sh: New file, refactored
3476         from test/glib/run-test.sh.  Creates a temporary session
3477         bus and runs another program.
3478
3479         * test/glib/run-test.sh: Refactor to invoke
3480         run-with-tmp-session-bus.sh.
3481
3482         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3483         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3484         macros instead of hardcoding.
3485
3486         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3487
3488 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3489
3490         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3491         this unref; it doesn't match up evenly in some codepaths.
3492         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3493         this evenly matches with the ref near the top of this function.
3494
3495 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3496
3497         * dbus/dbus-object-tree.c
3498         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3499         and we try to unregister a path that's not registered, still go
3500         through the process of unlocking and don't just return.
3501
3502 2005-03-09  Colin Walters  <walters@verbum.org>
3503
3504         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3505         to this are generated for client-side wrappers.  Invokes a
3506         D-BUS method and returns reply values.  
3507
3508         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3509         function; writes signature string for argument direction.
3510         (write_args_for_direction): Change to pass input values directly
3511         instead of via address, and fix indentation.
3512         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3513         make generated wrappers inlineable.
3514
3515         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3516         note about using dbus_type_is_fixed.
3517
3518         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3519         dbus/dbus-signature.c as dbus_type_is_fixed.
3520
3521         All callers updated.
3522
3523         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3524         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3525
3526         * dbus/dbus-signature.h: Prototype.
3527
3528         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3529         error printf code.
3530
3531         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3532         appropriate instead of just freeing it.
3533         (main): Free returned strings using g_free.
3534
3535         * test/glib/Makefile.am (test-service-glib-glue.h)
3536         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3537
3538         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3539         simply maps a simple D-BUS type to GType.
3540         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3541         GType.
3542         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3543         initialize the value with it.
3544         (dbus_gvalue_binding_type_from_type): Unused, delete.
3545         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3546         various types instead of unmarshalling to value data directly.
3547         Remove can_convert boolean.
3548         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3549         returning directly instead of using can_convert boolean.
3550         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3551         Stores a GValue in a pointer to a value of its corresponding C
3552         type.
3553
3554         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3555         add dbus_gvalue_store.
3556
3557 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3558
3559         Fix a bunch of lifecycle and memory management problems
3560         in the mono bindings.
3561
3562         * mono/Arguments.cs (Arguments): Implement IDisposable
3563
3564         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3565         strictly a static class.
3566
3567         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3568         delegates into this file.
3569         (Connection): Implement IDisposable.
3570         (Dispose): Disconnect the connection and set the raw connection
3571         pointer to IntPtr.Zero.
3572         (~Connection): Call Dispose().
3573         (RegisterObjectPath): Added.  Manages the registration of object
3574         paths so we can cleanly disconnect them at dispose/finalize time.
3575         (UnregisterObjectPath): Ditto.
3576         (set_RawConnection): Unregister all of the object paths when
3577         changing the underlying DBusConnection.  Add them back onto the
3578         new connection, if any.
3579
3580         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3581         more unmanaged resources anymore, so it's not necessary.  Move all
3582         the DBusObjectPathVTable stuff out of here.
3583         (Handler): Save references to our delegates so that they don't get
3584         finalized.  Call Connection.RegisterObjectPath() instead of
3585         dbus_connection_register_object_path() directly.
3586         (Message_Called): Dispose the message after we're finished with
3587         it.
3588
3589         * mono/Message.cs (Message): Implement IDisposable.
3590         (Dispose): Dispose the Arguments, and set the RawMessage to
3591         IntPtr.Zero.
3592         (SendWithReplyAndBlock): We own the ref to the reply that comes
3593         back from dbus_connection_send_with_reply_and_block() so add a
3594         comment about that and unref it after we've constructed a managed
3595         MethodReturn class around it.  Fixes a big, big leak.
3596
3597         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3598         method.
3599         (BuildSignalHandler): After we've sent the Signal message, dispose
3600         of it.
3601         (BuildMethod): Dispose of the method call and reply messages after
3602         we've sent the message and extracted the data we want from the
3603         reply.
3604
3605         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3606         anymore.
3607         (Service_FilterCalled): Dispose of the message after we're
3608         finished with it.
3609
3610 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3611
3612         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3613         After we attach our pending call to the connection, unref
3614         it.  Fixes a leak.
3615  
3616         * mono/Connection.cs (set_RawConnection): Disconnect our
3617         filter and match callbacks from the old connection and
3618         reconnect them to the new connection, if any.
3619
3620         * mono/DBusType/Array.cs: "Code" is a static member, so
3621         don't use "this" to refer to it.  Fix for stricter checking
3622         in Mono 1.1.4.
3623  
3624         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3625         object path that we pass into unmanaged code.
3626  
3627         * mono/DBusType/String.cs (Append): Don't leak the string
3628         that we pass into unmanged code.
3629
3630 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3631         * NEWS: Update for 0.31
3632
3633         * configure.in: Release 0.31
3634         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3635
3636         * qt/Makefile.am: fixed build
3637
3638         * dbus/Makefile.am: soname bump for libdbus
3639
3640         * glib/Makefile.am: soname bump for libdbus-glib
3641
3642 2005-03-05  Havoc Pennington  <hp@redhat.com>
3643
3644         * dbus/dbus-sysdeps.c:
3645         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3646         value
3647         (_dbus_generate_random_bytes_buffer): fix return value
3648
3649         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3650         checks actually work, from Tom Parker <fdo@tevp.net>
3651
3652 2005-03-01  Colin Walters  <walters@verbum.org>
3653
3654         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3655         functions copied from dbus-glib-tool.c.
3656         (main): Convert lots of error code to use them.
3657         Also add some testing for introspection bits.
3658
3659 2005-03-01  Colin Walters  <walters@verbum.org>
3660         
3661         * doc/TODO: Remove introspection signature TODO.
3662
3663 2005-02-27  Colin Walters  <walters@verbum.org>
3664
3665         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3666         Change return value to const char * instead of int so we can do
3667         full signatures.
3668         (struct PropertyInfo, struct ArgInfo): Store char *.
3669         (property_info_new, arg_info_new): Update parameters, strdup.
3670         (property_info_unref, arg_info_unref): Free.
3671
3672         * glib/dbus-gidl.h: Update prototypes.
3673
3674         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3675         (validate_signature): New function, just validates signature and
3676         sets GError.
3677         (parse_property, parse_arg): Invoke validate_signature.  Store
3678         signature instead of just type code.
3679
3680         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3681         function to return a primary type for a signature, dropping
3682         information about types in container types.
3683         (dbus_gvalue_genmarshal_name_from_type)
3684         (dbus_gvalue_binding_type_from_type)
3685         (dbus_gvalue_ctype_from_type): Update to take full signature
3686          instead of type code.
3687         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3688
3689         * glib/dbus-gvalue.h: Update prototypes for above.
3690
3691         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3692         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3693         (introspect_properties, introspect_signals, write_interface):
3694         Update to handle signatures, and remove usage of
3695         _dbus_gutils_type_to_string.
3696         (handle_introspect): Print out type codes instead of e.g. "string"
3697         in hardcoded introspection XML; also use x_AS_STRING constants
3698         instead of hardcoding in string.
3699
3700         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3701         to string.  Remove usage of _dbus_gutils_type_to_string.
3702
3703         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3704
3705         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3706         deletion.
3707         
3708         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3709         (compute_marshaller_name, generate_glue): Handle signature change
3710         to string.
3711         (write_formal_parameters, write_args_for_direction): Ditto, and
3712         remove FIXME.
3713
3714         * tools/dbus-tree-view.c (type_to_string): Delete.
3715         (info_set_func_text): Update to print full signatures.
3716
3717         * test/glib/test-service-glib.xml: Change types to new
3718         introspection format.
3719
3720 2005-02-26  Havoc Pennington  <hp@redhat.com>
3721
3722         * doc/TODO: remove the "guid" item
3723
3724         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3725         (with_bus_thread_func): use open_private
3726
3727         * dbus/dbus-connection.c (dbus_connection_open_private): new
3728         function that works like the old dbus_connection_open()
3729         (dbus_connection_open): now returns an existing connection if
3730         possible
3731
3732         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3733         through the GUID to the transport
3734
3735         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3736         GUID in hex-encoded form.
3737
3738         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3739         pass GUID argument in to the transport
3740
3741         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3742         guid argument
3743
3744         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3745
3746         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3747
3748 2005-02-25  Havoc Pennington  <hp@redhat.com>
3749
3750         * doc/dbus-specification.xml: document the GUID thing
3751
3752         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3753         globally unique ID for the server, and put a "guid=hexencoded"
3754         field in the address
3755
3756         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3757
3758         * dbus/dbus-message.c: ditto
3759
3760         * dbus/dbus-dataslot.c: ditto
3761
3762         * dbus/dbus-list.c: ditto
3763
3764         * dbus/dbus-internals.h: wait, just include
3765         dbus-threads-internal.h here
3766         
3767         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3768         use in main library
3769
3770         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3771
3772 2005-02-24  Colin Walters  <walters@verbum.org>
3773
3774         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3775
3776 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3777
3778         * glib/Makefile.am: added dbus-gobject.h to sources list
3779         so distcheck doesn't fail
3780         
3781 2005-02-24  Havoc Pennington  <hp@redhat.com>
3782
3783         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3784         you must disconnect before unref, since locking and other things
3785         are screwed up otherwise. Fix assorted other locking stuff.
3786
3787         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3788         fix compilation
3789
3790         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3791         into a private header and don't export from the library
3792
3793         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3794
3795 2005-02-24  Colin Walters  <walters@verbum.org>
3796         
3797         * dbus/dbus-signature.c: New file; implements various functions
3798         related to type signatures.  Includes an interator for parsing,
3799         validation functions.
3800         (dbus_type_is_basic): Moved here from
3801         dbus-marshal-basic.c:_dbus_type_is_basic.
3802         (dbus_type_is_container): Moved here from
3803         dbus-marshal-basic.c:_dbus_type_is_container.
3804
3805         All callers of _dbus_type_is_container and _dbus_type_is_basic
3806         updated, and include dbus-signature.h.
3807
3808         * dbus/dbus-signature.h: New file; prototypes for the above.
3809
3810         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3811         dbus-signature.h.
3812
3813         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3814         function factored out of _dbus_first_type_in_signature.
3815         (_dbus_first_type_in_signature_c_str): New function; returns first
3816         type code for a type signature character.
3817
3818         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3819         handle function moves.
3820
3821         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3822
3823         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3824         function; skips to next complete type in type signature.
3825         Implemented using previous skip_one_complete_type.  Now
3826         skip_one_complete_type just delegates to
3827         _dbus_type_signature_next.
3828
3829         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3830         to dbus-signature.c
3831         (_dbus_type_is_container): Ditto.
3832
3833         * doc/dbus-specification.xml: Update introspection sample to
3834         use real type signatures.
3835
3836         * dbus/dbus-test.h: Prototype signature test.
3837
3838         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3839         signature tests.
3840
3841         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3842
3843 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
3844
3845         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3846         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3847
3848 2005-02-21  Colin Walters  <walters@verbum.org>
3849
3850         * dbus/dbus-test-main.c (main): Take optional specific test
3851         argument.
3852
3853         * dbus/dbus-test.c (run_test): New function, runs a test function
3854         with no data directory.
3855         (run_data_test): Like above, but takes data directory.
3856         (dbus_internal_do_not_use_run_tests): Take
3857         specific test argument.  Replace lots of cut n' paste code
3858         with run_test and run_data_test.
3859
3860         * dbus/dbus-test.h: Update prototype for
3861         dbus_internal_do_not_use_run_tests.
3862
3863 2005-02-20  Havoc Pennington  <hp@redhat.com>
3864
3865         Fix bugs reported by Daniel P. Berrange
3866         
3867         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3868         (protected_change_watch): new function
3869         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3870         (_dbus_server_add_watch): change to work like the
3871         dbus-connection.c equivalents; like those, probably kind of
3872         busted, but should at least mostly work for now
3873         (dbus_server_disconnect): drop the lock if we were already
3874         disconnected, patch from Daniel P. Berrange
3875
3876         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
3877         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3878         same stuff
3879
3880         * doc/TODO: todo about unscrewing this mess
3881
3882 2005-02-19  Colin Walters  <walters@verbum.org>
3883
3884         * glib/dbus-binding-tool-glib.c
3885         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3886
3887         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3888         as errno.h and sys/stat.h.
3889         (lose): New function, prints error with
3890         newline and exits.
3891         (lose_gerror): Similar, but takes GError for message.
3892         (main): Add --output argument to specify output file to write to,
3893         instead of always printing to stdout.  In this mode, determine
3894         timestamps on source files to see whether any are newer than the
3895         target file.  If not, exit.  Also convert a number of error
3896         messages to use lose (since it's shorter), and switch to using
3897         g_io_channel_shutdown.
3898
3899 2005-02-19  Havoc Pennington  <hp@redhat.com>
3900
3901         * glib/dbus-gobject.c
3902         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3903
3904         * glib/dbus-glib.c: fix doxygen warnings
3905
3906         * glib/dbus-gparser.c (parse_annotation): error if an annotation
3907         is found on an <arg>
3908
3909 2005-02-17  Colin Walters  <walters@verbum.org>
3910
3911         * glib/dbus-gobject.h: Don't export
3912         _dbus_glib_marshal_dbus_message_to_gvalue_array.
3913         
3914         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3915         (invoke_object_method): Handle it.
3916
3917         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3918         Handle rename.
3919         
3920 2005-02-17  Colin Walters  <walters@verbum.org>
3921
3922         * bus/.cvsignore, doc/.cvsignore
3923         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3924         Update.
3925
3926 2005-02-17  Colin Walters  <walters@verbum.org>
3927         
3928         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3929         Rename to DBUS_SERVICE_DBUS.
3930         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3931         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3932         Change the value from "org.freedesktop.Local"
3933         to "org.freedesktop.DBus.Local".
3934         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3935         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3936         DBUS_INTERFACE_INTROSPECTABLE.
3937         Change the value from "org.freedesktop.Introspectable"
3938         to "org.freedesktop.DBus.Introspectable".
3939         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3940         DBUS_INTERFACE_PROPERTIES.
3941         Change the value from "org.freedesktop.Properties"
3942         to "org.freedesktop.DBus.Properties".
3943         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3944         DBUS_INTERFACE_PEER.
3945         Change the value from "org.freedesktop.Peer"
3946         to "org.freedesktop.DBus.Peer".
3947         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
3948         DBUS_INTERFACE_LOCAL.
3949         Change the value from "org.freedesktop.Local"
3950         to "org.freedesktop.DBus.Local".
3951
3952         All other users of those constants have been changed.
3953
3954         * bus/driver.c (bus_driver_handle_introspect): Use constants.
3955
3956         * glib/dbus-gobject.c (handle_introspect): Use constants.
3957
3958         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3959
3960 2005-02-17  Colin Walters  <walters@verbum.org>
3961
3962         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3963         (parse_node, parse_interface, parse_method, parse_signal)
3964         (parse_property, parse_annotation): Lose if we're currently in an
3965         annotation.
3966         (parse_annotation): New function.
3967         (parser_start_element, parser_end_element): Handle annotation.
3968         (parse_method, parse_interface): Remove support for c_name attribute,
3969         switch to annotations.
3970
3971         * glib/dbus-gidl.h (interface_info_get_binding_names)
3972         (method_info_get_binding_names)
3973         (interface_info_get_binding_name, method_info_get_binding_name)
3974         (interface_info_set_binding_name, method_info_set_binding_name):
3975         Remove.
3976         (interface_info_get_annotations, method_info_get_annotations)
3977         (interface_info_get_annotation, method_info_get_annotation)
3978         (interface_info_add_annotation, method_info_add_annotation):
3979         Prototype.
3980
3981         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3982         for "bindings".
3983         (struct MethodInfo): Ditto.
3984         Straightfoward conversion of binding methods into annotation methods
3985         as prototyped.
3986
3987         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3988
3989         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3990
3991         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3992         Use new annotation API.
3993
3994         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
3995         annotation element.
3996         
3997         * doc/dbus-specification.xml: Discuss introspection annotations,
3998         include list of well-known annotations.
3999
4000         * test/glib/test-service-glib.xml: Make validate against new DTD.
4001
4002 2005-02-17  Colin Walters  <walters@verbum.org>
4003
4004         This patch is based on initial work from
4005         Paul Kuliniewicz <kuliniew@purdue.edu>.
4006
4007         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4008         initialization of GValue from dbus type to here.
4009         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4010         for the "glib-genmarshal" program from a DBus type.
4011         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4012         into the C name for it we use in the glib bindings.
4013         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4014         glib C type (not GValue).
4015         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4016
4017         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4018         from dbus-gobject.c.
4019
4020         * glib/dbus-gutils.h: Prototype it.
4021
4022         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4023         (marshal_dbus_message_to_g_marshaller): Use new shared function
4024         dbus_glib_marshal_dbus_message_to_gvalue_array.
4025
4026         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4027         Will be changed once we have annotations.
4028
4029         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4030         GStaticRWLock.  Callers updated.
4031         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4032         (string_table_next): New function for iterating over zero-terminated
4033         string value array.
4034         (string_table_lookup): New function; retrieves specific entry in
4035         array.
4036         (get_method_data): New function; look up method data in object data chunk.
4037         (object_error_domain_prefix_from_object_info)
4038         (object_error_code_from_object_info): New functions, but not implemented yet.
4039         (method_interface_from_object_info): New function; retrieve interface name.
4040         (method_name_from_object_info): New function; retrieve method name.
4041         (method_arg_info_from_object_info): New function; retrieve argument data.
4042         (arg_iterate): New function; iterates over serialized argument data.
4043         (method_dir_signature_from_object_info): New function; returns a
4044         GString holding type signature for arguments for just one
4045         direction (input or output).
4046         (method_input_signature_from_object_info)
4047         (method_output_signature_from_object_info): New functions.
4048         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4049         converts dbus message arguments into a GValue array.  Used for both
4050         signal handling and method invocation.
4051         (struct DBusGlibWriteIterfaceData): New utility structure.
4052         (write_interface): New function; generate introspection XML for
4053         an interface.
4054         (introspect_interfaces): New function; gathers all interface->methods,
4055         generates introspection XML for them.
4056         (handle_introspect): Invoke introspect_interfaces.
4057         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4058         (lookup_object_and_method): New function; examines an incoming message
4059         and attempts to match it up (via interface, method name, and argument
4060         signature) with a known object and method.
4061         (gerror_domaincode_to_dbus_error_name): New function; converts a
4062         GError domain and code into a DBus error name.  Needs GError data
4063         added to object introspection to work well.
4064         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4065         GError.
4066         (invoke_object_method): New function to invoke an object method
4067         looked up via lookup_object_and_method.  Parses the incoming
4068         message, turns it into a GValue array, then invokes the marshaller
4069         specified in the DBusGMethodInfo.  Creates a new message with
4070         either return values or error message as appropriate.
4071         (gobject_message_function): Invoke lookup_object_and_method and
4072         invoke_object_method.
4073
4074         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4075         (enum DBusBindingOutputMode): New enum for binding output modes.
4076         (pretty_print): Print binding names.
4077         (dbus_binding_tool_error_quark): GError bits.
4078         (version): Fix typo.
4079         (main): Create GIOChannel for output.  Parse new --mode argument,
4080         possible values are "pretty-print", "glib-server", "glib-client".
4081         Use mode to invoke appropriate function.
4082         
4083         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4084
4085         * glib/dbus-glib-tool.h: New header, just includes GError bits
4086         for now.
4087
4088         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4089         maps binding style to name.
4090         (struct MethodInfo): Ditto.
4091         (get_hash_keys, get_hash_key): Utility function, returns keys for
4092         a GHashTable.
4093         (interface_info_new, method_info_new): Initialize bindings.
4094         (interface_info_unref, method_info_unref): Destroy bindings.
4095         (method_info_get_binding_names, method_info_get_binding_name)
4096         (interface_info_get_binding_names, interface_info_get_binding_name):
4097         Functions for retrieving binding names.
4098         (method_info_set_binding_name, interface_info_set_binding_name):
4099         Functions for setting binding names.
4100
4101         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4102         for glib binding generation.
4103
4104         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4105         and client-side glib glue generation.
4106
4107         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4108         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4109         dbus-glib-tool.h.
4110
4111         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4112         of using GClosureMarshal directly.
4113         (struct DBusGObjectInfo): Add n_infos member.
4114
4115         * test/glib/test-service-glib.xml: New file; contains introspection data
4116         for MyTestObject used in test-service-glib.c.
4117
4118         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4119         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4120         (my_object_uppercase, my_object_many_args): New test methods.
4121         (main): Use dbus_g_object_class_install_info to include generated object
4122         info.
4123
4124         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4125         as well as client-side bindings.
4126
4127         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4128         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4129         using both the dbus_gproxy stuff directly as well as the generated bindings.
4130
4131 2005-02-15  Havoc Pennington  <hp@redhat.com>
4132
4133         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4134         complete a pending call, don't run filters first.
4135
4136         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4137         dbus_pending_call_steal_reply
4138
4139         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4140         _dbus_connection_block_pending_call
4141         (dbus_pending_call_get_reply): change to steal_reply and return a
4142         ref
4143
4144         * dbus/dbus-connection.c
4145         (dbus_connection_send_with_reply_and_block): port to work in terms
4146         of DBusPendingCall
4147         (_dbus_connection_block_pending_call): replace block_for_reply
4148         with this
4149
4150 2005-02-14  Havoc Pennington  <hp@redhat.com>
4151
4152         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4153         properly handle looking up group information by name; fix 
4154         from j@bootlab.org
4155
4156 2005-02-13  Havoc Pennington  <hp@redhat.com>
4157
4158         * dbus/dbus-connection.c (dbus_connection_return_message) 
4159         (dbus_connection_borrow_message): hold dispatch lock while message
4160         is outstanding
4161         (_dbus_connection_block_for_reply): hold dispatch lock while we
4162         block for the reply, so nobody steals our reply
4163         (dbus_connection_pop_message): hold the dispatch lock while we
4164         pluck the message
4165
4166 2005-02-13  Havoc Pennington  <hp@redhat.com>
4167
4168         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4169         (_dbus_connection_release_dispatch)
4170         (_dbus_connection_acquire_io_path)
4171         (_dbus_connection_release_io_path): make the mutex and condvar
4172         control access to the "acquired" flag. Drop the connection lock
4173         while waiting on the condvar. Hopefully these are baby steps in
4174         roughly the right direction.
4175
4176 2005-02-13  Havoc Pennington  <hp@redhat.com>
4177
4178         * dbus/dbus-connection.c: use separate mutexes for the condition
4179         variables; this is some kind of baseline for sanity, but the
4180         condition variables still aren't used correctly afaict
4181
4182 2005-02-13  Havoc Pennington  <hp@redhat.com>
4183
4184         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4185         fix a double-unlock
4186
4187         * dbus/dbus-connection.c
4188         (_dbus_connection_detach_pending_call_unlocked): add this
4189
4190         Initial semi-correct pass through to fix thread locking; there are
4191         still some issues with the condition variable paths I'm pretty
4192         sure
4193         
4194         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4195         lock/unlock calls
4196
4197         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4198         rename to add _unlocked
4199         (struct DBusConnection): move "dispatch_acquired" and
4200         "io_path_acquired" to use only one bit each.
4201         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4202         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4203         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4204         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4205         (_dbus_connection_remove_timeout) 
4206         (_dbus_connection_toggle_timeout): drop lock when calling out to
4207         user functions; done in a hacky/bad way.
4208         (_dbus_connection_send_and_unlock): add a missing unlock
4209         (_dbus_connection_block_for_reply): add a missing unlock
4210
4211         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4212         drop lock in a hacky probably unsafe way to call out to user
4213         function
4214
4215 2005-02-12  Havoc Pennington  <hp@redhat.com>
4216
4217         * tools/dbus-tree-view.c (info_set_func_text): display more
4218         details on args
4219
4220         * bus/driver.c (bus_driver_handle_list_services): list the bus
4221         driver
4222
4223         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4224
4225         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4226         (method_info_get_n_args): new function
4227
4228 2005-02-12  Havoc Pennington  <hp@redhat.com>
4229
4230         * bus/driver.c (bus_driver_handle_introspect): add introspection
4231         for bus driver
4232
4233 2005-02-12  Havoc Pennington  <hp@redhat.com>
4234
4235         * bus/driver.c: put the signature of each bus driver method in the
4236         table of handlers and check it on incoming calls; this isn't
4237         really useful, but going to add introspect support in a minute.
4238
4239 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4240
4241         * mono/Connection.cs: The unpredictability of finalizers in mono
4242         prevents us from deterministically disconnecting the filters from
4243         the Service class's finalizer, so move tracking of filters and
4244         matches here.  Add API for that.
4245
4246         * mono/Service.cs: Remove the code, add code which calls the
4247         methods now on the Connection class.
4248
4249 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4250
4251         * python/dbus.py (class Sender): added to support dbus signals better
4252         (Bus::add_signal_receiver): added expand_args parameter which defaults
4253         to True.  When expand args is True the signal handler will pass the 
4254         message arguments as parameters to the signal handler.  If False
4255         revert to previous behavior where the signal handler must get the
4256         argument list from the message.  This is to help port applications
4257         like HAL that have a tendancy to send variable length argument lists.
4258         self._match_rule_to_receivers is now a dict of dicts.
4259         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4260         removing it from a list
4261         (Bus::_signal_func): change signal handlers so that interface,
4262         signal_name, service, path and message are packed into a Sender
4263         object and that is passed to the handler.  If expand_args is True
4264         extract the args list from the message and append it to the parameter
4265         list
4266         
4267         * python/dbus_bindings.pyx.in (class Signature): added to support 
4268         signiature types
4269         (MessageIter::__init__): changed iteration limit to match D-BUS
4270         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4271         STRUCT and VARIENT type support
4272         (MessageIter::python_value_to_dbus_sig): made recursive to support
4273         recursive types
4274         (MessageIter::append*): added Signature, dict, tuple 
4275         support
4276
4277         * python/examples/example-client.py: added examples of getting tuples
4278         and dicts
4279
4280         * python/examples/example-service.py: added examples of sending tuples
4281         and dicts
4282
4283         * python/examples/example-signal-recipient.py: Fixed to handle new
4284         signal callback format
4285
4286 2005-02-10  Havoc Pennington  <hp@redhat.com>
4287
4288         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4289         (call dbus_g_proxy_add_signal)
4290
4291         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4292         escape the hostname
4293         (_dbus_server_new_for_domain_socket): escape the path
4294
4295         * dbus/dbus-address.c (dbus_address_escape_value): new
4296         (dbus_address_unescape_value): new
4297         (dbus_parse_address): unescape values
4298
4299         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4300
4301         * doc/dbus-specification.xml: explain how to escape values in
4302         addresses
4303
4304 2005-02-10  Havoc Pennington  <hp@redhat.com>
4305
4306         * dbus/dbus-message-factory.c (generate_special): modify test to
4307         avoid using a non-basic dict key
4308
4309         * dbus/dbus-marshal-validate-util.c: add test for the below
4310
4311         * doc/dbus-specification.xml: require that dict keys are a basic
4312         type
4313
4314         * dbus/dbus-marshal-validate.c
4315         (_dbus_validate_signature_with_reason): require that dict key is a
4316         basic type
4317
4318 2005-02-10  Havoc Pennington  <hp@redhat.com>
4319
4320         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4321         change to be _and_unlock instead of _unlocked
4322
4323         * dbus/dbus-connection.c
4324         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4325         have no_update so we can find this bug quickly in future
4326
4327 2005-02-10  Havoc Pennington  <hp@redhat.com>
4328
4329         * dbus/dbus-message-util.c (verify_test_message): tests for string
4330         array
4331
4332         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4333         support for arrays of string/signature/path
4334
4335 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4336
4337         * dbus/dbus-connection.c
4338         (_dbus_connection_queue_received_message_link,
4339         _dbus_connection_message_sent): Add the path to
4340         the verbose output.
4341         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4342         _dbus_connection_send_preallocated_unlocked(), updated the
4343         dispatch status, and unlocks.  Fixes a bug where certain
4344         situations (like a broken pipe) could cause a Disconnect message
4345         to not be sent, tricking the bus into thinking a service was still
4346         there when the process had quit.
4347         (_dbus_connection_send_preallocated): Call
4348         _dbus_connection_send_preallocated_and_unlock().
4349         (_dbus_connection_send_and_unlock): Added.  Calls
4350         _dbus_connection_send_preallocated_and_unlock().
4351         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4352         (dbus_connection_send_with_reply): Update the dispatch status and
4353         unlock.
4354
4355         * mono/Service.cs (~Service): Added.  Removes the filter so that
4356         we don't get unmanaged code calling back into a GCed delegate.
4357         (RemoveFilter); Added.
4358
4359 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4360
4361         * dbus/dbus-message.c (dbus_message_iter_open_container):
4362         - Removed check for iterator type being an array because
4363         get_arg_type does not work with writer iterators
4364         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4365
4366 2005-02-07  Havoc Pennington  <hp@redhat.com>
4367
4368         * doc/dbus-specification.xml: some more language cleanups; add
4369         stuff about how to deal with invalid protocol and extension
4370         points; add _ to allowed chars in auth commands; add EXTENSION_
4371         auth command prefix
4372
4373 2005-02-06  Havoc Pennington  <hp@redhat.com>
4374
4375         * s/expected/required/ in a couple places for clarity
4376
4377 2005-02-07  Colin Walters  <walters@verbum.org>
4378
4379         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4380         sender or proposed_recipient.
4381
4382 2005-02-06  Havoc Pennington  <hp@redhat.com>
4383
4384         * dbus/dbus-message-factory.c (generate_special): more tests
4385
4386         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4387         array length that exceeds the maximum
4388
4389 2005-02-05  Havoc Pennington  <hp@redhat.com>
4390
4391         * dbus/dbus-message-factory.c (generate_special): more test cases,
4392         increasing coverage
4393
4394         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4395         reason why a signature was invalid
4396
4397         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4398         skip the length of the string before we look at it in validation
4399
4400         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4401         equal_substring
4402
4403         * dbus/dbus-message.c (_dbus_message_loader_new): default
4404         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4405
4406 2005-02-05  Havoc Pennington  <hp@redhat.com>
4407
4408         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4409         if the signature of a variant was empty
4410         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4411         struct with no element type)
4412
4413         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4414         mangled messages to break things
4415
4416 2005-02-04  Havoc Pennington  <hp@redhat.com>
4417
4418         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4419         g_quark_try_string() so it actually can return 0
4420         (dbus_g_proxy_connect_signal): ditto
4421
4422 2005-02-04  Havoc Pennington  <hp@redhat.com>
4423
4424         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4425         bogus warning
4426         (tristring_from_message): assert cleanly on null path/interface
4427         (should not be possible though I decided later)
4428         (dbus_g_proxy_dispose): move proxy manager unregistration here
4429         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4430         g_return_if_fail() checks
4431
4432 2005-02-04  Havoc Pennington  <hp@redhat.com>
4433
4434         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4435
4436         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4437         (with some minor changes)
4438
4439         * doc/dbus-specification.xml: add deprecated attribute to
4440         introspection format
4441
4442 2005-01-31  Havoc Pennington  <hp@redhat.com>
4443
4444         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4445         think it's sort of right
4446
4447 2005-01-30  Havoc Pennington  <hp@redhat.com>
4448
4449         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4450
4451 2005-01-30  Havoc Pennington  <hp@redhat.com>
4452
4453         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4454
4455         * autogen.sh: change to autotools 1.9
4456
4457         * glib/dbus-gproxy.c: completely change how signals work
4458         (dbus_g_proxy_add_signal): new function to specify signature of a
4459         signal
4460         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4461         and g_warning if the incoming message has the wrong signature.
4462
4463 2005-01-30  Havoc Pennington  <hp@redhat.com>
4464
4465         * tools/dbus-names-model.c (have_names_notify): fix this
4466
4467         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4468         up the string array handling a bit 
4469
4470 2005-01-30  Havoc Pennington  <hp@redhat.com>
4471
4472         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4473         (dbus_g_pending_call_cancel): new function
4474
4475         * dbus/dbus-glib.h: move GType decls for connection/message here;
4476         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4477         here, just kind of rationalizing how we handle all that
4478
4479         * tools/dbus-names-model.c: new file for a tree model listing the
4480         services on a bus
4481
4482         * tools/dbus-tree-view.c (model_new): use proper typing on the
4483         model rows
4484
4485 2005-01-30  Havoc Pennington  <hp@redhat.com>
4486
4487         * glib/dbus-gmain.c: add a custom GSource back that just checks
4488         whether the message queue has anything in it; otherwise, there are 
4489         cases where we won't see messages in the queue since there was no 
4490         IO visible to the glib main loop
4491
4492         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4493         increase default message timeout to 25 seconds
4494
4495 2005-01-30  Havoc Pennington  <hp@redhat.com>
4496
4497         * test/glib/test-profile.c (no_bus_stop_server): remove the
4498         warning about the g_warning that I just fixed
4499
4500         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4501         custom source, seems to be a lot easier to understand and work
4502         better.
4503
4504 2005-01-30  Havoc Pennington  <hp@redhat.com>
4505
4506         I think this main loop thing is conceptually broken, but here are 
4507         some band aids. I'll maybe rewrite it in a minute.
4508         
4509         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4510         custom GSource, so don't pass it in; confusing
4511         (gsource_server_finalize, gsource_connection_finalize): add
4512         finalize handlers that remove all the watches.  
4513
4514 2005-01-30  Havoc Pennington  <hp@redhat.com>
4515
4516         * glib/dbus-gobject.c (introspect_properties): fix the XML
4517         generated
4518
4519         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4520         which effectively detects the use of freed messages
4521
4522         * glib/dbus-gobject.c (handle_introspect): modify and return the
4523         reply message instead of the incoming message
4524
4525         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4526         gee, maybe it should SEND THE XML instead of just making a string
4527         and freeing it again ;-)
4528
4529         * tools/dbus-print-message.c (print_message): improve printing of
4530         messages
4531
4532         * configure.in: add debug-glib.service to the output
4533
4534 2005-01-30  Havoc Pennington  <hp@redhat.com>
4535
4536         dbus-viewer introspected and displayed the bus driver
4537         
4538         * dbus/dbus-object-tree.c 
4539         (object_tree_test_iteration): add tests for a handler registered on "/"
4540
4541         * dbus/dbus-object-tree.c
4542         (_dbus_decompose_path): fix to handle path "/" properly
4543         (run_decompose_tests): add tests for path decomposition
4544         
4545         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4546         properly
4547
4548         * glib/dbus-gobject.c (handle_introspect): fix quotes
4549
4550         * test/glib/run-test.sh: support launching the bus, then running
4551         dbus-viewer
4552
4553         * test/glib/test-service-glib.c (main): put in a trivial gobject
4554         subclass and register it on the connection
4555
4556         * bus/driver.c (bus_driver_handle_introspect): implement
4557         introspection of the bus driver service
4558
4559         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4560         identifiers, doctype decl
4561
4562         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4563         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4564         returning the service unchanged.
4565         (bus_driver_handle_message): remove old check for reply_serial in
4566         method calls, now the message type deals with that
4567         (bus_driver_handle_message): handle NULL interface
4568
4569         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4570
4571         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4572         -1 for len
4573
4574         * tools/dbus-viewer.c: add support for introspecting a service on
4575         a bus
4576
4577         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4578         (dbus_g_pending_call_unref): add
4579
4580 2005-01-29  Havoc Pennington  <hp@redhat.com>
4581
4582         * tools/dbus-tree-view.c: add support for displaying properties.
4583         (run dbus-viewer with an introspect xml file as arg, then resize
4584         the window so the tree elements show up, not sure what that is)
4585
4586         * glib/dbus-gobject.c (handle_introspect): return
4587         org.freedesktop.Properties and org.freedesktop.Introspectable
4588         interfaces when we are introspected.
4589
4590         * doc/dbus-specification.xml: allow empty interface name when 
4591         Get/Set a property
4592
4593 2005-01-29  Havoc Pennington  <hp@redhat.com>
4594
4595         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4596         though it uses glib, it could be extended for any binding in
4597         principle
4598
4599         * glib/dbus-gobject.c (gobject_message_function): change to the
4600         new way properties work
4601
4602         * dbus/dbus-protocol.h: add the new interfaces
4603
4604         * doc/dbus-specification.xml: document the introspection format,
4605         Introspectable interface, and add an org.freedesktop.Properties
4606         interface.
4607
4608         * glib/dbus-gparser.c: add support for a <property> element
4609
4610         * glib/dbus-gidl.c: add PropertyInfo
4611
4612         * glib/dbus-gobject.c (handle_introspect): put the outermost
4613         <node> outside the signal and property descriptions.
4614         (introspect_properties): export properties as <property> rather
4615         than as method calls
4616
4617 2005-01-28  Havoc Pennington  <hp@redhat.com>
4618
4619         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4620         related to authentication protocol
4621
4622 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4623
4624         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4625                 - BUS_ACTIVATION -> BUS_STARTER
4626                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4627                 - class MessageIter (__init__): Added recursion checking 
4628                 so we throw a nice error instead of just disconnecting from the
4629                 bus.
4630                 (get): Added arg_type parameter for recursion.
4631                 Removed the nil type
4632                 Added signiture type placeholder (not implemented)
4633                 Added struct type placeholder (not implemented)
4634                 Added varient type placeholder (not implemented)
4635                 Commented out dict type for now     
4636                 (get_element_type): renamed from get_array_type
4637                 (get_*): changed to use the dbus_message_iter_get_basic API
4638                 (get_*_array): removed in favor of recursive get_array method
4639                 (get_array): new recursive method which calls get to marshal
4640                 the elements of the array
4641                 (value_to_dbus_sig): New method returns the corrasponding
4642                 dbus signiture to a python value
4643                 (append): Comment out dict handling for now
4644                 Handle lists with the new recursive API
4645                 Comment out None handling for now
4646                 (append_nil): removed
4647                 (append_*): changed to use dbus_message_iter_append_basic API
4648                 (append_*_array): removed in favor of recursive append_array 
4649                 method
4650                 (__str__): Make it easier to print out recursive iterators
4651                 for debugging
4652                 - class Message (__str__): moved type inspection to the
4653                 MessageIter class' __str__ method
4654                 (get_iter): Added an append parameter wich defaults to False
4655                 If True use the new API's to create an append iterator
4656
4657         * python/dbus.py: Update to use new bindings API
4658                 - TYPE_ACTIVATION -> TYPE_STARTER
4659                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4660                 - class ActivationBus -> class StarterBus
4661                 - class RemoteObject (__call__): get an append iterator
4662                 - (_dispatch_dbus_method_call): get an append iterator
4663                 - class Object (emit_signal): get an append iterator
4664
4665         * python/examples/: Fixed up the examples to work with the new API
4666                 
4667 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4668
4669         * configure.in: Bump version up to 0.30.
4670
4671         * HACKING: Add a release item to bump the version number up after 
4672         a release.
4673
4674 2005-01-28  Havoc Pennington  <hp@redhat.com>
4675
4676         * doc/dbus-specification.xml: update to describe 16-bit types and
4677         dict entries
4678
4679         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4680         assertion
4681
4682         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4683         type
4684
4685         * dbus/dbus-marshal-recursive.c: implement
4686
4687 2005-01-27  Havoc Pennington  <hp@redhat.com>
4688
4689         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4690
4691         * configure.in: find the right type for 16 and 32 bit ints as well
4692         as 64
4693
4694         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4695         the 16-bit types so people don't have to stuff them in 32-bit or
4696         byte arrays.
4697
4698 2005-01-27  Havoc Pennington  <hp@redhat.com>
4699
4700         * dbus/dbus-message.c: byteswap the message if you init an
4701         iterator to read/write from it
4702         
4703         * dbus/dbus-marshal-byteswap.c: new file implementing 
4704         _dbus_marshal_byteswap()
4705
4706         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4707
4708 2005-01-26  Havoc Pennington  <hp@redhat.com>
4709         
4710         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4711         build, apparently - nobody noticed?)
4712         
4713 2005-01-26  Havoc Pennington  <hp@redhat.com>
4714
4715         * dbus/dbus-marshal-recursive.h: remove todo comment
4716
4717 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4718
4719         * Land the mono binding changes to conform to the new APIs.
4720
4721         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4722         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4723
4724         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4725         type code as a string.
4726         (InitAppending): Rename dbus_message_append_iter_init() to
4727         dbus_message_iter_init_append().
4728
4729         * mono/BusDriver.cs: Rename ServiceEventHandler to
4730         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4731         Rename ServiceOwnerChanged to NameOwnerChanged.
4732
4733         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4734         underlying C call.
4735
4736         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4737
4738         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4739         dbus_bus_acquire_service() to dbus_bus_request_name().
4740
4741         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4742         of Type.UnderlyingSystemType to get the correct element type for
4743         the array.
4744         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4745         dbus_message_get_{element|arg}_type() instead of
4746         dbus_message_iter_init_array_iterator().
4747         (Append): Replace dbus_message_iter_append_array() with
4748         dbus_message_iter_open_container() and
4749         dbus_message_iter_close_container().
4750
4751         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4752         types have been removed.
4753         
4754         * mono/DBusType/*.cs: Replace calls of
4755         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4756         but specify the type in the DllImport extern declaration.  Ditto
4757         for dbus_message_iter_append_[type]() ->
4758         dbus_message_iter_append_basic().
4759
4760         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4761         NameOwnerChangedHandler.
4762
4763 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4764
4765         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4766                 - get_base_service -> get_unique_name
4767                 - bus_get_base_service -> bus_get_unique_name
4768                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4769                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4770                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4771                 - bus_activate_service -> bus_start_service_by_name
4772                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4773                 - bus_acquire_service -> bus_request_name
4774                 - dbus_bus_acquire_service -> dbus_bus_request_name
4775                 - bus_service_exists -> bus_name_has_owner
4776                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4777
4778         * python/dbus.py: Rename of methods
4779                 - activate_service -> start_service_by_name
4780                 - bus_acquire_service -> bus_request_name
4781                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4782                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4783
4784         
4785 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4786
4787         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4788         signature for the method that can't be found.
4789
4790         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4791         the message has any arguments, we need to call
4792         _dbus_type_reader_get_current_type(), not
4793         _dbus_type_reader_has_next().
4794
4795 2005-01-24  Havoc Pennington  <hp@redhat.com>
4796
4797         * dbus/dbus-message-factory.c: more testing of message validation
4798
4799         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4800         header
4801
4802 2005-01-23  Havoc Pennington  <hp@redhat.com>
4803
4804         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4805         get this all working, not many tests in the framework yet though
4806
4807 2005-01-22  Havoc Pennington  <hp@redhat.com>
4808
4809         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4810         tutorial, based on work from David Wheeler.
4811
4812 2005-01-21  Havoc Pennington  <hp@redhat.com>
4813
4814         * dbus/dbus-bus.c: add more return_if_fail checks
4815
4816         * dbus/dbus-message.c (load_message): have the "no validation"
4817         mode (have to edit the code to toggle the mode for now though)
4818
4819         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4820         skips all validation; I want to use this at least for benchmark
4821         baseline, I'm not sure if it should be a publicly-available switch.
4822
4823 2005-01-21  Havoc Pennington  <hp@redhat.com>
4824
4825         * glib/dbus-gmain.c: don't put the GLib bindings in the same
4826         toplevel doxygen group as the low-level API stuff
4827
4828         * dbus/dbus.h: note that libdbus is the low-level API
4829
4830 2005-01-20  Havoc Pennington  <hp@redhat.com>
4831
4832         * update-dbus-docs.sh: script to update docs on the web site, only
4833         works for me though. neener.
4834
4835 2005-01-20  Havoc Pennington  <hp@redhat.com>
4836
4837         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4838         code can reveal bugs in it
4839
4840 2005-01-20  Havoc Pennington  <hp@redhat.com>
4841
4842         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4843         select() version, patches from Tor Lillqvist
4844
4845 2005-01-20  Havoc Pennington  <hp@redhat.com>
4846
4847         * doc/dbus-tutorial.xml: replace > with &gt;
4848
4849         * bus/services.c (bus_registry_acquire_service): validate the name
4850         and return a better error if it's no good.
4851
4852         * doc/dbus-specification.xml: note NO_AUTO_START change
4853
4854         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4855         from AUTO_START, we're toggling the default
4856
4857         * bus/dispatch.c: adapt the tests to change of auto-start default
4858
4859 2005-01-18  Havoc Pennington  <hp@redhat.com>
4860
4861         * rename dbus-daemon-1 to dbus-daemon throughout
4862
4863 2005-01-18  Havoc Pennington  <hp@redhat.com>
4864
4865         * Throughout, grand renaming to strip out the use of "service",
4866         just say "name" instead (or "bus name" when ambiguous).  Did not
4867         change the internal code of the message bus itself, only the
4868         programmer-facing API and messages.
4869         
4870         * doc/dbus-specification.xml: further update the message bus section
4871         
4872         * bus/config-parser.c (all_are_equiv): fix bug using freed string
4873         in error case
4874
4875 2005-01-17  Havoc Pennington  <hp@redhat.com>
4876
4877         * dbus/dbus-types.h: remove 16-bit types since we don't use them
4878         ever
4879
4880         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4881         "invalid name character" not only non-ASCII
4882
4883         * doc/dbus-specification.xml: further update spec, message bus 
4884         parts are still out-of-date but the marshaling etc. stuff is now
4885         accurate-ish
4886
4887 2005-01-17  Havoc Pennington  <hp@redhat.com>
4888
4889         * doc/dbus-specification.xml: partially update spec
4890
4891 2005-01-17  Havoc Pennington  <hp@redhat.com>
4892
4893         * Throughout, align variant bodies according to the contained
4894         type, rather than always to 8. Should save a fair bit of space in
4895         message headers.
4896         
4897         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4898         fix handling of case where p == end
4899
4900         * doc/TODO: remove the dbus_bool_t item and variant alignment items
4901
4902 2005-01-17  Havoc Pennington  <hp@redhat.com>
4903
4904         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4905
4906         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4907         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
4908         are marshaling/unmarshaling a boolean.
4909
4910 2005-01-16  Havoc Pennington  <hp@redhat.com>
4911
4912         This is about it on what can be disabled/deleted from libdbus
4913         easily, back below 150K anyhow. Deeper cuts are more work than 
4914         just turning the code off as I've done here.
4915         
4916         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4917         signed int convenience funcs
4918
4919         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4920         verbose mode
4921
4922         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4923         things out of libdbus
4924
4925         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4926         
4927         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4928         tests-enabled-only, though it should probably be deleted)
4929
4930         * dbus/dbus-message-util.c: same stuff
4931
4932         * dbus/dbus-auth-util.c: same stuff
4933
4934 2005-01-16  Havoc Pennington  <hp@redhat.com>
4935
4936         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4937
4938         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4939         way for stripping down dbus-userdb.c stuff included in libdbus.
4940         Rename _dbus_parse_uid for consistency.
4941
4942 2005-01-16  Havoc Pennington  <hp@redhat.com>
4943
4944         * dbus/dbus-internals.c (_dbus_real_assert): print the function
4945         name the assertion failed in
4946
4947         * dbus/dbus-internals.h (_dbus_return_if_fail) 
4948         (_dbus_return_val_if_fail): assert that the name of the function
4949         containing the check doesn't start with '_', since we only want to 
4950         use checks on public functions
4951         
4952         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4953         checks to assertions
4954
4955         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4956         change checks to asserts for private function
4957
4958         * dbus/dbus-message.c (_dbus_message_set_serial): checks
4959         to asserts for private function
4960
4961         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4962         broken assertion that was breaking make check
4963         (_dbus_type_reader_array_is_empty): remove this rather than fix
4964         it, was only used in assertions
4965
4966 2005-01-16  Havoc Pennington  <hp@redhat.com>
4967
4968         * test/unused-code-gc.py: hacky script to find code that's used
4969         only by the bus (not libdbus) or used only by tests or not used at
4970         all. It has some false alarms, but looks like we can clean up a
4971         lot of size from libdbus.
4972
4973         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4974         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4975         
4976 2005-01-16  Havoc Pennington  <hp@redhat.com>
4977
4978         * Add and fix docs according to Doxygen warnings throughout
4979         source.
4980         
4981         * dbus/dbus-marshal-recursive.c
4982         (_dbus_type_reader_array_is_empty): change this to just call
4983         array_reader_get_array_len() and make it static
4984
4985         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4986         from get_array_type
4987         (dbus_message_iter_init_append): rename from append_iter_init
4988
4989         * dbus/dbus-marshal-recursive.c
4990         (_dbus_type_reader_get_element_type): rename from
4991         _dbus_type_reader_get_array_type
4992
4993 2005-01-15  Havoc Pennington  <hp@redhat.com>
4994
4995         * test/glib/test-profile.c (with_bus_server_filter): fix crash
4996
4997         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4998         when DBUS_DISABLE_ASSERT
4999         (_dbus_marshal_set_basic): be sure we align for the string length
5000
5001         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5002         this look faster
5003
5004         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5005         inline macro version
5006         (_dbus_string_set_byte): provide inline macro version
5007
5008 2005-01-15  Havoc Pennington  <hp@redhat.com>
5009
5010         * Land the new message args API and type system.
5011
5012         This patch is huge, but the public API change is not 
5013         really large. The set of D-BUS types has changed somewhat, 
5014         and the arg "getters" are more geared toward language bindings;
5015         they don't make a copy, etc.
5016
5017         There are also some known issues. See these emails for details
5018         on this huge patch:
5019         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5020         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5021         
5022         * dbus/dbus-marshal-*: all the new stuff
5023
5024         * dbus/dbus-message.c: basically rewritten
5025
5026         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5027         freed blocks to be all non-nul bytes so using freed memory is less
5028         likely to work right
5029
5030         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5031         DBUS_FAIL_MALLOC=N environment variable, so you can do
5032         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5033         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5034         thorough.
5035
5036         * qt/message.cpp: port to the new message args API
5037         (operator<<): use str.utf8() rather than str.unicode()
5038         (pretty sure this is right from the Qt docs?)
5039
5040         * glib/dbus-gvalue.c: port to the new message args API
5041
5042         * bus/dispatch.c, bus/driver.c: port to the new message args API
5043
5044         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5045         "locked" flag to TRUE and align_offset to 0; I guess we never
5046         looked at these anyhow, but seems cleaner.
5047
5048         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5049         move allocation padding macro to this header; use it to implement
5050         (_DBUS_STRING_STATIC): ability to declare a static string.
5051
5052         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5053         change to return TRUE if the interface is not set.
5054
5055         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5056         to dbus-marshal-validate.[hc]
5057
5058         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5059         dbus-internals.c
5060
5061         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5062         to dbus-marshal-*.[hc]
5063
5064         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5065         function here from dbus-marshal.c
5066
5067 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5068
5069         * NEWS: Update for 0.23.
5070
5071         * configure.in: Release 0.23.
5072
5073 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5074
5075         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5076         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5077         behind.
5078
5079         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5080         uninstall"
5081
5082         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5083         is an enum, get the enum's underlying type.  Another mono
5084         1.1.3 fix.
5085
5086 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5087
5088         Patch from Sjoerd Simons <sjoerd@luon.net>
5089
5090         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5091         DESTDIR.  It breaks stuff.
5092
5093 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5094
5095         Patch from Tambet Ingo <tambet@ximian.com>
5096
5097         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5098         calling type.GetElementType().  The code previously depended on
5099         broken Mono behavior, which was fixed in Mono 1.1.3.
5100
5101         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5102         Activator.CreateInstance() so that the class's constructor is
5103         called with the right parameters.
5104
5105 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5106
5107         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5108
5109         * dbus/dbus-connection.c
5110         (_dbus_connection_queue_received_message_link): Call
5111         _dbus_connection_remove_timeout() instead of the _locked()
5112         variant, since it's always called from
5113         _dbus_connection_handle_watch(), which handles the locking.
5114         Removed the _locked() variant since it's no longer used.
5115
5116 2005-01-03  Havoc Pennington  <hp@redhat.com>
5117
5118         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5119         return
5120         
5121 2004-12-26  Havoc Pennington  <hp@redhat.com>
5122
5123         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5124
5125 2005-01-03  Havoc Pennington  <hp@redhat.com>
5126
5127         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5128         floating point
5129
5130         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5131
5132 2005-01-02  Havoc Pennington  <hp@redhat.com>
5133
5134         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5135
5136 2005-01-01  Havoc Pennington  <hp@redhat.com>
5137
5138         * configure.in: add -Wfloat-equal
5139
5140 2005-01-01  Havoc Pennington  <hp@redhat.com>
5141
5142         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5143         for a variety of reasons '==' doesn't do this.
5144
5145 2004-12-31  Havoc Pennington  <hp@redhat.com>
5146
5147         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5148         I keep wishing I had
5149
5150 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5151
5152         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5153
5154 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5155
5156         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5157         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5158         dbus-protocol.h.  Because they are defines and not enums they are not
5159         autogenerated.
5160
5161 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5162
5163         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5164         dbus_bus_activate_service
5165
5166         * python/dbus.py (Bus.activate_service): activate a service on the
5167         bus.
5168
5169 2004-12-24  Havoc Pennington  <hp@redhat.com>
5170
5171         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5172         file format has also changed and I haven't adapted to that yet
5173         
5174         * Makefile.am: load .gcno files from latest gcc
5175
5176 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5177         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5178
5179         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5180         lowlevel binding
5181
5182         * python/dbus.py (get_unix_user): Added binding to 
5183         call dbus_bindings.bus_get_unix_user
5184
5185         * python/extract.py: Modified the proto_pat regex to
5186         handle unsigned long
5187
5188 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5189
5190         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5191         better POSIX compliance.
5192
5193 2004-12-19  Havoc Pennington  <hp@redhat.com>
5194
5195         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5196         (_dbus_string_insert_8_aligned): new functions
5197
5198         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5199
5200 2004-12-18  Havoc Pennington  <hp@redhat.com>
5201
5202         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5203         macro
5204
5205         * dbus/dbus-message.c: fix a comment, and add a still-unused
5206         not-implemented function
5207
5208         * dbus/dbus-marshal.h: fix comment
5209
5210         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5211
5212 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5213
5214         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5215         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5216         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5217         Type.UnderlyingSystemType to get the actual system type
5218         underneath.  This code previously depended on the broken Mono
5219         behavior, which was fixed in 1.1.3.
5220
5221 2004-11-27  Havoc Pennington  <hp@redhat.com>
5222
5223         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5224         are disabled
5225         (_dbus_string_get_const_data): inline when asserts are disabled
5226
5227         * dbus/dbus-message.c: record the _dbus_current_generation of
5228         creation so we can complain if dbus_shutdown() is used improperly.
5229         Do this only if checks are enabled.
5230
5231         * dbus/dbus-connection.c: ditto
5232         
5233 2004-11-26  Havoc Pennington  <hp@redhat.com>
5234
5235         * test/glib/test-profile.c: add with_bus mode to profile echoes
5236         that go through the bus.
5237
5238         * test/glib/run-test.sh: add ability to run test-profile
5239
5240         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5241         config file reload.
5242
5243 2004-11-26  Havoc Pennington  <hp@redhat.com>
5244
5245         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5246         thing was implemented
5247
5248 2004-11-26  Havoc Pennington  <hp@redhat.com>
5249
5250         * test/glib/test-profile.c: tweak a bit, add support for some
5251         made-up minimal malloc overhead with plain sockets, since in 
5252         real life some sort of buffers are unavoidable thus we could 
5253         count them in the theoretical best case
5254
5255 2004-11-26  Havoc Pennington  <hp@redhat.com>
5256
5257         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5258         where I was trying to cache one too many messages
5259
5260 2004-11-26  Havoc Pennington  <hp@redhat.com>
5261
5262         * dbus/dbus-message.c: reimplement message cache as an array which 
5263         makes the cache about twice as fast and saves maybe 1.5% overall
5264
5265 2004-11-26  Havoc Pennington  <hp@redhat.com>
5266
5267         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5268         message cache lock here
5269
5270 2004-11-26  Havoc Pennington  <hp@redhat.com>
5271
5272         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5273         the "char byte_order" next to each other to save 4 bytes
5274         (dbus_message_new_empty_header): reduce preallocation, since the
5275         message cache should achieve a similar effect
5276         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5277         message cache that keeps a few DBusMessage around in a pool,
5278         another 8% speedup or so.
5279
5280         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5281
5282 2004-11-25  Havoc Pennington  <hp@redhat.com>
5283
5284         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5285         to write, without reading or blocking, try it before the poll()
5286         and skip the poll() if nothing remains to write. This is about a
5287         3% speedup in the echo client/server
5288
5289 2004-11-25  Havoc Pennington  <hp@redhat.com>
5290
5291         The primary change here is to always write() once before adding
5292         the write watch, which gives us about a 10% performance increase.
5293         
5294         * dbus/dbus-transport-unix.c: a number of modifications to cope
5295         with removing messages_pending
5296         (check_write_watch): properly handle
5297         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5298         messages_pending stuff
5299         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5300         AUTHENTICATED cases
5301         (unix_handle_watch): after writing, see if the write watch can be
5302         removed
5303         (unix_do_iteration): assert that write_watch/read_watch are
5304         non-NULL rather than testing that they aren't, since they 
5305         aren't allowed to be NULL. check_write_watch() at the end so 
5306         we add the watch if we did not finish writing (e.g. got EAGAIN)
5307
5308         * dbus/dbus-transport-protected.h: remove messages_pending call,
5309         since it resulted in too much inefficient watch adding/removing; 
5310         instead we now require that the transport user does an iteration 
5311         after queueing outgoing messages, and after trying the first
5312         write() we add a write watch if we got EAGAIN or exceeded our 
5313         max bytes to write per iteration setting
5314
5315         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5316         function
5317
5318         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5319         freed and then accessed, valgrind flagged this bug, fix it
5320
5321         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5322         as the last valid field plus 1, where really it is equal to the
5323         last valid field. Corrects some message corruption issues.
5324
5325         * dbus/dbus-mainloop.c: verbosity changes
5326
5327         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5328         instead of aborting in one of the test codepaths
5329
5330         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5331         caused not printing the pid ever again if a verbose was missing
5332         the newline at the end
5333         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5334
5335         * dbus/dbus-connection.c: verbosity changes; 
5336         (dbus_connection_has_messages_to_send): new function
5337         (_dbus_connection_message_sent): no longer call transport->messages_pending
5338         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5339         try to write() immediately, so we can avoid the write watch. This
5340         is the core purpose of this patchset
5341         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5342         dump the outgoing message queue, so nobody will get confused
5343         trying to send them or thinking stuff is pending to be sent
5344
5345         * bus/test.c: verbosity changes
5346
5347         * bus/driver.c: verbosity/assertion changes
5348
5349         * bus/dispatch.c: a bunch of little tweaks to get it working again
5350         because this patchset changes when/where you need to block.
5351
5352 2004-11-23  Havoc Pennington  <hp@redhat.com>
5353
5354         * test/glib/test-profile.c: modify to accept a plain_sockets
5355         argument in which case it will bench plain sockets instead of
5356         libdbus, for comparison purposes.
5357
5358 2004-11-22  Havoc Pennington  <hp@redhat.com>
5359
5360         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5361         threads for more time, so sysprof can get a grip on it.
5362
5363         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5364         pointless variable
5365
5366 2004-11-13  Havoc Pennington  <hp@redhat.com>
5367
5368         * test/glib/test-profile.c: fix this thing up a bit
5369
5370         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5371         preallocation sizes by a fair bit; not sure if this will be an
5372         overall performance win or not, but it does reduce reallocs.
5373
5374         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5375         the test hack that forced constant realloc if asserts are
5376         disabled, so we can profile sanely. Sprinkle in some
5377         _DBUS_UNLIKELY() which are probably pointless, but before I
5378         noticed the real performance problem I put them in.
5379         (_dbus_string_validate_utf8): micro-optimize this thing a little
5380         bit, though callgrind says it didn't help; then special-case
5381         ascii, which did help a lot; then be sure we detect nul bytes as
5382         invalid, which is a bugfix.
5383         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5384         superstition; use memset to nul the padding instead of a manual
5385         loop.
5386         (_dbus_string_get_length): inline this as a
5387         macro; it showed up in the profile because it's used for loop
5388         tests and so forth
5389
5390 2004-11-10  Colin Walters  <walters@verbum.org>
5391
5392         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5393         for extra paranoia.
5394
5395 2004-11-09  Colin Walters  <walters@verbum.org>
5396
5397         * dbus/dbus-string.c (_dbus_string_get_length): New
5398         function, writes DBusString to C buffer.
5399
5400         * dbus/dbus-string.h: Prototype it.
5401
5402         * dbus/dbus-message.c (dbus_message_type_to_string): New
5403         function, converts message type into C string.
5404
5405         * dbus/dbus-message.h: Prototype it.
5406
5407         * bus/selinux.c (bus_selinux_check): Take source pid,
5408         target pid, and audit data.  Pass audit data to
5409         avc_has_perm.
5410         (log_audit_callback): New function, appends extra
5411         audit information.
5412         (bus_selinux_allows_acquire_service): Also take
5413         service name, add it to audit data.
5414         (bus_selinux_allows_send): Also take message
5415         type, interface, method member, error name,
5416         and destination, and add them to audit data.
5417         (log_cb): Initialize func_audit.
5418         
5419         * bus/selinux.h (bus_selinux_allows_acquire_service)
5420         (bus_selinux_allows_send): Update prototypes 
5421
5422         * bus/services.c (bus_registry_acquire_service): Pass
5423         service name to bus_selinux_allows_acquire_service.
5424
5425         * bus/bus.c (bus_context_check_security_policy): Pass
5426         additional audit data.  Move assignment of dest
5427         to its own line.
5428
5429 2004-11-07  Colin Walters  <walters@verbum.org>
5430
5431         * dbus/dbus-transport-unix.c (do_authentication): Always
5432         initialize auth_completed.
5433         
5434 2004-11-07  Colin Walters  <walters@verbum.org>
5435
5436         * bus/bus.c (load_config): Break into three
5437         separate functions: process_config_first_time_only,
5438         process_config_every_time, and process_config_postinit.
5439         (process_config_every_time): Move call of
5440         bus_registry_set_service_context_table into
5441         process_config_postinit.
5442         (process_config_postinit): New function, does
5443         any processing that needs to happen late
5444         in initialization (and also on reload).
5445         (bus_context_new): Instead of calling load_config,
5446         open config parser here and call process_config_first_time_only
5447         and process_config_every_time directly.  Later, after
5448         we have forked but before changing UID,
5449         invoke bus_selinux_full_init, and then call
5450         process_config_postinit.
5451         (bus_context_reload_config): As in bus_context_new,
5452         load parse file inside here, and call process_config_every_time
5453         and process_config_postinit.
5454
5455         * bus/services.h, bus/services.c
5456         (bus_registry_set_service_context_table): Rename
5457         from bus_registry_set_sid_table.  Take string hash from config
5458         parser, and convert them here into SIDs.
5459
5460         * bus/config-parser.c (struct BusConfigParser): Have
5461         config parser only store a mapping of service->context
5462         string.
5463         (merge_service_context_hash): New function.
5464         (merge_included): Merge context string hashes instead
5465         of using bus_selinux_id_table_union.
5466         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5467         simply create a new string hash.
5468         (bus_config_parser_unref): Unref it.
5469         (start_selinux_child): Simply insert strings into hash,
5470         don't call bus_selinux_id_table_copy_over.
5471
5472         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5473         (bus_selinux_id_table_copy_over): Delete.
5474
5475 2004-11-03  Colin Walters  <walters@verbum.org>
5476
5477         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5478         variables.
5479         
5480 2004-11-03  Colin Walters  <walters@verbum.org>
5481
5482         * bus/test-main.c (test_pre_hook): Fix test logic,
5483         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5484
5485 2004-11-02  Colin Walters  <walters@redhat.com>
5486
5487         * bus/selinux.c (bus_selinux_init): Split into two functions,
5488         bus_selinux_pre_init and bus_selinux_post_init.
5489         (bus_selinux_pre_init): Just determine whether SELinux is
5490         enabled.
5491         (bus_selinux_post_init): Do everything else.
5492
5493         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5494         config file, and bus_selinux_post_init after.  This ensures that
5495         we don't lose the policyreload notification thread that
5496         bus_selinux_init created before forking previously.
5497         
5498         * bus/test-main.c (test_pre_hook): Update for split.
5499
5500 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5501
5502         Patch from Johan Fischer <linux@fischaz.com>
5503         
5504         * mono/doc/Makefile.am (install-data-local): Added directory
5505         install for DESTDIR
5506
5507 2004-10-29  Colin Walters  <walters@redhat.com>
5508
5509         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5510         parameter for fd to write pid to.       
5511
5512         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5513         
5514         * bus/bus.c (bus_context_new): Pass print_pid_fd
5515         to _dbus_become_daemon (bug #1720)
5516
5517 2004-10-29  Colin Walters  <walters@redhat.com>
5518
5519         Patch from Ed Catmur <ed@catmur.co.uk>
5520
5521         * mono/doc/Makefile.am (install-data-local): Handle
5522         DESTDIR.
5523
5524 2004-10-29  Colin Walters  <walters@redhat.com>
5525
5526         * bus/.cvsignore, qt/.cvsignore: Update.
5527
5528 2004-10-29  Colin Walters  <walters@redhat.com>
5529
5530         Patch from Kristof Vansant <de_lupus@pandora.be>
5531
5532         * configure.in: Detect Slackware.
5533         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5534         * bus/rc.messagebus.in: New file.
5535
5536 2004-10-29  Colin Walters  <walters@redhat.com>
5537
5538         * tools/dbus-monitor.c (filter_func): Return
5539         DBUS_HANDLER_RESULT_HANDLED in filter function
5540         for now.  See:
5541         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5542
5543 2004-10-29  Colin Walters  <walters@redhat.com>
5544
5545         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5546
5547         * bus/services.c (bus_registry_acquire_service): 
5548         Correctly retrieve service name from DBusString
5549         for printing.
5550
5551 2004-10-29  Colin Walters  <walters@redhat.com>
5552
5553         * dbus/dbus-glib.h: Update documentation to not
5554         refer to internal APIs.
5555
5556 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5557
5558         * mono/Arguments.cs (GetDBusTypeConstructor):
5559         type.UnderlyingSystemType will return "System.Byte" if you do it
5560         on "byte[]", which is not what we want.  So check the type.IsArray
5561         property and use System.Array instead.
5562
5563 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5564
5565         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5566         the DBusUserInfo structure since this is passed into the function.
5567         This would cause a double free when the function that allocated
5568         the structure would try to free it when an error occured.
5569
5570         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5571         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5572         for service activation to avoid 32bit/64bit parallel install issues
5573
5574 2004-10-21  Colin Walters  <walters@verbum.org>
5575
5576         * AUTHORS: Fix my email address, the @gnu.org one
5577         has been bouncing for some time.  Also add J5.
5578         
5579 2004-10-21  Colin Walters  <walters@verbum.org>
5580
5581         * dbus/dbus-transport-unix.c (do_authentication): Return
5582         authentication status to callers.
5583         (unix_handle_watch): If we completed authentication this round,
5584         don't do another read.  Instead wait until the next iteration,
5585         after we've read any pending data in the auth buffer.
5586         (unix_do_iteration): Ditto.
5587         (unix_handle_watch): Updated for new do_authentication prototype.
5588
5589 2004-10-18  Colin Walters  <walters@verbum.org>
5590
5591         * bus/selinux.c (bus_selinux_enabled): Handle
5592         --disable-selinux case.
5593         
5594 2004-10-18  Colin Walters  <walters@verbum.org>
5595
5596         * bus/selinux.h: Add bus_selinux_enabled.
5597         
5598         * bus/selinux.c (bus_selinux_enabled): Implement it.
5599         
5600         * bus/config-parser.c (struct include): Add
5601         if_selinux_enabled member.
5602         (start_busconfig_child): Parse if_selinux_enabled
5603         attribute for include.
5604         (bus_config_parser_content): Handle it.
5605
5606         * bus/session.conf.in, bus/system.conf.in: Add
5607         inclusion of context mapping to default config files;
5608         conditional on SELinux being enabled.
5609         
5610         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5611         
5612         * test/data/invalid-config-files/badselinux-1.conf, 
5613         test/data/invalid-config-files/badselinux-2.conf:
5614         Test files for bad syntax.
5615         
5616 2004-10-17  Colin Walters  <walters@verbum.org>
5617
5618         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5619         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5620         format specifier mismatches.
5621
5622 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5623
5624         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5625         format string.
5626
5627         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5628         pointer (bug #1540, Leonardo Boiko).
5629
5630 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5631
5632         * mono/BusDriver.cs: Changed BusDriver struct to remove
5633         the ServiceCreated and ServiceDeleted events and replace them
5634         with the new ServiceOwnerChanged event.
5635
5636         * mono/example/BusListener.cs: Added a new example program,
5637         which listens for and reports any ServiceOwnerChanged events
5638         on the bus driver.
5639
5640         * mono/example/Makefile.am (DESTDIR): Build changes for the
5641         new BusListener.cs example.
5642
5643 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5644
5645         * bus/signals.c (bus_match_rule_parse): validate the components of
5646         match rules (bug #1439).
5647
5648         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5649
5650 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5651
5652         * doc/dbus-specification.xml: document ServiceOwnerChanged
5653         signal.
5654         
5655         * bus/driver.c, bus/driver.h, bus/services.c: Use
5656         ServiceOwnerChanged signal instead of ServiceCreated and
5657         ServiceDeleted.
5658         
5659         * bus/dispatch.c: update testcase for the new signal.
5660
5661 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5662
5663         Patch from Nat Friedman <nat@novell.com>
5664
5665         * mono/Makefile.am: A number of small build fixes to allow "make
5666         distcheck" to succeed.
5667
5668         * mono/example/Makefile.am: "make distcheck" fixes.
5669
5670         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5671         key in @srcdir@.
5672
5673         * test/Makefile.am: "make distcheck" fixes.
5674
5675 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5676
5677         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5678
5679         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5680
5681         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5682         messages after the first one (bug #1389).
5683         
5684         * bus/dispatch.c (check_double_hello_message): add a test case for
5685         the double hello message bug.
5686         (check_existent_service_activation): fix check of spawning error.
5687         
5688 2004-09-16  David Zeuthen  <david@fubar.dk>
5689
5690         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5691
5692 2004-09-12  David Zeuthen  <david@fubar.dk>
5693
5694         Patch from Kay Sievers <kay.sievers@vrfy.org>
5695
5696         * bus/bus.c (bus_context_new):
5697         * bus/bus.h:
5698         * bus/main.c (usage)
5699         (main):
5700         Add commandline option --nofork to override configuration file
5701         setting.
5702
5703 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5704
5705         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5706         compilers don't like it (bug #974).
5707
5708 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5709
5710         * qt/connection.*: Applied patch by Jérôme Lodewyck
5711         <lodewyck@clipper.ens.fr> to integrate an existing
5712         connection into the Qt eventloop
5713
5714 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5715
5716         * mono/BusDriver.cs: Added.  This is a class for interacting with
5717         the org.freedesktop.DBus service.
5718
5719         * mono/Message.cs: Added a mechanism to expose the message that is
5720         currently being dispatched via the static Message.Current
5721         property.  Added Message.Sender and Message.Destination
5722         properties.
5723
5724         * mono/Handler.cs: Expose the dispatched message via
5725         Message.Current when handling method calls.
5726
5727         * mono/Service.cs: Expose the dispatched message via
5728         Message.Current when handling signal emissions.
5729         
5730         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5731         Connection.BaseService property.
5732
5733 2004-08-28  Havoc Pennington  <hp@redhat.com>
5734
5735         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5736
5737         More fixes from Steve Grubb
5738         
5739         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5740         (_dbus_listen_tcp_socket): fix fd leak
5741
5742         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5743         EINTR to a bit lower in the code
5744
5745 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5746
5747         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5748         TRUE if we are inquiring about the existence of the built-in
5749         org.freedesktop.DBus service.
5750
5751 2004-08-25  John Palmieri  <johnp@redhat.com>
5752         * bus/config-parser.c:
5753         (struct PolicyType): Add POLICY_CONSOLE
5754         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5755         (start_busconfig_child): Sets up console element when
5756         <policy at_console=""> is encountered in a policy file
5757         (append_rule_from_element): Convert console elements to console
5758         rules.
5759
5760         * bus/policy.c: 
5761         (bus_policy_create_client_policy): Add console rules to the client
5762         policy based on if the client is at the console
5763         (bus_policy_append_console_rule): New function for adding a
5764         console rule to a policy
5765         (bus_policy_merge): Handle console rule merging
5766
5767         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5768         where we check for console user files
5769         
5770         * dbus/dbus-sysdeps.c:
5771         (_dbus_file_exists): New function which checks if the given
5772         file exists
5773         (_dbus_user_at_console): New function which does the system
5774         specific process of checking if the user is at the console
5775
5776         * dbus/dbus-userdb.c:
5777         (_dbus_is_console_user): New function converts a UID to user name
5778         and then calls the system specific _dbus_user_at_console to 
5779         see if the user is at the console and therefor a console user
5780
5781 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5782
5783         * bus/config-parser.c (set_limit):
5784         * bus/dbus-daemon-1.1.in:
5785         * test/data/valid-config-files/many-rules.conf: set the
5786         max_match_rules_per_connection limt from the config file. 
5787
5788         * doc/busconfig.dtd: update the DTD.
5789
5790         * bus/driver.c: remove some unused variables.
5791
5792 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5793
5794         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5795         it's been replaced by dbus_g_bus_get
5796
5797 2004-08-23  Colin Walters  <walters@redhat.com>
5798
5799         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5800
5801         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5802
5803         * bus/selinux.c: Create a thread for policy reload notification.
5804         (bus_selinux_get_policy_root): Implement.
5805
5806         * bus/config-parser.c (start_busconfig_child)
5807         (bus_config_parser_content): Support SELinux-root relative
5808         inclusion.
5809
5810         * configure.in <HAVE_SELINUX>: Add -lpthread.
5811         
5812         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5813         (test_post_hook): Move memory checking into here.
5814         (test_pre_hook, test_post_hook): Move SELinux checks in
5815         here, but conditional on a DBUS_TEST_SELINUX environment
5816         variable.  Unfortunately we can't run the SELinux checks
5817         as a normal user, since they won't have any permissions
5818         for /selinux.  So this will have to be tested manually
5819         for now, until we have virtualization for most of
5820         libselinux.
5821         
5822 2004-08-23  Havoc Pennington  <hp@redhat.com>
5823
5824         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5825         drop supplementary groups, suggested by Steve Grubb
5826
5827 2004-08-20  Colin Walters  <walters@redhat.com>
5828
5829         * bus/config-parser.c (start_busconfig_child): Remove some unused
5830         variables.
5831         
5832         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5833         warning.
5834
5835 2004-08-17  Joe Shaw  <joeshaw@novell.com>
5836
5837         * configure.in: If --enable-mono is passed in, if we can't find
5838         mono error out.
5839
5840         * mono/Makefile.am: Use /gacutil to install assemblies into the
5841         GAC and not /root.
5842
5843 2004-08-12  Havoc Pennington  <hp@redhat.com>
5844
5845         * NEWS: update for 0.22
5846
5847         * configure.in: release 0.22
5848
5849 2004-08-11  Colin Walters  <walters@redhat.com>
5850
5851         * tools/dbus-send.c (main, usage): Add --reply-timeout
5852         argument.
5853
5854 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5855
5856         * bus/bus.c (process_config_first_time_only): get rid of an unused
5857         DBusError that was causing a memoy leak (bug #989).
5858
5859         * dbus/dbus-keyring.c, dbus/dbus-message.c:
5860         fix compilation on Solaris/Forte C (bug #974)
5861
5862         * bus/main.c (main): plug two minuscule memleaks.
5863
5864 2004-08-10  Havoc Pennington  <hp@redhat.com>
5865
5866         * doc/dbus-tutorial.xml: add some more info on GLib bindings
5867
5868 2004-08-09  Havoc Pennington  <hp@redhat.com>
5869
5870         * COPYING: switch to Academic Free License version 2.1 instead of
5871         2.0, to resolve complaints about patent termination clause.
5872
5873 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
5874
5875         * README: added documentation for the --enable-python 
5876         configure switch.
5877
5878 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5879
5880         * bus/config-parser.c (bus_config_parser_new): fix an invalid
5881         _unref in the SELinux support.
5882
5883         * doc/busconfig.dtd: update DTD for SELinux support.
5884
5885         * bus/config-loader-libxml.c: fix error handler and parser
5886         initialisation/cleanup. OOM test now works with libxml2 HEAD.
5887
5888         * configure.in: remove the warning about libxml2.
5889
5890         * dbus/dbus-bus.c: silence doxygen warning.
5891
5892 2004-07-31  Colin Walters  <walters@redhat.com>
5893
5894         * configure.in: Move #error in SELinux check to its own line.
5895
5896 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5897
5898         * dbus/dbus-internals.h (_DBUS_SET_OOM):
5899         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5900         dbus_error_set.
5901
5902         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5903         broken by the change in the _SET_OOM macros.
5904
5905 2004-07-31  Colin Walters  <walters@redhat.com>
5906
5907         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5908         BUS_SET_OOM.
5909
5910 2004-07-31  Colin Walters  <walters@redhat.com>
5911
5912         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5913         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
5914         AC_MSG_CHECKING.
5915
5916 2004-07-24  Havoc Pennington  <hp@redhat.com>
5917
5918         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5919
5920         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5921         functionality
5922
5923         * configure.in: add --enable-selinux
5924         
5925         * bus/policy.c (bus_policy_merge): add FIXME to a comment
5926
5927         * bus/main.c (main): initialize and shut down selinux
5928
5929         * bus/connection.c: store SELinux ID on each connection, to avoid 
5930         repeated getting of the string context and converting it into 
5931         an ID
5932
5933         * bus/bus.c (bus_context_get_policy): new accessor, though it
5934         isn't used
5935         (bus_context_check_security_policy): check whether the security
5936         context of sender connection can send to the security context of
5937         recipient connection
5938
5939         * bus/config-parser.c: add parsing for <selinux> and <associate>
5940         
5941         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5942         implement dbus_connection_get_unix_fd()
5943
5944         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5945         function, used by the selinux stuff
5946         
5947 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5948
5949         * bus/config-loader-libxml.c: complete the implementation of
5950         libxml backend for config file loader. Doesn't work with full OOM
5951         test yet. 
5952         
5953         * configure.in: change error when selecting libxml into a warning.
5954         
5955         * test/data/invalid-config-files: add two non-well-formed XML
5956         files. 
5957         
5958         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5959         
5960         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5961         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5962         be necessary to read all the buffer. (bug #894)
5963
5964         * bus/activation.c (bus_activation_activate_service): fix a
5965         potential assertion failure (bug #896). Small optimization in the
5966         case of auto-activation messages.
5967
5968         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5969         add test case for byte-through-vararg bug (#901). patch by Kimmo
5970         Hämäläinen. 
5971
5972 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5973
5974         * python/dbus.py:
5975         * python/dbus_bindings.pyx.in:
5976         Add dbus.init_gthreads (), allow emit_signal to pass
5977         arguments to the signal.
5978         
5979 2004-07-24  Havoc Pennington  <hp@redhat.com>
5980
5981         * AUTHORS: add some people, not really comprehensively, let me
5982         know if I missed you
5983
5984 2004-07-24  Havoc Pennington  <hp@redhat.com>
5985
5986         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5987         Owen
5988
5989         * test/Makefile.am (DIST_SUBDIRS): here also
5990
5991 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5992
5993         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5994         breaking build on Solaris, reported by Farhad Saberi on the ML.
5995
5996         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5997         va_arg invocation to account for integer promotion in the case of
5998         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5999
6000         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6001         _dbus_list_get_first_link, not _dbus_list_get_first.
6002
6003         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6004
6005         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6006         handler functions so that the asserts in _dbus_object_subtree_unref
6007         do not fail.
6008
6009         * dbus/dbus-transport-unix.c (do_reading):
6010         _dbus_transport_queue_messages return value is of type
6011         dbus_bool_t, not DBusDispatchStatus.
6012         
6013 2004-07-19  David Zeuthen  <david@fubar.dk>
6014
6015         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6016
6017         * bus/dispatch.c:
6018         (check_get_connection_unix_user): Debug says GetProperty; but the
6019         method is called GetConnectionUnixUser
6020         (check_get_connection_unix_process_id): New function
6021         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6022         also call check_get_connection_unix_process_id()
6023         
6024         * bus/driver.c:
6025         (bus_driver_handle_get_connection_unix_process_id): New function,
6026         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6027         interface
6028         
6029         * dbus/dbus-auth.c:
6030         (handle_server_data_external_mech): Set pid from the credentials
6031         obtained from the socket
6032         
6033         * dbus/dbus-connection.c:
6034         (dbus_connection_get_unix_process_id): New function
6035         
6036         * dbus/dbus-connection.h: 
6037         Add prototype for dbus_connection_get_unix_process_id
6038         
6039         * dbus/dbus-transport.c:
6040         (_dbus_transport_get_unix_process_id): New function
6041         
6042         * dbus/dbus-transport.h:
6043         Add prototype for _dbus_transport_get_unix_process_id
6044         
6045 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6046
6047         * dbus/dbus-message.c: Message counter fix, patch by Christian
6048         Hammond <chipx86@gnupdate.org>
6049
6050 2004-07-18  Seth Nickell  <seth@gnome.org>
6051
6052         * python/dbus.py:
6053         * python/dbus_bindings.pyx.in:
6054         * python/tests/test-client.py:
6055
6056         Add dbus.ByteArray and dbus_bindings.ByteArray
6057         types so that byte streams can be passed back.
6058
6059         Give jdahlin the heaps of credit that are so
6060         rightfully his.
6061         
6062 2004-07-12  Seth Nickell  <seth@gnome.org>
6063
6064         * python/dbus.py:
6065
6066         Add message argument to the default object_method_handler
6067         function.
6068         
6069         * python/dbus_bindings.pyx.in:
6070
6071         Automatically return NIL when passed an empty list
6072         (we can't pass back a list since lists are typed
6073         and we don't have any idea what type the the client
6074         intended the list to be... :-( )
6075         
6076 2004-07-10  Seth Nickell  <seth@gnome.org>
6077
6078         * python/examples/Makefile.am:
6079
6080         Fix distcheck breakage caused by new examples.
6081
6082 2004-07-10  Seth Nickell  <seth@gnome.org>
6083
6084         * python/dbus.py:
6085
6086         Add "message" argument to service-side dbus.Object
6087         methods. This will break existing services written
6088         using the python bindings, but will allow extraction
6089         of all the message information (e.g. who its from).
6090
6091         Add improved "object oriented" signal handling/emission.
6092         
6093         * python/examples/example-service.py:
6094
6095         Nix this example.
6096         
6097         * python/examples/example-signal-emitter.py:
6098         * python/examples/example-signal-recipient.py:
6099
6100         Two new examples that show how to emit and receive
6101         signals using the new APIs.
6102         
6103         * python/examples/example-signals.py:
6104         * python/examples/gconf-proxy-service.py:
6105         * python/examples/gconf-proxy-service2.py:
6106
6107         Add "message" argument to service methods.
6108
6109 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6110
6111         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6112         * dbus/bus.c (dbus_bus_get_unix_user)
6113         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6114         method of org.freedesktop.DBus interface.
6115
6116         * bus/dispatch.c: test case
6117
6118 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6119
6120         * python/Makefile.am: switched include directory from glib/ to dbus/
6121         since dbus-glib.h moved
6122  
6123 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6124
6125         * configure.in: prevent building the gcj stuff and libxml loader
6126         since they are broken.
6127
6128 2004-06-20  Havoc Pennington  <hp@redhat.com>
6129
6130         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6131         codes from the dbus error names
6132         
6133         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6134         as dbus/dbus-glib.h and that breakage is now visible due to 
6135         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6136         
6137         * glib/dbus-glib.h: s/gproxy/g_proxy/
6138
6139         * dbus/dbus-shared.h: new header to hold stuff shared with
6140         binding APIs
6141         
6142         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6143         than dbus-errors.h
6144
6145         * glib/dbus-glib.h (dbus_set_g_error): move to
6146         dbus-glib-lowlevel.h
6147
6148         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6149         of stuff to enable this
6150
6151         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6152
6153         * a bunch of other changes with the same basic "separate glib 
6154         bindings from dbus.h" theme
6155         
6156 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6157
6158         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6159
6160         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6161
6162 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6163
6164         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6165         the reply value of the ServiceExists message.
6166
6167 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6168
6169         * python/dbus_bindings.pyx.in: No longer need to parse path
6170         elements and pass them as arrays of strings.  The C API now
6171         accepts plain path strings.
6172         (_build_parsed_path): removed 
6173
6174 2004-06-07  Havoc Pennington  <hp@redhat.com>
6175
6176         * doc/TODO: remove auto-activation item since it's done; sort
6177         items by importance/milestone
6178
6179 2004-06-07  Havoc Pennington  <hp@redhat.com>
6180
6181         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6182         random signature when using REQUIRED_FIELDS (this hack won't work
6183         in the long term)
6184
6185         * dbus/dbus-message.c: change the signature to be a header field,
6186         instead of message->signature special-case string. Incremental
6187         step forward. Then we can fix up code to send the signature in the
6188         message, then fix up code to validate said signature, then fix up
6189         code to not put the typecodes inline, etc.
6190         (load_one_message): don't make up the signature after the fact
6191         (decode_header_data): require signature field for the known
6192         message types
6193
6194         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6195
6196         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6197
6198 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6199
6200         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6201
6202         * mono/Handler.cs: Updated to follow new path argument for
6203         (un-)registering objects.
6204
6205         * mono/example/Makefile.am:
6206         * mono/Makefile.am:
6207         * configure.in: Bumped required version for mono and use new -pkg
6208         syntax for deps
6209
6210 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6211
6212         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6213         registration functions take the path argument as char* instead of
6214         char**.
6215
6216         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6217         split off the path decompostion part of
6218         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6219         warnings. 
6220
6221         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6222         
6223 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6224  
6225         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6226         machine approach.  A state is implemented as a function that
6227         handles incoming events as specified for that state.
6228         
6229         * doc/dbus-specification.xml: Update auth protocol state machine
6230         specification to match implementation.  Remove some leftover
6231         base64 examples.
6232
6233 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6234
6235         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6236         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6237         quiet doxygen.
6238
6239         * Doxyfile.in: remove deprecated options.
6240
6241         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6242         glib/test-thread.h, glib/test-thread-client.c,
6243         glib/test-thread-server.c, glib/test-profile.c,
6244         glib/test-dbus-glib.c: remove these unused files.
6245
6246 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6247
6248         * dbus/dbus-object-tree.c
6249         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6250         non-fallback handlers (bug #684).
6251         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6252         (find_subtree_recurse): report wether the returned subtree is an
6253         exact match or a "fallback" match higher up in the tree.
6254         (object_tree_test_iteration): update test case.
6255
6256 2004-06-01  Seth Nickell  <seth@gnome.org>
6257
6258         * python/dbus_bindings.pyx.in:
6259         * python/tests/test-client.py:
6260
6261         Round off basic type support. Add dicts (yay!), and 
6262         remaining array types.
6263
6264         Make MessageIter more general so it works for dicts too.
6265
6266         Mark all loop variables as C integers.
6267         
6268 2004-05-31  Havoc Pennington  <hp@redhat.com>
6269
6270         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6271         "in" before "out"
6272
6273         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6274
6275         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6276         option that runs the tests, and start filling in some code
6277         including for starters just dumping the interfaces to stdout
6278
6279         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6280
6281         * test/data/valid-introspection-files/lots-of-types.xml: test of
6282         an example introspection file
6283
6284         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6285         "node" (I think...)
6286
6287 2004-05-31  Seth Nickell  <seth@gnome.org>
6288
6289         * python/dbus_bindings.pyx.in:
6290         * python/tests/test-client.py:
6291
6292         Test Suite: 1
6293         Python Bindings: 0
6294
6295         Fix string array memory trashing bug... oops...
6296
6297 2004-05-30  Seth Nickell  <seth@gnome.org>
6298
6299         * python/dbus.py:
6300
6301         Add a nicer-but-less-flexible alternate API for handling 
6302         calls to virtual objects in dbus.ObjectTree.
6303
6304         Screw up the argument order to the dbus.Object constructor
6305         for consistency with dbus.ObjectTree (and to make dbus_methods
6306         optional for future extension)
6307         
6308         * python/examples/Makefile.am:
6309         * python/examples/gconf-proxy-service.py:
6310         * python/examples/gconf-proxy-service2.py:
6311
6312         Alternate implementation of gconf-proxy-service using the
6313         nicer dbus.ObjectTree API.
6314         
6315         * python/examples/example-service.py:
6316         * python/tests/test-server.py
6317
6318         Reverse the argument order to deal with dbus.Object constructor
6319         changes.
6320         
6321 2004-05-30  Seth Nickell  <seth@gnome.org>
6322
6323         * python/examples/example-client.py:
6324         * python/examples/example-service.py:
6325
6326         Take it back. Lists seem to work but they're broken
6327         in the test suite. Make the base examples use
6328         lists (works fine).
6329
6330 2004-05-30  Seth Nickell  <seth@gnome.org>
6331
6332         * python/dbus_bindings.pyx.in:
6333         * python/tests/test-client.py:
6334
6335         Add some more tests and fix errors that crop up.
6336         Unfortunately, currently it seems like marshalling
6337         and unmarshalling of lists is completely broken :-(
6338
6339 2004-05-30  Seth Nickell  <seth@gnome.org>
6340
6341         * python/dbus_bindings.pyx.in:
6342
6343         Add support for ObjectPath type.
6344
6345         * python/dbus.py:
6346
6347         Refactor message handling code to a common function.
6348         
6349         * python/tests/test-client.py:
6350         * python/tests/test-server.py:
6351
6352         Add tests that check to make sure values of all types
6353         can be echoed from a service w/o mangling.
6354         
6355 2004-05-29  Seth Nickell  <seth@gnome.org>
6356
6357         * python/dbus.py:
6358
6359         Add ObjectTree class which allows implementation
6360         of trees of "virtual" objects. Basically the python
6361         wrapper for "register_fallback".
6362         
6363         * python/examples/Makefile.am
6364         * python/examples/gconf-proxy-client.py:
6365         * python/examples/gconf-proxy-service.py:
6366
6367         Implement a simple GConf proxy service that supports
6368         get/set on string and int GConf keys using the ObjectTree.
6369         
6370 2004-05-29  Seth Nickell  <seth@gnome.org>
6371
6372         * python/dbus.py:
6373         * python/examples/example-client.py:
6374         * python/examples/example-service.py:
6375         * python/examples/list-system-services.py:
6376
6377         Add SessionBus, SystemBus and ActivationBus classes
6378         so you don't need to know the special little BUS_TYPE
6379         flag.
6380         
6381 2004-05-29  Havoc Pennington  <hp@redhat.com>
6382
6383         * bus/config-parser.c (process_test_valid_subdir): temporarily
6384         stop testing config parser OOM handling, since expat has issues
6385         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6386
6387         * bus/dbus-daemon-1.1.in: change requested_reply to
6388         send_requested_reply/receive_requested_reply so we can send the
6389         replies, not just receive them.
6390
6391         * bus/config-parser.c: parse the new
6392         send_requested_reply/receive_requested_reply
6393
6394         * bus/policy.c (bus_client_policy_check_can_send): add
6395         requested_reply argument and use it
6396
6397         * bus/bus.c (bus_context_check_security_policy): pass through
6398         requested_reply status to message send check
6399
6400         * bus/system.conf.in: adapt to requested_reply change
6401         
6402 2004-05-28  Havoc Pennington  <hp@redhat.com>
6403
6404         * test/glib/test-service-glib.c (main): remove unused variable
6405
6406         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6407
6408         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6409         from the enum, no longer in use.
6410
6411         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6412         works right.
6413
6414         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6415         whether error_name passed in is a valid error name.
6416
6417 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6418
6419         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6420         OBJECT_PATH and OBJECT_PATH_ARRAY
6421
6422 2004-05-28  Seth Nickell  <seth@gnome.org>
6423
6424         * python/examples/Makefile.am:
6425
6426         Forget to add Makefile.am. Do not pass go.
6427
6428 2004-05-28  Michael Meeks  <michael@ximian.com>
6429
6430         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6431         fix no int64 case.
6432
6433         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6434
6435         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6436         (_dbus_message_iter_get_basic_type_array): impl.
6437         drastically simplify ~all relevant _get methods to use these.
6438         (_dbus_message_iter_append_basic_array),
6439         (dbus_message_iter_append_basic): impl
6440         drastically simplify ~all relevant _append methods to use these.
6441
6442         * dbus/dbus-message-builder.c (parse_basic_type) 
6443         (parse_basic_array, lookup_basic_type): impl.
6444         (_dbus_message_data_load): prune scads of duplicate /
6445         cut & paste coding.
6446
6447         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6448         (_dbus_demarshal_basic_type): implement,
6449         (demarshal_and_validate_len/arg): beef up debug.
6450         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6451
6452 2004-05-27  Seth Nickell  <seth@gnome.org>
6453
6454         * configure.in:
6455         * python/Makefile.am:
6456
6457         Include the example python apps in the tarball.
6458         
6459         * python/examples/list-system-services.py
6460
6461         Add a python new example that fetches the list of services
6462         from the system bus.
6463         
6464 2004-05-27  Seth Nickell  <seth@gnome.org>
6465
6466         * python/dbus.py:
6467         * python/dbus_bindings.pyx.in:
6468
6469         Fix failure to notify that a signal was not handled,
6470         resulted in hung functions.
6471         
6472 2004-05-25  Colin Walters  <walters@redhat.com>
6473
6474         * tools/dbus-monitor.c (main): Monitor all types of messages.
6475
6476 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6477
6478         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6479         which unregisters the object path and disposes the handler.
6480
6481 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6482  
6483         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6484          
6485         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6486         operands to && so we call dbus_message_iter_next () for the last
6487         argument also.
6488
6489 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6490
6491         * dbus/dbus-object-tree.c
6492         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6493         children even if the requested path isn't registered.
6494         (object_tree_test_iteration): test object_tree_list_registered.
6495
6496         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6497         it to 0.
6498         
6499 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6500
6501         * doc/TODO: Remove resolved items.
6502
6503         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6504         field.
6505         
6506         * bus/connection.c (bus_connections_expect_reply): Enforce the
6507         per-connection limit on pending replies.
6508         
6509         Patch from Jon Trowbridge <trow@ximian.com>:
6510  
6511         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6512         up a watch that triggers a config reload when one end of the pipe
6513         becomes readable.
6514         (signal_handler): Instead of doing the config reload in our SIGHUP
6515         handler, just write to the reload pipe and let the associated
6516         watch handle the reload when control returns to the main loop.
6517  
6518         * bus/driver.c (bus_driver_handle_reload_config): Added.
6519         Implements a ReloadConfig method for requesting a configuration
6520         file reload via the bus driver.
6521  
6522 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6523
6524         * HACKING: Updated release instructions concerning the wiki page.
6525
6526 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6527
6528         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6529         filter against auth->allowed_mechs; we only add allowed mechs in
6530         record_mechanisms().
6531  
6532         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6533         ALLOWED_MECHS to auth-script format so we can set the list of
6534         allowed mechanisms.
6535  
6536         * data/auth/client-out-of-mechanisms.auth-script: New test to
6537         check client disconnects when it is out of mechanisms to try.
6538  
6539         * dbus/dbus-auth.c (process_command): Remove check for lines
6540         longer that 1 MB; we only buffer up maximum 16 kB.
6541  
6542         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6543         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6544         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6545         assume there might be unused bytes.
6546  
6547         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6548         client-out-of-mechs, it is handled in process_reject(). Move check
6549         for max failures to send_rejected(), as it's a server-only thing.
6550
6551         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6552         send_auth(), send_data(), send_rejected(), send_error(),
6553         send_ok(), send_begin() and send_cancel().
6554
6555 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6556
6557         Remove base64 encoding, replace with hex encoding. Original patch
6558         from trow@ximian.com, added error handling.
6559
6560         * dbus/dbus-string.c (_dbus_string_base64_encode)
6561         (_dbus_string_base64_decode): Remove.
6562         (_dbus_string_hex_decode): Add end_return argument so we can
6563         distinguish between OOM and invalid hex encoding.
6564         (_dbus_string_test): Remove base64 tests and add test case for
6565         invalid hex.
6566
6567         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6568         Replace base64 with hex.
6569
6570         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6571         for invalid hex encoded data in auth protocol.
6572
6573 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6574
6575         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6576         leak.
6577
6578 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6579
6580         * mono/dbus-sharp.dll.config.in: Added for GAC
6581         * mono/dbus-sharp.snk: Added for GAC
6582         * mono/Assembly.cs.in: Added for GAC
6583         * mono/Makefile.am: Changes for GAC installation        
6584         * configure.in: Added refs for dbus-sharp.dll.config.in and
6585         Assembly.cs.in. More fixes for mono testing
6586         * mono/example/Makefile.am: Changed var to CSC
6587         * Makefile.am: Changed flag name to DBUS_USE_CSC
6588
6589 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6590
6591         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6592         * mono/doc/*: Added documentation framework
6593         * configure.in: Added monodoc check
6594         * README: Added description of mono configure flags
6595
6596 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6597
6598         * doc/dbus-specification.xml: Added a "Required" column to the 
6599         header fields table and changed the "zero or more" verbage in
6600         the above paragraph to read "The header must contain the required 
6601         named header fields and zero or more of the optional named header 
6602         fields".
6603         * test/data/invalid-messages/*.message: Added the required PATH 
6604         named header field to the tests so that they don't fail on 
6605         'Missing path field'
6606
6607 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6608
6609         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6610         the stack by implicitly defining variable and parameter types and
6611         removing the hack of defining C pointers as python objects and later
6612         casting them.
6613
6614 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6615
6616         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6617
6618 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6619
6620         * mono/DBusType/Dict.cs: Handle empty dicts
6621         * mono/DBusType/Array.cs: Handle empty arrays
6622         * mono/Arguments.cs: Handle empty arguments
6623
6624 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6625
6626         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6627         field
6628
6629 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6630
6631         * test/data/valid-messages/standard-*.message: Update message
6632         test scripts to new header field names.
6633
6634 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6635
6636         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6637         overflow to times_we_did_each_thing array which would chop off the
6638         first character of the failure_dir string. Increased the size of
6639         the array to 7 to reflect the number of random mutation functions
6640         we have.
6641
6642 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6643
6644         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6645         unix_server->watch here, it is unreffed in disconnect.
6646         (_dbus_server_new_for_tcp_socket): convert NULL host to
6647         "localhost" here so we don't append NULL to address.
6648         
6649         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6650         various addresses, including tcp with no explicit host.
6651
6652 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6653
6654         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6655         fix incorrect setting of .name_offset in the HeaderField (it was
6656         off by two bytes, positioned right after the name and typecode)
6657
6658         * bus/bus.c (bus_context_new, bus_context_unref): test before
6659         calling dbus_server_free_data_slot and _dbus_user_database_unref
6660         in case of an error.
6661
6662         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6663         by libdbus-gtool.
6664
6665 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6666
6667         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6668         _dbus_poll() instead of select().
6669
6670 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6671
6672         * bus/main.c (signal_handler): Reload the configuration files
6673         on SIGHUP.
6674         (main): Set up our SIGHUP handler.
6675
6676         * bus/bus.c (struct BusContext): Store the config file, user and
6677         fork flag in the BusContext.
6678         (process_config_first_time_only): Added.  Contains the code
6679         (previously in bus_context_new) for setting up the BusContext from
6680         the BusConfigParser that should only be run the first time the
6681         config files are read.
6682         (process_config_every_time): Added.  Contains the code (previously
6683         in bus_context_new) for setting up the BusContext from the
6684         BusConfigParser that should be run every time the config files are
6685         read.
6686         (load_config): Added.  Builds a BusConfigParser from the config
6687         files and passes the resulting structure off to
6688         process_config_first_time_only (assuming this is the first time)
6689         and process_config_every_time.
6690         (bus_context_new): All of the config-related code has been moved
6691         to process_config_first_time_only and process_config_every_time.
6692         Now this function just does the non-config-related initializations
6693         and calls load_config.
6694         (bus_context_reload_config): Added.
6695
6696 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6697
6698         * bus/driver.c (bus_driver_handle_get_service_owner):
6699         implement a GetServiceOwner method.
6700         * doc/dbus-specification.xml: document it.
6701         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6702         
6703         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6704         implement, using the bus GetServiceOwner method.
6705
6706         * test/glib/test-dbus-glib.c:
6707         use dbus_gproxy_new_for_service_owner so that we can receive the
6708         signal. 
6709
6710 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6711
6712         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6713         dbus/dbus-message.c, dbus/dbus-protocol.h
6714         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6715
6716         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6717         dbus/dbus-message.c, dbus/dbus-protocol.h
6718         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6719
6720         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6721         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6722         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6723
6724         * doc/dbus-specification.xml (Header Fields Table):
6725         s/SERVICE/DESTINATION
6726         s/SENDER_SERVICE/SENDER
6727
6728
6729 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6730
6731         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6732         a few seconds.
6733
6734 2004-04-13  Michael Meeks  <michael@ximian.com>
6735
6736         * glib/dbus-gobject.c (handle_introspect): split out
6737         (introspect_properties): this.
6738         (handle_introspect): implement this.
6739
6740         * test/glib/Makefile.am: use the absolute path so the bus
6741         daemon's chdir ("/") doesn't kill us dead.
6742
6743         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6744
6745 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6746
6747         * bus/config-parser.c (struct BusConfigParser): Added
6748         included_files field.
6749         (seen_include): Added.  Checks whether or not a file has already
6750         been included by any parent BusConfigParser.
6751         (bus_config_parser_new): Copy the parent's included_files.
6752         (include_file): Track which files have been included, and fail on
6753         circular inclusions.
6754         (process_test_valid_subdir): Changed printf to report if we are
6755         testing valid or invalid conf files.
6756         (all_are_equiv): Changed printf to be a bit clearer about
6757         what we are actually doing.
6758         (bus_config_parser_test): Test invalid configuration files.
6759
6760 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6761
6762         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6763         argument.  If non-null, the newly-constructed BusConfigParser will
6764         be initialized with the parent's BusLimits instead of the default
6765         values.
6766         (include_file): When including a config file, pass in
6767         the current parser as the parent and then copy the BusLimits
6768         from the included BusConfigParser pack to the current parser.
6769         (process_test_valid_subdir): Renamed from process_test_subdir.
6770         (process_test_equiv_subdir): Added.  Walks through a directory,
6771         descending into each subdirectory and loading the config files
6772         it finds there.  If any subdirectory contains two config files
6773         that don't produce identical BusConfigParser structs, fail.
6774         For now, the BusConfigParser's BusPolicies are not compared.
6775         (bus_config_parser_test): Call both process_test_valid_subdir and
6776         process_test_equiv_subdir.
6777
6778         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6779         argument and pass it along to the call to bus_config_parser_new.
6780         Also made a few small changes to allow this code to compile.
6781
6782         * bus/config-loader-expat.c (bus_config_load): Take a parent
6783         argument and pass it along to the call to bus_config_parser_new.
6784
6785         * bus/bus.c (bus_context_new): Load the config file
6786         with a NULL parent argument.
6787
6788 2004-03-29  Michael Meeks  <michael@ximian.com>
6789
6790         * glib/dbus-gobject.c (introspect_properties): split
6791         out, fix mangled 'while' flow control.
6792         (introspect_signals): implement.
6793         (handle_introspect): update.
6794
6795 2004-03-29  Michael Meeks  <michael@ximian.com>
6796
6797         * glib/dbus-gobject.c (set_object_property): split out / 
6798         re-work, use the property type, and not the message type(!)
6799         (get_object_property): ditto.
6800
6801         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6802         (dbus_gvalue_marshal): make this code re-usable, needed
6803         for signals too, also on both proxy and server side.
6804         Re-write for more efficiency / readability.
6805
6806 2004-03-29  Michael Meeks  <michael@ximian.com>
6807
6808         * dbus/dbus-message.c
6809         (dbus_message_new_error_printf): impl.
6810
6811         * dbus/dbus-connection.c
6812         (dbus_connection_unregister_object_path): fix warning.
6813
6814         * configure.in: fix no-mono-installed situation.
6815
6816 2004-03-27  Havoc Pennington  <hp@redhat.com>
6817
6818         Patch from Timo Teräs:
6819         
6820         * tools/dbus-send.c (main): if --print-reply, assume type is
6821         method call; support boolean type args
6822         
6823         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6824         bunch of memleak and logic bugs
6825         
6826 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6827
6828         * mono/Arguments.cs:
6829         * mono/Introspector.cs:
6830         * mono/Handler.cs:
6831         * mono/InterfaceProxy.cs:
6832         * mono/Message.cs
6833         * mono/ProxyBuilder.cs:
6834         * mono/Service.cs:
6835         Added InterfaceProxy class to avoid building proxies for every
6836         object.
6837
6838         * dbus-message.h:
6839         * dbus-message.c (dbus_message_append_args_valist)
6840         (dbus_message_iter_get_object_path)
6841         (dbus_message_iter_get_object_path_array)
6842         (dbus_message_iter_append_object_path)
6843         (dbus_message_iter_append_object_path_array):
6844         Added object_path iter functions to handle OBJECT_PATH arguments
6845         
6846 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6847
6848         First checkin of mono bindings.
6849         * configure.in:
6850         * Makefile.am:
6851         Build stuff for the bindings
6852         * dbus-sharp.pc.in: Added for pkgconfig
6853         
6854 2004-03-21  Havoc Pennington  <hp@redhat.com>
6855
6856         * test/test-service.c (main): remove debug spew
6857
6858 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6859
6860         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6861         arrays
6862
6863         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6864         (dbus_message_iter_init_array_iterator)
6865         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6866         indicate whether the iterator is empty
6867
6868         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6869         warnings
6870
6871 2004-03-19  Havoc Pennington  <hp@redhat.com>
6872
6873         * NEWS: 0.21 updates
6874
6875         * configure.in: 0.21
6876
6877         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6878         
6879         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6880         you don't need pyrex to make dist
6881
6882         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6883         sources; run moc
6884         
6885 2004-03-18  Richard Hult  <richard@imendio.com>
6886
6887         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
6888         (dbus_message_set_auto_activation): Add doxygen docs.
6889
6890 2004-03-16  Richard Hult  <richard@imendio.com>
6891
6892         * bus/activation.c: (bus_activation_service_created),
6893         (bus_activation_send_pending_auto_activation_messages),
6894         (bus_activation_activate_service):
6895         * bus/activation.h:
6896         * bus/dispatch.c: (bus_dispatch),
6897         (check_nonexistent_service_auto_activation),
6898         (check_service_auto_activated),
6899         (check_segfault_service_auto_activation),
6900         (check_existent_service_auto_activation), (bus_dispatch_test):
6901         * bus/driver.c: (bus_driver_handle_activate_service):
6902         * bus/services.c: (bus_registry_acquire_service):
6903         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6904         (dbus_message_get_auto_activation):
6905         * dbus/dbus-message.h:
6906         * dbus/dbus-protocol.h: Implement auto-activation.
6907         
6908         * doc/dbus-specification.xml: Add auto-activation to the spec.
6909
6910 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6911
6912         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6913         fix a bug with CUSTOM types.
6914
6915         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6916         a unit test for this bug (used to fail).
6917
6918 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6919
6920         * bus/activation.c:
6921         (babysitter_watch_callback): notify all pending activations waiting for
6922           the same exec that the activation failed.
6923         (bus_activation_activate_service): shortcut the activation if we 
6924           already waiting for the same executable to start up.
6925
6926 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6927
6928         * bus/activation.c: 
6929         - Added service file reloading. 
6930           Each service files directory is kept in an hash table in 
6931           BusActivation and each BusActivationEntry knows what .service-file it
6932           was read from. So when you try to activate a service the bus will 
6933           check if it's been updated, removed or if new .service-files has 
6934           been installed.
6935         - Test code at the bottom for the service file reloading.
6936         * bus/test-main.c: (main):
6937         * bus/test.h:
6938         - added service reloading test.
6939         * dbus/dbus-sysdeps.c: 
6940         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6941
6942 2004-03-08  Michael Meeks  <michael@ximian.com>
6943
6944         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
6945         bail immediately if disconnected, to avoid busy loop.
6946
6947         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6948         cleanup cut/paste/inefficiency.
6949
6950 2004-03-01  David Zeuthen  <david@fubar.dk>
6951
6952         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6953         bug where args were used twice. This bug resulted in a segfault
6954         on a Debian/PPC system when starting the messagebus daemon. Include
6955         dbus-sysdeps.h for DBUS_VA_COPY
6956
6957         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6958
6959         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6960         appropriate va_copy implementation. From GLib
6961         
6962 2004-02-24  Joe Shaw  <joe@ximian.com>
6963
6964         * bus/services.c (bus_registry_acquire_service): We need to pass
6965         in the service name to dbus_set_error() to prevent a crash.
6966
6967 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6968
6969         * AUTHORS: Reveal my True identity.
6970
6971 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6972
6973         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6974         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6975
6976 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6977
6978         * doc/TODO: Added not about better error check of configuration files.
6979
6980 2003-12-02  Richard Hult  <richard@imendio.com>
6981
6982         * Update AFL version to 2.0 throughout the source files to reflect
6983         the update that was done a while ago.
6984
6985 2003-12-02  Richard Hult  <richard@imendio.com>
6986
6987         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6988         wrote_dict_key to FALSE on the iter that the dict is appended to,
6989         just like when appending other types. Fixes a bug where a dict
6990         couldn't be put inside a dict.
6991         (dbus_message_iter_append_dict_key): Fix typo in warning message.
6992         (message_iter_test, _dbus_message_test): Add test case for dict
6993         inside dict.
6994
6995 2003-12-01  David Zeuthen  <david@fubar.dk>
6996
6997         * python/dbus.py: Add the actual message when calling the reciever
6998         of a signal such that parameters can be inspected. Add the method
6999         remove_signal_receiver
7000         
7001 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7002
7003         * bus/*.[ch]:
7004         * dbus/*.[ch]:
7005         * glib/*.[ch]: Made ref functions return the pointer
7006
7007 2003-11-25  Zack Rusin  <zack@kde.org>
7008
7009         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7010
7011         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7012         wrappers,
7013
7014         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7015         the Integrator and to better fit with the server,
7016
7017 2003-11-24  Zack Rusin  <zack@kde.org>
7018
7019         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7020         the integrator handles it now
7021
7022         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7023         since QTimer wasn't really meant to be used the way DBusTimeout is
7024
7025 2003-11-24  Zack Rusin  <zack@kde.org>
7026
7027         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7028         Integrator class which integrates D-BUS with the Qt event loop,
7029
7030         * qt/connection.h, qt/connection.cpp: Move all the code which
7031         was dealing with D-BUS integration to the Integrator class,
7032         and start using Integrator,
7033
7034 2003-11-23  Zack Rusin  <zack@kde.org>
7035
7036         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7037         wrapper
7038
7039         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7040         switching namespaces to DBusQt, reworking the class,
7041
7042         * Makefile.cvs: switching dependencies so that it matches KDE 
7043         schematics,
7044         
7045         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7046         the library
7047
7048 2003-11-19  Havoc Pennington  <hp@redhat.com>
7049
7050         * NEWS: update
7051
7052         * configure.in: bump version to 0.20
7053
7054         * configure.in (have_qt): add yet another place to look for qt
7055         (someone hand trolltech a .pc file...)
7056
7057 2003-11-01  Havoc Pennington  <hp@redhat.com>
7058
7059         * doc/dbus-specification.xml: add state machine docs on the auth
7060         protocol; just a first draft, I'm sure it's wrong.      
7061
7062 2003-10-28  David Zeuthen  <david@fubar.dk>
7063
7064         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7065         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7066         
7067 2003-10-28  Havoc Pennington  <hp@redhat.com>
7068
7069         * dbus/dbus-message.c (get_next_field): delete unused function
7070
7071 2003-10-28  Havoc Pennington  <hp@redhat.com>
7072
7073         * bus/expirelist.c (do_expiration_with_current_time): detect
7074         failure of the expire_func due to OOM
7075
7076         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7077
7078         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7079         NoReply error that's now created by the bus when the service exits
7080
7081 2003-10-28  Havoc Pennington  <hp@redhat.com>
7082
7083         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7084         tests for set_path, set_interface, set_member, etc.
7085
7086         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7087
7088         * dbus/dbus-message.c (set_string_field): always just delete and
7089         re-append the field; accept NULL for deletion
7090         (re_align_fields_recurse): reimplement
7091         
7092 2003-10-26  Havoc Pennington  <hp@redhat.com>
7093
7094         * dbus/dbus-connection.c: fix docs to properly describe the
7095         disconnected message
7096         (_dbus_connection_notify_disconnected): remove this function; 
7097         we can't synchronously add the disconnected message, we have to 
7098         do it after we've queued any remaining real messages
7099         (_dbus_connection_get_dispatch_status_unlocked): queue the
7100         disconnect message only if the transport has finished queueing all
7101         its real messages and is disconnected.
7102         (dbus_connection_disconnect): update the dispatch status here
7103
7104 2003-10-22  Havoc Pennington  <hp@redhat.com>
7105
7106         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7107
7108         * bus/connection.c (bus_transaction_send_from_driver): set the
7109         destination to the connection's base service
7110
7111 2003-10-20  Havoc Pennington  <hp@redhat.com>
7112
7113         hmm, make check is currently not passing.
7114         
7115         * doc/dbus-specification.xml: add requirement that custom type
7116         names follow the same rules as interface names.
7117
7118         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7119         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7120         'map'
7121
7122         * doc/dbus-specification.xml: update type codes to match
7123         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7124         CUSTOM. Add type OBJECT_PATH to the spec.
7125
7126 2003-10-17  Havoc Pennington  <hp@redhat.com>
7127
7128         * bus/driver.c (create_unique_client_name): use "." as separator
7129         in base service names instead of '-'
7130
7131         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7132         byte at the end of the string
7133
7134         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7135         optimization macros since string validation seems to be a slow
7136         point.
7137         
7138         * doc/dbus-specification.xml: restrict valid
7139         service/interface/member/error names. Add test suite code for the
7140         name validation.
7141
7142         * dbus/dbus-string.c: limit service/interface/member/error names 
7143         to [0-9][A-Z][a-z]_
7144
7145         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7146         format arg to verbose spew
7147
7148         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7149         memory, return instead of g_error
7150
7151         * test/test-service.c (path_message_func): support emitting a
7152         signal on request
7153
7154         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7155         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7156         assuming the activation bus was the session bus so that services
7157         started manually will still register.
7158         (init_connections_unlocked): fix so that in OOM situation we get
7159         the same semantics when retrying the function
7160         
7161         * test/test-service.c (main): change to use path registration, to
7162         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7163         than DBUS_BUS_SESSION
7164
7165 2003-10-16  Havoc Pennington  <hp@redhat.com>
7166
7167         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7168
7169         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7170         coverage of the tests
7171         (coverage-report.txt): don't move the .da and .bbg files around
7172
7173 2003-10-16  Havoc Pennington  <hp@redhat.com>
7174
7175         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7176         to put there
7177
7178 2003-10-16  Havoc Pennington  <hp@redhat.com>
7179
7180         * bus/connection.c (bus_pending_reply_expired): either cancel or
7181         execute, not both
7182         (bus_connections_check_reply): use unlink, not remove_link, as we
7183         don't want to free the link; fixes double free mess
7184
7185         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7186         where no reply was received
7187
7188         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7189         fix a refcount leak
7190
7191         * bus/signals.c (match_rule_matches): add special cases for the
7192         bus driver, so you can match on sender/destination for it.
7193
7194         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7195         DBUS_PRINT_BACKTRACE is set
7196
7197         * dbus/dbus-internals.c: add pid to assertion failure messages
7198
7199         * dbus/dbus-connection.c: add message type code to the debug spew
7200
7201         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7202         sender=foo not service=foo
7203
7204         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7205         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7206         DBUS_ACTIVATION_ADDRESS instead
7207
7208         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7209         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7210
7211         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7212         context struct
7213
7214         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7215         (dbus_message_iter_get_object_path_array): new function (half
7216         finished, disabled for the moment)
7217         
7218         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7219         DBUS_MESSAGE_TYPE_ERROR
7220
7221         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7222         avoid redirecting stderr to /dev/null
7223         (babysit): close stdin if not doing the "exit_with_session" thing
7224
7225         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7226         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7227         stdout/stdin, so things don't get confused
7228         
7229         * bus/system.conf.in: fix to allow replies, I modified .conf
7230         instead of .conf.in again.
7231
7232 2003-10-14  David Zeuthen  <david@fubar.dk>
7233
7234         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7235         argtype to arg_type when raising unknown arg type exception.
7236         Changed type list to reflect the changes in dbus-protocol.h so 
7237         the bindings actually work.
7238
7239 2003-10-14  Havoc Pennington  <hp@redhat.com>
7240
7241         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7242         to have a bug keeping it from outputting the .da files sometimes
7243         (string_get_string): don't append garbage nul bytes to the string.
7244
7245 2003-10-15  Seth Nickell  <seth@gnome.org>
7246
7247         * python/Makefile.am:
7248
7249         Include dbus_h_wrapper.h in the dist tarball.
7250
7251 2003-10-14  Havoc Pennington  <hp@redhat.com>
7252
7253         * bus/bus.c (bus_context_check_security_policy): revamp this to
7254         work more sanely with new policy-based requested reply setup
7255
7256         * bus/connection.c (bus_transaction_send_from_driver): set bus
7257         driver messages as no reply
7258
7259         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7260         requested_reply attribute on allow/deny rules
7261
7262         * bus/system.conf: add <allow requested_reply="true"/>
7263
7264         * bus/driver.c (bus_driver_handle_message): fix check for replies
7265         sent to the bus driver, which was backward. How did this ever work
7266         at all though? I think I'm missing something.
7267
7268         * dbus/dbus-message.c (decode_header_data): require error and
7269         method return messages to have a reply serial field to be valid
7270         (_dbus_message_loader_queue_messages): break up this function;
7271         validate that reply serial and plain serial are nonzero; 
7272         clean up the OOM/error handling.
7273         (get_uint_field): don't return -1 from this
7274         (dbus_message_create_header): fix signed/unsigned bug
7275
7276         * bus/connection.c (bus_connections_expect_reply): save serial of
7277         the incoming message, not reply serial
7278
7279 2003-10-14  Havoc Pennington  <hp@redhat.com>
7280
7281         * bus/connection.c: implement pending reply tracking using
7282         BusExpireList
7283
7284         * bus/bus.c (bus_context_check_security_policy): verify that a
7285         reply is pending in order to allow a reply to be sent. Deny 
7286         messages of unknown type.
7287
7288         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7289
7290         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7291         (bus_context_get_reply_timeout): new
7292
7293 2003-10-13  Seth Nickell  <seth@gnome.org>
7294
7295         * python/Makefile.am:
7296
7297         Pass "make distcheck": remove a couple files from DIST_FILES
7298         that weren't included in the final version.
7299
7300 2003-10-12  Havoc Pennington  <hp@pobox.com>
7301
7302         Added test code that 1) starts an actual bus daemon and 2) uses
7303         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7304         more testing possible, but this is the basic framework.
7305         
7306         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7307         empty proxy lists from the proxy list hash
7308
7309         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7310         couple of return_if_fail checks
7311
7312         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7313         to allocate, so everything is cleared to NULL as it should be.
7314
7315         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7316         source as data to dbus_connection_set_timeout_functions() as the 
7317         timeout functions expected
7318
7319         * test/glib/run-test.sh: add a little script to start up a message
7320         bus and run tests using it
7321
7322         * tools/dbus-launch.1: updates
7323
7324         * tools/dbus-launch.c (main): add --config-file option
7325
7326         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7327         that could never be reached.
7328
7329         * dbus/dbus-message.c (dbus_message_new_method_return) 
7330         (dbus_message_new_error, dbus_message_new_signal): set the
7331         no-reply-expected flag on all these. Redundant, but may
7332         as well be consistent.
7333
7334 2003-10-11  Havoc Pennington  <hp@pobox.com>
7335
7336         * test/decode-gcov.c (function_solve_graph): make broken block
7337         graph a nonfatal error since it seems to be broken. Need to debug
7338         this.
7339
7340         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7341         can't just check type > INVALID < LAST anymore
7342
7343         * dbus/dbus-message.c (dbus_message_get_signature): new function
7344         (dbus_message_has_signature): new function
7345         (struct DBusMessage): add signature field (right now it isn't sent
7346         over the wire, just generated on the fly)
7347         (dbus_message_copy): copy the signature, and init strings to
7348         proper length to avoid some reallocs
7349         (dbus_message_iter_init_array_iterator): return void, since it
7350         can't fail
7351         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7352         (_dbus_message_loader_queue_messages): add silly temporary hack to
7353         fill in message->signature on load
7354
7355         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7356         characters, so they are relatively human-readable.
7357
7358 2003-10-11  Havoc Pennington  <hp@pobox.com>
7359
7360         * dbus/dbus-message.c (_dbus_message_test): add more test
7361         coverage, but #if 0 for now since they uncover a bug 
7362         not fixed yet; I think in re_align_field_recurse()
7363         (re_align_field_recurse): add FIXME about broken assertion
7364
7365         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7366
7367         * bus/connection.c: share a couple code bits with expirelist.c
7368
7369         * bus/expirelist.h, bus/expirelist.c: implement a generic
7370         expire-items-after-N-seconds facility, was going to share between
7371         expiring connections and replies, decided not to use for expiring
7372         connections for now.
7373
7374         * COPYING: include AFL 2.0 (still need to change all the file headers)
7375
7376 2003-10-09  Havoc Pennington  <hp@redhat.com>
7377
7378         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7379         gcc 3.3. Not that we do anything about it yet.
7380
7381         * bus/signals.c (bus_match_rule_parse): impose max length on the
7382         match rule text
7383
7384         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7385
7386 2003-10-09  Havoc Pennington  <hp@redhat.com>
7387
7388         Make matching rules theoretically work (add parser).
7389         
7390         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7391         the case where destination is explicitly specified as bus driver
7392         and someone else is eavesdropping.
7393         
7394         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7395         definition of eavesdropping and assertion
7396
7397         * tools/dbus-send.c (main): use dbus_message_type_from_string
7398
7399         * bus/signals.c (bus_match_rule_parse): implement
7400
7401         * dbus/dbus-message.c (dbus_message_type_from_string): new
7402
7403         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7404
7405 2003-10-02  Havoc Pennington  <hp@pobox.com>
7406
7407         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7408         dbus_gproxy_oneway_call
7409
7410         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7411         (dbus_server_setup_with_g_main): fix to allow calling them more
7412         than once on the same args
7413         (dbus_bus_get_with_g_main): new function
7414
7415 2003-10-02  Havoc Pennington  <hp@redhat.com>
7416
7417         * doc/dbus-tutorial.xml: write some stuff
7418
7419 2003-09-29  Havoc Pennington  <hp@pobox.com>
7420
7421         * configure.in: split checks for Doxygen from XML docs, check for
7422         xmlto
7423
7424         * doc/Makefile.am: XML-ify all the docs, and add a blank
7425         dbus-tutorial.xml
7426
7427 2003-09-29  Havoc Pennington  <hp@pobox.com>
7428
7429         * Merge dbus-object-names branch. To see the entire patch 
7430         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7431         it's huuuuge though.
7432         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7433         
7434 2003-09-28  Havoc Pennington  <hp@pobox.com>
7435
7436         * HACKING: update to reflect new server
7437
7438 2003-09-26  Seth Nickell  <seth@gnome.org>
7439
7440         * python/dbus.py:
7441         * python/examples/example-signals.py:
7442
7443         Start implementing some notions of signals. The API
7444         is really terrible, but they sort of work (with the
7445         exception of being able to filter by service, and to
7446         transmit signals *as* a particular service). Need to
7447         figure out how to make messages come from the service
7448         we registered :-(
7449         
7450         * python/dbus_bindings.pyx.in:
7451
7452         Removed duplicate message_handler callbacks.
7453         
7454 2003-09-25  Havoc Pennington  <hp@redhat.com>
7455
7456         * bus/session.conf.in: fix my mess
7457
7458 2003-09-25  Havoc Pennington  <hp@pobox.com>
7459
7460         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7461
7462 2003-09-25  Seth Nickell  <seth@gnome.org>
7463
7464         * python/examples/example-service.py:
7465
7466         Johan notices complete wrong code in example-service, but
7467         completely wrong in a way that works exactly the same (!).
7468         Johan is confused, how could this possibly work? Example
7469         code fails to serve purpose of making things clear.
7470         Seth fixes.
7471
7472 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7473
7474         * doc/dbus-specification.sgml: don't require header fields
7475         to be 4-byte aligned and specify that fields should be
7476         distinguished from padding by the fact that zero is not
7477         a valid field name.
7478         
7479         * doc/TODO: remove re-alignment item and add item to doc
7480         the OBJECT_PATH type.
7481         
7482         * dbus/dbus-message.c:
7483         (HeaderField): rename the original member to value_offset
7484         and introduce a name_offset member to keep track of where
7485         the field actually begins.
7486         (adjust_field_offsets): remove.
7487         (append_int_field), (append_uint_field),
7488         (append_string_field): don't align the start of the header
7489         field to a 4-byte boundary.
7490         (get_next_field): impl finding the next marhsalled field
7491         after a given field.
7492         (re_align_field_recurse): impl re-aligning a number of
7493         already marshalled fields.
7494         (delete_field): impl deleting a field of any type and
7495         re-aligning any following fields.
7496         (delete_int_or_uint_field), (delete_string_field): remove.
7497         (set_int_field), (set_uint_field): no need to re-check
7498         that we have the correct type for the field.
7499         (set_string_field): ditto and impl re-aligning any
7500         following fields.
7501         (decode_header_data): update to take into account that
7502         the fields aren't 4-byte aligned any more and the new
7503         way to distinguish padding from header fields. Also,
7504         don't exit when there is too much header padding.
7505         (process_test_subdir): print the directory.
7506         (_dbus_message_test): add test to make sure a following
7507         field is re-aligned correctly after field deletion.
7508         
7509         * dbus/dbus-string.[ch]:
7510         (_dbus_string_insert_bytes): rename from insert_byte and
7511         allow the insert of multiple bytes.
7512         (_dbus_string_test): test inserting multiple bytes.
7513
7514         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7515         warning note to docs about having to re-align any
7516         marshalled values following the string.
7517         
7518         * dbus/dbus-message-builder.c:
7519         (append_string_field), (_dbus_message_data_load):
7520         don't align the header field.
7521         
7522         * dbus/dbus-auth.c: (process_test_subdir): print the
7523         directory.
7524         
7525         * test/break-loader.c: (randomly_add_one_byte): upd. for
7526         insert_byte change.
7527         
7528         * test/data/invalid-messages/bad-header-field-alignment.message:
7529         new test case.
7530         
7531         * test/data/valid-messages/unknown-header-field.message: shove
7532         a dict in the unknown field.
7533
7534 2003-09-25  Seth Nickell  <seth@gnome.org>
7535
7536         * python/dbus.py:
7537         * python/dbus_bindings.pyx.in:
7538
7539         Handle return values.
7540         
7541         * python/examples/example-client.py:
7542         * python/examples/example-service.py:
7543
7544         Pass back return values from the service to the client.
7545         
7546 2003-09-24  Seth Nickell  <seth@gnome.org>
7547
7548         * python/dbus.py:
7549
7550         Connect Object methods (when you are sharing an object) up... pass
7551         in a list of methods to be shared. Sharing all the methods just
7552         worked out too weird. You can now create nice Services over the
7553         DBus in Python. :-)
7554         
7555         * python/dbus_bindings.pyx.in:
7556
7557         Keep references to user_data tuples passed into C functions so 
7558         Python doesn't garbage collect on us.
7559
7560         Implement MethodReturn and Error subclasses of Message for creating
7561         DBusMessage's of those types.
7562         
7563         * python/examples/example-client.py:
7564         * python/examples/example-service.py:
7565
7566         Simple example code showing both how create DBus services and objects,
7567         and how to use them.
7568
7569 2003-09-23  Havoc Pennington  <hp@pobox.com>
7570
7571         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7572
7573 2003-09-23  Havoc Pennington  <hp@redhat.com>
7574
7575         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7576         (dbus_gproxy_disconnect_signal): implement
7577         (dbus_gproxy_manager_remove_signal_match): implement
7578         (dbus_gproxy_manager_add_signal_match): implement
7579         (dbus_gproxy_oneway_call): implement
7580
7581 2003-09-23  Havoc Pennington  <hp@pobox.com>
7582
7583         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7584         subclass. This means dropping the transparent thread safety of the
7585         proxy; you now need a separate proxy per-thread, or your own
7586         locking on the proxy. Probably right anyway.
7587         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7588
7589 2003-09-22  Havoc Pennington  <hp@redhat.com>
7590
7591         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7592
7593 2003-09-21  Seth Nickell  <seth@gnome.org>
7594
7595         First checkin of the Python bindings.
7596         
7597         * python/.cvsignore:
7598         * python/Makefile.am:
7599         * python/dbus_bindings.pyx.in:
7600         * python/dbus_h_wrapper.h:
7601
7602         Pieces for Pyrex to operate on, building a dbus_bindings.so
7603         python module for low-level access to the DBus APIs.
7604         
7605         * python/dbus.py:
7606
7607         High-level Python module for accessing DBus objects.
7608
7609         * configure.in:
7610         * Makefile.am:
7611
7612         Build stuff for the python bindings.
7613
7614         * acinclude.m4:
7615
7616         Extra macro needed for finding the Python C header files.
7617
7618 2003-09-21  Havoc Pennington  <hp@pobox.com>
7619
7620         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7621         implementing the proxy manager, didn't get very far.
7622
7623         * dbus/dbus-bus.c (dbus_bus_add_match): new
7624         (dbus_bus_remove_match): new
7625
7626         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7627         path_name argument; adjust the other not-yet-implemented 
7628         gproxy constructors to be what I think they should be.
7629
7630 2003-09-21  Havoc Pennington  <hp@pobox.com>
7631
7632         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7633         by default for message bus connections.
7634
7635         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7636         exit_on_disconnect flag is set and we process the disconnected
7637         signal.
7638         (dbus_connection_set_exit_on_disconnect): new function
7639
7640 2003-09-21  Havoc Pennington  <hp@pobox.com>
7641
7642         Get matching rules mostly working in the bus; only actually
7643         parsing the rule text remains. However, the client side of
7644         "signal connections" hasn't been started, this patch is only the
7645         bus side.
7646         
7647         * dbus/dispatch.c: fix for the matching rules changes
7648         
7649         * bus/driver.c (bus_driver_handle_remove_match)
7650         (bus_driver_handle_add_match): send an ack reply from these
7651         method calls
7652
7653         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7654         arguments, reported by Seth Nickell
7655
7656         * bus/config-parser.c (append_rule_from_element): support
7657         eavesdrop=true|false attribute on policies so match rules 
7658         can be prevented from snooping on the system bus.
7659
7660         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7661         and "destination" in attribute names; fix some docs bugs; 
7662         add eavesdrop=true|false attribute
7663
7664         * bus/driver.c (bus_driver_handle_add_match)
7665         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7666         messages
7667
7668         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7669         rid of broadcast service concept, signals are just always broadcast
7670
7671         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7672         mostly implement matching rules stuff (currently only exposed as signal
7673         connections)
7674
7675 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7676
7677         * doc/dbus-specification.sgml: Change the header field name
7678         to be an enum and update the rest of the spec to reference
7679         the fields using the conventinal name.
7680
7681         * dbus/dbus-protocol.h: update to reflect the spec.
7682
7683         * doc/TODO: add item to remove the 4 byte alignment requirement.
7684         
7685         * dbus/dbus-message.c: Remove the code to generalise the
7686         header/body length and serial number header fields as named
7687         header fields so we can reference field names using the 
7688         protocol values.
7689         (append_int_field), (append_uint_field), (append_string_field):
7690         Append the field name as a byte rather than four chars.
7691         (delete_int_or_uint_field), (delete_string_field): reflect the
7692         fact that the field name and typecode now occupy 4 bytes instead
7693         of 8.
7694         (decode_string_field), (decode_header_data): update to reflect
7695         protocol changes and move the field specific encoding from
7696         decode_string_field() back into decode_header_data().
7697         
7698         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7699         Add utility to aid debugging.
7700         
7701         * dbus/dbus-message-builder.c:
7702         (append_string_field), (_dbus_message_data_load): Update to
7703         reflect protocol changes; Change the FIELD_NAME directive
7704         to HEADER_FIELD and allow it to take the field's conventional
7705         name rather than the actual value.
7706         
7707         * test/data/*/*.message: Update to use HEADER_FIELD instead
7708         of FIELD_NAME; Always align the header on an 8 byte boundary
7709         *before* updating the header length.
7710
7711 2003-09-15  Havoc Pennington  <hp@pobox.com>
7712
7713         * dbus/dbus-pending-call.c: add the get/set object data
7714         boilerplate as for DBusConnection, etc. Use generic object data
7715         for the notify callback.
7716
7717         * glib/dbus-gparser.c (parse_node): parse child nodes
7718
7719         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7720         
7721         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7722         contain functions shared between the convenience lib and the
7723         installed lib
7724
7725         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7726         -export-symbols-regex to the GLib library
7727
7728         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7729         fix the locking in here, and add a default handler for
7730         Introspect() that just returns sub-nodes.
7731
7732 2003-09-14  Havoc Pennington  <hp@pobox.com>
7733
7734         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7735         rather than gfoo consistent
7736
7737         * glib/dbus-gproxy.h: delete for now, move contents to
7738         dbus-glib.h, because the include files don't work right since we
7739         aren't in the dbus/ subdir.
7740         
7741         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7742         (dbus_gproxy_end_call): finish
7743         (dbus_gproxy_begin_call): finish
7744
7745         * glib/dbus-gmain.c (dbus_set_g_error): new
7746
7747         * glib/dbus-gobject.c (handle_introspect): include information
7748         about child nodes in the introspection
7749
7750         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7751         function to help in implementation of introspection
7752
7753         * dbus/dbus-object-tree.c
7754         (_dbus_object_tree_list_registered_and_unlock): new function
7755
7756 2003-09-12  Havoc Pennington  <hp@pobox.com>
7757
7758         * glib/dbus-gidl.h: add common base class for all the foo_info
7759         types
7760
7761         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7762         similar to kdcop
7763
7764         * test/Makefile.am: try test srcdir -ef . in addition to test
7765         srcdir = ., one of them should work (yeah lame)
7766         
7767         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7768         library
7769         
7770         * glib/dbus-gparser.h: make description_load routines return
7771         NodeInfo* not Parser*
7772
7773         * Makefile.am (SUBDIRS): build test dir after all library dirs
7774
7775         * configure.in: add GTK+ detection
7776
7777 2003-09-07  Havoc Pennington  <hp@pobox.com>
7778
7779         * Make Doxygen contented.
7780
7781 2003-09-07  Havoc Pennington  <hp@pobox.com>
7782
7783         * doc/dbus-specification.sgml: more updates
7784
7785 2003-09-06  Havoc Pennington  <hp@pobox.com>
7786
7787         * doc/dbus-specification.sgml: partial updates
7788
7789         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7790         zillionth time; hopefully I edited the right file this time.
7791
7792         * bus/config-parser.c (append_rule_from_element): support
7793         send_type, send_path, receive_type, receive_path
7794
7795         * bus/policy.c: add message type and path to the list of things
7796         that can be "firewalled"
7797
7798 2003-09-06  Havoc Pennington  <hp@pobox.com>
7799
7800         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7801         (dbus_connection_register_object_path): make this not handle
7802         messages to paths below the given path
7803
7804 2003-09-03  Havoc Pennington  <hp@pobox.com>
7805
7806         * test/glib/Makefile.am: add this with random glib-linked test
7807         programs
7808
7809         * glib/Makefile.am: remove the random test programs from here,
7810         leave only the unit tests
7811
7812         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7813         uscore/javacaps conversion, and fix     
7814         (get_object_property, set_object_property): change to .NET
7815         convention for mapping props to methods, set_FooBar/get_FooBar, 
7816         since one language has such a convention we may as well copy it. 
7817         Plus real methods in either getFooBar or get_foo_bar style won't 
7818         collide with this convention.
7819
7820 2003-09-01  Havoc Pennington  <hp@pobox.com>
7821
7822         * glib/dbus-gparser.c: implement
7823
7824         * glib/dbus-gobject.c: start implementing skeletons support
7825
7826         * configure.in: when disabling checks/assert, also define
7827         G_DISABLE_ASSERT and G_DISABLE_CHECKS
7828
7829 2003-09-01  Havoc Pennington  <hp@pobox.com>
7830
7831         * glib/Makefile.am: rearrange a bunch of files and get "make
7832         check" framework set up
7833
7834 2003-08-31  Havoc Pennington  <hp@pobox.com>
7835
7836         * fix build with --disable-tests
7837
7838 2003-08-30  Havoc Pennington  <hp@pobox.com>
7839
7840         * dbus/dbus-connection.c: purge DBusMessageHandler
7841
7842         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
7843         use callbacks everywhere
7844
7845 2003-08-30  Havoc Pennington  <hp@pobox.com>
7846
7847         * test/data/valid-config-files/system.d/test.conf: change to 
7848         root for the user so warnings don't get printed
7849
7850         * dbus/dbus-message.c: add dbus_message_get_path,
7851         dbus_message_set_path
7852         
7853         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7854         dispatching to a path
7855
7856         * dbus/dbus-string.c (_dbus_string_validate_path): add
7857
7858         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7859         (_dbus_marshal_object_path): implement
7860
7861         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
7862         to contain the path to the target object
7863         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7864         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7865
7866 2003-08-30  Havoc Pennington  <hp@pobox.com>
7867
7868         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7869
7870 2003-08-29  Havoc Pennington  <hp@pobox.com>
7871
7872         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7873         registered
7874         (struct DBusObjectSubtree): shrink this
7875         a lot, since we may have a lot of them
7876         (_dbus_object_tree_free_all_unlocked): implement
7877         (_dbus_object_tree_dispatch_and_unlock): implement
7878
7879 2003-08-29  Havoc Pennington  <hp@pobox.com>
7880
7881         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7882
7883 2003-08-28  Havoc Pennington  <hp@pobox.com>
7884
7885         purge DBusObjectID
7886         
7887         * dbus/dbus-connection.c: port to no ObjectID, create a
7888         DBusObjectTree, rename ObjectTree to ObjectPath in public API
7889
7890         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
7891         everything except UnregisterFunction and MessageFunction
7892         
7893         * dbus/dbus-marshal.c: port away from DBusObjectID, 
7894         add DBUS_TYPE_OBJECT_PATH
7895         
7896         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
7897         dbus/dbus-objectid.[hc]: remove these, we are moving to 
7898         path-based object IDs
7899
7900 2003-08-25  Havoc Pennington  <hp@pobox.com>
7901
7902         Just noticed that dbus_message_test is hosed, I wonder when I
7903         broke that. I thought make check was passing earlier...
7904         
7905         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
7906         container tree, will replace most of dbus-object-registry
7907
7908         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7909         screwup
7910
7911 2003-08-19  Havoc Pennington  <hp@pobox.com>
7912
7913         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7914         (dbus_message_is_error): fix this function
7915
7916         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7917         match
7918
7919         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7920         reflect clarified man page
7921         (bus_client_policy_check_can_send): ditto
7922         
7923         * bus/session.conf.in: fixup
7924
7925         * bus/system.conf.in: fixup
7926
7927 2003-08-18  Havoc Pennington  <hp@redhat.com>
7928
7929         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7930
7931         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7932         dumb bug created earlier (wrong order of args to
7933         decode_header_data())
7934         
7935         * tools/dbus-send.c: port
7936
7937         * tools/dbus-print-message.c (print_message): port
7938
7939         * test/data/*messages: port all messages over
7940         
7941         * dbus/dbus-message-builder.c: support including 
7942         message type
7943         
7944         * bus/driver.c: port over
7945         
7946         * bus/dispatch.c: port over to new stuff
7947
7948         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7949         rename disconnect signal to "Disconnected"
7950
7951 2003-08-17  Havoc Pennington  <hp@pobox.com>
7952
7953         This doesn't compile yet, but syncing up so I can hack on it from
7954         work. What are branches for if not broken code? ;-)
7955         
7956         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7957         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7958         DBUS_HEADER_FIELD_ERROR_NAME
7959         
7960         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7961         for the interface+member pairs
7962         (string_hash): change to use g_str_hash algorithm
7963         (find_direct_function, find_string_function): refactor these to
7964         share most code.
7965         
7966         * dbus/dbus-message.c: port all of this over to support 
7967         interface/member fields instead of name field
7968
7969         * dbus/dbus-object-registry.c: port over
7970         
7971         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7972         from _dbus_string_validate_name
7973
7974         * bus/dbus-daemon-1.1: change file format for the 
7975         <deny>/<allow> stuff to match new message naming scheme
7976
7977         * bus/policy.c: port over
7978
7979         * bus/config-parser.c: parse new format
7980         
7981 2003-08-16  Havoc Pennington  <hp@pobox.com>
7982
7983         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7984         broken assertion
7985
7986         * glib/dbus-gproxy.c: some hacking
7987
7988 2003-08-15  Havoc Pennington  <hp@redhat.com>
7989
7990         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7991
7992         * dbus/dbus-connection.c
7993         (dbus_connection_send_with_reply_and_block): factor out internals;
7994         change to convert any error replies to DBusError instead of 
7995         returning them as a message
7996
7997 2003-08-15  Havoc Pennington  <hp@pobox.com>
7998
7999         * dbus/dbus-connection.c, 
8000         dbus/dbus-pending-call.c: Finish the pending call stuff
8001
8002 2003-08-14  Havoc Pennington  <hp@redhat.com>
8003
8004         * dbus/dbus-pending-call.c: start on new object that will replace
8005         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8006         replies
8007
8008         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8009         with remote interfaces
8010
8011         * dbus/dbus-gidl.c: do the boring boilerplate in here
8012         
8013 2003-08-12  Havoc Pennington  <hp@pobox.com>
8014
8015         * bus/dispatch.c (bus_dispatch): make this return proper 
8016         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8017
8018         * dbus/dbus-errors.c (dbus_set_error): use
8019         _dbus_string_append_printf_valist
8020
8021         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8022         (_dbus_string_append_printf): new
8023
8024         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8025         UNKNOWN_METHOD
8026
8027         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8028         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8029         message is unhandled.
8030
8031 2003-08-11  Havoc Pennington  <hp@pobox.com>
8032
8033         * bus/test.c (client_disconnect_handler): change to return
8034         HANDLED (would have been REMOVE_MESSAGE)
8035
8036         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8037         HANDLED/NOT_YET_HANDLED instead of
8038         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8039         should be used.
8040
8041 2003-08-10  Havoc Pennington  <hp@pobox.com>
8042
8043         * tools/dbus-send.c (main): add --type argument, for now
8044         supporting only method_call and signal types.
8045
8046         * tools/dbus-print-message.c: print message type
8047
8048         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8049         init connection->objects
8050
8051         * doc/dbus-specification.sgml: fix sgml
8052
8053         * bus/*.c: port over to object-instance API changes
8054
8055         * test/test-service.c: ditto
8056         
8057         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8058         name, we will have to fix up the rest of the code to also handle
8059         this
8060         (dbus_message_new): generic message-creation call
8061         (set_string_field): allow appending name field
8062
8063 2003-08-06  Havoc Pennington  <hp@pobox.com>
8064
8065         * dbus/dbus-object-registry.c: implement signal connection 
8066         and dispatch
8067
8068         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8069
8070         * dbus/dbus-internals.c (_dbus_memdup): new function
8071
8072 2003-08-02  Havoc Pennington  <hp@pobox.com>
8073
8074         * dbus/dbus-message.c (dbus_message_get_no_reply)
8075         (dbus_message_set_no_reply): add these and remove
8076         set_is_error/get_is_error
8077
8078         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8079         remove the ERROR flag, since there's now an ERROR type
8080
8081 2003-08-01  Havoc Pennington  <hp@pobox.com>
8082
8083         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8084         implement
8085
8086         * dbus/dbus-message.c (dbus_message_get_type): new function
8087
8088         * doc/dbus-specification.sgml: add "type" byte to messages
8089
8090 2003-08-01  Havoc Pennington  <hp@pobox.com>
8091
8092         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8093         a message type enum to distinguish kinds of message
8094         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8095         that need not be replied to
8096
8097 2003-08-01  Havoc Pennington  <hp@pobox.com>
8098
8099         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8100         (unpack_8_octets): fix no-64-bit-int bug
8101
8102         * dbus/dbus-object-registry.c (validate_id): validate the 
8103         connection ID bits, not just the instance ID.
8104
8105         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8106         the connection-global 33 bits of the object ID
8107
8108         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8109         object ID in the new way
8110
8111         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8112         define server/client/instance bits.
8113
8114 2003-07-30  Havoc Pennington  <hp@pobox.com>
8115
8116         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8117         build
8118
8119 2003-07-13  Havoc Pennington  <hp@pobox.com>
8120
8121         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8122         fields to DBusObjectVTable and DBusObjectInfo
8123
8124 2003-07-12  Havoc Pennington  <hp@pobox.com>
8125
8126         * dbus/dbus-object-registry.c: implement unit test,
8127         fix bugs discovered in process
8128
8129         * dbus/dbus-connection.c: remove handler_table and
8130         register_handler(), add DBusObjectRegistry usage
8131
8132         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8133         (dbus_object_id_set_null): new functions
8134
8135 2003-07-08  Havoc Pennington  <hp@pobox.com>
8136
8137         * dbus/dbus-object.c: implement some of this
8138
8139         * dbus/dbus-object-registry.c
8140         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8141         param
8142         (_dbus_object_registry_new): handle OOM
8143
8144 2003-07-08  Havoc Pennington  <hp@pobox.com>
8145
8146         * dbus/dbus-object.h: sketch out an API for registering objects
8147         with a connection, that allows us to use as little as 24 bytes
8148         per object and lets application code represent an object in 
8149         any conceivable way.
8150
8151         * dbus/dbus-object-registry.c: implement the hard bits of the
8152         DBusConnection aspect of object API. Not yet wired up.
8153         
8154 2003-07-06  Havoc Pennington  <hp@pobox.com>
8155
8156         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8157         (_dbus_marshal_object_id): new
8158         (_dbus_demarshal_object_id): new
8159         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8160         consolidate identical switch cases. Don't conditionalize handling
8161         of DBUS_TYPE_UINT64, need to handle the type always.
8162         (_dbus_marshal_validate_arg): consolidate identical cases, and
8163         handle DBUS_TYPE_OBJECT_ID
8164
8165         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8166
8167         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8168
8169 2003-09-28  Havoc Pennington  <hp@pobox.com>
8170
8171         * real 0.13 release
8172
8173 2003-09-28  Havoc Pennington  <hp@pobox.com>
8174
8175         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8176         to work with Debian db2html
8177
8178 2003-09-28  Havoc Pennington  <hp@pobox.com>
8179
8180         * configure.in: 0.13
8181
8182         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8183         stylesheet-images for benefit of Debian
8184         
8185         Change back to using filesystem-linked sockets for the system
8186         bus, so only root can create the default system bus address.
8187         
8188         * bus/system.conf.in: change to use
8189         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8190
8191         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8192         from here.
8193
8194         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8195         here, and AC_DEFINE DBUS_SYSTEM_PATH
8196
8197 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8198
8199         * doc/TODO:
8200         * doc/busconfig.dtd:
8201         Add busconfig DTD.
8202         
8203 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8204
8205         * doc/dbus-specification.sgml:
8206         Add activation reply values.
8207         
8208 2003-08-05  Havoc Pennington  <hp@redhat.com>
8209
8210         * configure.in: 0.12
8211
8212 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8213
8214         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8215         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8216         (add_watch), (remove_watch), (create_source):
8217         Refcount fds, fixes some reentrancy issues.
8218         
8219 2003-07-30  Havoc Pennington  <hp@redhat.com>
8220
8221         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8222         bus address to be abstract if we have abstract sockets
8223
8224         * NEWS: update
8225
8226 2003-07-28  Havoc Pennington  <hp@redhat.com>
8227
8228         * bus/messagebus.in: fix to avoid processname/servicename 
8229         confusion, from Michael Kearey
8230         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8231         
8232 2003-07-23  Havoc Pennington  <hp@pobox.com>
8233
8234         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8235         fix from Andy Hanton to remove broken "+1"
8236
8237 2003-07-16  Havoc Pennington  <hp@pobox.com>
8238
8239         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8240         babysitter process, as suggested by Thomas Leonard, so 
8241         an "eval `dbus-launch --exit-with-session`" will actually 
8242         return
8243
8244 2003-07-16  Havoc Pennington  <hp@pobox.com>
8245
8246         * configure.in: print out EXPANDED_* variables in the summary at
8247         the end; clean up the code that computes EXPANDED_ variables and
8248         get the ones using exec_prefix right. Should make things work
8249         when you build without --prefix
8250
8251 2003-06-29  Havoc Pennington  <hp@pobox.com>
8252
8253         * mono/Test.cs (class Test): fire up a main loop and run it
8254
8255         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8256         done once, the app has to do it
8257
8258 2003-06-26  Havoc Pennington  <hp@pobox.com>
8259
8260         * mono/Connection.cs: set up connection with the glib main loop
8261
8262 2003-07-01  Havoc Pennington  <hp@redhat.com>
8263
8264         * doc/dbus-specification.sgml: clarify the format of a type code,
8265         change suggested by Jim Blandy
8266
8267 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8268
8269         * doc/Makefile.am:
8270         * tools/Makefile.am: Don't assume srcdir == builddir.
8271
8272         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8273         the allocated block.
8274         (_dbus_memory_test): New function.
8275         * dbus/dbus-test.h: Add _dbus_memory_test ().
8276         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8277
8278         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8279         of %c%c%c%c.
8280         (dbus_message_new): Remove obsolete @todo.
8281
8282         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8283         (_dbus_marshal_set_uint64): Fix comment.
8284
8285         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8286         hardcode FIELD_REPLY_SERIAL.
8287
8288         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8289         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8290
8291         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8292         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8293
8294 2003-06-24  Havoc Pennington  <hp@pobox.com>
8295
8296         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8297
8298 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8299
8300         * configure.in:
8301         * gcj/.cvsignore:
8302         * gcj/Hello.java:
8303         * gcj/Makefile.am:
8304         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8305         * gcj/org/.cvsignore:
8306         * gcj/org/Makefile.am:
8307         * gcj/org/freedesktop/.cvsignore:
8308         * gcj/org/freedesktop/Makefile.am:
8309         * gcj/org/freedesktop/dbus/.cvsignore:
8310         * gcj/org/freedesktop/dbus/Makefile.am:
8311         * gcj/org/freedesktop/dbus/Message.java: (Message),
8312         (Message.Message):
8313         * gcj/org/freedesktop/dbus/natMessage.cc:
8314         Fix the build system.
8315
8316 2003-06-22  Havoc Pennington  <hp@pobox.com>
8317
8318         * mono/Connection.cs: add more bindings
8319
8320         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8321         more than once.
8322
8323 2003-06-22  Havoc Pennington  <hp@pobox.com>
8324
8325         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8326         Start wrapping more stuff.
8327
8328 2003-06-22  Havoc Pennington  <hp@pobox.com>
8329
8330         * mono/Message.cs: implement Message.Wrap() that ensures we only
8331         have a single C# wrapper per DBusMessage, assuming it works which
8332         it probably doesn't.
8333
8334         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8335         (dbus_message_free_data_slot): new
8336         (dbus_message_set_data): new
8337         (dbus_message_get_data): new
8338
8339 2003-06-22  Havoc Pennington  <hp@pobox.com>
8340
8341         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8342         (_dbus_data_slot_allocator_alloc): rework these to keep a
8343         reference count on each slot and automatically manage a global
8344         slot ID variable passed in by address
8345
8346         * bus/bus.c: convert to new dataslot API
8347
8348         * dbus/dbus-bus.c: convert to new dataslot API
8349
8350         * dbus/dbus-connection.c: convert to new dataslot API
8351
8352         * dbus/dbus-server.c: convert to new dataslot API
8353
8354         * glib/dbus-gmain.c: ditto
8355
8356         * bus/test.c: ditto
8357
8358         * bus/connection.c: ditto
8359
8360 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8361
8362         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8363         after the gcj checks so that the correct configuration tags
8364         will be added to libtool.
8365
8366         * dbus-glib-1.pc.in: No need to specify any includes since
8367         dbus-1.pc.in has those.
8368
8369 2003-06-22  Havoc Pennington  <hp@pobox.com>
8370
8371         * mono/*, gcj/*, configure.in, Makefile.am:
8372         Check in makefiles and subdirs for mono and gcj bindings.
8373         Neither binding actually exists, just trying to get through
8374         all the build and other boring bits.
8375
8376 2003-06-21  Philip Blundell  <philb@gnu.org>
8377
8378         * tools/dbus-monitor.1: Updated.
8379
8380         * tools/dbus-send.1: Likewise.
8381
8382 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8383
8384         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8385         for hangup and error after checking read so we won't discard
8386         pending data if both hangup and read are set.
8387
8388 2003-06-19  Philip Blundell  <philb@gnu.org>
8389
8390         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8391
8392         * tools/dbus-send.c: Accept both --system and --session.
8393
8394         * tools/dbus-monitor.c: Same here.
8395
8396 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8397
8398         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8399         from C++ (Patch by Miloslav Trmac).
8400
8401 2003-06-15  Joe Shaw  <joe@assbarn.com>
8402
8403         * configure.in: Check for socklen_t.
8404
8405         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8406
8407         * test/test-segfault.c: Add #include <sys/time.h>
8408
8409         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8410         dbus-launch needs it.
8411
8412 2003-06-09  Havoc Pennington  <hp@redhat.com>
8413
8414         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8415         SUN_LEN, it breaks abstract socket usage
8416
8417         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8418         starts of lines.
8419
8420 2003-06-04  Havoc Pennington  <hp@pobox.com>
8421
8422         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8423         using unix:abstract=/foo, and when listening in a tmpdir
8424         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8425
8426         * dbus/dbus-transport.c (_dbus_transport_open): support
8427         unix:abstract=/foo
8428
8429         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8430         support abstract sockets
8431
8432         * dbus/dbus-transport-unix.c
8433         (_dbus_transport_new_for_domain_socket): support abstract sockets
8434
8435         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8436         toggle as an argument, implement abstract namespace support
8437         (_dbus_listen_unix_socket): ditto
8438
8439         * configure.in: add --enable-abstract-sockets and implement
8440         a configure check for autodetection of the right value.
8441
8442 2003-06-01  Havoc Pennington  <hp@pobox.com>
8443
8444         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8445         in /tmp (though on Linux this will end up being useless,
8446         when we add abstract namespace support)
8447
8448         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8449         subst'ing it
8450
8451 2003-05-28  Colin Walters  <walters@verbum.org>
8452
8453         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8454
8455 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8456
8457         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8458
8459 2003-05-17  Colin Walters  <walters@gnu.org>
8460
8461         * tools/dbus-send.c: Don't exit with an error code if --help was
8462         passed.  Default to using the session bus instead of the system
8463         one.
8464
8465         * tools/dbus-launch.c: Ditto.
8466
8467         * tools/dbus-monitor.c: Ditto.
8468
8469         * tools/dbus-send.1: Update with new arguments.
8470
8471         * tools/dbus-launch.c: Emit code to export variables.  New
8472         arguments -s and -c to specify shell syntax, and a bit of code to
8473         autodetect syntax.  Also, allow specifying a program to run.
8474
8475         * tools/dbus-launch.1: Update with new arguments.
8476
8477         * tools/dbus-send.1: Ditto.
8478
8479         * tools/dbus-monitor.1: Ditto.
8480
8481 2003-05-17  Havoc Pennington  <hp@pobox.com>
8482
8483         * bus/config-parser.c (merge_included): merge in policies from
8484         child configuration file.
8485
8486         * bus/policy.c (bus_policy_merge): function to merge two policies
8487         together
8488
8489 2003-05-16  Havoc Pennington  <hp@redhat.com>
8490
8491         * dbus/dbus-connection.c: disable verbose lock spew
8492
8493         * tools/dbus-send.c: add --print-reply command line option
8494
8495         * tools/dbus-print-message.h (print_message): new util function
8496         shared by dbus-send and dbus-monitor
8497
8498         * tools/dbus-monitor.c (handler_func): exit on disconnect
8499
8500         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8501         disconnected, don't try to use the read_watch
8502
8503         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8504         so we can find this bug more easily
8505
8506 2003-05-16  Havoc Pennington  <hp@redhat.com>
8507
8508         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8509         NULL as DBusHashTable is annoyingly likely to do.
8510
8511 2003-05-16  Colin Walters  <walters@verbum.org>
8512
8513         * tools/dbus-monitor.c: Add --session argument and usage()
8514         function.
8515
8516         * tools/dbus-monitor.1: Update with new --session arg.
8517
8518         * bus/Makefile.am (install-data-hook): Create
8519         $(libdir)/dbus-1.0/services so that the session bus is happy.
8520
8521 2003-05-15  Havoc Pennington  <hp@redhat.com>
8522
8523         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8524         on non-x86. ifdef's are evil.
8525
8526 2003-05-15  Havoc Pennington  <hp@redhat.com>
8527
8528         * configure.in: 0.11
8529
8530         * NEWS: update
8531
8532         * bus/Makefile.am (initddir): apparently we are supposed to put
8533         init scripts in /etc/rc.d/init.d not /etc/init.d
8534
8535         * bus/Makefile.am: remove the "you must --enable-tests to make
8536         check" as it broke distcheck
8537
8538         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8539
8540 2003-05-13  James Willcox  <jwillcox@gnome.org>
8541
8542         * configure.in:
8543         * bus/activation.c: (bus_activation_service_created),
8544         (bus_activation_activate_service):
8545         * bus/driver.c: (bus_driver_send_service_deleted),
8546         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8547         (bus_driver_send_service_acquired),
8548         (bus_driver_send_welcome_message),
8549         (bus_driver_handle_list_services):
8550         * bus/session.conf.in:
8551         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8552         (dbus_bus_service_exists), (dbus_bus_activate_service):
8553         * dbus/dbus-bus.h:
8554
8555         Add some convenience API which lets you activate a service, and did a
8556         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8557         and dbus_message_get_args()
8558
8559 2003-05-11  Havoc Pennington  <hp@pobox.com>
8560
8561         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8562         calling _dbus_marshal_validate_arg() for every byte in a byte
8563         array, etc.
8564
8565         * dbus/dbus-message-handler.c: use atomic reference counting to
8566         reduce number of locks slightly; the global lock in here sucks
8567
8568         * dbus/dbus-connection.c
8569         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8570         update_dispatch_status that can be called with lock held; then use
8571         in a couple places to reduce locking/unlocking
8572         (dbus_connection_send): hold the lock over the whole function
8573         instead of acquiring it twice.
8574
8575         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8576
8577         * bus/connection.c (bus_connections_setup_connection): fix access
8578         to already-freed memory.
8579
8580         * dbus/dbus-connection.c: keep a little cache of linked list
8581         nodes, to avoid using the global linked list alloc lock in the
8582         normal send-message case. Instead we just use the connection lock
8583         that we already have to take.
8584
8585         * dbus/dbus-list.c (_dbus_list_find_last): new function
8586
8587         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8588         change to use a struct for the atomic type; fix docs,
8589         they return value before increment, not after increment.
8590
8591         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8592         (_dbus_string_append_8_aligned): new functions to try to
8593         microoptimize this operation.
8594         (reallocate_for_length): break this out of set_length(), to
8595         improve profile info, and also so we can consider inlining the
8596         set_length() part.
8597
8598         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8599         strings with some preallocation, cuts down on our calls to realloc
8600         a fair bit. Though if we can get the "move entire string to empty
8601         string" optimization below to kick in here, it would be better.
8602
8603         * dbus/dbus-string.c (_dbus_string_move): just call
8604         _dbus_string_move_len
8605         (_dbus_string_move_len): add a special case for moving
8606         an entire string into an empty string; we can just
8607         swap the string data instead of doing any reallocs.
8608         (_dbus_string_init_preallocated): new function
8609
8610 2003-05-11  Havoc Pennington  <hp@pobox.com>
8611
8612         Write a "test-profile" that does echo client-server with threads;
8613         profile reveals lock contention, memcpy/realloc of buffers, and
8614         UTF-8 validation as hot spots. 20% of lock contention eliminated
8615         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8616         contention is global mempool locks for GList and DBusList.
8617
8618         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8619         x86 implementation
8620
8621         * dbus/dbus-connection.c (struct DBusConnection): use
8622         dbus_atomic_t for the reference count
8623
8624         * dbus/dbus-message.c (struct DBusMessage): declare
8625         dbus_atomic_t values as volatile
8626
8627         * configure.in: code to detect ability to use atomic integer
8628         operations in assembly, from GLib patch
8629
8630         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8631         time, tired of it being wrong in threads and forked processes
8632
8633         * glib/test-profile.c: a little program to bounce messages back
8634         and forth between threads and eat CPU
8635
8636         * dbus/dbus-connection.c: add debug spew macros for debugging
8637         thread locks; include config.h at top; fix deadlock in
8638         dbus_connection_flush()
8639
8640 2003-05-08  Havoc Pennington  <hp@pobox.com>
8641
8642         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8643         data from getting written, and there wasn't a good reason to
8644         use _exit really.
8645
8646         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8647         dbus_verbose lines in test coverage
8648         (main): add list of functions sorted by # of untested blocks
8649         to the coverage report
8650
8651         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8652
8653         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8654
8655         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8656         extend test coverage
8657
8658         * test/data/auth/cancel.auth-script: test canceling an
8659         authentication
8660
8661         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8662         aren't used. in CVS history if we end up needing them.
8663
8664 2003-05-04  Havoc Pennington  <hp@pobox.com>
8665
8666         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8667         unit test
8668
8669         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8670         function, which assumed length was in # of strings, not bytes
8671
8672         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8673         missing coverage
8674
8675         * dbus/dbus-connection.c
8676         (_dbus_connection_queue_received_message): disable function for
8677         now, we are only using it in test mode
8678
8679         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8680         remove a mistaken FIXME
8681
8682 2003-05-04  Havoc Pennington  <hp@pobox.com>
8683
8684         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8685         unlock mutex on successful return, patch from Anders Gustafsson
8686
8687 2003-05-04  Havoc Pennington  <hp@pobox.com>
8688
8689         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8690         Anders Gustafsson
8691
8692 2003-05-04  Havoc Pennington  <hp@pobox.com>
8693
8694         * tools/dbus-launch.c: implement
8695
8696         * bus/main.c (main), bus/bus.c (bus_context_new):
8697         implement --print-pid and --fork
8698
8699 2003-05-03  Havoc Pennington  <hp@redhat.com>
8700
8701         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8702         the address had no value, and add to test suite. Fix and
8703         regression test from Miloslav Trmac
8704
8705 2003-05-03  Havoc Pennington  <hp@pobox.com>
8706
8707         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8708         watch is invalid when handled
8709
8710         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8711         dbus-launch utility to launch the bus from a shell script.  Didn't
8712         actually implement dbus-launch yet, it's just a placeholder still.
8713
8714 2003-05-03  Havoc Pennington  <hp@pobox.com>
8715
8716         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8717         daemon; also documents daemon config file, so replaces
8718         doc/config-file.txt. Corrected some stuff from config-file.txt in
8719         the process of moving it.
8720
8721 2003-05-03  Havoc Pennington  <hp@pobox.com>
8722
8723         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8724         add some man pages
8725
8726 2003-05-03  Colin Walters  <walters@verbum.org>
8727
8728         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8729         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8730
8731         * Makefile.am: Update to use new .pc versioning scheme.
8732
8733 2003-05-02  Havoc Pennington  <hp@redhat.com>
8734
8735         * bus/system.conf.in: allow send/receive to/from message bus
8736         service
8737
8738 2003-04-30  Havoc Pennington  <hp@redhat.com>
8739
8740         * configure.in: print a note when building with unit tests and
8741         without assertions
8742
8743 2003-04-30  Havoc Pennington  <hp@redhat.com>
8744
8745         * Makefile.am: add a check-local that complains if you didn't
8746         configure with --enable-tests
8747
8748 2003-04-29  Havoc Pennington  <hp@redhat.com>
8749
8750         * glib/dbus-gmain.c: docs cleanups
8751
8752         * dbus/dbus-types.h: add docs on int64 types
8753
8754         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8755         public API docs section
8756
8757 2003-04-29  Havoc Pennington  <hp@redhat.com>
8758
8759         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8760         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8761         parallel install API version, not with the D-BUS package version.
8762
8763         * HACKING: move some of README over here
8764
8765         * README: updates, and document API/ABI policy
8766
8767         * configure.in: reindentation
8768
8769 2003-04-29  Havoc Pennington  <hp@redhat.com>
8770
8771         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8772         to use this library" to be sure people have the right
8773         expectations.
8774
8775 2003-04-28  Havoc Pennington  <hp@redhat.com>
8776
8777         * configure.in: add --enable-docs which by default is auto yes if
8778         doxygen and db2html found, no otherwise; but can be forced on/off
8779
8780         * doc/Makefile.am: conditionalize whether to build docs on
8781         --enable-docs
8782
8783 2003-04-28  Havoc Pennington  <hp@redhat.com>
8784
8785         * configure.in: 0.10
8786
8787         * NEWS: update
8788
8789         * bus/system.conf.in: add <includedir>system.d</includedir>
8790
8791         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8792         username was provided but not uid
8793
8794         * bus/config-parser.c (struct BusConfigParser): keep track of
8795         whether the parser is toplevel or was included; change some
8796         of the error handling if it's included.
8797
8798 2003-04-27  Havoc Pennington  <hp@pobox.com>
8799
8800         Unbreak my code...
8801
8802         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8803         report correct status if we finish processing authentication
8804         inside this function.
8805
8806         * bus/activation.c (try_send_activation_failure): use
8807         bus_transaction_send_error_reply
8808
8809         * bus/connection.c (bus_connection_get_groups): return an error
8810         explaining the problem
8811
8812         * bus/bus.c (bus_context_check_security_policy): implement
8813         restriction here that inactive connections can only send the
8814         hello message. Also, allow bus driver to send anything to
8815         any recipient.
8816
8817         * bus/connection.c (bus_connection_complete): create the
8818         BusClientPolicy here instead of on-demand.
8819         (bus_connection_get_policy): don't return an error
8820
8821         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8822         sender field in message being replied to
8823
8824         * bus/bus.c (bus_context_check_security_policy): fix silly typo
8825         causing it to return FALSE always
8826
8827         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8828         we checked sender rather than destination
8829
8830 2003-04-25  Havoc Pennington  <hp@redhat.com>
8831
8832         test suite is slightly hosed at the moment, will fix soon
8833
8834         * bus/connection.c (bus_connections_expire_incomplete): fix to
8835         properly disable the timeout when required
8836         (bus_connection_set_name): check whether we can remove incomplete
8837         connections timeout after we complete each connection.
8838
8839         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8840         probably still broken.
8841
8842         * bus/services.c (bus_registry_acquire_service): implement max
8843         number of services owned, and honor allow/deny rules on which
8844         services a connection can own.
8845
8846         * bus/connection.c (bus_connection_get_policy): report errors here
8847
8848         * bus/activation.c: implement limit on number of pending
8849         activations
8850
8851 2003-04-25  Havoc Pennington  <hp@redhat.com>
8852
8853         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8854         where we used >= 0 instead of != DBUS_UID_UNSET.
8855
8856 2003-04-25  Havoc Pennington  <hp@redhat.com>
8857
8858         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8859         were toggled without add/remove, fix from Anders Gustafsson
8860
8861 2003-04-24  Havoc Pennington  <hp@redhat.com>
8862
8863         * test/data/valid-config-files/basic.conf: add <limit> tags to
8864         this test
8865
8866         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8867         <limit> tag in configuration file.
8868
8869 2003-04-24  Havoc Pennington  <hp@redhat.com>
8870
8871         * bus/dispatch.c: somehow missed some name_is
8872
8873         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8874         (_dbus_timeout_set_interval): new
8875
8876         * bus/connection.c (bus_connections_setup_connection): record time
8877         when each connection is first set up, and expire them after the
8878         auth timeout passes.
8879
8880 2003-04-24  Havoc Pennington  <hp@redhat.com>
8881
8882         * dbus/dbus-message.c (dbus_message_name_is): rename
8883         (dbus_message_service_is): rename
8884         (dbus_message_sender_is): rename
8885         (dbus_message_get_service): rename
8886
8887 2003-04-24  Havoc Pennington  <hp@redhat.com>
8888
8889         * configure.in: add --enable-checks
8890
8891         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8892
8893         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8894         to use thread locks.
8895         (_dbus_connection_handler_destroyed_locked): move some private
8896         functions into proper docs group
8897
8898         * dbus/dbus-internals.h: add _dbus_return_if_fail,
8899         _dbus_return_val_if_fail
8900
8901         Throughout: use dbus_return_if_fail
8902
8903 2003-04-23  James Willcox  <jwillcox@gnome.org>
8904
8905         * glib/dbus-glib.h:
8906         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8907         (dbus_connection_setup_with_g_main),
8908         (dbus_server_setup_with_g_main):
8909         * glib/test-dbus-glib.c: (main):
8910         * glib/test-thread-client.c: (main):
8911         * glib/test-thread-server.c: (new_connection_callback), (main):
8912         * tools/dbus-monitor.c: (main):
8913
8914         Added a GMainContext argument to dbus_connection_setup_with_g_main()
8915         and dbus_server_setup_with_g_main().
8916
8917 2003-04-20  Havoc Pennington  <hp@pobox.com>
8918
8919         * doc/dbus-specification.sgml: document the restrictions on
8920         message and service names
8921
8922 2003-04-22  Havoc Pennington  <hp@redhat.com>
8923
8924         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8925         support, and do some code cleanups to share more code and
8926         speed up array marshal/demarshal.
8927
8928         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8929
8930         * configure.in: generate dbus-arch-deps.h
8931
8932         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8933         64-bit typecodes
8934
8935 2003-04-22  Havoc Pennington  <hp@redhat.com>
8936
8937         * test/data/valid-messages/opposite-endian.message: fix test
8938         to use proper type for rply field
8939
8940         * test/data/invalid-messages: add tests for below validation
8941
8942         * dbus/dbus-message.c (decode_header_data): validate field types,
8943         and validate that named fields are valid names
8944         (decode_name_field): consider messages in the
8945         org.freedesktop.Local. namespace to be invalid.
8946
8947         * dbus/dbus-string.c (_dbus_string_validate_name): new
8948
8949 2003-04-19  Havoc Pennington  <hp@pobox.com>
8950
8951         * bus/driver.c (bus_driver_handle_hello): check limits and
8952         return an error if they are exceeded.
8953
8954         * bus/connection.c: maintain separate lists of active and inactive
8955         connections, and a count of each. Maintain count of completed
8956         connections per user. Implement code to check connection limits.
8957
8958         * dbus/dbus-list.c (_dbus_list_unlink): export
8959
8960         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8961         number of bytes in the message queue for a connection
8962
8963 2003-04-18  Havoc Pennington  <hp@pobox.com>
8964
8965         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8966
8967         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8968         memleaks
8969
8970         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8971         on realloc be sure to update the pointer in the keyring
8972
8973         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8974         offset to avoid writing to unallocated memory
8975
8976         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8977         try the next mechanism, so we properly handle OOM
8978
8979         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8980         on OOM.
8981         (_dbus_keyring_new): fix OOM bug
8982         (_dbus_keyring_new_homedir): always set error; impose a maximum
8983         number of keys we'll load from the file, mostly to speed up the
8984         test suite and make its OOM checks more useful, but also for
8985         general sanity.
8986
8987         * dbus/dbus-auth.c (process_error_server): reject authentication
8988         if we get an error from the client
8989         (process_cancel): on cancel, send REJECTED, per the spec
8990         (process_error_client): send CANCEL if we get an error from the
8991         server.
8992
8993 2003-04-18  Havoc Pennington  <hp@pobox.com>
8994
8995         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8996         debug spew
8997
8998         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8999         handling problem
9000
9001         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9002         about DBUS_TEST_HOMEDIR once
9003
9004         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9005         the environment
9006
9007         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9008         config file so we test the right thing
9009
9010         Throughout: assorted docs improvements
9011
9012 2003-04-18  Havoc Pennington  <hp@pobox.com>
9013
9014         * glib/dbus-gmain.c: adapt to watch changes
9015
9016         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9017
9018         * dbus/dbus-server.h: remove dbus_server_handle_watch
9019
9020         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9021
9022         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9023         like DBusTimeout, so we don't need dbus_connection_handle_watch
9024         etc.
9025
9026 2003-04-17  Havoc Pennington  <hp@redhat.com>
9027
9028         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9029         database usage so it all goes via the DBusUserDatabase cache.
9030
9031 2003-04-17  Havoc Pennington  <hp@redhat.com>
9032
9033         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9034         there was an OOM watch we skipped, we always return TRUE so we
9035         iterate again to have a look at it again. Fixes test suite hang.
9036         Code rearrangement also lets us lose some memset and only iterate
9037         over callbacks once.
9038
9039         * bus/driver.c (bus_driver_handle_message): sense of test for
9040         reply was backward
9041
9042 2003-04-16  Havoc Pennington  <hp@pobox.com>
9043
9044         * doc/dbus-specification.sgml: make spec say serials are unsigned
9045
9046         * dbus/dbus-message.h: change message serials to unsigned
9047
9048         * dbus/dbus-connection.c: adapt to message serials being unsigned
9049
9050 2003-04-15  Havoc Pennington  <hp@pobox.com>
9051
9052         * bus/bus.c: create and keep around a shared DBusUserDatabase
9053         object.
9054
9055         * bus/connection.c (bus_connection_get_groups): don't cache
9056         groups for user in the connection object, since user database
9057         object now does that.
9058
9059 2003-04-16  Havoc Pennington  <hp@redhat.com>
9060
9061         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9062         list of size counters
9063         (_dbus_message_loader_putback_message_link): put back a popped link
9064
9065         * dbus/dbus-connection.c
9066         (dbus_connection_set_max_live_messages_size): rename
9067         max_received_size
9068         (dbus_connection_get_outgoing_size): get size of outgoing
9069         queue
9070         (_dbus_connection_set_connection_counter): remove this cruft
9071
9072 2003-04-14  Havoc Pennington  <hp@redhat.com>
9073
9074         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9075         caching, but at some point we might want to be able to use a
9076         different database.
9077
9078         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9079         SHA1 conf file to test the sha1 auth mechanism, since the regular
9080         test always uses EXTERNAL when available.
9081
9082         * configure.in,
9083         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9084         add conf file that requires use of sha1 auth
9085
9086 2003-04-13  Havoc Pennington  <hp@pobox.com>
9087
9088         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9089         from Philip Blundell to send messages and monitor them.
9090
9091 2003-04-13  Havoc Pennington  <hp@pobox.com>
9092
9093         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9094         callbacks
9095
9096         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9097         users
9098
9099         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9100         fix to only recover unused bytes if we're already authenticated
9101         (_dbus_transport_get_is_authenticated): fix to still mark us
9102         authenticated if there are unused bytes.
9103
9104         * bus/dispatch.c: implement security policy checking
9105
9106         * bus/connection.c (bus_transaction_send_from_driver): new
9107
9108         * bus/bus.c (bus_context_check_security_policy): new
9109
9110         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9111         now we just set the DBusError and it gets converted to an error
9112         reply.
9113
9114         * bus/connection.c (allow_user_function): enable code using actual
9115         data from the config file
9116
9117         * bus/policy.c (list_allows_user): handle wildcard rules for
9118         user/group connection perms
9119
9120 2003-04-13  Havoc Pennington  <hp@pobox.com>
9121
9122         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9123
9124         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9125
9126         * bus/policy.c (bus_policy_append_mandatory_rule)
9127         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9128         (bus_policy_append_group_rule): new functions
9129
9130 2003-04-12  Havoc Pennington  <hp@pobox.com>
9131
9132         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9133
9134         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9135         the pid/gid/uid, just for paranoia.
9136
9137         * test/break-loader.c (randomly_do_n_things): find a byte
9138         containing a type code, and randomly change it to a different
9139         type code.
9140
9141 2003-04-12  Havoc Pennington  <hp@pobox.com>
9142
9143         * bus/policy.h: change BusPolicy to be the thing from the config
9144         file, and rename old BusPolicy to BusClientPolicy
9145
9146         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9147         match change in how policy works
9148
9149         * dbus/dbus-internals.h: mark assert_not_reached as
9150         __attribute((noreturn))__
9151
9152 2003-04-11  Havoc Pennington  <hp@redhat.com>
9153
9154         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9155         the broadcast service. Use boolean return for ServiceExists.
9156
9157 2003-04-11  Havoc Pennington  <hp@redhat.com>
9158
9159         * configure.in: add another directory to look for qt in.
9160
9161 2003-04-11  Havoc Pennington  <hp@redhat.com>
9162
9163         * AUTHORS: add Colin Walters
9164
9165 2003-04-11  Havoc Pennington  <hp@redhat.com>
9166
9167         * NEWS: update
9168
9169         * configure.in: 0.9
9170
9171 2003-04-11  Havoc Pennington  <hp@redhat.com>
9172
9173         * bus/messagebus.in: remove pid file when stopping the
9174         message bus, since the bus won't have privileges to remove it
9175         itself.
9176
9177 2003-04-11  Havoc Pennington  <hp@redhat.com>
9178
9179         * bus/bus.c (bus_context_new): move credentials change after
9180         creating pidfile
9181
9182 2003-04-11  Havoc Pennington  <hp@pobox.com>
9183
9184         * test/decode-gcov.c: add "below average functions" to the
9185         coverage report, and change how some of the code works.
9186
9187         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9188         not in the coverage stats.
9189
9190         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9191         couple places so running the test suite doesn't result in megaspam.
9192
9193 2003-04-11  Havoc Pennington  <hp@pobox.com>
9194
9195         * bus/dispatch.c (check_existent_service_activation): accept a no
9196         memory error in a place we didn't before
9197
9198         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9199         in case the first one failed," since the test suite is less
9200         broken now.
9201
9202 2003-04-10  Havoc Pennington  <hp@pobox.com>
9203
9204         * bus/dispatch.c (check_segfault_service_activation): add test
9205         for launching an executable that just crashes.
9206
9207         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9208         don't leave a million cores. We'll see how portable this is.
9209
9210 2003-04-10  Havoc Pennington  <hp@pobox.com>
9211
9212         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9213         the possible parent failures before we fork, so that we don't
9214         fail to create a babysitter after creating the child.
9215
9216         * bus/activation.c (bus_activation_activate_service): kill child
9217         if we don't successfully complete the activation.
9218
9219 2003-04-10  Havoc Pennington  <hp@redhat.com>
9220
9221         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9222         the connection if it's disconnected
9223
9224         * bus/activation.c (bus_activation_service_created): use new
9225         transaction features to roll back removal of pending activation if
9226         we don't successfully create the service after all. Don't remove
9227         pending activation if the function fails.
9228
9229         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9230         (_dbus_list_insert_after_link): new code to facilitate
9231         services.c fixes
9232
9233         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9234         new functionality, so we can preallocate the ability to insert
9235         into a hash table.
9236
9237         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9238         allowing us to put custom hooks in a transaction to be used for
9239         cancelling said transaction
9240
9241         * doc/dbus-specification.sgml: add some discussion of secondary
9242         service owners, and disallow zero-length service names
9243
9244         * bus/services.c (bus_registry_acquire_service): new function,
9245         splits out part of bus_driver_handle_acquire_service() and fixes
9246         a bug where we didn't remove the service doing the acquiring
9247         from the secondary queue if we failed to remove the current owner
9248         from the front of the queue.
9249
9250 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9251
9252         * doc/dbus-specification.sgml:
9253         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9254
9255 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9256
9257         * bus/.cvsignore:
9258         * glib/.cvsignore:
9259         * test/.cvsignore:
9260         Added files to cvsignore
9261
9262         * dbus/dbus-message.h:
9263         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9264         Make get_named() take two out argument and return a boolean.
9265         (dbus_message_iter_get_args_valist):
9266         Update usage of get_named().
9267         (dbus_message_iter_append_byte):
9268         Fix typo
9269         (dbus_message_iter_append_named)
9270         Fix typo
9271         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9272         More tests.
9273
9274 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9275
9276         * dbus/dbus-marshal.[ch]:
9277         Add array_type_pos argument to _dbus_marshal_validate_arg.
9278         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9279
9280         * dbus/dbus-message.[ch]:
9281         Multi-dimensional arrays have full type specification in the
9282         outermost array. Iter code re-arranged to handle this.
9283         Added some more iter tests.
9284
9285         * doc/dbus-specification.sgml:
9286         Add me to authors.
9287         Remove old FIXME.
9288         Update new array encoding description.
9289         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9290
9291         * test/data/invalid-messages/array-with-mixed-types.message:
9292         * test/data/valid-messages/array-of-array-of-uint32.message:
9293         Change to the new array format.
9294
9295         * test/data/invalid-messages/too-short-dict.message:
9296         Fix bug in test.
9297
9298         * test/data/valid-messages/recursive-types.message:
9299         Fix up and extend test.
9300
9301 2003-04-10  Havoc Pennington  <hp@pobox.com>
9302
9303         * bus/dispatch.c: lots of fixes
9304
9305         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9306         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9307         that was crack, broke the test service.
9308
9309         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9310         handling to avoid piling up errors if we get a failure on the
9311         first address.
9312
9313         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9314         pid in assertion failures.
9315
9316         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9317         to some fixed size of file descriptor array. Don't return TRUE
9318         anytime a timeout exists, that led to lots of busy loop silliness
9319         in the tests.
9320
9321 2003-04-09  Havoc Pennington  <hp@redhat.com>
9322
9323         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9324         I'd checked this in earlier but hadn't.
9325
9326 2003-04-09  Havoc Pennington  <hp@redhat.com>
9327
9328         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9329         the activation test (man this is getting old!)
9330
9331 2003-04-09  Havoc Pennington  <hp@redhat.com>
9332
9333         * test/test-utils.c: use dispatch status function to fix this up
9334
9335         * bus/connection.c (connection_watch_callback): don't dispatch
9336         from here
9337         (connection_timeout_callback): don't dispatch from here
9338         (bus_connections_setup_connection): set the dispatch status function
9339         (bus_connection_disconnected): unset it
9340
9341         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9342         used to add a connection to be dispatched
9343         (_dbus_loop_iterate): do the dispatching at the end of each
9344         iteration
9345
9346         * dbus/dbus-connection.c
9347         (dbus_connection_set_dispatch_status_function): new function
9348         allowing us to fix up main loop usage
9349         (_dbus_connection_last_unref): free all the various function
9350         user data
9351         (dbus_connection_dispatch): call the DispatchStatusFunction
9352         whenever this function returns
9353         (dbus_connection_handle_watch): call DispatchStatusFunction
9354         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9355         (reply_handler_timeout): call DispatchStatusFunction
9356         (dbus_connection_flush): call DispatchStatusFunction
9357
9358 2003-04-09  Havoc Pennington  <hp@redhat.com>
9359
9360         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9361         a memory leak
9362
9363         * bus/dispatch.c (check_service_activated): fix bug in test
9364
9365         * dbus/dbus-mainloop.c (check_timeout): fix this up
9366
9367         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9368         verbose output so we can sort out output from different processes,
9369         e.g. in the activation case.
9370
9371 2003-04-08  Colin Walters  <walters@gnu.org>
9372
9373         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9374         the pid file.
9375         (bus_context_new): Set it.
9376         (bus_context_unref): Use it to delete the pid file.
9377
9378 2003-04-08  Havoc Pennington  <hp@redhat.com>
9379
9380         * test/data/invalid-messages/array-with-mixed-types.message:
9381         regression test that fails for the moment
9382
9383         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9384         tests for convenience
9385
9386         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9387         array of nil, it broke things.
9388
9389         * test/data/invalid-messages/array-of-nil.message: regression test
9390
9391         * test/data/valid-messages/array-of-array-of-uint32.message:
9392         happened to write this so added it to suite
9393
9394 2003-04-08  Havoc Pennington  <hp@redhat.com>
9395
9396         * bus/driver.c (bus_driver_handle_acquire_service): init
9397         retval/reply before checking name
9398
9399         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9400         recursion depth argument
9401
9402         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9403         in the public struct for future extension
9404
9405         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9406         typo
9407
9408         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9409         message
9410
9411         * doc/dbus-specification.sgml: fix typo
9412
9413 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9414
9415         Implemented recursive types, named types and new-style iters
9416
9417         * bus/driver.c:
9418         * glib/test-thread-client.c: (thread_func):
9419         * glib/test-thread-server.c: (handle_test_message):
9420         * test/test-service.c: (handle_echo):
9421         Update to new api
9422
9423         * dbus/Makefile.am:
9424         * dbus/dbus-dict.c:
9425         * dbus/dbus-dict.h:
9426         * dbus/dbus.h
9427         Remove DBusDict
9428
9429         * dbus/dbus-internals.c: (_dbus_type_to_string):
9430         Update for new types.
9431
9432         * dbus/dbus-marshal.[ch]:
9433         Implement recursive types and the new marshalling format.
9434         Remove hardcoded dict marshalling.
9435         Marshal named types.
9436
9437         * dbus/dbus-message-builder.c:
9438         Add BYTE_ARRAY.
9439         Remove references to old types
9440
9441         * dbus/dbus-message.[ch]:
9442         New non-refcounted iter API that supports recursive iters.
9443         Use iters for appending, including support for recursive
9444         iters.
9445         Add byte and named type support.
9446         Update everything to new marshalling formats.
9447         Add tests for new API.
9448
9449         * dbus/dbus-protocol.h:
9450         Remove old array types.
9451         Add types: BYTE, ARRAY, DICT, NAMED
9452
9453         * dbus/dbus-string.c:
9454         * dbus/dbus-sysdeps.c:
9455         Make parse_double locale safe.
9456
9457         * dbus/dbus-test-main.c:
9458         Call setlocale.
9459
9460         * dbus/dbus-test.c:
9461         Kill dict test
9462
9463         * doc/dbus-specification.sgml:
9464         Update spec
9465
9466         * test/data/incomplete-messages/missing-body.message:
9467         * test/data/invalid-messages/bad-boolean.message:
9468         * test/data/invalid-messages/bad-boolean-array.message:
9469         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9470         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9471         * test/data/invalid-messages/too-short-dict.message:
9472         * test/data/valid-messages/dict-simple.message:
9473         * test/data/valid-messages/dict.message:
9474         * test/data/valid-messages/emptiness.message:
9475         * test/data/valid-messages/lots-of-arguments.message:
9476         * test/data/valid-messages/no-padding.message:
9477         * test/data/valid-messages/recursive-types.message:
9478         Add missing NAME fields
9479         Fix up dicts & arrays
9480
9481         * test/data/invalid-messages/dict-with-nil-value.message:
9482         Removed, this is not invalid anymore.
9483
9484         * test/data/valid-messages/recursive-types.message:
9485         Add new test for deeply recursive types.
9486
9487 2003-04-07  Havoc Pennington  <hp@pobox.com>
9488
9489         * bus/driver.c (bus_driver_handle_acquire_service): return an
9490         error if you try to acquire a service that starts with ':'
9491
9492 2003-04-07  Havoc Pennington  <hp@redhat.com>
9493
9494         * doc/dbus-specification.sgml: require that base service names
9495         start with ':' and that the base service is created/deleted
9496         as first and last things a connection does on the bus
9497
9498         * bus/dispatch.c (check_existent_service_activation): lots more
9499         work on the activation test; it doesn't fully pass yet...
9500
9501         * test/test-service.c (main): fix so we don't memleak the
9502         connection to the message bus
9503         (filter_func): accept a message asking us to exit
9504
9505 2003-04-06  Havoc Pennington  <hp@pobox.com>
9506
9507         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9508         from Colin Walters
9509
9510         * configure.in: fixes to Qt detection from Colin Walters
9511
9512         * doc/Makefile.am: Only remove generated docbook dirs if they
9513         exist, from Colin Walters
9514
9515         * dbus/dbus-bus.c: change how we set well-known connections to
9516         NULL, so that it works if a single connection is stored in
9517         two well-known array slots.
9518
9519         * test/Makefile.am: remove a lot of stuff that isn't immediately
9520         useful, it's in CVS history if we want it.
9521
9522         * test/test-service.c: use dbus-mainloop instead of that
9523         watch.[hc] crack
9524
9525 2003-04-06  Havoc Pennington  <hp@pobox.com>
9526
9527         * dbus/Makefile.am: split lists of sources into stuff that goes in
9528         the library, util functions that go in the lib and are also used
9529         elsewhere, and util functions that are used in tests/daemon but
9530         don't go in the lib.
9531
9532         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9533         here so it can be used in test binaries also
9534
9535 2003-04-06  Havoc Pennington  <hp@pobox.com>
9536
9537         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9538         here in the parent process, so we can return an error if it
9539         fails. Also, move some of the code into the child so the parent
9540         is less hosed if we fail midway through.
9541
9542         * bus/bus.c (bus_context_new): move pidfile detection further up
9543         in the function, before we start overwriting sockets and such.
9544
9545         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9546
9547         * configure.in: add --with-system-pid-file and --with-system-socket
9548
9549 2003-04-06  Colin Walters  <walters@verbum.org>
9550
9551         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9552
9553         * bus/system.conf.in: Declare a pidfile.
9554
9555         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9556         create one (if appropriate).
9557
9558         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9559         (struct BusConfigParser) [pidfile]: New.
9560         (element_type_to_name, merge_included, start_busconfig_child)
9561         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9562         (bus_config_parser_unref): Free it.
9563         (bus_config_parser_get_pidfile): New function.
9564
9565         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9566
9567         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9568
9569         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9570
9571         * dbus/dbus-sysdeps.h: Prototype it.
9572
9573 2003-04-06  Havoc Pennington  <hp@pobox.com>
9574
9575         * bus/bus.c (bus_context_new): print the address in here, rather
9576         than in main(), because we need to do it before forking the daemon
9577
9578         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9579         on the service nonexistent error
9580
9581         * bus/driver.c (bus_driver_handle_acquire_service): set the
9582         sender on the AcquireService reply
9583
9584         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9585         server also listen on a UNIX socket so services can connect to it.
9586
9587 2003-04-06  Havoc Pennington  <hp@pobox.com>
9588
9589         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9590         so it detects deadlocks and also we actually init threads when
9591         debugging.
9592
9593 2003-04-06  Havoc Pennington  <hp@pobox.com>
9594
9595         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9596         save the domain socket name, and unlink it when we disconnect the
9597         server. Means that at least when we exit normally, we won't leave
9598         a bunch of junk in /tmp
9599
9600         * dbus/dbus-transport-unix.c
9601         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9602         memory management). (I was making a real change here but then
9603         didn't)
9604
9605 2003-04-06  Havoc Pennington  <hp@pobox.com>
9606
9607         * bus/bus.c (bus_context_new): fix wrong handling of
9608         server_data_slot_unref() in the error case.
9609
9610         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9611         "(condition) != 0" to _dbus_real_assert so that
9612         "_dbus_assert (pointer)" doesn't cause a warning
9613
9614         * bus/main.c (main): accept --print-address option to print out
9615         the message bus address
9616
9617         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9618
9619         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9620         "tmpdir" option to unix: address on client side
9621
9622         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9623         to unix: address
9624
9625         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9626         we can use to create sockets in the test suite.
9627
9628         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9629         cleanly. To be used for testing.
9630
9631         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9632
9633         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9634
9635         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9636         handle trying to call this when there's no servers active
9637
9638 2003-04-05  Havoc Pennington  <hp@pobox.com>
9639
9640         * NEWS: update
9641
9642         * configure.in: 0.8
9643
9644 2003-04-05  Havoc Pennington  <hp@pobox.com>
9645
9646         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9647         crash on startup. Need to get "try starting the daemon"
9648         in the test suite I guess. ;-)
9649
9650         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9651         tracked the number of open connections; it's better done in
9652         application-specific code as you want it to span all servers etc.
9653
9654 2003-04-05  Havoc Pennington  <hp@pobox.com>
9655
9656         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9657         patch from Colin Walters
9658
9659 2003-04-05  Havoc Pennington  <hp@pobox.com>
9660
9661         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9662         reality; in fact multiple mechanisms are allowed.
9663
9664         * dbus/dbus-internals.c (_dbus_real_assert)
9665         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9666         _dbus_assert_not_reached() into functions, so that they don't show
9667         up in basic block counts for test coverage, and don't use up as
9668         much disk space. Does mean slower execution speed though, so
9669         assumes --disable-asserts is the normal production case.
9670
9671 2003-04-05  Havoc Pennington  <hp@pobox.com>
9672
9673         * test/Makefile.am (dist-hook): also dist *.in files
9674
9675         * NEWS: update
9676
9677         * configure.in: 0.7
9678
9679 2003-04-05  Havoc Pennington  <hp@pobox.com>
9680
9681         * dbus/dbus-string.c: docs warning
9682
9683         * dbus/dbus-spawn.c: missing docs
9684
9685         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9686
9687 2003-04-05  Havoc Pennington  <hp@pobox.com>
9688
9689         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9690         magic from GLib
9691
9692         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9693         to -1 once we've reaped the babysitter
9694         (_dbus_babysitter_handle_watch): do as much work as we can, not
9695         just one go of it
9696
9697         * bus/activation.c: add code using DBusBabysitter so that we
9698         handle it when a service fails to start up properly.
9699         (bus_activation_service_created): don't remove the activation
9700         entries as we go, just let them get removed when we free the pending
9701         activation. Unref reply messages after sending them.
9702
9703 2003-04-05  Havoc Pennington  <hp@pobox.com>
9704
9705         * test/decode-gcov.c (main): print per-directory stats in the report
9706
9707         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9708
9709 2003-04-05  Havoc Pennington  <hp@pobox.com>
9710
9711         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9712
9713         * test/decode-gcov.c: hack up a little program to suck data
9714         out of gcov files. Yes this is sort of silly.
9715
9716         * configure.in: define something in config.h and do an
9717         AM_CONDITIONAL when gcov is enabled
9718
9719 2003-04-04  Havoc Pennington  <hp@redhat.com>
9720
9721         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9722         return a "babysitter" object that is used to monitor the status of
9723         the spawned process and reap it when required.
9724
9725         * test/test-segfault.c, test/test-exit.c,
9726         test/test-sleep-forever.c: binaries that do various lame things,
9727         used in the test suite.
9728
9729         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9730
9731 2003-04-03  Havoc Pennington  <hp@pobox.com>
9732
9733         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9734         in preparation for modifying it, dbus-sysdeps is getting
9735         a bit unmanageable.
9736
9737 2003-04-03  Havoc Pennington  <hp@redhat.com>
9738
9739         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9740         have multiple ones
9741
9742         * bus/*.[hc]: adapt to mainloop change
9743
9744 2003-04-03  Havoc Pennington  <hp@redhat.com>
9745
9746         * bus/activation.c (load_directory): fix up memleaks
9747         (bus_activation_entry_free): free the entry
9748
9749         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9750         we get one from the message bus; fix memleaks.
9751
9752         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9753
9754 2003-04-03  Havoc Pennington  <hp@pobox.com>
9755
9756         * bus/config-parser.c (bus_config_parser_unref): free
9757         list of mechanisms, bug discovered by test suite enhancements
9758         (putting system.conf and session.conf into suite)
9759
9760         * test/Makefile.am, test/test-service.c: add placeholder for a
9761         test service that we'll activate as part of test suite. Doesn't
9762         do anything yet.
9763
9764         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9765         setting NULL value, and use system malloc not dbus_malloc()
9766         when we have unavoidable memleakage.
9767
9768         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9769         didn't work, and support DBUS_BUS_ACTIVATION.
9770
9771         * bus/activation.c (child_setup): pass our well-known bus type to
9772         the child
9773
9774         * bus/config-parser.c: support <type> to specify well-known type
9775
9776         * doc/dbus-specification.sgml: document the env variables to
9777         locate well-known buses and find service activator
9778
9779 2003-04-02  Havoc Pennington  <hp@redhat.com>
9780
9781         * test/Makefile.am (all-local): add a rule to copy tests to
9782         builddir, so we can have generated tests. Use this to remove the
9783         silly hack for testing system.conf and session.conf. Will use this
9784         shortly to generate .service files pointing to test binaries.
9785
9786 2003-04-02  Havoc Pennington  <hp@redhat.com>
9787
9788         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9789         current alloc and needed new length, not max of the doubled
9790         allocation and needed new length. Also, when building tests,
9791         don't do the double-allocation stuff, just realloc every time.
9792
9793 2003-04-02  Havoc Pennington  <hp@redhat.com>
9794
9795         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9796         in error messages
9797         (_dbus_string_get_dirname): new
9798         (_dbus_sysdeps_test): new
9799         (_dbus_directory_open): include dirnames in error messages
9800
9801         * bus/config-parser.c: interpret <include> and <includedir> and
9802         <servicedir> relative to config file location if the given
9803         filename is not absolute.
9804
9805         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9806
9807 2003-04-02  Havoc Pennington  <hp@redhat.com>
9808
9809         * bus/connection.c (bus_transaction_send_error_reply): set sender
9810         service for the error, and unref the reply on success
9811
9812         * bus/activation.c: convert to use BusTransaction so OOM can be
9813         handled correctly
9814         (bus_activation_service_created): set sender of the message
9815
9816 2003-04-01  Havoc Pennington  <hp@redhat.com>
9817
9818         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9819         <includedir> (at least mostly)
9820
9821         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9822         first, then the user ID
9823
9824 2003-04-01  Havoc Pennington  <hp@pobox.com>
9825
9826         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9827         function
9828
9829         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9830
9831         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9832
9833         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9834         socket 0777, and unlink any existing socket.
9835
9836         * bus/bus.c (bus_context_new): change our UID/GID and fork if
9837         the configuration file so specifies; set up auth mechanism
9838         restrictions
9839
9840         * bus/config-parser.c (bus_config_parser_content): add support
9841         for <fork> option and fill in code for <auth>
9842
9843         * bus/system.conf.in: add <fork/> to default configuration,
9844         and limit auth mechanisms to EXTERNAL
9845
9846         * doc/config-file.txt (Elements): add <fork>
9847
9848         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9849         (_dbus_change_identity): new function
9850
9851 2003-03-31  Havoc Pennington  <hp@redhat.com>
9852
9853         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9854         (_dbus_listen_unix_socket): fix off-by-one error in null
9855         termination spotted by Nalin
9856
9857 2003-03-31  Havoc Pennington  <hp@redhat.com>
9858
9859         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9860         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9861         having a real home directory available.
9862
9863 2003-03-31  Havoc Pennington  <hp@redhat.com>
9864
9865         * bus/Makefile.am (install-data-hook): create /var/run/dbus
9866
9867         * bus/messagebus.in: add init script for Red Hat /etc/init.d
9868
9869         * configure.in: add support for specifying a style of init script
9870         to install
9871
9872 2003-03-31  Havoc Pennington  <hp@redhat.com>
9873
9874         Fix some annoying DBusString API and fix all affected code.
9875
9876         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9877         max_length argument
9878         (_dbus_string_get_data): change to return string instead of using
9879         an out param
9880         (_dbus_string_get_const_data): ditto
9881         (_dbus_string_get_data_len): ditto
9882         (_dbus_string_get_const_data_len): ditto
9883
9884 2003-03-31  Havoc Pennington  <hp@redhat.com>
9885
9886         * bus/main.c (main): fix up the command line arguments to be nicer
9887
9888 2003-03-31  Havoc Pennington  <hp@redhat.com>
9889
9890         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9891         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9892         final location that lands in the config file
9893
9894         * bus/config-loader-expat.c (bus_config_load): fix type of
9895         XML_Parser variable
9896
9897         * doc/TODO: remove TODO item for dbus_bus_get()
9898
9899         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9900
9901 2003-03-31  Havoc Pennington  <hp@pobox.com>
9902
9903         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9904         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9905         argument since they are always client side
9906
9907         * dbus/dbus-server.c (dbus_server_get_address): new function
9908
9909         * bus/main.c (main): take the configuration file as an argument.
9910
9911         * test/data/valid-config-files/debug-allow-all.conf: new file to
9912         use with dispatch.c tests for example
9913
9914         * bus/test-main.c (main): require test data dir
9915
9916         * bus/bus.c (bus_context_new): change this to take a
9917         configuration file name as argument
9918
9919         * doc/config-file.txt (Elements): add <servicedir>
9920
9921         * bus/system.conf, bus/session.conf: new files
9922
9923         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9924         well-known socket if none set
9925
9926         * configure.in: create system.conf and session.conf
9927
9928 2003-03-30  Havoc Pennington  <hp@pobox.com>
9929
9930         * bus/config-parser.c: hacking
9931
9932         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9933         to shut down, since it could cause weirdness with the DBusList
9934         lock
9935
9936         * dbus/dbus-list.c (_dbus_list_test): add tests for the
9937         link-oriented stack routines
9938         (alloc_link): free the mempool if the first alloc from it fails
9939
9940         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9941
9942         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9943         from GLib
9944         (_dbus_string_skip_white): new
9945
9946         * doc/config-file.txt (Elements): add <includedir>
9947
9948 2003-03-28  Havoc Pennington  <hp@pobox.com>
9949
9950         * dbus/dbus-string.c (_dbus_string_copy_data_len)
9951         (_dbus_string_copy_data): new functions
9952
9953 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
9954
9955         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9956         * dbus/dbus-bus.h:
9957         Add dbus_bus_get.
9958
9959         * dbus/dbus-memory.c:
9960         Fix a doc comment.
9961
9962 2003-03-28  Havoc Pennington  <hp@pobox.com>
9963
9964         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9965         I think it may have just been superstition. Not sure.
9966
9967         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9968         failures that were not being handled.
9969
9970         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9971
9972         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9973         row that will fail on out-of-memory.
9974
9975         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9976         function for testing out-of-memory handling.
9977
9978         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9979         allocation functions, they do map exactly to the expat ones.
9980
9981 2003-03-27  Havoc Pennington  <hp@redhat.com>
9982
9983         * bus/config-loader-libxml.c (bus_config_load): add another error
9984         check
9985
9986 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9987
9988         * doc/TODO:
9989         Add note about automatic service activation.
9990
9991         * doc/dbus-specification.sgml:
9992         Rename the specification and clarify a few things.
9993
9994 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9995
9996         * Doxyfile.in:
9997         * dbus/dbus-address.c:
9998         * dbus/dbus-dict.c:
9999         * dbus/dbus-marshal.c:
10000         * dbus/dbus-server-debug-pipe.c:
10001         * dbus/dbus-transport-unix.c:
10002         Fix documentation warnings.
10003
10004 2003-03-26  Havoc Pennington  <hp@pobox.com>
10005
10006         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10007         after every test so it's quick and easy to see which leaked, and
10008         so we test multiple dbus_shutdown() calls
10009
10010         * configure.in: change configure.in XML stuff to also support
10011         expat
10012
10013         * config-loader-libxml.c: some hacking
10014
10015         * config-loader-expat.c: some hacking
10016
10017         * config-parser.c: some hacking, plus tests
10018
10019 2003-03-25  Havoc Pennington  <hp@redhat.com>
10020
10021         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10022
10023         * configure.in: add --with-xml option to specify XML library,
10024         right now only libxml is supported.
10025
10026         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10027         nonworking code between home and work, still just stubs
10028
10029 2003-03-24  Havoc Pennington  <hp@redhat.com>
10030
10031         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10032         file
10033
10034         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10035         NULL argument for "message" if the error is a well-known one,
10036         fill in a generic message in this case.
10037
10038         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10039         favor of DBusError
10040
10041         * bus/test.c (bus_test_flush_bus): add
10042
10043         * bus/policy.c (bus_policy_test): test code stub
10044
10045 2003-03-24  Havoc Pennington  <hp@pobox.com>
10046
10047         * bus/connection.c (bus_connections_setup_connection): set up
10048         the "can this user connect" function, but it always returns
10049         TRUE until we have a config file parser so we can have a config
10050         file that allows connections.
10051
10052 2003-03-23  Havoc Pennington  <hp@pobox.com>
10053
10054         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10055         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10056         the mutex, so we can check for proper memory management
10057         and OOM handling.
10058
10059         * dbus/dbus-dataslot.c: remove the mutex from
10060         DBusDataSlotAllocator and lock it manually when using it,
10061         to simplify fitting it into the global slots framework.
10062
10063         * dbus/dbus-threads.c (init_static_locks): rework how we're
10064         handling global locks so they are easily shut down.
10065
10066         * bus/policy.c (bus_policy_append_rule): fix
10067
10068         * bus/test-main.c (main): check for memleaks
10069
10070         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10071         test suite check for memleaks
10072
10073         * dbus/dbus-memory.c: add support in test mode for tracking
10074         number of outstanding blocks
10075
10076 2003-03-23  Havoc Pennington  <hp@pobox.com>
10077
10078         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10079         policies code
10080
10081         * dbus/dbus-hash.h: add ULONG hash keys
10082
10083         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10084         (_dbus_get_group_id): new function
10085
10086 2003-03-20  Havoc Pennington  <hp@redhat.com>
10087
10088         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10089         new function
10090         (dbus_connection_get_unix_user): new function
10091
10092 2003-03-20  Havoc Pennington  <hp@pobox.com>
10093
10094         * bus/connection.c (bus_connection_send_oom_error): assert that
10095         message has a sender
10096         (connection_execute_transaction): ditto
10097         (bus_connection_preallocate_oom_error): fix to set the sender, and
10098         set recipient to the destination service, not the bus driver
10099
10100         * bus/policy.c: hacking
10101
10102         * dbus/dbus-message.c (dbus_message_service_is): new function
10103         (dbus_message_sender_is): new
10104
10105 2003-03-19  Havoc Pennington  <hp@redhat.com>
10106
10107         * bus/policy.c: start sketching code for policy restrictions on
10108         what connections can do.
10109
10110 2003-03-18  Havoc Pennington  <hp@redhat.com>
10111
10112         * doc/TODO: some notes on high-level todo items. Little nitpick
10113         stuff is all in @todo, so no need to add it here.
10114
10115         * doc/config-file.txt: some notes on how config file might look
10116
10117 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10118
10119         * configure.in: 0.6
10120
10121         * NEWS: Update.
10122
10123 2003-03-17  Havoc Pennington  <hp@redhat.com>
10124
10125         * dbus/dbus-internals.h: add gcc attributes so that
10126         our printf-style functions warn on bad arguments to
10127         format
10128
10129         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10130         format bug
10131
10132         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10133         printf format bug
10134
10135 2003-03-17  Havoc Pennington  <hp@redhat.com>
10136
10137         * bus/test-main.c (main): make it print something as it runs
10138         so make check doesn't look stuck
10139
10140         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10141         from CVS, now obsolete
10142
10143 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10144
10145         * bus/dispatch.c: (bus_dispatch):
10146         Refetch the service name since it may have been reallocated
10147         when dbus_message_set_sender was called.
10148
10149         * dbus/dbus-sysdeps.c: (_dbus_accept):
10150         Add address and address length variables and use them to stop
10151         valgrind from complaining.
10152
10153 2003-03-17  Havoc Pennington  <hp@pobox.com>
10154
10155         All tests pass, no memleaks, no valgrind complaints.
10156
10157         * bus/test.c: refcount handler_slot
10158
10159         * bus/connection.c (bus_connections_new): refcount
10160         connection_data_slot
10161
10162         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10163         bytes so that auth scripts pass.
10164
10165         * bus/dispatch.c: init message_handler_slot so it gets allocated
10166         properly
10167
10168         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10169
10170         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10171         dealloc server_pipe_hash when no longer used for benefit of
10172         leak checking
10173
10174         * dbus/dbus-auth.c (process_command): memleak fix
10175
10176         * bus/dispatch.c (check_hello_message): memleak fix
10177
10178 2003-03-16  Havoc Pennington  <hp@pobox.com>
10179
10180         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10181
10182 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10183
10184         * bus/activation.c (bus_activation_activate_service): Append
10185         the pending activation entry to the list of pending activations.
10186
10187 2003-03-16  Havoc Pennington  <hp@pobox.com>
10188
10189         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10190         connections
10191
10192         * dbus/dbus-address.c (create_entry): fix OOM handling when
10193         failing to alloc entry->method
10194
10195 2003-03-16  Havoc Pennington  <hp@pobox.com>
10196
10197         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10198         the watch
10199
10200         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10201         add some missing dbus_set_result
10202
10203         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10204         alloc the DBusMessageHandler
10205
10206         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10207         the transport here, since we call this from the finalizer; it
10208         resulted in a double-finalize.
10209
10210         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10211         where we tried to use transport->connection that was NULL,
10212         happened when transport was disconnected early on due to OOM
10213
10214         * bus/*.c: adapt to handle OOM for watches/timeouts
10215
10216         * dbus/dbus-transport-unix.c: port to handle OOM during
10217         watch handling
10218
10219         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10220         reference to unused bytes instead of a copy
10221
10222         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10223         out of memory
10224
10225         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10226         FALSE on OOM
10227
10228         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10229         of memory
10230
10231 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10232
10233         * doc/dbus-specification.sgml:
10234         Document reply message for ActivateService.
10235
10236 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10237
10238         * bus/activation.c: (bus_pending_activation_entry_free),
10239         (bus_pending_activation_free), (bus_activation_new),
10240         (bus_activation_unref), (bus_activation_service_created),
10241         (bus_activation_activate_service):
10242         * bus/activation.h:
10243         * bus/bus.c: (bus_context_new):
10244         * bus/desktop-file.c: (new_section):
10245         * bus/driver.c: (bus_driver_send_service_deleted),
10246         (bus_driver_handle_activate_service):
10247         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10248         * bus/services.h:
10249         * dbus/dbus-connection.c:
10250         (dbus_connection_send_with_reply_and_block):
10251         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10252         * dbus/dbus-protocol.h:
10253         Make activation work better. Now pending activations will be queued
10254         and the daemon won't try to activate services that are already registered.
10255
10256 2003-03-16  Havoc Pennington  <hp@pobox.com>
10257
10258         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10259         connection data
10260
10261         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10262         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10263
10264 2003-03-16  Havoc Pennington  <hp@pobox.com>
10265
10266         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10267         this. always run the test suite before commit...
10268
10269         * bus/*: adapt to DBusConnection API changes
10270
10271         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10272         requires renaming stuff to avoid dbus_connection_dispatch name
10273         conflict.
10274
10275         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10276         function
10277
10278         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10279         separate from _dbus_message_loader_return_buffer()
10280
10281         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10282         this, because it's now always broken to use; the number of
10283         messages in queue vs. the number still buffered by the message
10284         loader is undefined/meaningless. Should use
10285         dbus_connection_get_dispatch_state().
10286         (dbus_connection_dispatch): rename from
10287         dbus_connection_dispatch_message
10288
10289 2003-03-16  Havoc Pennington  <hp@pobox.com>
10290
10291         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10292         implementation
10293
10294 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10295
10296         * dbus/dbus-connection.c:
10297         (dbus_connection_send_with_reply_and_block):
10298         Decrease connection->n_incoming when removing an entry
10299         from the list.
10300         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10301         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10302         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10303         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10304         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10305         (dbus_dict_get_byte_array):
10306         Handle NULL arrays and strings. Also add support for byte arrays.
10307
10308         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10309         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10310         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10311         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10312         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10313         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10314         * dbus/dbus-marshal.h:
10315         Add support for marshalling and demarshalling empty arrays and strings.
10316
10317         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10318         (dbus_message_append_string_array),
10319         (dbus_message_iter_get_boolean),
10320         (dbus_message_iter_get_boolean_array),
10321         (dbus_message_iter_get_int32_array),
10322         (dbus_message_iter_get_uint32_array),
10323         (dbus_message_iter_get_double_array),
10324         (dbus_message_iter_get_byte_array),
10325         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10326         (check_message_handling):
10327         Add support for getting empty arrays and dicts.
10328
10329         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10330         Don't do any validation at all for now, that's better than just checking
10331         for ASCII.
10332
10333         * test/data/valid-messages/emptiness.message:
10334         New test message with lots of empty arrays.
10335
10336 2003-03-16  Havoc Pennington  <hp@pobox.com>
10337
10338         * dbus/dbus-connection.c
10339         (_dbus_connection_queue_received_message_link): new function that
10340         can't fail due to OOM
10341
10342         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10343         new function pops a message together with a list link
10344         containing it.
10345
10346         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10347         message queuing functions to avoid needing to alloc memory
10348
10349 2003-03-16  Havoc Pennington  <hp@pobox.com>
10350
10351         Oops - test code was only testing failure of around 30 of the
10352         mallocs in the test path, but it turns out there are 500+
10353         mallocs. I believe this was due to misguided linking setup such
10354         that there was one copy of dbus_malloc etc. in the daemon and one
10355         in the shared lib, and only daemon mallocs were tested. In any
10356         case, the test case now tests all 500+ mallocs, and doesn't pass
10357         yet, though there are lots of fixes in this patch.
10358
10359         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10360         this so that it doesn't need to allocate memory, since it
10361         has no way of indicating failure due to OOM (and would be
10362         annoying if it did).
10363
10364         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10365
10366         * bus/Makefile.am: rearrange to create two self-contained
10367         libraries, to avoid having libraries with overlapping symbols.
10368         that was resulting in weirdness, e.g. I'm pretty sure there
10369         were two copies of global static variables.
10370
10371         * dbus/dbus-internals.c: move the malloc debug stuff to
10372         dbus-memory.c
10373
10374         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10375         empty.
10376
10377         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10378
10379         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10380         on failure.
10381
10382         * bus/dispatch.c (bus_dispatch_add_connection): free
10383         message_handler_slot when no longer using it, so
10384         memory leak checkers are happy for the test suite.
10385
10386         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10387
10388         * bus/bus.c (new_connection_callback): disconnect in here if
10389         bus_connections_setup_connection fails.
10390
10391         * bus/connection.c (bus_connections_unref): fix to free the
10392         connections
10393         (bus_connections_setup_connection): if this fails, don't
10394         disconnect the connection, just be sure there are no side
10395         effects.
10396
10397         * dbus/dbus-string.c (undo_alignment): unbreak this
10398
10399         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10400         leaking
10401         (_dbus_auth_new): fix the order in which we free strings
10402         on OOM failure
10403
10404         * bus/connection.c (bus_connection_disconnected): fix to
10405         not send ServiceDeleted multiple times in case of memory
10406         allocation failure
10407
10408         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10409         get the base service name
10410         (dbus_bus_register_client): don't return base service name,
10411         instead store it on the DBusConnection and have an accessor
10412         function for it.
10413         (dbus_bus_register_client): rename dbus_bus_register()
10414
10415         * bus/dispatch.c (check_hello_message): verify that other
10416         connections on the bus also got the correct results, not
10417         just the one sending hello
10418
10419 2003-03-15  Havoc Pennington  <hp@pobox.com>
10420
10421         Make it pass the Hello handling test including all OOM codepaths.
10422         Now to do other messages...
10423
10424         * bus/services.c (bus_service_remove_owner): fix crash when
10425         removing owner from an empty list of owners
10426         (bus_registry_ensure): don't leave service in the list of
10427         a connection's owned services if we fail to put the service
10428         in the hash table.
10429
10430         * bus/connection.c (bus_connection_preallocate_oom_error): set
10431         error flag on the OOM error.
10432
10433         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10434         handle _dbus_transport_set_connection failure
10435
10436         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10437         to create watches up front and simply enable/disable them as
10438         needed.
10439         (unix_connection_set): this can now fail on OOM
10440
10441         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10442         of enabling/disabling a watch or timeout.
10443
10444         * bus/loop.c (bus_loop_iterate): don't touch disabled
10445         watches/timeouts
10446
10447         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10448
10449 2003-03-15  Havoc Pennington  <hp@pobox.com>
10450
10451         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10452         write useful test code, after all that futzing around ;-)
10453
10454         Test does not yet pass because we can't handle OOM in
10455         _dbus_transport_messages_pending (basically,
10456         dbus_connection_preallocate_send() does not prealloc the write
10457         watch). To fix this, I think we need to add new stuff to
10458         set_watch_functions, namely a SetEnabled function so we can alloc
10459         the watch earlier, then enable it later.
10460
10461         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10462         dbus-memory.c to the convenience lib
10463
10464         * bus/test.c: rename some static functions to keep them clearly
10465         distinct from stuff in connection.c. Handle client disconnection.
10466
10467 2003-03-14  Havoc Pennington  <hp@pobox.com>
10468
10469         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10470         transport, tests more of the real codepath. Set up clients
10471         with bus_setup_debug_client.
10472
10473         * bus/test.c (bus_setup_debug_client): function to set up debug
10474         "clients" on the main loop
10475
10476         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10477         support
10478
10479         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10480         server type
10481
10482         * dbus/dbus-server-debug.c: support a debug server based on pipes
10483
10484         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10485         (_dbus_close): new function
10486
10487         * configure.in: check for socketpair
10488
10489 2003-03-14  Havoc Pennington  <hp@redhat.com>
10490
10491         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10492         cheesy hack
10493
10494         * dbus/dbus-transport-debug.c: rework this a good bit to be
10495         less complicated. hopefully still works.
10496
10497         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10498         manually
10499
10500         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10501         after running it
10502
10503         * dbus/dbus-message.c (dbus_message_copy): rename from
10504         dbus_message_new_from_message, fix it up to copy
10505         all the message fields, add test case
10506
10507         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10508         not quite passing yet
10509
10510 2003-03-14  Havoc Pennington  <hp@pobox.com>
10511
10512         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10513         until no work remains" in test code. (the large diff here
10514         is just code movement, no actual changes)
10515
10516         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10517         1, no point waiting around for test code.
10518         (_dbus_server_debug_accept_transport): unref the timeout
10519         after adding it (right?)
10520
10521         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10522
10523 2003-03-13  Havoc Pennington  <hp@redhat.com>
10524
10525         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10526         out of memory
10527
10528         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10529         of memory
10530
10531         * dbus/dbus-connection.h: Make AddWatchFunction and
10532         AddTimeoutFunction return a bool so they can fail on out-of-memory
10533
10534         * bus/bus.c (bus_context_new): set up timeout handlers
10535
10536         * bus/connection.c (bus_connections_setup_connection): set up
10537         timeout handlers
10538
10539         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10540         can fail
10541
10542         * bus/bus.c (bus_context_new): adapt to changes
10543
10544         * bus/connection.c: adapt to changes
10545
10546         * test/watch.c: adapt to DBusWatch changes
10547
10548         * bus/dispatch.c (bus_dispatch_test): started adding this but
10549         didn't finish
10550
10551 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10552
10553         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10554
10555 2003-03-13  Havoc Pennington  <hp@pobox.com>
10556
10557         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10558         set up a test framework as for the library
10559
10560 2003-03-12  Havoc Pennington  <hp@pobox.com>
10561
10562         Throughout: purge global variables, introduce BusActivation,
10563         BusConnections, BusRegistry, etc. objects instead.
10564
10565         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10566         message bus object
10567
10568         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10569         going to redo this a bit differently I think
10570
10571 2003-03-12  Havoc Pennington  <hp@redhat.com>
10572
10573         Mega-patch that gets the message bus daemon initially handling
10574         out-of-memory. Work still needed. Also lots of random
10575         moving stuff to DBusError instead of ResultCode.
10576
10577         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10578
10579         * dbus/dbus-connection.c
10580         (dbus_connection_send_with_reply_and_block): use DBusError
10581
10582         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10583         DBusResultCode
10584
10585         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10586         code here, as the only failure possible is OOM.
10587
10588         * bus/connection.c (bus_connection_disconnect):
10589         rename bus_connection_disconnected as it's a notification only
10590
10591         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10592         "name" on get_args failure, should be done by get_args;
10593         don't disconnect client for bad args, just return an error.
10594         (bus_driver_handle_service_exists): ditto
10595
10596         * bus/services.c (bus_services_list): NULL-terminate returned array
10597
10598         * bus/driver.c (bus_driver_send_service_lost)
10599         (bus_driver_send_service_acquired): send messages from driver to a
10600         specific client to the client's unique name, not to the broadcast
10601         service.
10602
10603         * dbus/dbus-message.c (decode_header_data): reject messages that
10604         contain no name field
10605         (_dbus_message_get_client_serial): rename to
10606         dbus_message_get_serial and make public
10607         (_dbus_message_set_serial): rename from set_client_serial
10608         (_dbus_message_set_reply_serial): make public
10609         (_dbus_message_get_reply_serial): make public
10610
10611         * bus/connection.c (bus_connection_foreach): allow stopping
10612         iteration by returning FALSE from foreach function.
10613
10614         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10615         (dbus_connection_free_preallocated_send)
10616         (dbus_connection_preallocate_send): new API for sending a message
10617         without possibility of malloc failure.
10618         (dbus_connection_send_message): rename to just
10619         dbus_connection_send (and same for whole function family)
10620
10621         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10622
10623         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10624
10625         * bus/activation.c: handle/return errors
10626
10627         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10628
10629         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10630         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10631         (_dbus_result_from_errno): move to this file
10632
10633 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10634
10635         * dbus/dbus-marshal.c:
10636         (_dbus_marshal_set_string):
10637         Take a length argument so we can marshal the correct string
10638         length.
10639
10640         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10641         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10642         (_dbus_marshal_test):
10643         * dbus/dbus-marshal.h:
10644         Add support for marshalling and demarshalling dicts.
10645
10646         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10647         Add support for TYPE DICT.
10648
10649         * dbus/dbus-message.c: (set_string_field):
10650         Adjust header padding.
10651
10652         (dbus_message_append_args_valist), (dbus_message_append_dict),
10653         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10654         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10655         (check_message_handling), (check_have_valid_message):
10656         * dbus/dbus-message.h:
10657         Add functions for setting and getting dicts.
10658
10659         * dbus/dbus-protocol.h:
10660         Add DBUS_TYPE_DICT.
10661
10662         * dbus/dbus.h:
10663         Add dbus-dict.h
10664
10665         * doc/dbus-specification.sgml:
10666         Add information about how dicts are marshalled.
10667
10668         * test/data/invalid-messages/dict-with-nil-value.message:
10669         * test/data/invalid-messages/too-short-dict.message:
10670         * test/data/valid-messages/dict-simple.message:
10671         * test/data/valid-messages/dict.message:
10672         Add sample messages containing dicts.
10673
10674 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10675
10676         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10677
10678 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10679
10680         * dbus/Makefile.am:
10681         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10682         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10683         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10684         (dbus_dict_set_double), (dbus_dict_set_string),
10685         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10686         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10687         (dbus_dict_set_string_array), (_dbus_dict_test):
10688         * dbus/dbus-dict.h:
10689         Fix according to comments from Havoc.
10690
10691 2003-03-06  Michael Meeks  <michael@server.home>
10692
10693         * configure.in: if we don't have kde-config, disable have_qt.
10694
10695 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10696
10697         * dbus/Makefile.am:
10698         Add dbus-dict.[ch]
10699
10700         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10701         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10702         (dbus_dict_remove), (dbus_dict_get_value_type),
10703         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10704         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10705         (dbus_dict_put_double), (dbus_dict_put_string),
10706         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10707         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10708         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10709         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10710         (dbus_dict_get_double), (dbus_dict_get_string),
10711         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10712         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10713         (dbus_dict_get_string_array), (_dbus_dict_test):
10714         * dbus/dbus-dict.h:
10715         Add DBusDict implementation
10716
10717         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10718         * dbus/dbus-test.h:
10719         Add _dbus_dict_test
10720
10721 2003-03-04  Havoc Pennington  <hp@pobox.com>
10722
10723         * test/data/auth/*: adapt to changes
10724
10725         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10726         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10727         userid
10728
10729         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10730         more stuff from being in a context name, to make the protocol
10731         simpler to deal with
10732
10733         * dbus/dbus-errors.c (dbus_error_has_name): new function
10734         (dbus_error_is_set): new function
10735
10736         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10737         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10738
10739         * dbus/dbus-connection.c (dbus_connection_flush): also read
10740         messages during a flush operation
10741
10742         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10743
10744 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10745
10746         * configure.in: Check for gethostbyname on Solaris.
10747
10748         * dbus/dbus-transport.c: (_dbus_transport_open):
10749         Remove duplicate "tcp" entry.
10750
10751         * doc/dbus-specification.sgml:
10752         Clarify some things.
10753
10754 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10755
10756         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10757         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10758         (_dbus_keyring_test):
10759         * dbus/dbus-md5.c: (_dbus_md5_compute):
10760         * dbus/dbus-sha.c: (_dbus_sha_compute):
10761         Plug memory leaks.
10762
10763 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10764
10765         * README: Add some things.
10766
10767 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10768
10769         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10770         after case DBUS_TYPE_BOOELAN.
10771
10772 2003-03-02  Havoc Pennington  <hp@pobox.com>
10773
10774         * test/break-loader.c (randomly_set_extreme_ints): add test that
10775         sets really huge and small integers
10776
10777         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10778         that length of boolean array fits in the string, and that
10779         string has room for boolean value in single-bool case.
10780
10781         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10782         optional value to "ALIGN" command which is what to fill the
10783         alignment with.
10784
10785         * test/data/valid-messages/no-padding.message: add regression
10786         test for the message padding problem
10787
10788 2003-03-02  Havoc Pennington  <hp@pobox.com>
10789
10790         * dbus/dbus-message.c (decode_header_data): fix to always init
10791         message_padding, from Benjamin Dauvergne
10792
10793 2003-03-02  Havoc Pennington  <hp@pobox.com>
10794
10795         * configure.in: 0.5
10796
10797         * NEWS: Update.
10798
10799 2003-03-01  Joe Shaw  <joe@assbarn.com>
10800
10801         * configure.in: Check for "struct cmsgcred" and try to access its
10802         members for BSD-like unices.
10803
10804         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10805         _dbus_read_credentials_unix_socket().
10806         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10807         read() for reading the credential byte off the unix socket.  Use
10808         struct cmsgcred on systems that support it.
10809
10810 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10811
10812         * glib/Makefile.am:
10813         * configure.in:
10814         Make gthreads-2.0 dependency optional. Don't build thread test if
10815         its not found.
10816
10817 2003-02-27  Havoc Pennington  <hp@pobox.com>
10818
10819         * dbus/dbus-connection.c
10820         (dbus_connection_send_message_with_reply_and_block): fix doh!
10821         doh! doh! bug that resulted in never removing a reply from the
10822         queue, no wonder we called get_reply_serial so much ;-)
10823
10824         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10825         and client serial instead of demarshaling them every time
10826
10827 2003-02-27  Havoc Pennington  <hp@pobox.com>
10828
10829         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10830         more inlined, using dbus-string-private.h, speeds things up
10831         substantially
10832
10833         * dbus/dbus-string.c (_dbus_string_free): apply align offset
10834         when freeing the string
10835         (_dbus_string_steal_data): fix for align offset
10836         (undo_alignment): new function
10837
10838 2003-02-26  Havoc Pennington  <hp@redhat.com>
10839
10840         All kinds of audit fixes from Owen, plus initial attempt to
10841         handle unaligned memory returned from malloc.
10842
10843         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10844         leave room for align_offset and nul byte
10845         (fixup_alignment): function to track an align_offset and
10846         ensure real->str is aligned
10847         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10848         to allow a nul byte plus align offset
10849         (_dbus_string_lock): fix overflow issue
10850         (_dbus_string_init_const_len): add assertions on sanity of len,
10851         assign allocated to be ALLOCATION_PADDING larger than len
10852         (set_length): fixup the overflow handling
10853         (_dbus_string_get_data_len): fix overflow in assertion
10854         (open_gap): detect overflow in size of gap to be opened
10855         (_dbus_string_lengthen): add overflow check
10856         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10857         (_dbus_string_append): add overflow check
10858         (_dbus_string_append_unichar): overflow
10859         (_dbus_string_delete): fix overflow in assertion
10860         (_dbus_string_copy_len): overflow in assertion
10861         (_dbus_string_replace_len): overflows in assertions
10862         (_dbus_string_find): change to implement in terms of
10863         _dbus_string_find_to
10864         (_dbus_string_find_to): assorted fixage
10865         (_dbus_string_equal_c_str): assert c_str != NULL,
10866         fix logic so the function works
10867         (_dbus_string_ends_with_c_str): fix overflow thingy
10868         (_dbus_string_base64_encode): overflow fix
10869         (_dbus_string_validate_ascii): overflow
10870         (_dbus_string_validate_nul): overflow
10871
10872 2003-02-26  Havoc Pennington  <hp@redhat.com>
10873
10874         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10875
10876 2003-02-26  Alexander Larsson  <alexl@redhat.com>
10877
10878         * configure.in:
10879         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10880
10881         * dbus/dbus-connection.c:
10882         * dbus/dbus-connection.h:
10883         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10884         Add dbus_connection_set_wakeup_main_function and use it when queueing
10885         incoming and outgoing messages.
10886
10887
10888         * dbus/dbus-dataslot.c:
10889         Threadsafe usage of DBusDataSlotAllocator
10890
10891         * dbus/dbus-message.c: (dbus_message_get_args_iter):
10892         dbus_new can fail.
10893
10894         * dbus/dbus-server-unix.c:
10895         Add todo comment
10896
10897         * glib/dbus-gmain.c:
10898         Implement the new wakeup functions for glib.
10899
10900         * glib/Makefile.am:
10901         * glib/test-thread-client.c:
10902         * glib/test-thread-server.c:
10903         * glib/test-thread.h:
10904         Initial cut at some thread test code. Not really done yet.
10905
10906 2003-02-26  Havoc Pennington  <hp@pobox.com>
10907
10908         * dbus/dbus-connection.c
10909         (dbus_connection_send_message_with_reply_and_block): fix crash
10910         where we ref'd the outgoing message instead of the returned reply
10911
10912         * dbus/dbus-transport-unix.c (do_authentication): check read watch
10913         at the end of this function, so if we didn't need to read for
10914         authentication, we reinstall it for receiving messages
10915
10916         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10917         a NULL sender for peer-to-peer case
10918
10919         * dbus/dbus-transport-unix.c (check_read_watch): handle
10920         !authenticated case correctly
10921
10922         * glib/dbus-gmain.c: add support for DBusServer
10923
10924         * dbus/dbus-server.c: add data slot support
10925
10926         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10927         return values and handle errors
10928
10929         * dbus/dbus-dataslot.c: factor out the data slot stuff from
10930         DBusConnection
10931
10932         * Doxyfile.in (INPUT): add glib subdir
10933
10934         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10935         setup_with_g_main instead of hookup_with_g_main; write docs
10936
10937 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10938
10939         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10940         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10941         * dbus/dbus-message.c: (dbus_message_append_boolean),
10942         (dbus_message_append_boolean_array),
10943         (dbus_message_get_args_valist), (_dbus_message_test):
10944         * dbus/dbus-message.h:
10945         * doc/dbus-specification.sgml:
10946         Various fixes as pointed out by Havoc.
10947
10948         * test/data/invalid-messages/bad-boolean-array.message:
10949         * test/data/invalid-messages/bad-boolean.message:
10950         Add invalid boolean value test cases.
10951
10952 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10953
10954         * dbus/dbus-internals.c: (_dbus_type_to_string):
10955         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10956         (_dbus_marshal_validate_arg):
10957         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10958         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10959         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10960         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10961         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10962         (dbus_message_iter_get_double),
10963         (dbus_message_iter_get_boolean_array), (message_iter_test):
10964         * dbus/dbus-message.h:
10965         * dbus/dbus-protocol.h:
10966         * doc/dbus-specification.sgml:
10967         * test/data/valid-messages/lots-of-arguments.message:
10968         Add support for boolean and boolean array types.
10969
10970 2003-02-23  Havoc Pennington  <hp@pobox.com>
10971
10972         * dbus/dbus-keyring.c: finish most of this implementation and
10973         simple unit test
10974
10975         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10976         these barf if the error isn't cleared to NULL
10977
10978         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10979         (_dbus_create_directory): new function
10980
10981         * dbus/dbus-errors.c (dbus_set_error): fix warning
10982
10983         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10984         (_dbus_string_hex_decode): new function
10985         (test_hex_roundtrip): test code
10986
10987         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10988
10989         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10990
10991         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10992         the save-to-temp/rename trick to atomically write the new file
10993         (_dbus_string_parse_uint): new function
10994
10995 2003-02-22  Havoc Pennington  <hp@pobox.com>
10996
10997         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10998
10999 2003-02-22  Havoc Pennington  <hp@pobox.com>
11000
11001         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11002         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11003
11004         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11005
11006         * dbus/test/data/sha-1: add US government test suite for SHA-1
11007
11008 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11009
11010         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11011         Make string arrays NULL-terminated.
11012
11013         * dbus/dbus-memory.c: (dbus_free_string_array):
11014         * dbus/dbus-memory.h:
11015         New function for freeing NULL-terminated string arrays.
11016
11017         * dbus/dbus-message-builder.c: (append_quoted_string),
11018         (_dbus_message_data_load):
11019         Add support for array types.
11020
11021         * dbus/dbus-message.c: (check_message_handling):
11022         Add more types as test cases.
11023
11024         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11025         (_dbus_string_parse_double):
11026         Add the start offset to the end offset.
11027
11028         * test/data/valid-messages/lots-of-arguments.message:
11029         New test message with lots of arguments.
11030
11031 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11032
11033         * dbus/dbus-message.c: (dbus_message_append_nil),
11034         (dbus_message_append_int32), (dbus_message_append_uint32),
11035         (dbus_message_append_double), (dbus_message_append_string),
11036         (dbus_message_append_int32_array),
11037         (dbus_message_append_uint32_array),
11038         (dbus_message_append_double_array),
11039         (dbus_message_append_byte_array),
11040         (dbus_message_append_string_array):
11041         Fix all out-of-memory handling in these functions.
11042
11043 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11044
11045         * dbus/dbus-message.c: (dbus_message_append_nil):
11046         Fix a silly.
11047
11048 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11049
11050         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11051         (dbus_message_append_nil), (dbus_message_append_int32_array),
11052         (dbus_message_append_uint32_array),
11053         (dbus_message_append_double_array),
11054         (dbus_message_append_byte_array),
11055         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11056         (dbus_message_iter_get_int32_array),
11057         (dbus_message_iter_get_uint32_array),
11058         (dbus_message_iter_get_double_array),
11059         (dbus_message_iter_get_byte_array),
11060         (dbus_message_iter_get_string_array):
11061
11062         * dbus/dbus-message.h:
11063         Add functions for appending and getting arrays.
11064
11065 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11066
11067         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11068         element size at least 8 bytes, fixes mempool tests on
11069         64-bit machines.
11070
11071 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11072
11073         * dbus/dbus-transport-unix.c (unix_do_iteration):
11074         Unlock the connection mutex during a blocking select call.
11075         Add todo about how we need a way to wake up the select.
11076
11077         * dbus/dbus-connection-internal.h:
11078         * dbus/dbus-connection.c:
11079         Add _dbus_connection_lock and _dbus_connection_unlock.
11080
11081 2003-02-19  Havoc Pennington  <hp@pobox.com>
11082
11083         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11084         Doxyfile.in, not Doxyfile
11085
11086         * dbus/dbus-keyring.c: do some hacking on this
11087
11088         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11089
11090         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11091         dbus_error_init
11092         (dbus_set_error): remove dbus_error_init, check for message ==
11093         NULL *before* we sprintf into it, and add @todo about including
11094         system headers in this file
11095
11096         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11097
11098         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11099
11100         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11101         get various bits of user information based on either username
11102         or user ID
11103         (_dbus_homedir_from_username): new function
11104
11105 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11106
11107         * configure.in:
11108         Add check for nonposix getpwnam_r
11109
11110         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11111         Align the pool element size to a sizeof (void *) boundary.
11112
11113         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11114         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11115         General Solaris fixes.
11116
11117         * test/data/valid-messages/simplest-manual.message:
11118         Explicitly state that we want little-endian packing.
11119
11120 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11121
11122         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11123
11124         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11125         Added to create a transport connecting using a tcp/ip socket.
11126
11127         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11128         to a tcp socket at given host and port.
11129         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11130         hostname and port.
11131
11132         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11133
11134         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11135         Added to create a server listening on a TCP/IP socket.
11136
11137 2003-02-19  Havoc Pennington  <hp@pobox.com>
11138
11139         Throughout: mop up all the Doxygen warnings and undocumented
11140         stuff.
11141
11142         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11143         to search any paths.
11144
11145         * dbus/dbus-threads.c: move global mutex initializers to
11146         dbus-internals.h, multiple prototypes was confusing doxygen
11147         besides being kind of ugly
11148
11149         * Doxyfile (PREDEFINED): have Doxygen define
11150         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11151         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11152         (do not abuse the feature! it's for stuff like the autogenerated
11153         macros in dbus-md5.c, not just for things you don't feel like
11154         documenting...)
11155
11156 2003-02-18  Havoc Pennington  <hp@pobox.com>
11157
11158         * dbus/dbus-string.c (_dbus_string_zero): new function
11159
11160         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11161         wrap it in some dbus-friendly API
11162
11163         * dbus/dbus-types.h: add 16-bit types
11164
11165 2003-02-18  Joe Shaw  <joe@assbarn.com>
11166
11167         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11168         credentials from our currently running process.
11169         (get_word): Fix a buglet where we were copying the entire length
11170         instead of relative to our position.
11171
11172         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11173         keys on the stack... it's 640k of data.
11174
11175         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11176         read the credentials byte off the socket, even if we don't have
11177         SO_PEERCRED.
11178         (_dbus_poll): Implement poll() using select() for systems which
11179         don't have it.
11180
11181         * glib/test-dbus-glib.c (main): Print out an error if no
11182         parameters are given.
11183
11184         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11185         can fallback to a secondary auth mechanism if the first fails.
11186
11187 2003-02-18  Havoc Pennington  <hp@pobox.com>
11188
11189         * AUTHORS: add Alex
11190
11191 2003-02-17  Havoc Pennington  <hp@pobox.com>
11192
11193         * doc/dbus-specification.sgml: lots of cosmetic
11194         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11195         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11196         s/server/bus/ (except in authentication section). Add a section
11197         "Message Bus Message Routing"
11198
11199 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11200
11201         Release 0.4
11202
11203         * NEWS: Update
11204
11205 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11206
11207         * doc/dbus-specification.sgml:
11208         Specification updates.
11209
11210 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11211
11212         * bus/activation.c: (bus_activation_init), (child_setup),
11213         (bus_activation_activate_service):
11214         * bus/activation.h:
11215         * bus/main.c: (main):
11216         Set DBUS_ADDRESS environment variable.
11217
11218         * dbus/dbus-errors.c: (dbus_set_error):
11219         Don't use va_copy since that's a C99 feature.
11220
11221         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11222         (_dbus_spawn_async):
11223         * dbus/dbus-sysdeps.h:
11224         Add child_setup_func to _dbus_spawn_async.
11225
11226         * doc/dbus-specification.sgml:
11227         Update specification.
11228
11229         * test/spawn-test.c: (setup_func), (main):
11230         Fix test.
11231
11232 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11233
11234         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11235         Added todo.
11236
11237 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11238
11239         * doc/.cvsignore:
11240         * doc/Makefile.am:
11241         * doc/dbus-test-plan.sgml:
11242         Add test plan document.
11243
11244         * test/Makefile.am:
11245         Fix distcheck.
11246
11247 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11248
11249         * dbus/dbus-message.c: (decode_header_data),
11250         (_dbus_message_loader_return_buffer):
11251         Set the header padding amount when loading a message.
11252
11253 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11254
11255         * bus/dispatch.c: (send_one_message):
11256         Only send broadcast messages to registered connections.
11257
11258         * dbus/dbus-message.c: (dbus_message_name_is):
11259         * dbus/dbus-message.h:
11260         New convenience function.
11261
11262         * dbus/dbus-transport-debug.c: (do_reading):
11263         Only dispatch one message per run.
11264
11265         * test/Makefile.am:
11266         * test/bus-test.c: (new_connection_callback), (die),
11267         (test_hello_client1_handler), (test_hello_client2_handler),
11268         (test_hello_replies), (main):
11269
11270         * test/bus-test-loop.[ch]:
11271         Add these.
11272
11273 2003-02-16  Havoc Pennington  <hp@pobox.com>
11274
11275         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11276         backward conditional
11277
11278 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11279
11280         * dbus/dbus-connection.c:
11281         Implement sent_message_with_reply. (with_reply_and block is still
11282         busted).
11283         Made dispatch_message not lose message if OOM.
11284
11285         * dbus/dbus-errors.h:
11286         Add NoReply error (for reply timeouts).
11287
11288 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11289
11290         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11291         Actually free keys and values when destroying hashtable.
11292
11293 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11294
11295         * dbus/dbus-auth.c: (client_try_next_mechanism):
11296         Plug a leak.
11297
11298         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11299         Return TRUE if there's no thread implementation around.
11300
11301         * glib/dbus-gmain.c: (free_source),
11302         (dbus_connection_hookup_with_g_main):
11303         Make sure to remove the GSource when the connection is finalized.
11304
11305 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11306
11307         * bus/dispatch.c: (bus_dispatch_message_handler):
11308         * dbus/dbus-errors.h:
11309         Return an error if someone tries to send a message to a service
11310         that doesn't exist.
11311
11312 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11313
11314         * bus/activation.c: (load_directory), (bus_activation_init),
11315         (bus_activation_activate_service):
11316         * bus/activation.h:
11317         * bus/driver.c:
11318         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11319         More work on the activation handling.
11320
11321         * dbus/dbus-errors.h:
11322         Add some error messages
11323
11324         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11325         * dbus/dbus-message.h:
11326         New function that creates an error message.
11327
11328         * dbus/dbus-protocol.h:
11329         Add ACTIVATE_SERVER message.
11330
11331         * dbus/dbus-server-unix.c: (unix_handle_watch),
11332         (_dbus_server_new_for_domain_socket):
11333         Call _dbus_fd_set_close_on_exec.
11334
11335         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11336         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11337         (_dbus_fd_set_close_on_exec):
11338         * dbus/dbus-sysdeps.h:
11339         Add _dbus_fd_set_close_on exec function. Also add function that checks
11340         that all open fds are set to close-on-exec and warns otherwise.
11341
11342         * dbus/dbus-transport-unix.c:
11343         (_dbus_transport_new_for_domain_socket):
11344         Call _dbus_fd_set_close_on_exec.
11345
11346 2003-02-16  Havoc Pennington  <hp@pobox.com>
11347
11348         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11349         allow people to avoid setting SIGPIPE to SIG_IGN
11350         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11351         we've been asked not to
11352
11353 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11354
11355         * dbus/dbus-list.c: (_dbus_list_append_link),
11356         (_dbus_list_prepend_link):
11357         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11358         (dbus_realloc):
11359         Warning fixes.
11360
11361 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11362
11363         * bus/Makefile.am:
11364         * bus/activation.c: (bus_activation_entry_free),
11365         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11366         * bus/activation.h:
11367         * bus/main.c: (main):
11368         Add simple activation support, doesn't work yet though.
11369
11370 2003-02-15   Zack Rusin  <zack@kde.org>
11371
11372         * qt/dbus-qthread.cpp:  small casting fix
11373
11374 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11375
11376         * dbus/dbus-errors.c: (dbus_set_error):
11377         * dbus/dbus-errors.h:
11378         Add a few errors and make dbus_set_error void.
11379
11380         * dbus/dbus-sysdeps.c:
11381         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11382         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11383         * dbus/dbus-sysdeps.h:
11384         Add _dbus_spawn_async.
11385
11386         * test/spawn-test.c: (main):
11387         Test for _dbus_spawn_async.
11388
11389 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11390
11391         * dbus/dbus-internals.h:
11392         Fix build without tests.
11393
11394         * dbus/dbus-list.c: (alloc_link):
11395         Fix a segfault when a malloc fails.
11396
11397         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11398         (dbus_malloc0), (dbus_realloc):
11399         Add support for malloc debugging.
11400
11401 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11402
11403         * dbus/dbus-threads.c:
11404         * dbus/dbus-threads.h:
11405         Add condvars. Remove static mutext from API.
11406         Implement static mutexes by initializing them from threads_init.
11407
11408         * glib/dbus-gthread.c:
11409         * qt/dbus-qthread.cpp:
11410         Update with the thread api changes.
11411
11412
11413         * dbus/dbus-list.c:
11414         * dbus/dbus-list.h:
11415         Turn StaticMutex into normal mutex + init function.
11416         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11417         _dbus_list_append_link, _dbus_list_prepend_link
11418
11419
11420         * dbus/dbus-sysdeps.c:
11421         * dbus/dbus-sysdeps.h:
11422         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11423         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11424
11425         * dbus/dbus-protocol.h:
11426         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11427
11428         * dbus/dbus-message.c:
11429         Make ref/unref atomic.
11430         Fix some docs.
11431
11432         * dbus/dbus-connection-internal.h:
11433         * dbus/dbus-connection.c:
11434         * dbus/dbus-connection.h:
11435         Make threadsafe.
11436         Change _peek to _borrow,_return & _steal_borrowed.
11437         Change disconnect callback to event.
11438         Make dbus_connection_dispatch_messages reentrant.
11439
11440         * dbus/dbus-transport.c:
11441         Don't ref the connection on calls to the transport
11442         implementation.
11443
11444         * dbus/dbus-message-handler.c:
11445         Make threadsafe.
11446
11447         * glib/dbus-gmain.c:
11448         Don't use peek_message anymore
11449
11450         * test/Makefile.am:
11451         * test/debug-thread.c:
11452         * test/debug-thread.h:
11453         Simple thread implementation that asserts() on deadlocks in
11454         single-threaded code.
11455
11456         * test/bus-test.c:
11457         (main) Call debug_threads_init.
11458
11459         * test/watch.c:
11460         Use disconnect message instead of disconnect callback.
11461
11462         * bus/connection.c:
11463         * bus/connection.h:
11464         Don't call dbus_connection_set_disconnect_function. Instead export
11465         bus_connection_disconnect.
11466
11467         * bus/dispatch.c:
11468         Call bus_connection_disconnect when we get a disconnected message.
11469
11470 2003-02-15  Havoc Pennington  <hp@pobox.com>
11471
11472         * dbus/dbus-message.c (dbus_message_new): fool around with the
11473         docs
11474
11475 2003-02-14  Havoc Pennington  <hp@pobox.com>
11476
11477         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11478
11479         * dbus/dbus-memory.c: fail if the debug functions indicate we
11480         should
11481
11482         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11483         (_dbus_decrement_fail_alloc_counter): debug functions to
11484         simulate memory allocation failures
11485
11486 2003-02-14  Havoc Pennington  <hp@pobox.com>
11487
11488         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11489         to DBusError
11490
11491 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11492
11493         * bus/driver.c: (bus_driver_handle_hello):
11494         * bus/driver.h:
11495         * bus/services.c: (bus_service_lookup):
11496         Reorder message sending so we get a more sane order.
11497
11498         * test/bus-test.c: (message_handler):
11499         Fix tyop.
11500
11501 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11502
11503         * bus/driver.c: (bus_driver_send_service_deleted),
11504         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11505         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11506         (bus_driver_send_welcome_message),
11507         (bus_driver_handle_list_services),
11508         (bus_driver_handle_acquire_service),
11509         (bus_driver_handle_service_exists):
11510         * dbus/dbus-bus.c: (dbus_bus_register_client),
11511         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11512         * dbus/dbus-errors.c: (dbus_result_to_string):
11513         * dbus/dbus-errors.h:
11514         * dbus/dbus-message.c: (dbus_message_append_args),
11515         (dbus_message_append_args_valist), (dbus_message_get_args),
11516         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11517         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11518         (dbus_message_iter_get_byte_array),
11519         (dbus_message_iter_get_string_array), (message_iter_test),
11520         (check_message_handling), (_dbus_message_test):
11521         * dbus/dbus-message.h:
11522         * test/bus-test.c: (main):
11523         Change fields to arguments in messages, so that they won't be
11524         confused with header fields.
11525
11526         * glib/test-dbus-glib.c: (main):
11527         Remove append_fields from hello message.
11528
11529 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11530
11531         * dbus/dbus-errors.c:
11532         * dbus/dbus-message.c:
11533         * dbus/dbus-string.c:
11534         Documentation fixes.
11535
11536 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11537
11538         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11539         (remove_timeout):
11540         Implement support for timeouts in dbus-glib.
11541
11542 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11543
11544         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11545         * dbus/dbus-message.c: (process_test_subdir):
11546         * test/break-loader.c: (find_breaks_based_on):
11547         Plug some memory leaks.
11548
11549 2003-02-13  Richard Hult  <rhult@codefactory.se>
11550
11551         * bus/main.c: Fix build.
11552
11553         * dbus/dbus-errors.h:
11554         * dbus/dbus-errors.c: Fix copyright for Anders.
11555
11556 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11557
11558         * bus/Makefile.am:
11559         Add utils.[ch]
11560
11561         * bus/connection.c: (bus_connection_foreach):
11562         Fix a warning.
11563
11564         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11565         (unescape_string), (new_section), (parse_section_start),
11566         (parse_key_value), (report_error), (bus_desktop_file_load),
11567         (bus_desktop_file_get_string):
11568         * bus/desktop-file.h:
11569         Use DBusError for error reporting.
11570
11571         * bus/dispatch.c: (send_one_message),
11572         (bus_dispatch_message_handler):
11573         * bus/driver.c: (bus_driver_send_service_deleted),
11574         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11575         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11576         (bus_driver_send_welcome_message),
11577         (bus_driver_handle_list_services),
11578         (bus_driver_handle_acquire_service),
11579         (bus_driver_handle_service_exists):
11580         * bus/loop.c: (bus_loop_run):
11581         * bus/main.c:
11582         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11583
11584         * bus/utils.c: (bus_wait_for_memory):
11585         * bus/utils.h:
11586         New files with general utility functions.
11587
11588         * dbus/dbus-internals.h:
11589         Remove _DBUS_HANDLE_OOM.
11590
11591 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11592
11593         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11594         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11595         * dbus/dbus-errors.h:
11596         Add DBusError structure.
11597
11598 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11599
11600         * test/data/valid-messages/standard-acquire-service.message:
11601         * test/data/valid-messages/standard-hello.message:
11602         * test/data/valid-messages/standard-list-services.message:
11603         * test/data/valid-messages/standard-service-exists.message:
11604         Add some standard messages.
11605
11606 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11607
11608         * bus/driver.c: (bus_driver_send_welcome_message),
11609         (bus_driver_handle_list_services),
11610         (bus_driver_handle_acquire_service),
11611         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11612         Update for API changes in libdbus.
11613
11614         * dbus/dbus-message.c: (dbus_message_new_reply):
11615         * dbus/dbus-message.h:
11616         Remove the name argument. The spec states that replies shouldn't
11617         have a name.
11618
11619 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11620
11621         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11622         (report_error), (bus_desktop_file_load), (lookup_section),
11623         (lookup_line), (bus_desktop_file_get_raw),
11624         (bus_desktop_file_get_string):
11625         * bus/desktop-file.h:
11626         Some fixes, and new functions for getting a key value from a section.
11627
11628 2003-02-13  Havoc Pennington  <hp@pobox.com>
11629
11630         * test/data/auth/fail-after-n-attempts.auth-script: new test
11631
11632         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11633         reject the client.
11634
11635 2003-02-13  Havoc Pennington  <hp@pobox.com>
11636
11637         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11638         dbus_credentials_match were backward
11639
11640         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11641         NO_CREDENTIALS and ROOT_CREDENTIALS
11642
11643         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11644         into here. Never process more commands after we've reached an
11645         end state; store further data as unused bytes.
11646
11647         * test/data/auth/*: add more auth tests
11648
11649         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11650         command to match exact string and EXPECT_UNUSED to match unused
11651         bytes
11652
11653         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11654
11655 2003-02-12  Havoc Pennington  <hp@pobox.com>
11656
11657         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11658         \r off of popped lines
11659
11660         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11661         scripts
11662
11663         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11664         SEND, append \r\n
11665
11666 2003-02-12  Havoc Pennington  <hp@pobox.com>
11667
11668         * dbus/Makefile.am: remove break-loader from the build, since it
11669         moved.
11670
11671         * configure.in: add --enable-gcov to turn on coverage profiling
11672         flags and disable optimization
11673
11674 2003-02-10  Havoc Pennington  <hp@pobox.com>
11675
11676         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11677         initial cut at test framework for DBusAuth from laptop.
11678         Doesn't quite work yet but it compiles and I need to get
11679         it off the 266mhz laptop. ;-)
11680
11681         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11682         fix a memleak in error case
11683
11684 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11685
11686         * bus/Makefile.am:
11687         * bus/desktop-file.c:
11688         * bus/desktop-file.h:
11689         Add a desktop file parser.
11690
11691 2003-02-11  Zack Rusin  <zack@kde.org>
11692
11693         * qt/message.[h|cpp]: sample implementation
11694         of the KDE wrapper for DBusMessage
11695
11696 2003-02-09  Zack Rusin  <zack@kde.org>
11697
11698         * test/bus-test.c: make_it_compile
11699         * doc/dbus-specification.sgml: minimal semantic fix
11700
11701 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11702
11703         Release 0.3
11704
11705         * NEWS: Update
11706
11707 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11708
11709         * dbus/Makefile.am:
11710         * dbus/dbus-break-loader.c:
11711         * test/Makefile.am:
11712         * test/break-loader.c:
11713         Move dbus-break-loader to test/ and rename it to break-loader.
11714
11715 2003-02-02  Havoc Pennington  <hp@pobox.com>
11716
11717         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11718         for code to manage cookies in your home directory
11719
11720         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11721
11722         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11723         to authenticate, then disconnect the client.
11724
11725 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11726
11727         * dbus/dbus-message.c (dbus_message_append_fields):
11728         Correct docs.
11729
11730 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11731
11732         * doc/dbus-specification.sgml:
11733         Update address format section.
11734
11735 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11736
11737         * test/Makefile.am:
11738         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11739         (message_handler), (new_connection_callback), (loop_quit),
11740         (loop_run), (main):
11741         Add bus test.
11742
11743 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11744
11745         * bus/driver.c: (bus_driver_handle_service_exists):
11746         Simplify the code a bit.
11747
11748         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11749         Fix a silly.
11750
11751 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11752
11753         * bus/Makefile.am:
11754         Add libdbus-daemon.la and link to it.
11755
11756 2003-02-01  James Willcox  <jwillcox@gnome.org>
11757
11758         * bus/driver.c: (bus_driver_handle_own_service):
11759         Actually include the service reply code in the message.
11760
11761 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11762
11763         * bus/driver.c: (bus_driver_handle_service_exists):
11764         Don't unref the incoming message.
11765
11766 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11767
11768         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11769
11770 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11771
11772         * dbus/dbus-server.c: (dbus_server_listen):
11773         * dbus/dbus-transport.c: (_dbus_transport_open):
11774         ifdef out the calls to the debug transport and server.
11775
11776 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11777
11778         * dbus/dbus-watch.c (dbus_watch_get_flags):
11779         Add note in the docs that ERROR or HANGUP won't be returned
11780         and are assumed always on.
11781
11782         * glib/dbus-gmain.c (add_watch):
11783         Always add IO_ERR | IO_HUP
11784
11785         * dbus/dbus-message.h:
11786         Add semicolon after dbus_message_iter_get_string_array().
11787         Makes qt code build again
11788
11789 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11790
11791         * bus/driver.c: (create_unique_client_name),
11792         (bus_driver_handle_hello):
11793         Don't take a name, just use a numeric id to identify
11794         each client.
11795
11796         * dbus/Makefile.am:
11797         * dbus/dbus-bus.c: (dbus_bus_register_client),
11798         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11799         * dbus/dbus-bus.h:
11800         Add new convenience functions for communicating with the bus.
11801
11802         * dbus/dbus-message.h:
11803
11804         * dbus/dbus-protocol.h:
11805         Fix a typo.
11806
11807 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11808
11809         * dbus/dbus-message.c (dbus_message_append_fields):
11810         Add some more doc comments.
11811
11812 2003-02-01  Havoc Pennington  <hp@pobox.com>
11813
11814         * dbus/dbus-break-loader.c (randomly_modify_length): change
11815         a 4-byte value in the message as if it were a length
11816
11817         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11818         execute bit on saved files
11819
11820 2003-02-01  Havoc Pennington  <hp@pobox.com>
11821
11822         * dbus/dbus-break-loader.c (main): new program to find messages
11823         that break the loader.
11824
11825         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11826         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11827
11828         * dbus/dbus-string.c (_dbus_string_set_byte): new
11829
11830 2003-01-31  Havoc Pennington  <hp@pobox.com>
11831
11832         * dbus/dbus-message.c: refactor the test code to be more general,
11833         in preparation for writing a "randomly permute test cases to
11834         try to break the loader" program.
11835
11836 2003-01-31  Havoc Pennington  <hp@pobox.com>
11837
11838         * doc/dbus-specification.sgml: work on the specification
11839
11840         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11841         the protocol version of the message.
11842
11843         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11844         no longer specifies that.
11845         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11846         1/2/3/4)
11847
11848         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11849         "break" for DBUS_TYPE_NIL, remove @todo
11850
11851 2003-01-31  Havoc Pennington  <hp@pobox.com>
11852
11853         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11854         just set_is_error/get_is_error as this is a commonly-used
11855         function, and write docs.
11856
11857 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
11858
11859         * dbus/dbus-address.c: (dbus_address_entry_free):
11860         Free key and value lists.
11861
11862         * dbus/dbus-internals.c: (_dbus_type_to_string):
11863         Add the types we didn't have.
11864
11865         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11866         (_dbus_marshal_validate_arg):
11867         Add NIL types.
11868
11869         * dbus/dbus-message.c: (dbus_message_set_sender):
11870         Remove todo about being able to set sender to NULL.
11871
11872         (dbus_message_set_is_error_reply),
11873         (dbus_message_get_is_error_reply):
11874         * dbus/dbus-message.h:
11875         New functions.
11876
11877         * dbus/dbus-protocol.h:
11878         Add error reply flag.
11879
11880         * test/data/valid-messages/opposite-endian.message:
11881         Add NIL type to test.
11882
11883 2003-01-31  Havoc Pennington  <hp@pobox.com>
11884
11885         * doc/dbus-specification.sgml: fully specify the header.  Add
11886         flags and major protocol version, and change header/body len to
11887         unsigned.
11888
11889         * dbus/dbus-message-builder.c (append_saved_length): append length
11890         as uint32
11891
11892         * dbus/dbus-message.c (dbus_message_create_header): change header
11893         length and body length to unsigned. Add the new fields from the
11894         spec
11895         (_dbus_message_loader_return_buffer): unsigned header/body len
11896
11897 2003-01-30  Havoc Pennington  <hp@pobox.com>
11898
11899         * dbus/dbus-auth.c: rework to use only REJECTED, no
11900         MECHANISMS
11901
11902         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11903         use REJECTED, suggested by Mark McLoughlin
11904
11905 2003-01-30  Havoc Pennington  <hp@pobox.com>
11906
11907         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11908         a better way to report errors here. e.g.  "unix address lacks
11909         path" or something. also "no such file" when the path doesn't
11910         exist, etc.
11911
11912         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11913         leaking list nodes
11914         (dbus_parse_address): add @todo about documenting address format,
11915         and allowing , and ; to be escaped
11916
11917 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
11918
11919         * dbus/Makefile.am:
11920         Add dbus-address.[ch]
11921
11922         * dbus/dbus-address.c: (dbus_address_entry_free),
11923         (dbus_address_entries_free), (create_entry),
11924         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11925         (dbus_parse_address), (_dbus_address_test):
11926         * dbus/dbus-address.h:
11927         New files for dealing with address parsing.
11928
11929         * dbus/dbus-connection.c:
11930         Document timeout functions.
11931
11932         * dbus/dbus-message.c:
11933         Document dbus_message_new_from_message.
11934
11935         * dbus/dbus-server-debug.c:
11936         Document.
11937
11938         * dbus/dbus-server.c: (dbus_server_listen):
11939         Parse address and use correct server implementation.
11940
11941         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11942         * dbus/dbus-string.h:
11943         New function with test.
11944
11945         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11946         * dbus/dbus-test.h:
11947         Add address tests.
11948
11949         * dbus/dbus-transport-debug.c:
11950         Document.
11951
11952         * dbus/dbus-transport.c: (_dbus_transport_open):
11953         Parse address and use correct transport implementation.
11954
11955 2003-01-30  Havoc Pennington  <hp@pobox.com>
11956
11957         * dbus/dbus-message.c: use message->byte_order instead of
11958         DBUS_COMPILER_BYTE_ORDER throughout.
11959         (dbus_message_create_header): pad header to align the
11960         start of the body of the message to 8-byte boundary
11961
11962         * dbus/dbus-marshal.h: make all the demarshalers take const
11963         DBusString arguments.
11964
11965         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11966         validate message args here, so we don't have to do slow validation
11967         later, and so we catch bad messages as they are incoming. Also add
11968         better checks on header_len and body_len. Also fill in
11969         message->byte_order
11970
11971         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11972         implemented properly)
11973         (_dbus_string_validate_nul): new function to check all-nul
11974
11975         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11976         get_arg_end_pos and remove all validation
11977         (_dbus_marshal_validate_arg): actually do validation here.
11978
11979 2003-01-29  Havoc Pennington  <hp@pobox.com>
11980
11981         * dbus/dbus-message.c (check_message_handling): fix assertion
11982         failure on set_client_serial
11983
11984 2003-01-28  Havoc Pennington  <hp@pobox.com>
11985
11986         * dbus/dbus-server-debug.c: Add doc section comments
11987
11988         * dbus/dbus-transport-debug.c: add doc section comments
11989
11990 2003-01-28  Havoc Pennington  <hp@redhat.com>
11991
11992         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11993         the reverse order from how I had it
11994         (_dbus_string_base64_encode): reverse encoding order. I was
11995         basically byteswapping everything during encoding.
11996
11997 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
11998
11999         * dbus/dbus-connection-internal.h:
12000         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12001         (_dbus_connection_remove_timeout):
12002         Add functions for adding and removing timeouts.
12003
12004         * dbus/dbus-message.c: (dbus_message_new_from_message):
12005         Add new function that takes a message and creates an exact
12006         copy of it, but with the refcount set to 1.
12007         (check_message_handling):
12008         Fix build error.
12009
12010         * dbus/dbus-server-protected.h:
12011         * dbus/dbus-server.c: (_dbus_server_init_base),
12012         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12013         (dbus_server_set_timeout_functions):
12014         (_dbus_server_remove_timeout):
12015         New functions so that a server can add and remove timeouts.
12016
12017         (dbus_server_listen):
12018         Add commented out call to dbus_server_debug_new.
12019
12020         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12021         Actually set the handler, doh.
12022
12023         * dbus/dbus-transport.c: (_dbus_transport_open):
12024         Add commented out call to dbus_transport_debug_client_new.
12025
12026         * dbus/Makefile.am:
12027         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12028
12029 2003-01-28  Havoc Pennington  <hp@pobox.com>
12030
12031         * dbus/dbus-message.c (check_message_handling): function to check
12032         on the loaded message, iterates over it etc.
12033
12034 2003-01-28  Havoc Pennington  <hp@pobox.com>
12035
12036         * test/Makefile.am (dist-hook): fix make distdir
12037
12038         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12039
12040 2003-01-27  Havoc Pennington  <hp@pobox.com>
12041
12042         * dbus/dbus-mempool.c (time_for_size): replace printf with
12043         _dbus_verbose
12044
12045         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12046         empty lines; fix the SAVE_LENGTH stuff to be
12047         START_LENGTH/END_LENGTH so it actually works; couple other
12048         bugfixes
12049
12050         * test/Makefile.am (dist-hook): add dist-hook for .message files
12051
12052         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12053         can be constant or locked.
12054         (_dbus_string_free): allow freeing a const string as
12055         documented/intended
12056
12057         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12058
12059         * dbus/dbus-test-main.c (main): take an argument which is the
12060         directory containing test data
12061
12062         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12063         argument to this and load all the messages in test/data/
12064         checking that they can be loaded or not loaded as appropriate.
12065
12066 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12067
12068         * bus/dispatch.c: (bus_dispatch_message_handler):
12069         Dispatch messages sent to services.
12070
12071         * bus/driver.c: (bus_driver_send_service_deleted),
12072         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12073         (bus_driver_send_service_acquired):
12074         Add helper functions for sending service related messages.
12075
12076         (bus_driver_send_welcome_message):
12077         Send HELLO_REPLY instead of WELCOME.
12078
12079         (bus_driver_handle_list_services):
12080         Send LIST_SERVICES_REPLY instead of SERVICES.
12081
12082         (bus_driver_handle_own_service),
12083         (bus_driver_handle_service_exists):
12084         New message handlers.
12085
12086         (bus_driver_handle_message):
12087         Invoke new message handlers.
12088
12089         (bus_driver_remove_connection):
12090         Don't remove any services here since that's done automatically
12091         by bus_service_remove_owner now.
12092
12093         * bus/driver.h:
12094         New function signatures.
12095
12096         * bus/services.c: (bus_service_add_owner):
12097         Send ServiceAcquired message if we're the only primary owner.
12098
12099         (bus_service_remove_owner):
12100         Send ServiceAcquired/ServiceLost messages.
12101
12102         (bus_service_set_prohibit_replacement),
12103         (bus_service_get_prohibit_replacement):
12104         Functions for setting prohibit replacement.
12105
12106         (bus_service_has_owner):
12107         New function that checks if a connection is in the owner queue of
12108         a certain service.
12109
12110         * bus/services.h:
12111         Add new function signatures.
12112
12113         * dbus/dbus-list.c: (_dbus_list_test):
12114         Add tests for _dbus_list_remove_last and traversing the list backwards.
12115
12116         * dbus/dbus-list.h:
12117         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12118         go any further, so return NULL then.
12119
12120         * dbus/dbus-protocol.h:
12121         Add new messages, service flags and service replies.
12122
12123 2003-01-26  Havoc Pennington  <hp@pobox.com>
12124
12125         * dbus/dbus-message-builder.c: implement, completely untested.
12126
12127         * test/data/*: add data to be used in testing.
12128         ".message" files are our simple loadable text format.
12129         ".message-raw" will be binary dumps of messages.
12130
12131         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12132
12133 2003-01-26  Havoc Pennington  <hp@pobox.com>
12134
12135         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12136
12137         * dbus/dbus-errors.c (dbus_result_to_string): add
12138         file errors
12139
12140         * dbus/dbus-message-builder.c: new file, will contain code to load
12141         up messages from files. Not implemented yet.
12142
12143 2003-01-26  Havoc Pennington  <hp@pobox.com>
12144
12145         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12146         the sender by setting to NULL
12147
12148 2003-01-26  Havoc Pennington  <hp@pobox.com>
12149
12150         The unit tests pass, but otherwise untested.  If it breaks, the
12151         tests should have been better. ;-)
12152
12153         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12154         the connection.
12155
12156         * dbus/dbus-message.c: redo everything so we maintain
12157         message->header as the only copy of the various fields.
12158         This avoids the possibility of out-of-memory in some cases,
12159         for example dbus_message_lock() can't run out of memory anymore,
12160         and avoids extra copying. Figured I may as well go ahead and do
12161         this since it was busted for dbus_message_lock to not return
12162         failure on OOM, and dbus_message_write_header was totally
12163         unchecked for OOM. Also fixed some random other bugs.
12164
12165         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12166         that strings are nul-terminated. Also, end_pos can be equal
12167         to string length just not greater than, I think.
12168         (_dbus_marshal_set_int32): new function
12169         (_dbus_marshal_set_uint32): new function
12170         (_dbus_marshal_set_string): new function
12171
12172         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12173         a warning, init timeout_list to NULL
12174         (dbus_connection_send_message): don't use uninitialized variable
12175         "serial"
12176
12177         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12178
12179 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12180
12181         * bus/driver.c: (bus_driver_handle_hello),
12182         (bus_driver_send_welcome_message):
12183         Plug leaks
12184
12185 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12186
12187         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12188         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12189         (dbus_connection_unref):
12190         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12191         * dbus/dbus-message.c: (dbus_message_unref),
12192         Plug memory leaks.
12193
12194         (dbus_message_get_fields):
12195         Remove debugging printout.
12196
12197         (_dbus_message_loader_return_buffer):
12198         Don't store the header string.
12199
12200         (_dbus_message_test):
12201         Plug leaks.
12202
12203 2003-01-26  Richard Hult  <rhult@codefactory.se>
12204
12205         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12206         the file descriptor list, since it can change under us.
12207
12208 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12209
12210         * glib/dbus-gmain.c: (dbus_connection_prepare),
12211         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12212         (remove_watch), (dbus_connection_hookup_with_g_main):
12213         Rewrite the glib handling to use its own GSource instead of a
12214         GIOChannel so we can catch messages put in the queue while waiting
12215         for a reply.
12216
12217 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12218
12219         * bus/Makefile.am:
12220         * bus/connection.c: (connection_disconnect_handler),
12221         (connection_watch_callback), (bus_connection_setup):
12222         * bus/dispatch.c: (send_one_message),
12223         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12224         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12225         * bus/dispatch.h:
12226         * bus/driver.c: (bus_driver_send_service_deleted),
12227         (bus_driver_send_service_created), (bus_driver_handle_hello),
12228         (bus_driver_send_welcome_message),
12229         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12230         (bus_driver_handle_message):
12231         * bus/driver.h:
12232         Refactor code, put the message dispatching in its own file. Use
12233         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12234         is disconnected.
12235
12236 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12237
12238         * dbus/dbus-internals.h:
12239         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12240
12241         * dbus/dbus-message.c: (dbus_message_get_sender):
12242         * dbus/dbus-message.h:
12243         Implement dbus_message_get_sender.
12244
12245         * dbus/dbus-protocol.h:
12246         Add message and service defines.
12247
12248 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12249
12250         * dbus/dbus-connection.c: (dbus_connection_send_message):
12251         * dbus/dbus-message-internal.h:
12252         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12253         (dbus_message_write_header):
12254         Remove _dbus_messag_unlock and don't set the client serial on a
12255         message if one already exists.
12256
12257 2003-01-24  Havoc Pennington  <hp@pobox.com>
12258
12259         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12260         list_pool
12261
12262         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12263         on OOM
12264
12265 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12266
12267         * dbus/dbus-list.c: (alloc_link), (free_link):
12268         Use a memory pool for the links.
12269
12270 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12271
12272         * bus/connection.c: (bus_connection_foreach):
12273         * bus/connection.h:
12274         Add new bus_connection_foreach function.
12275
12276         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12277         Add function that broadcasts a message to all clients.
12278
12279         (bus_driver_send_service_created), (bus_driver_handle_hello),
12280         (bus_driver_send_welcome_message),
12281         (bus_driver_handle_list_services), (bus_driver_message_handler):
12282         Implement functions that take care of listing services, and notifying
12283         clients when new services are created.
12284
12285         * bus/services.c: (bus_services_list):
12286         * bus/services.h:
12287         Add new function that returns an array of strings with the currently
12288         registered services.
12289
12290         * glib/dbus-glib.h:
12291         * glib/dbus-gmain.c:
12292         Update copyright year.
12293
12294 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12295
12296         * dbus/dbus-connection.c: (dbus_connection_send_message):
12297         Unlock the message in case it was sent earlier.
12298
12299         (dbus_connection_send_message_with_reply_and_block):
12300         Remove the reply message from the list.
12301
12302         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12303         Set array_len and new_pos correctly.
12304
12305         (_dbus_marshal_test):
12306         Remove debug output.
12307
12308         * dbus/dbus-message-internal.h:
12309         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12310         New function that returns the reply serial.
12311
12312         (_dbus_message_unlock):
12313         New function that unlocks a message and resets its header.
12314
12315         (dbus_message_append_string_array),
12316         (dbus_message_get_fields_valist),
12317         (dbus_message_iter_get_field_type),
12318         (dbus_message_iter_get_string_array),
12319         (dbus_message_get_fields),
12320         (dbus_message_append_fields_valist):
12321         Handle string arrays.
12322
12323         (dbus_message_set_sender):
12324         Make this function public since the bus daemon needs it.
12325
12326         (decode_header_data):
12327         Set the reply serial to -1 initially.
12328
12329         * dbus/dbus-message.h:
12330         Add dbus_message_set_sender.
12331
12332 2003-01-24  Havoc Pennington  <hp@pobox.com>
12333
12334         * doc/dbus-specification.sgml: add some stuff
12335
12336 2003-01-22  Havoc Pennington  <hp@pobox.com>
12337
12338         * doc/dbus-specification.sgml: Start to document the protocol.
12339
12340 2003-01-22  Havoc Pennington  <hp@pobox.com>
12341
12342         * dbus/dbus-connection.c
12343         (dbus_connection_send_message_with_reply_and_block): add some @todo
12344
12345         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12346
12347 2003-01-21  Havoc Pennington  <hp@pobox.com>
12348
12349         (patch untested because can't compile)
12350
12351         * bus/driver.c (create_unique_client_name): make this function
12352         never recycle client names. Also, caller should initialize
12353         the DBusString.
12354
12355         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12356
12357 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12358
12359         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12360         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12361         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12362         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12363         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12364         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12365         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12366         * dbus/dbus-marshal.h:
12367         * dbus/dbus-protocol.h:
12368         Add support for marshalling and demarshalling integer, double
12369         and string arrays.
12370
12371 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12372
12373         * bus/Makefile.am:
12374         Add driver.[ch]
12375
12376         * bus/connection.c: (connection_disconnect_handler):
12377         Remove the connection from the bus driver's list.
12378
12379         (connection_watch_callback): Dispatch messages.
12380
12381         (free_connection_data): Free connection name.
12382
12383         (bus_connection_setup): Add connection to the bus driver's list.
12384         (bus_connection_remove_owned_service):
12385         (bus_connection_set_name), (bus_connection_get_name):
12386         Add functions for setting and getting the connection's name.
12387
12388         * bus/connection.h:
12389         Add function headers.
12390
12391         * bus/driver.c: (create_unique_client_name),
12392         (bus_driver_handle_hello_message),
12393         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12394         (bus_driver_add_connection), (bus_driver_remove_connection):
12395         * bus/driver.h:
12396         * bus/main.c:
12397         * bus/services.c: (bus_service_free):
12398         * bus/services.h:
12399         New file that handles communication and registreation with the bus
12400         itself.
12401
12402 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12403
12404         * dbus/dbus-connection.c: (dbus_connection_send_message):
12405         Add a new client_serial parameter.
12406
12407         (dbus_connection_send_message_with_reply):
12408         Remove a @todo since we've implemented the blocking function.
12409
12410         (dbus_connection_send_message_with_reply_and_block):
12411         New function that sends a message and waits for a reply and
12412         then returns the reply.
12413
12414         * dbus/dbus-connection.h:
12415         Add new functions.
12416
12417         * dbus/dbus-errors.c: (dbus_result_to_string):
12418         * dbus/dbus-errors.h:
12419         Add new DBUS_RESULT.
12420
12421         * dbus/dbus-message-internal.h:
12422         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12423         (_dbus_message_set_sender), (dbus_message_write_header),
12424         (dbus_message_new_reply), (decode_header_data),
12425         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12426         * dbus/dbus-message.h:
12427         Add new functions that set the reply serial and sender.
12428         Also marshal and demarshal them correctly and add test.
12429
12430         * dbus/dbus-protocol.h:
12431         Add new DBUS_MESSAGE_TYPE_SENDER.
12432
12433         * glib/dbus-glib.h:
12434         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12435         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12436         (dbus_connection_hookup_with_g_main):
12437         * glib/test-dbus-glib.c: (main):
12438         Rewrite to use GIOChannel and remove the GSource crack.
12439
12440         * test/echo-client.c: (main):
12441         * test/watch.c: (check_messages):
12442         Update for changed APIs
12443
12444 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12445
12446         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12447
12448         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12449         Create a DBusTimeoutList.
12450         (dbus_connection_set_timeout_functions): Add new function to
12451         set timeout callbacks
12452
12453         * dbus/dbus-connection.h: Add public DBusTimeout API.
12454
12455         * dbus/dbus-message.c: (dbus_message_get_service):
12456         * dbus/dbus-message.h:  New function.
12457
12458         * dbus/dbus-server.c: Fix small doc typo.
12459
12460         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12461
12462 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12463
12464         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12465         of the string, just as long as specified.
12466
12467 2003-01-19  Havoc Pennington  <hp@pobox.com>
12468
12469         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12470         new function
12471
12472         * dbus/dbus-server.c (dbus_server_set_max_connections)
12473         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12474         keep track of current number of connections, and add API for
12475         setting a max (but haven't implemented enforcing the max yet)
12476
12477 2003-01-18  Havoc Pennington  <hp@pobox.com>
12478
12479         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12480         reading/writing if read_watch != NULL or write_watch != NULL.
12481
12482         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12483         the message loader code to actually load message->header and
12484         message->body into the newly-created message.
12485
12486         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12487         in OOM case
12488
12489         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12490         (dbus_connection_get_max_message_size)
12491         (dbus_connection_set_max_live_messages_size)
12492         (dbus_connection_get_max_live_messages_size): implement some
12493         resource limitation functions
12494
12495         * dbus/dbus-resources.c: new file implementing some of the
12496         resource limits stuff
12497
12498         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12499         missing docs, add @todo to handle OOM etc.
12500
12501         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12502         docs
12503
12504 2003-01-18  Havoc Pennington  <hp@pobox.com>
12505
12506         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12507         connection if it hasn't been already.
12508
12509         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12510         replace with DisconnectFunction.
12511
12512 2003-01-18  Havoc Pennington  <hp@pobox.com>
12513
12514         Building --disable-verbose-mode --disable-asserts --disable-tests
12515         cuts the library from 112K to 45K or so
12516
12517         * configure.in: check for varargs macro support,
12518         add --enable-verbose-mode, --enable-asserts.
12519
12520         * dbus/dbus-internals.h (_dbus_assert): support
12521         DBUS_DISABLE_ASSERT
12522         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12523
12524 2003-01-18  Havoc Pennington  <hp@pobox.com>
12525
12526         * dbus/dbus-test.c: include config.h so that tests actually run
12527
12528         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12529         so the failure mode when that assumption fails will be plenty
12530         obvious.
12531
12532 2003-01-18  Havoc Pennington  <hp@pobox.com>
12533
12534         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12535
12536         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12537         the distribution
12538
12539         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12540         since we don't want to use those in make check
12541
12542 2003-01-15  Havoc Pennington  <hp@redhat.com>
12543
12544         Release 0.2
12545
12546         * NEWS: update
12547
12548 2003-01-15  Havoc Pennington  <hp@redhat.com>
12549
12550         * test/Makefile.am: fix so that test source code ends up in the
12551         distribution on make distcheck
12552
12553 2003-01-15  Havoc Pennington  <hp@redhat.com>
12554
12555         Release 0.1.
12556
12557         * NEWS: update
12558
12559 2003-01-15  Havoc Pennington  <hp@redhat.com>
12560
12561         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12562         fix build when --disable-tests
12563
12564         * Makefile.am (EXTRA_DIST): put HACKING in here
12565
12566         * HACKING: document procedure for making a tarball release.
12567
12568 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12569
12570         * bus/connection.c: (connection_error_handler),
12571         (bus_connection_setup):
12572         * bus/main.c: (main):
12573         Make sure that the DBusConnectionData struct is NULLed
12574         out to prevent a segfault.
12575
12576         * dbus/dbus-errors.c: (dbus_result_to_string):
12577         * dbus/dbus-errors.h:
12578         * dbus/dbus-message.c: (dbus_message_get_fields),
12579         (dbus_message_get_fields_valist), (_dbus_message_test):
12580         * dbus/dbus-message.h:
12581         Make dbus_message_get_fields return a result code so we can
12582         track invalid fields as well as oom.
12583
12584 2003-01-11  Havoc Pennington  <hp@pobox.com>
12585
12586         * configure.in: change --enable-test/--enable-ansi action-if-given
12587         to enable_foo=$enableval instead of enable_foo=yes
12588
12589 2003-01-08  Havoc Pennington  <hp@pobox.com>
12590
12591         * dbus/dbus-string.c (_dbus_string_align_length): new function
12592
12593         * dbus/dbus-test-main.c: move main() for test app here
12594         * dbus/dbus-test.c
12595         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12596         symbol to run tests, because dbus-test isn't in the main
12597         library
12598
12599         Code review nitpicks.
12600
12601         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12602         for people with narrow emacs ;-). Assert client_serial was filled
12603         in. Assert message->name != NULL.
12604         (dbus_message_append_fields): have "first_field_type" arg separate
12605         from va list, needed for C++ binding that also uses varargs IIRC
12606         and helps with type safety
12607         (dbus_message_new): add @todo about using DBusString to store
12608         service/name internally
12609         (dbus_message_new): don't leak ->service and ->name on OOM later
12610         in the function
12611         (dbus_message_unref): free the service name
12612         (dbus_message_get_fields): same change to varargs
12613         i.e. first_field_type
12614         (_dbus_message_loader_return_buffer): assert that the message data
12615         is aligned (if not it's a bug in our code). Put in verbose griping
12616         about why we set corrupted = TRUE.
12617         (decode_header_data): add FIXME that char* is evil.  Was going to
12618         add FIXME about evil locale-specific string.h strncmp, but just
12619         switched to wacky string-as-uint32 optimization. Move check for
12620         "no room for field name" above get_const_data_len() to avoid
12621         assertion failure in get_const_data_len if we have trailing 2
12622         bytes or the like. Check for service and name fields being
12623         provided twice. Don't leak service/name on error. Require field
12624         names to be aligned to 4 bytes.
12625
12626         * dbus/dbus-marshal.c: move byte swap stuff to header
12627         (_dbus_pack_int32): uscore-prefix
12628         (_dbus_unpack_int32): uscore-prefix
12629         (_dbus_unpack_uint32): export
12630         (_dbus_demarshal_string): add @todo complaining about use of
12631         memcpy()
12632         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12633         handling allowing corrupt data to go unchecked
12634
12635 2003-01-08  Havoc Pennington  <hp@redhat.com>
12636
12637         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12638         to the select() as needed for authentication. (should be using
12639         _dbus_poll() not select, but for another day)
12640
12641         * dbus/dbus.h: include dbus/dbus-protocol.h
12642
12643 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12644
12645         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12646         dbus-connection.h
12647
12648 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12649
12650         * dbus/dbus-internals.c: (_dbus_type_to_string):
12651         New function that returns a string describing a type.
12652
12653         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12654         * dbus/dbus-marshal.h:
12655         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12656         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12657         (dbus_message_iter_get_byte_array):
12658         * dbus/dbus-message.h:
12659         Add new convenience functions for appending and getting message fields.
12660         Also add demarshalling routines for byte arrays.
12661
12662 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12663
12664         * dbus/dbus-connection-internal.h:
12665         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12666         (_dbus_connection_get_next_client_serial),
12667         (dbus_connection_send_message):
12668         * dbus/dbus-internals.h:
12669         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12670         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12671         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12672         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12673         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12674         (_dbus_verbose_bytes), (_dbus_marshal_test):
12675         * dbus/dbus-marshal.h:
12676         * dbus/dbus-message-internal.h:
12677         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12678         (dbus_message_write_header), (_dbus_message_lock),
12679         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12680         (dbus_message_get_name), (dbus_message_append_int32),
12681         (dbus_message_append_uint32), (dbus_message_append_double),
12682         (dbus_message_append_string), (dbus_message_append_byte_array),
12683         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12684         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12685         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12686         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12687         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12688         (decode_header_data), (_dbus_message_loader_return_buffer),
12689         (message_iter_test), (_dbus_message_test):
12690         * dbus/dbus-message.h:
12691         * dbus/dbus-protocol.h:
12692         * dbus/dbus-test.c: (main):
12693         * dbus/dbus-test.h:
12694         * glib/test-dbus-glib.c: (message_handler), (main):
12695         * test/echo-client.c: (main):
12696         * test/watch.c: (check_messages):
12697         Make messages sendable and receivable for real.
12698
12699 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12700
12701         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12702         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12703         * dbus/dbus-message.c: (dbus_message_append_int32),
12704         (dbus_message_append_uint32), (dbus_message_append_double),
12705         (dbus_message_append_string), (dbus_message_append_byte_array):
12706         Handle OOM restoration.
12707
12708 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12709
12710         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12711         (_dbus_demarshal_string), (_dbus_marshal_test):
12712         * dbus/dbus-marshal.h:
12713         * dbus/dbus-message.c: (dbus_message_get_name),
12714         Document these functions.
12715
12716         (dbus_message_append_int32), (dbus_message_append_uint32),
12717         (dbus_message_append_double), (dbus_message_append_string),
12718         (dbus_message_append_byte_array):
12719         * dbus/dbus-message.h:
12720         Add functions for adding message fields of different types.
12721
12722         * dbus/dbus-protocol.h:
12723         Add the different types.
12724
12725 2003-01-05  Havoc Pennington  <hp@pobox.com>
12726
12727         * bus/connection.c: implement routines for handling connections,
12728         first thing is keeping a list of owned services on each connection
12729         and setting up watches etc.
12730
12731         * bus/services.c: implement a mapping from service names to lists
12732         of connections
12733
12734         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12735
12736         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12737         to use static mutexes for global data
12738
12739         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12740         collection of functions to set/get application-specific data
12741         on the DBusConnection.
12742
12743 2003-01-04  Havoc Pennington  <hp@pobox.com>
12744
12745         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12746         (_dbus_poll): new function
12747
12748         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12749         copied from GLib
12750
12751         * bus/loop.c: initial code for the daemon main loop
12752
12753 2003-01-04  Havoc Pennington  <hp@pobox.com>
12754
12755         * test/watch.c (error_handler): make it safe if the error handler
12756         is called multiple times (if we s/error handler/disconnect
12757         handler/ we should just guarantee it's called only once)
12758
12759         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12760         error handler on disconnect (it's quite possible we should
12761         just change the error handler to a "disconnect handler," I'm
12762         not sure we have any other meaningful errors)
12763
12764         * configure.in: check for getpwnam_r
12765
12766         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12767         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12768         mechanism as in SASL spec, using socket credentials
12769
12770         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12771         (_dbus_send_credentials_unix_socket): new function
12772
12773         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12774         dbus_accept()
12775         (_dbus_write): only check errno if <0 returned
12776         (_dbus_write_two): ditto
12777
12778 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12779
12780         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12781         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12782         (_dbus_marshal_test):
12783         * dbus/dbus-marshal.h:
12784         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12785         to _dbus_marshal_utf8_string. Also fix some tests.
12786
12787 2002-12-28  Harri Porten  <porten@kde.org>
12788
12789         * configure.in: added check for C++ compiler and a very cheesy
12790         check for the Qt integration
12791
12792         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12793
12794         * qt/Makefile.am: added
12795
12796         * qt/.cvsignore: added
12797
12798         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12799         latter, added #ifdef QT_THREAD_SUPPORT guard.
12800
12801         * dbus/Makefile.am: added missing headers for make dist
12802
12803 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12804
12805         * dbus/Makefile.am: fixup export-symbols-regex.
12806
12807 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12808
12809         * acinclude.m4: Add this file and put the
12810         PKG_CHECK_MODULE macro in it.
12811
12812 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12813
12814         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12815         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12816         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12817         (_dbus_marshal_test):
12818         Make the demarshalling routines align the pos argument.
12819         Add string marshalling tests and fix the obvious bugs
12820         discovered.
12821
12822 2002-12-26  Havoc Pennington  <hp@pobox.com>
12823
12824         * dbus/dbus-auth.c: fixes fixes fixes
12825
12826         * dbus/dbus-transport-unix.c: wire up support for
12827         encoding/decoding data on the wire
12828
12829         * dbus/dbus-auth.c (_dbus_auth_encode_data)
12830         (_dbus_auth_decode_data): append to target string
12831         instead of nuking it.
12832
12833 2002-12-26  Havoc Pennington  <hp@pobox.com>
12834
12835         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12836         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12837         doh
12838
12839         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12840         avoid swap_bytes() overhead (ignoring possible assembly stuff for
12841         now). Main point is because I wanted unpack_uint32 to implement
12842         _dbus_verbose_bytes
12843         (_dbus_verbose_bytes): new function
12844
12845         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12846
12847         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12848         mechanism to handle a corrupt message stream
12849         (_dbus_message_loader_new): fix preallocation to only prealloc,
12850         not prelengthen
12851
12852         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12853         (_dbus_string_test): enhance tests for copy/move and fix the
12854         functions
12855
12856         * dbus/dbus-transport-unix.c: Hold references in more places to
12857         avoid reentrancy problems
12858
12859         * dbus/dbus-transport.c: ditto
12860
12861         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12862         leak reference count in no-message case
12863
12864         * test/watch.c (do_mainloop): handle adding/removing watches
12865         during iteration over the watches. Also, ref the connection/server
12866         stored on a watch, so we don't try to mangle a destroyed one.
12867
12868         * dbus/dbus-transport-unix.c (do_authentication): perform
12869         authentication
12870
12871         * dbus/dbus-auth.c (get_state): add a state
12872         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12873         (_dbus_auth_get_unused_bytes): append the unused bytes
12874         to the passed in string, rather than prepend
12875
12876         * dbus/dbus-transport.c (_dbus_transport_init_base): create
12877         the auth conversation DBusAuth
12878
12879         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12880         (_dbus_transport_new_for_domain_socket): when creating a
12881         transport, pass in whether it's a client-side or server-side
12882         transport so we know which DBusAuth to create
12883
12884 2002-12-03  Havoc Pennington  <hp@pobox.com>
12885
12886         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12887         _after_ finalizing the derived members
12888         (unix_connection_set): unref watch if we fail to add it
12889
12890         * dbus/dbus-connection.c (dbus_connection_unref): delete the
12891         transport first, so that the connection owned by the
12892         transport will be valid as the transport finalizes.
12893
12894         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12895         if necessary, and remove watches from the connection.
12896
12897         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12898
12899 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
12900
12901         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12902         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12903         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12904         (_dbus_marshal_test):
12905         * dbus/dbus-marshal.h:
12906         Add string marshal functions and have the demarshal functions
12907         return the new position.
12908
12909 2002-12-25  Havoc Pennington  <hp@pobox.com>
12910
12911         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12912         it is a simple protocol that just maps directly to SASL.
12913
12914         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12915         initial implementation, not actually used yet.
12916
12917         * dbus/dbus-string.c (_dbus_string_find): new function
12918         (_dbus_string_equal): new function
12919         (_dbus_string_base64_encode): new function
12920         (_dbus_string_base64_decode): new function
12921
12922 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
12923
12924         * dbus/Makefile.am:
12925         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12926         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12927         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12928         (_dbus_demarshal_uint32), (_dbus_marshal_test):
12929         * dbus/dbus-marshal.h:
12930         * dbus/dbus-protocol.h:
12931         * dbus/dbus-test.c: (main):
12932         * dbus/dbus-test.h:
12933         Add un-optimized marshalling/demarshalling routines.
12934
12935 2002-12-25  Harri Porten  <porten@kde.org>
12936
12937         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12938
12939 2002-12-24  Zack Rusin  <zack@kde.org>
12940
12941         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12942         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12943         main loop stuff
12944
12945 2002-12-24  Havoc Pennington  <hp@pobox.com>
12946
12947         * glib/dbus-gthread.c: fix include
12948
12949         * glib/dbus-glib.h: rename DBusMessageHandler for now.
12950         I think glib API needs to change, though, as you don't
12951         want to use DBusMessageFunction, you want to use the
12952         DBusMessageHandler object. Probably
12953         dbus_connection_open_with_g_main_loop()
12954         and dbus_connection_setup_g_main_loop() or something like that
12955         (but think of better names...) that just create a connection
12956         that has watch/timeout functions etc. already set up.
12957
12958         * dbus/dbus-connection.c
12959         (dbus_connection_send_message_with_reply): new function just to
12960         show how the message handler helps us deal with replies.
12961
12962         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12963
12964         * dbus/dbus-string.c (_dbus_string_test): free a string that
12965         wasn't
12966
12967         * dbus/dbus-hash.c: use memory pools for the hash entries
12968         (rebuild_table): be more paranoid about overflow, and
12969         shrink table when we can
12970         (_dbus_hash_test): reduce number of sprintfs and write
12971         valid C89. Add tests for case where we grow and then
12972         shrink the hash table.
12973
12974         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12975
12976         * dbus/dbus-connection.c (dbus_connection_register_handler)
12977         (dbus_connection_unregister_handler): new functions
12978
12979         * dbus/dbus-message.c (dbus_message_get_name): new
12980
12981         * dbus/dbus-list.c: fix docs typo
12982
12983         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12984         an object representing a handler for messages.
12985
12986 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12987
12988         * glib/dbus-glib.h:
12989         * glib/dbus-gthread.c: (dbus_gthread_init):
12990         Don't use the gdbus prefix for public functions.
12991
12992 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12993
12994         * Makefile.am:
12995         * configure.in:
12996         Add GLib checks and fixup .pc files
12997
12998         * glib/Makefile.am:
12999         * glib/dbus-glib.h:
13000         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13001         (gdbus_connection_check), (gdbus_connection_dispatch),
13002         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13003         (dbus_connection_gsource_new):
13004         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13005         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13006         * glib/test-dbus-glib.c: (message_handler), (main):
13007         Add GLib support.
13008
13009 2002-12-15  Harri Porten  <porten@kde.org>
13010
13011         * autogen.sh: check for libtoolize before attempting to use it
13012
13013         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13014         struct.
13015
13016         * .cvsignore: ignore more stamp files
13017
13018         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13019
13020         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13021         without make install.
13022
13023 2002-12-15  Havoc Pennington  <hp@pobox.com>
13024
13025         * dbus/dbus-threads.c: add thread stubs that a higher library
13026         layer can fill in. e.g. the GLib wrapper might fill them in with
13027         GThread stuff. We still need to use this thread API to
13028         thread-safe-ize the library.
13029
13030 2002-12-12  Havoc Pennington  <hp@pobox.com>
13031
13032         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13033         below new interfaces and include fewer system headers.
13034
13035         * dbus/dbus-sysdeps.c (_dbus_read): new function
13036         (_dbus_write): new function
13037         (_dbus_write_two): new function
13038         (_dbus_connect_unix_socket): new function
13039         (_dbus_listen_unix_socket): new function
13040
13041         * dbus/dbus-message-internal.h: change interfaces to use
13042         DBusString
13043
13044 2002-12-11  Havoc Pennington  <hp@pobox.com>
13045
13046         * dbus/dbus-types.h: add dbus_unichar
13047
13048         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13049
13050         * dbus/dbus-connection.c (dbus_connection_send_message): return
13051         TRUE on success
13052
13053         * dbus/dbus-transport.c: include dbus-watch.h
13054
13055         * dbus/dbus-connection.c: include dbus-message-internal.h
13056
13057         * HACKING: add file with coding guidelines stuff.
13058
13059         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13060         handling here, for security purposes (as in vsftpd). Not actually
13061         using this class yet.
13062
13063         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13064         system/libc usage here, as in vsftpd, for ease of auditing (and
13065         should also simplify portability). Haven't actually moved all the
13066         system/libc usage into here yet.
13067
13068 2002-11-25  Havoc Pennington  <hp@pobox.com>
13069
13070         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13071         always print the first verbose message.
13072
13073 2002-11-24  Havoc Pennington  <hp@pobox.com>
13074
13075         * test/echo-client.c, test/echo-server.c: cheesy test
13076         clients.
13077
13078         * configure.in (AC_CHECK_FUNCS): check for writev
13079
13080         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13081         function
13082
13083         * dbus/dbus-list.c (_dbus_list_foreach): new function
13084
13085         * dbus/dbus-internals.c (_dbus_verbose): new function
13086
13087         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13088         representing a server that listens for connections.
13089
13090         * dbus/.cvsignore: create
13091
13092         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13093         public API for reporting errors
13094
13095         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13096         public object representing a connection that
13097         sends/receives messages. (Same object used for
13098         both client and server.)
13099
13100         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13101         Basic abstraction for different kinds of stream
13102         that we might read/write messages from.
13103
13104 2002-11-23  Havoc Pennington  <hp@pobox.com>
13105
13106         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13107         _DBUS_INT_MAX
13108
13109         * dbus/dbus-test.c (main): add list test, and include
13110         dbus-test.h as intended
13111
13112         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13113         (_dbus_hash_table_remove_int): return value indicates
13114         whether the entry existed to remove
13115
13116         * dbus/dbus-list.c: add linked list utility class,
13117         with docs and tests
13118
13119         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13120         array sometimes.
13121
13122 2002-11-23  Havoc Pennington  <hp@pobox.com>
13123
13124         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13125         DBUS_END_DECLS to nothing, that should fix this once and for all
13126
13127         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13128
13129         * dbus/dbus-message.c, dbus/dbus-hash.c:
13130         add some missing @brief
13131
13132 2002-11-23  Havoc Pennington  <hp@pobox.com>
13133
13134         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13135         to avoid confusing Doxygen
13136
13137         * dbus/dbus-hash.c: @} not }@
13138
13139         * dbus/dbus-message.c (struct DBusMessage): split out
13140         internals docs
13141
13142 2002-11-23  Havoc Pennington  <hp@pobox.com>
13143
13144         * configure.in: pile on more warning flags if using gcc
13145
13146         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13147         to document static functions
13148
13149         * configure.in: add summary to end of configure so it
13150         looks nice and attractive
13151
13152         * dbus/dbus-hash.c: finish implementation and write unit
13153         tests and docs
13154
13155         * configure.in: add --enable-tests to enable unit tests
13156
13157         * dbus/dbus-test.c: test program to run unit tests
13158         for all files in dbus/*, initially runs a test for
13159         dbus-hash.c
13160
13161         * dbus/dbus-internals.h: file to hold some internal utility stuff
13162
13163 2002-11-22  Havoc Pennington  <hp@redhat.com>
13164
13165         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13166         "ported" away from Tcl
13167
13168         * dbus/dbus-types.h: header for types such as dbus_bool_t
13169
13170 2002-11-22  Havoc Pennington  <hp@redhat.com>
13171
13172         * dbus/dbus.h: fixups for doc warnings
13173
13174         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13175         macros
13176         (QUIET): make it quiet so we can see warnings
13177
13178         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13179
13180 2002-11-22  Havoc Pennington  <hp@redhat.com>
13181
13182         * Makefile.am: include "Doxyfile" target in all-local
13183
13184         * configure.in: generate the Doxyfile
13185
13186         * Doxyfile.in: move Doxyfile here, so we can use
13187         configure to generate a Doxyfile with the right
13188         version number etc.
13189
13190 2002-11-22  Havoc Pennington  <hp@redhat.com>
13191
13192         * dbus/dbus-message.c: move inline docs into .c file
13193
13194         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13195         so all docs are under doc/
13196         (MAN_EXTENSION): generate man pages. Use extension
13197         ".3dbus" which matches ".3qt" on my system,
13198         I guess this is OK, I don't know really.
13199         (FILE_PATTERNS): look for .c files not .h, makes sense
13200         for plain C I think
13201
13202 2002-11-22  Havoc Pennington  <hp@pobox.com>
13203
13204         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13205         because any app can be a server, and any app can be a client,
13206         the bus is a special kind of server.
13207
13208 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13209
13210         * Doxyfile : adding. Still needs Makefile rules to be generated
13211         automatically (just run "doxygen" in the toplevel dir for now to
13212         generate docs)
13213
13214         * dbus/dbus-message.h : Adding sample docs (javadoc since
13215         resembles gtk-doc a little more)
13216
13217         * dbus/dbus.h : Adding sample docs
13218
13219 2002-11-21  Havoc Pennington  <hp@redhat.com>
13220
13221         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13222         so we can allow ourselves to include files directly,
13223         instead of having to use dbus.h
13224
13225         * dbus/dbus.h: fill in
13226
13227         * dbus/dbus-message.h: sketch out a sample header file.
13228         Include griping if you include it directly instead of
13229         via dbus.h
13230
13231         * dbus/dbus-macros.h: new file with macros for extern "C",
13232         TRUE/FALSE, NULL, etc.
13233
13234         * doc/file-boilerplate.c: put include guards in here
13235
13236 2002-11-21  Havoc Pennington  <hp@redhat.com>
13237
13238         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13239
13240         * COPYING: include the GPL as well, and license code
13241         under both AFL and GPL.
13242
13243 2002-11-21  Havoc Pennington  <hp@redhat.com>
13244
13245         * acconfig.h: get rid of this
13246
13247         * autogen.sh (run_configure): add --no-configure option
13248
13249         * configure.in: remove AC_ARG_PROGRAM to make
13250         autoconf complain less. add AC_PREREQ.
13251         add AC_DEFINE third arg.
13252
13253 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13254
13255         * doc/Makefile.am:
13256         Fix references so we can distcheck.
13257
13258 2002-11-21  Havoc Pennington  <hp@redhat.com>
13259
13260         * Initial module creation
13261