* qt/*:
[platform/upstream/dbus.git] / ChangeLog
1 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2
3         * qt/*: 
4         * dbus/qdbus.h: Sync with KDE Subversion revision
5         523647. Hopefully, this will be the last of the
6         source-incompatible changes. Documentation has been improved;
7         support for QList<basic-types> has been added; QDBusObject is
8         gone; QDBus(Abstract)Interface is now a QObject with
9         auto-generated meta-object; QDBusIntrospection is marked
10         private, since QMetaObject can be used now; lots of bugfixes.
11
12 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
13
14         Patch from Milosz Derezynski <internalerror at gmail.com>
15         
16         * configure.in:
17         Output the service directory in the configure summary
18
19         * dbus-1.pc.in:
20         Add session_bus_services_dir
21
22 2006-03-10  Ross Burton  <ross@openedhand.com>
23
24         * tools/dbus-print-message.c:
25         Add support for object paths and signatures.
26
27 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
28
29         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
30         config reload.
31         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
32         information caches
33         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
34         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
35         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
36         * dbus/dbus-userdb.h: Add function to flush all user/group information
37         caches.
38
39 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
40
41         * qt/dbusidl2cpp.cpp:
42         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
43         for dcopidl2cpp, found in the KDE installations (or the more
44         modern kalyptus): generate Qt4 C++ code for the input XML
45         introspection. Currently no IDL parsing.
46
47 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
48
49         * test/qt/*: Update the self-tests.
50
51 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
52
53         * qt/*: 
54         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
55         represents the first feature-complete version of the Qt4
56         bindings since I took ove maintainership.
57
58 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
59
60         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
61         dir. This is C++, so we can't use the DBus ones.
62
63 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
64
65         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
66         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
67
68 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
69
70         * dbus/dbus-connection.c: 
71         (_dbus_connection_block_pending_call):
72         Check to see if our data has already been read off the connection
73         by another blocking pending call before we block in poll.
74         (check_for_reply_and_update_dispatch_unlocked):
75         Code taken from _dbus_connection_block_pending_call - checks for
76         an already read reply and updates the dispatch if there is one.
77
78         * test/name-test/test-pending-call-dispatch.c:
79         New test for making sure we don't get stuck polling a 
80         dbus connection which has no data on the socket when
81         blocking out of order on two or more pending calls.
82
83 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
84
85         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
86         make/automake don't detect that we're talking about the same
87         .lo file if I specify the full path to the source files.
88
89 2006-02-26  Havoc Pennington  <hp@redhat.com>
90
91         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
92
93         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
94         session bus variable is unset, suggest "man dbus-launch" and "man
95         dbus-daemon" to figure out how to fix the problem
96
97 2006-02-25  Havoc Pennington  <hp@redhat.com>
98
99         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
100         should make this thing use the new glib options parser
101
102 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
103
104         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
105         .lo files taking moc sources.
106
107 2006-02-25  Havoc Pennington  <hp@redhat.com>
108
109         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
110         and install it as a public header
111
112 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
113
114         * Released 0.61
115
116 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
117         
118         * proxies.py: Fix the callchain
119
120 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
121         
122         * patch from Sjoerd Simons <sjoerd at debian.org>:      
123
124         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
125         dbus/dbus-sysdeps.c
126
127         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
128         call _dbus_group_info_free_allocated which causes infinite loop,
129         correctly call _dbus_group_info_free
130
131 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
132
133         * qt/qdbusinterface_p.h:
134         * qt/qdbusinterface.cpp: Use the standard
135         org.freedesktop.DBus.Method.NoReply annotation for the "async"
136         calls instead of creating one for us.
137
138         * qt/qdbusconnection_p.h:
139         * qt/qdbusintegrator.cpp: Remove debugging code.
140
141         * qt/qdbusintegrator.cpp:
142         * qt/qdbusmessage.cpp:
143         * qt/qdbusmessage_p.h:
144         * qt/qdbusmessage.h: Change the behaviour of automatic
145         reply-sending: now a reply is always sent, unless the caller
146         didn't request one or if the user slot has already sent one.
147
148 2006-02-16  Robert McQueen  <robot101@debian.org>
149
150         * configure.in: Patch from Debian packages by Sjoerd Simons
151         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
152         arguments so it's possible to build both bindings in the
153         same tree.
154
155         * qt/Makefile.am: Fix truncated value so that make dist works.
156
157 2006-02-16  Robert McQueen  <robot101@debian.org>
158
159         * acinclude.m4, configure.in: Patch from Brad Hards
160         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
161         improving quoting, re-ordering a few checks, and a few other
162         aesthetic tidy-ups.
163
164 2006-02-16  Robert McQueen  <robot101@debian.org>
165
166         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
167         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
168         assertion that the next element to read from the iter is fixed in
169         size. This is not the case when you are at the end of the iter,
170         because the next element type is INVALID.
171
172         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
173         a bogus assert which means that you may not initialise a 0-length
174         string unless you provide a non-NULL pointer. This prevented
175         you from marshalling messages containing zero-length arrays in
176         some cases.
177
178         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
179         from Rob to correct bogus asserts when trying to demarshal an
180         array and get_fixed_array got you 0 elements. Append nothing to
181         the GArray in this case.
182
183         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
184         an empty array via the glib bindings. Without all of the above
185         patches, this new test fails.
186
187 2006-02-16  Robert McQueen  <robot101@debian.org>
188
189         * glib/dbus-gmain.c: Make the previous commit compile.
190
191         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
192         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
193         specify sender_keyword="foo", path_keyword="bar" when adding
194         a signal listener, so that you can bind to signals generically
195         but still do something useful in your callback.
196
197         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
198         chars so that they're not cast to chars and made negative. Thanks
199         to Jakub Stachowski for reporting this and testing the fix.
200
201 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
202
203         * dbus/dbus-glib.h:
204         * glib/dbus-gmain.h:
205         (dbus_g_connection_open): new method for openning
206         a connection to an arbitrary address in the glib bindings
207
208         * ChangeLog: checkin last entry which doesn't seem to be commited
209
210 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
211
212         * tools/dbus-launch.c: Fixed sh syntax output
213
214 2006-02-13  Robert McQueen  <robot101@debian.org>
215
216         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
217         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
218         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
219         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
220         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
221         missing piece of the glib bindings jigsaw puzzle. This modifies
222         the existing specialised types to have N type parameters (rather
223         than the current 1 or 2 for arrays and dictionaries respectively).
224         You can then use this to get a glib type to represent any arbitrary
225         D-Bus struct type using dbus_g_type_get_struct. The only
226         implementation of these types is with GValueArrays as before,
227         but it's now possible to store these in arrays, emit them in
228         signals, etc.
229
230 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
231
232         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
233         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
234         <thiago.macieira at trolltech.com>
235
236 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
237
238         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
239         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
240
241 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
242
243         * bus/connection.c (bus_connections_expect_reply): Make
244         pending reply limit not common to all connections (Bug #5416)
245         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
246
247 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
248
249         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
250
251 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
252
253         * gcj/Makefile.am: point to correct jar command (Bug #4529)
254         patch from Doug Goldstein <cardoe at gentoo.org>
255
256 2006-02-09  Joe Shaw  <joeshaw@novell.com>
257
258         * mono/Arguments.cs: Fix a magic number in the mono bindings
259         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
260
261 2006-01-27  Robert McQueen  <robot101@debian.org>
262
263         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
264         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
265         when generating the client-side methods, instead of overloading
266         CSymbol which broke everything horribly. My apologies.
267
268 2006-01-27  Robert McQueen  <robot101@debian.org>
269
270         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
271         by me and Rob Taylor to add a simple_free function to D-Bus map
272         and collection types, which allows those types which can be freed
273         with a GDestroyNotify (such as GHashTables and GArrays, but not
274         GPtrArrays) to be stored as the values in hashtables.
275
276         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
277         Patch by Rob Taylor to add nested dicts to the glib tests to check
278         the above code works, and appears not to leak when called repeatedly.
279
280 2006-01-27  Robert McQueen  <robot101@debian.org>
281
282         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
283         to free a D-Bus allocated string with dbus_free () instead of
284         g_free ().
285
286 2006-01-27  Iain Holmes  <iain@openedhand.com>
287
288         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
289         method from being called multiple times.
290
291 2006-01-19  Robert McQueen  <robot101@debian.org>
292
293         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
294         <rob.taylor@collabora.co.uk> to add support for generating bindings
295         to arrays that are represented as GPtrArrays rather than GArrays (ie
296         size-variable things, such as strings, objects, structs, etc).
297
298 2006-01-05  Robert McQueen  <robot101@debian.org>
299
300         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
301         <ricardo.kekki@movial.fi> to make it possible to inherit from
302         DBusGProxy, by splitting the DBusGProxy struct into a public part and
303         a private part, and moving the setting of the DBusGProxyManager into a
304         connection property, allowing proper GObject construction.
305
306 2006-01-05  Robert McQueen  <robot101@debian.org>
307
308         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
309         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
310         annotations when generating glib client bindings.
311
312 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
313
314         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
315
316         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
317
318 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
319
320         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
321
322 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
323
324         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
325
326 2005-12-19  Ross Burton  <ross@openedhand.com>
327
328         * doc/dbus-tutorial.xml:
329         Document the Glib client-side bindings, and list all possible annotations.
330
331 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
332
333         * dbus/bus.c (dbus_bus_release_name): Add documentation
334
335 2005-12-06  Robert McQueen  <robot101@debian.org>
336
337         * python/service.py: s/sucessful/successful/ so we're allocating to
338         and reading from the same variable. Oops.
339
340 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
341
342         * Released 0.60
343
344 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
345
346         * test/qt/Makefile.am: build from srcdir
347
348         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
349         Note - this code is wrong and needs to be fixed by the Qt binding
350         developers.  The flags should be treated as bitfields and not enums.
351
352         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
353
354 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
355
356         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
357           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
358           in production code
359
360 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
361
362         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
363         method for getting messages off the bus in the absence of a
364         mainloop.  This method is much like 
365         dbus_connection_read_write_dispatch except it does not dispatch
366         the messages to a registered filter function.  Instead it
367         allows a developer to process messages by directly popping
368         them off the bus.
369
370 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
371
372         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
373         the parser to continue instead of returning error
374         (bus_desktop_file_load): Do not free parser data when
375         parse_section_start or parse_key_value fails because it was 
376         already freed by parser_free (patch from Carlos Garcia Campos  
377         <carlosgc at gnome.org>)
378
379 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
380
381         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
382         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
383         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
384         test/test-segfault.c, test/test-utils.c,
385         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
386         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
387         Various cleanup of dead code and compiler warnings (patch from
388         Kjartan Maraas <kmaraas at gnome.org>) 
389
390 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
391
392         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
393         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
394
395 2005-11-27  Robert McQueen  <robot101@debian.org>
396
397         * python/dbus_bindings.pyx: Repair my previous commit which reverted
398         part of the preceding one. Oops. Merge patch by Johan Hedberg
399         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
400         on big-endian platforms.
401
402         * test/python/test-client.py: Add some 16-bit integers to the test
403         values.
404
405 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
406
407         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
408         method return message for property getters
409
410 2005-11-27  Robert McQueen  <robot101@debian.org>
411
412         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
413         with type v of an instance of dbus.Variant(foo, type='x') caused
414         it to be boxed twice before sending over the bus.
415
416         * python/dbus_bindings.pyx, python/service.py,
417         test/python/test-client.py: Update the constants for the new
418         request_name flags, and update comments/test cases now that queueing
419         is the default action.
420
421 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
422
423         * configure.in:
424         - Change version to 0.60 for impending release
425         - upped the sonames because of ABI and API breakage
426
427 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
428
429         * configure.in: Add test/name-test/Makefile to the generated
430         Makefile list
431
432         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
433         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
434         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
435         not to queue an ower if it can't be the primary owner
436
437         * bus/bus.h: Add new internal BusOwner struct
438
439         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
440         to bus_registry_ensure and don't set the prohibit_replacement flag
441         since they are now set per BusOwner and not per name.
442         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
443         that returns the list of connections in a name's connection queue
444         
445         * bus/services.c (struct BusService): remove prohibit_replacement field
446         (struct BusOwner): new struct for keeping track of queued connections
447         and their associated flags for the queue
448         (struct BusRegistry): add a BusOwner memory pool
449         (bus_registry_new): initialize the BusOwner memory pool
450         (bus_registry_unref): free the BusOwner memory pool
451         (_bus_service_find_owner_link): new internal method for
452         searching the queue for a specific connection
453         (bus_owner_set_flags): new method for adding setting the flags on a
454         bus owner
455         (bus_owner_new): new method that creates a BusOwner object from the
456         pool and sets its flags
457         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
458         (bus_registry_ensure): Add the flags parameter
459         (bus_registry_acquire_service): Switch from using raw connections to
460         using the BusOwner struct
461         Add new state machine for dealing with the new set of flags
462         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
463         cancel_ownership, free_ownership_cancel_data, 
464         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
465         restore_ownership, free_ownership_restore_data, 
466         add_restore_ownership_to_transaction): Switch to using BusOwner 
467         instead of raw connections
468         (bus_service_add_owner): Add flags parameter
469         Switch to using BusOwner instead of raw connections
470         Add state machine for dealing with the new set of flags
471         (bus_service_swap_owner): Swaps the first and second owners in the
472         queue.  Used to make sure proper signals are sent when a service looses 
473         or gains primary ownership.  We never insert an owner at the top of the
474         queue.  Instead we insert it in the second position and then swap.
475         (bus_service_remove_owner): Remove the owner from the queue sending
476         out the NameLost and NameOwnerChanged signals if the we were the 
477         primary owner
478         (bus_service_get_primary_owners_connection): New method that extracts
479         the connection from the primary owner
480         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
481         connection
482         (bus_service_get_allow_replacement): Changed from the old 
483         bus_service_get_prohibit_replacement method.  Checks the flags of the 
484         primary owner and returns if it can be replaced or not
485         (bus_service_set_prohibit_replacement): removed
486         (bus_service_has_owner): returns TRUE if and owner with
487         the specified connection exists in the queue
488         
489         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
490         method that only compiles if tests are enabled.  Allows us to get the 
491         unique name of a connection so we can check it against the queue when
492         doing regression tests
493
494         * bus/activation.c (bus_activation_send_pending_auto_activate),
495         bus/dispatch.c (bus_dispatch),  
496         bus/driver.c (bus_driver_handle_get_service_owner, 
497         bus_driver_handle_get_connection_unix_user, 
498         bus_driver_handle_get_connection_unix_process_id,
499         bus_driver_handle_get_connection_selinux_security_context),
500         bus/signals.c (connection_is_primary_owner): 
501         use bus_service_get_primary_owners_connection instead of
502         bus_service_get_primary_owner
503
504         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
505         _dbus_listen_unix_socket): Calculate the length of the socket
506         path and use that instead of using a fixed length which was
507         causing socket names to contain many trailing Nul bytes.
508
509         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
510         (dbus_g_method_get_sender): New method for extracting the sender 
511         from a DBusGMethodInvocation
512         (dbus_g_method_return_get_reply): changed name to 
513         dbus_g_method_get_reply
514         (dbus_g_method_return_send_reply): changed name to
515         dbus_g_method_send reply
516
517         * doc/dbus-specification.xml: New docs that describe how the new
518         queueing system works and talks about the changes to the how
519         we specify socket names
520
521         * glib/examples/example-service.c, 
522         glib/examples/example-signal-emitter.c,
523         glib/examples/statemachine/statemachine-server.c:
524         Changed the RequestName flags to the new system
525
526         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
527         regression test suite for testing various states of the new
528         queueing system
529         
530 2005-11-15  Robert McQueen  <robot101@debian.org>
531
532         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
533         Taylor to add two methods, dbus_g_method_return_get_reply and
534         dbus_g_method_return_send_reply, to allow you to get the reply
535         message from a DBusGMethodInvocation, append arbitrary stuff to it,
536         and send it. The GLib bindings can't marshal a return value of
537         something like a(s) if the array is empty - ultimately they should be
538         made to heed the signature of the out arguments as the Python bindings
539         now can, but this is a workable interim solution which might have
540         other applications.
541
542 2005-11-15  Robert McQueen  <robot101@debian.org>
543
544         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
545         method to org.freedesktop.DBus to release a bus name or give up
546         waiting in the queue for it.
547
548         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
549         dbus_bus_release_name method to send the ReleaseName method calls.
550         Add constants for the return values to dbus/dbus-shared.h.
551
552         * doc/dbus-specification.xml: Document the new ReleaseName method
553         in the specification.
554
555         * python/dbus_bindings.pyx: Add a low-level python binding for the
556         release name method.
557
558         * python/exceptions.py, python/service.py: Make freeing BusName
559         objects release the name. Add a NameExistsException, and fix a
560         bug with creating UnknownMethodException.
561
562         * test/python/test-client.py: Add tests for freeing BusName
563         objects causing names to be released.
564
565 2005-11-14  Robert McQueen  <robot101@debian.org>
566
567         * python/service.py: Include the traceback in the error reply when we
568         send an exception over the bus. _BEST_ _PATCH_ _EVER_
569
570 2005-11-14  David Zeuthen  <davidz@redhat.com>
571
572         Patch from Timo Hoenig <thoenig@suse.de>.
573
574         * bus/bus.c: I've recently investigated why the automatic reload
575         of configuration files does not work as expected.
576
577         Currently, reloading configuration files does only work when
578         running dbus-daemon with --nodaemon.  If we are running as daemon
579         we're hitting a dnotify bug once we fork the process.
580
581         We're initializing the dnotify fds before calling fork().  Once
582         the child process forked it does still have the fds (and they
583         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
584         getting SIGIO as changes are made to the configuration files.
585
586         The attached patch moves the initialization of the dnotify fds to
587         process_config_postinit().  This is safe for all current code
588         paths and solves the dnotify disfunction.  If we're running
589         dbus-daemon as daemon the fds for dnotify are now being
590         initialized after fork() for the child process.
591
592         * configure.in: The current configure.in check for dnotify probes
593         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
594         match for 'xlinux', too. Additionally I have adapted the configure
595         option's style to match with the others.
596
597 2005-11-14  Robert McQueen  <robot101@debian.org>
598
599         * python/decorators.py, python/service.py: Add a new argument to the
600         dbus.service.method decorator called sender_keyword, which if set,
601         specifies the name of an argument which will be provided the bus
602         name of the method caller.
603
604         * test/python/test-client.py, test/python/test-service.py: Add a
605         method and test to check the sender_keyword functionality.
606
607 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
608
609         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
610         empty reply so blocking calls don't block forever (Patch from Sjoerd 
611         Simons <sjoerd at luon.net>)
612
613         * AUTHORS: Add Robert McQueen for his work on the Python
614         Bindings and other parts of D-Bus
615
616 2005-11-07  Robert McQueen  <robot101@debian.org>
617
618         * python/decorators.py: Change emit_signal function to use the
619         signature annotation of the signal when marhsalling the arguments from
620         the service. Fix a bug where the code checking signature length
621         against argument length referenced the wrong variable.
622
623         * python/introspect_parser.py: Avoid adding the type signature of
624         signal arguments to any methods which occur after them in the
625         introspection data (!) by making the parser a little more careful
626         about its current state.
627
628         * python/service.py: Remove debug prints from last commit (again :D).
629
630         * test/python/test-client.py, test/python/test-service.py: Add test
631         signals with signature decorators to test the strict marshalling code
632         gives errors at the right time. Could do with checking the signals
633         actually get emitted too, given that the test does nothing with
634         signals at the moment...
635
636 2005-11-07  Robert McQueen  <robot101@debian.org>
637
638         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
639         instances to stop madness of creating new instances representing
640         the same bus connection all the time, rendering any tracking of
641         match rules and bus names quite meaningless. Caught a bug where
642         the private argument to SessionBus() and friends was being passed
643         in as use_default_mainloop by mistake. Still some problems with
644         multiple dbus_binding.Connection instances representing the same
645         low-level connection (eg when you use both SessionBus() and
646         StarterBus() in same process), but it's a lot better now than it
647         was.
648
649         * python/dbus_bindings.pyx: Add constants with the return values
650         for bus_request_name().
651
652         * python/service.py: Store bus name instances in a per-dbus.Bus cache
653         and retrieve the same instances for the same name, so deletion can be
654         done with refcounting. Also now throws some kind of error if you
655         don't actually get the name you requested, unlike previously...
656
657         * test/python/test-client.py: Add tests for instance caching of buses
658         and bus name objects.
659
660 2005-11-04  Robert McQueen  <robot101@debian.org>
661
662         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
663         marshalling of boolean values. Add some booleans to the values in
664         the test client.
665
666         * python/decorators.py, python/service.py: Add an 'async_callbacks'
667         argument to the dbus.service.method decorator, which allows you to
668         name arguments to take two callback functions for replying with
669         return values or an exception.
670
671         * test/python/test-client.py, test/python/test-service.py: Add test
672         case using asynchronous method reply functions, both return values and
673         errors, and from within both the function itself and from a mainloop
674         callback.
675
676         * python/decorators.py, python/service.py: Perform checking that the
677         number of method/signal arguments matches the number of types in the
678         signature at class loading time, not when you first introspect the
679         class.
680
681         * python/service.py: Remove debug print left by the last commit.
682
683 2005-11-03  Robert McQueen  <robot101@debian.org>
684
685         * python/service.py: Heavy refactoring of method invocation, with
686         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
687         in favour of a new _message_cb that uses seperate functions for
688         looking up the method to call, marshalling the return values, and
689         sending exceptions as errors, and is easier to follow as a
690         consequence.  Fixes some corner cases about returning things that
691         don't match your declared out_signature, allows exceptions to define
692         _dbus_error_name and have it be sent over the bus as the error name,
693         and paves the way for cool stuff like heeding the message no reply
694         flag, asynchronous method implementations, informing the method of the
695         sender, and including backtraces in the error messages.
696
697         * test/python/test-client.py: Catch and print exceptions thrown in the
698         async callback tests, rather than passing them to the low-level
699         bindings to be ignored in a noisy and frustrating manner.
700
701 2005-11-03  Robert McQueen  <robot101@debian.org>
702
703         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
704         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
705         tweak others to be consistent.
706
707         * test/python/test-client.py: Tweak output of testInheritance.
708
709 2005-10-29  Robert McQueen  <robot101@debian.org>
710
711         * python/service.py: Major changes to allow multiple inheritance
712         from classes that define D-Bus interfaces:
713         
714          1. Create a new Interface class which is the parent class of
715             Object, and make the ObjectType metaclass into InterfaceType.
716         
717          2. Patch written with Rob Taylor to replace use of method_vtable
718             with code that walks the class's __MRO__ (method resolution order)
719             to behave like Python does when invoking methods and allow
720             overriding as you'd expect. Code is quite tricky because
721             we have to find two methods, the one to invoke which has the
722             right name and isn't decorated with the /wrong/ interface,
723             and the one to pick up the signatures from which is decorated
724             with the right interface.
725         
726             The same caveats apply as to normal multiple inheritance -
727             this has undefined behaviour if you try and inherit from two
728             classes that define a method with the same name but are
729             decorated with different interfaces. You should decorate
730             your overriding method with the interface you want.
731         
732          3. Replace grungy introspection XML generation code in the metaclass
733             with dictionaries that cope correctly with multiple inheritance
734             and the overriding of methods. This also uses the signature
735             decorations to provide correct introspection data, including
736             the debut appearance of the types of your return values. :D
737
738         * test/python/test-client.py, test/python/test-service.py: Add a test
739         case to try invoking an method that overrides one inherited from a
740         D-Bus interface class.
741
742 2005-10-29  Robert McQueen  <robot101@debian.org>
743
744         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
745         Add checking for the end of struct character when marshalling a
746         struct in MessageIter.append_strict.
747
748         * python/examples/example-service.py,
749         python/examples/gconf-proxy-service.py,
750         python/examples/gconf-proxy-service2.py: Update to use gobject
751         mainloop directly rather than appearing to depend on gtk.
752
753         * python/test/test-client.py, python/test/test-server.py: Remove
754         obsolete and broken test scripts for old bindings. We have up to date
755         and working tests in test/python/.
756
757 2005-10-29  Robert McQueen  <robot101@debian.org>
758
759         * python/decorators.py: Add optional arguments to the method and
760         signal decorators to allow you to specify the signature of arguments
761         and return values. Preserve the doc strings of signal functions in the
762         decorated version, for pydoc and friends.
763
764         * python/dbus_bindings.pyx, python/proxies.py: Replace the
765         parse_signature_block function with an iterable dbus.Signature()
766         type. Fix a bug in MessageIter.append_strict where you could append
767         anything by claiming it was a string.
768
769         * python/service.py: Use the out_signature decoration on methods to
770         marshal return values, meaning you no longer require dbus.Array()
771         or dbus.Dictionary() to indicate the type when returning empty
772         arrays or dictionaries. Fix a bug where exceptions which are defined
773         in __main__ are not turned into error replies.
774
775         * test/python/test-client.py, test/python/test-service.py: Add test
776         for correct marshalling of return values according to out_signature.
777         Fix a bug in the async call test where the error_handler is missing a
778         self argument.
779
780 2005-10-29  Robert McQueen  <robot101@debian.org>
781
782         * glib/Makefile.am, glib/examples/Makefile.am,
783         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
784         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
785
786         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
787
788         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
789         from Ubuntu by Daniel Silverstone to allow specifying match rules on
790         the command line.
791
792 2005-10-27  Ross Burton  <ross@openedhand.com>
793
794         * dbus/dbus-marshal-header.c:
795         Remove dead code.
796
797         * glib/dbus-gobject.c:
798         Stop compiler warning.
799
800 2005-10-25  Ross Burton  <ross@openedhand.com>
801
802         * dbus/dbus-auth.c:
803         * dbus/dbus-server-unix.c:
804         * dbus/dbus-transport-unix.c:
805         * glib/dbus-gmain.c:
806         * glib/dbus-gobject.c:
807         Add some const keywords.
808
809 2005-10-25  Ross Burton  <ross@openedhand.com>
810
811         * doc/dbus-specification.xml:
812         Document the NoReply annotation.
813
814         * glib/dbus-binding-tool-glib.h:
815         * glib/dbus-binding-tool-glib.c:
816         Respect the NoReply annotation.
817
818 2005-10-24  Robert McQueen <robot101@debian.org>
819
820         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
821         derive from unicode instead of str, and encode/decode UTF-8 when
822         marshalling/unmarshalling bus messages
823
824         * python/introspect_parser.py: encode introspection data as UTF-8
825         before passing the buffer into libxml2
826
827         * test/python/test-client.py: add unicode test strings
828
829         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
830         ignore generated python test files
831
832 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
833
834         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
835         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
836         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
837
838         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
839         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
840         when constructing struct signatures
841
842         * python/_dbus.py (Bus): handle private connections using the
843         private keyword in the constructor. defaults to private=False
844         (Bus::close): new method to close a connection to the bus
845
846         * python/dbus_bindings.pyx (Connection::close): renamed method
847         was previously called disconnect
848         (bus_get): now supports getting a private connection
849
850         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
851         keyword is set to True.  if it is, execute the method without waiting
852         for a reply
853         (ProxyObject::_introspect_execute_queue): new method for executing
854         all the pending methods that were waiting for the introspect to
855         finish.  this is called when introspect either succeeds or fails
856         (ProxyObject::_introspect_error_handler): call queued methods
857
858 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
859
860         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
861         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
862
863         * python/service.py (Object::_message_cb): handle exceptions correctly
864         by sending them over the wire to the calling app.  This makes sure
865         the client returns immediately instead of waiting the 15 seconds to
866         timeout.
867
868         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
869         Add a test to benchmark how long it takes to introspect a service and 
870         call a method which returns a large element (pretty fast)
871
872         * test/python/test-service.py (TestObject::GetComplexArray): new test 
873         method which pushes a lot of data
874
875 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
876
877         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
878         reclaim memory outside of the loop and use del istead of just setting
879         the key to None
880
881 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
882
883         * python/service.py (ObjectType::_reflect_on_signal): Always close
884         signal tag even when there are no arguments
885
886 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
887
888         * configure.in: Set mono, mono-docs and Qt3 to default
889         to no instead of auto when building.  These bindings do not
890         have full time maintainers and will not be supported for the
891         1.0 release.
892
893 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
894
895         patches from Michael Krivoruchko <misha at sun.com>: 
896         
897         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
898         _dbus_connection_message_sent, 
899         _dbus_connection_send_preallocated_unlocked_no_update, 
900         _dbus_connection_pop_message_link_unlocked): handle the case when path 
901         is NULL when calling _dbus_verbose
902
903         * configure.in: check for functions getpeerucred and getpeereid
904
905         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
906         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
907         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
908         Patch was only tested on Solaris 10 x86 so it might be issues
909         with other platforms (i.e. BSDs and MacOSX)
910         
911
912 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
913
914         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
915         instead of marshal basic so we can handle recursive types in a variant
916
917         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
918         in variants
919
920         * test/glib/test-service-glib.c, test-service-glib.xml
921         (my_object_echo_variant [EchoVariant], 
922         my_object_process_variant_of_array_of_ints123
923         [ProcessVariantOfArrayOfInts123]): 
924         Add two test methods
925
926         * python/introspect_parser.py: New module for parsing introspect
927         data.
928
929         * python/dbus_bindings.pyx:
930         (various places): when throwing errors fix to use errormsg instead 
931         of message local variable because Pyrex can get confused with other 
932         message variables (initial patch by Robert McQueen 
933         <robert.mcqueen at collabora.co.uk>)
934         (MessageIter::parse_signature_block): new method for getting the next
935         block in a signiture.
936         (MessageIter::append_strict): new method for appending values strictly
937         using the passed in signature instead of guessing at the type
938         (MessageItter:: append_dict, append_struct, append_array): use 
939         signatures to marshal children if the signature is available
940         
941         * python/exceptions.py (IntrospectionParserException): new exception
942
943         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
944         introspected signatures if available, else we fall back to the
945         old way of doing things.
946         (ProxyObject::_introspect_reply_handler ): parse introspection data
947         
948         * python/service.py (ObjectType::_reflect_on_method): Properly
949         terminate <method> if there are no args in the reflection data
950
951         * test/python/test-client.py: add tests for talking with the GLib
952         test server.  This gives us better coverage for introspection since
953         python to python will always generate arguments as variants.  It also
954         allows us to test the robustness of the GLib bindings and interlanguage
955         communications.
956
957         
958 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
959
960         * bus/driver.c (bus_driver_handle_introspect): Add signals
961         to the introspect data. (patch from Daniel P. Berrange 
962         <dan at berrange.com>)
963
964         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
965         
966         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
967         _dbus_connection_run_builtin_filters): Changed these to
968         be unlock_no_update functions and call 
969         _dbus_connection_send_unlocked_no_update instead of
970         dbus_connection_send to avoid locking errors.
971         
972         * doc/TODO: Removed the make Ping test TODO
973         
974 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
975
976         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
977         We now copy the message from a DBusError and then free 
978         the error object befor throwing the error
979
980         * glib/dbus-glib-tool.c: removed extra comma at the end of the
981         DBusBindingOutputMode enum which was causing a warning.
982         #include <time.h> so using time_t is explicitly defined
983
984 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
985
986         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
987         - dbus/dbus-bus.c
988         (internal_bus_get): new method that take over the heavy lifting
989         of dbus_bus_get and adds the ability to get a private connection
990         to the bus
991         (dbus_bus_get): wrapper to internal_bus_get that provides the same
992         interface as in previous versions
993         (dbus_bus_get_private): new method that is a wrapper to 
994         internal_bus_get to get a private connection to the bus
995
996         - dbus/dbus-bus.h
997         (dbus_bus_get_private): add as a public libdbus interface
998
999         - dbus-1.pc.in: output system_bus_default_address and 
1000         sysconfdir variables so apps can use them when compiling
1001
1002 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1003         * dbus/qt: New Qt bindings
1004
1005 2005-09-12  Waldo Bastian  <bastian@kde.org>
1006
1007         * dbus/dbus-marshal-validate.c,
1008         doc/dbus-specification.xml, test/Makefile.am,
1009         test/test-names.c: allow hyphens in bus names.
1010
1011 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1012
1013         * test/data/auth/fallback.auth-script: we don't
1014         retry the EXTERNAL method when we know its going
1015         to fail anymore.
1016
1017 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1018
1019         * dbus/dbus-connection-internal.h: rename
1020         (add|remove|toggle)_(watch|timeout) to unlocked()
1021         
1022         * dbus/dbus-connection.c: ditto.
1023         
1024         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1025         Update some callers for the renaming.
1026
1027 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1028
1029         * dbus/dbus-auth.c: (record_mechanisms): don't
1030         retry the first auth mechanism because we know
1031         we're just going to get rejected again.
1032         
1033         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1034         Fix thinko ... and what a nasty little bugger to
1035         track down you were ...
1036
1037         * dbus/dbus-connection.c:
1038         (_dbus_connection_add_watch),
1039         (_dbus_connection_remove_watch): add note about
1040         these needing the connection to be locked.
1041         (_dbus_connection_get_dispatch_status_unlocked):
1042         set status to DATA_REMAINS when we queue the
1043         disconnected message.
1044         
1045         * bus/dispatch.c:
1046         (bus_dispatch): fix warning.
1047         (check_existent_service_no_auto_start):
1048         Expect ChildSignaled error too.
1049         (check_existent_hello_from_self): fix another
1050         couple of warnings.
1051         
1052 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1053
1054         Patches from James Willcox <snorp@snorp.net>
1055
1056         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1057
1058         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1059         support array "out" parameters.
1060
1061         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1062         for 16-bit int support.
1063
1064 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1065
1066         * Released 0.50
1067
1068         * Patch from Steve Grubb:
1069         - bus/activation.c (bus_activation_service_reload_test): clean up
1070         some indentation
1071         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1072         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1073         buffer overflows in the test suite.  This is non critical because
1074         it can not be exploited and this code is only run when doing a 
1075         make check.
1076
1077         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1078         - configure.in: Don't check and link against kdecore, only qt headers
1079         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1080         - gcj/org/freedesktop/dbus/Makefile.am:
1081         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1082         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1083         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1084         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1085         - tools/Makefile.am: Add platform extentions to binaries 
1086         (i.e. .exe on windows)
1087
1088         * configure.in: 
1089         - Make it so if no suitable version of python is found we only 
1090         disable building python instead of exiting the configure script
1091         - Require version 2.4 of glib for glib bindings
1092         - Up version to 0.50
1093
1094         * python/__init__.py: Sync version with libdbus to (0,50,0)
1095         
1096 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1097
1098         * dbus/dbus-object-tree.c (find_subtree_recurse):
1099         a couple of optimizations (bug #710):
1100         - do a binary search in the tree
1101         - insert a new child at the right place directly, no need for
1102           qsort anymore
1103         - do the "double alloc" thing when allocating children
1104
1105 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1106
1107         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1108
1109         * python/dbus_bindings.pyx: Memory management foo
1110         (global): remove hacky _user_data_references global list
1111         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1112         tuples. Unref user_data
1113         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1114         (Connection::__del__): Remove and replace with __dealloc__ method
1115         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1116         to keep tuple from being deallocated instead of the global var hack
1117         (Connection::register_object_path): Stuff user_data into a tuple.
1118         Use Py_INCREF to keep tuple from being deallocated instead of the 
1119         global var hack
1120         (Connection::register_fallback): Stuff user_data into a tuple.
1121         Use Py_INCREF to keep tuple from being deallocated instead of the 
1122         global var hack
1123         (GIL_safe_pending_call_notification): Don't unref the message
1124         because it gets unreffed when going out of scope.  Py_XDECREF
1125         the user_data
1126         (PendingCall::__del__): Remove and replace with __dealloc__ method
1127         (PendingCall::set_notify): ref the pending call because we will
1128         need it to stick around for when the notify callback gets called
1129         (Message::__del__): Remove and replace with __dealloc__ method
1130
1131         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1132         gthreads_init to match up with the dbus call
1133
1134         * python/glib.py (init_threads): Changed to threads_init to match
1135         up with gobject.threads_init().  init_threads is kept for backwards
1136         compat but will most likely be deprecated in the future
1137
1138         * test/python/test-client.py: 
1139         - revamp to use Python's unittest functionality
1140         - add async call tests
1141         - setup threads in glib and dbus so we make sure locks are working
1142         
1143 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1144
1145         * python/dbus_bindings.pyx 
1146         (_pending_call_notification, cunregister_function_handler, 
1147         cmessage_function_handler): All callback functions have been rearranged 
1148         to workaround a bug in Pyrex when working with the GIL which is Python's 
1149         global lock when dealing with threads.  They have been split into
1150         a wrapper function (which assumes the name of the old function) and
1151         a _GIL_safe_<function name> function which contains the functionality
1152         of the old function.  This ensures that Pyrex does not write code
1153         the lock is released.
1154         
1155
1156 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1157
1158         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1159         GIL global lock when calling back into Python
1160
1161 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1162
1163         * Release 0.36.2
1164
1165         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1166
1167         * bus/policy.c (bus_policy_allow_user): change default "user is
1168         allowed" to be "user has same uid as the bus itself"; any
1169         allow/deny rules will override.
1170
1171         * bus/session.conf.in: don't allow all users, since now by default
1172         the user that ran the bus can connect.
1173
1174 2005-08-26  Colin Walters  <walters@verbum.org>
1175
1176         * tools/dbus-print-message.c (print_message): Flush stdout
1177         after printing a message, so that redirecting to a file, then
1178         hitting Ctrl-C works.
1179
1180 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1181
1182         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1183         (EmptyMessage): new class that subclasses Message.  This is a workaround
1184         to a Pyrex bug that fails to call __del__ when the Message object goes out
1185         of scope.  For some reason subclassing Message fixes this bug
1186         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1187         - s/Message(_create=0)/EmptyMessage everywhere else
1188         
1189         * test/python/test-{server|client}.py: add the python/.libs directory
1190         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1191         get picked up from the system
1192
1193 2005-08-25  Colin Walters  <walters@verbum.org>
1194
1195         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1196         to Ryan Lortie for the suggestion.
1197
1198 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1199
1200         * test/python: Add python regression test
1201
1202         * configure.in: Add test/python/Makefile
1203
1204         * test/Makefile.am: Add the python directory to SUBDIRS
1205
1206 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1207
1208         * Release 0.36.1
1209
1210         * python/_dbus.py: 
1211         (Interface::connect_to_signal): propigate keywords for match on args
1212         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1213
1214         * python/proxies.py (ProxyObject::connect_to_signal):
1215         propigate keywords for match on args
1216
1217         * Makefile.am: point everything to pyexecdir since python borks
1218         on multilib
1219
1220 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1221
1222         * Release 0.36
1223
1224 2005-08-23  Colin Walters  <walters@verbum.org>
1225
1226         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1227
1228 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1229
1230         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1231         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1232         of defining DBusConnection ourselves.
1233
1234 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1235
1236         * python/dbus.pth: New path file to fix up problems when installing
1237         c libraries to lib64 and python files to lib.
1238
1239         * python/Makefile.am: install dbus.pth in the correct spot
1240
1241 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1242         * ChangeLog: clean up my last entry a bit
1243
1244         * doc/introspect.xsl: New stylesheet for converting introspection data
1245         into browser renderable xhtml. Contributed by Lennart Poettering.
1246
1247         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1248         Poettering.
1249
1250         * doc/dbus-tutorial.xml: 
1251         - Add Colin Walter to the Authors section for authoring the GLib
1252         section
1253         - Add descriptions of the new signature and type functionality
1254         in the Python complex type mapping section
1255         - Add a sidenote on the new args matching functionality in 
1256         the Python bindings
1257         - Fixed up some of the examples to use the gobject.MainLoop
1258         instead of gtk.main
1259         
1260         * python/_dbus.py:
1261         (Bus::_create_args_dict): New. Converts a hash of arg matches
1262         to a more useable format
1263         (Bus::add_signal_receiver): add a **keywords parameter for catching
1264         arg match parameters
1265         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1266         arg match parameters
1267         
1268         * python/matchrules.py:
1269         (MatchTree::exec_matches): Check for arg matches
1270         (SignalMatchRule::add_args_match): New method
1271         (SignalMatchRule::execute): Added args_list parameter as an optimization
1272         so we don't have to marshal the args more than once
1273         (SignalMatchRule::match_args_from_list): New method that checks to see
1274         if the rule's arg matches match an argument list.  Only arguments
1275         set in the rule are checked.
1276         (SignalMatchRule::match_args_from_rule): New method that checks to see
1277         if the rule's arg matches match another rule's.  All args have to match
1278         in order for this method to return true.  If either rule has more args
1279         then it is not a match.
1280         (SignalMatchRule::is_match): Add args match
1281         (SignalMatchRule::repr): Add args to the final output if they exist
1282
1283 2005-08-17  Ross Burton  <ross@burtonini.com>
1284
1285         * glib/dbus-gproxy.c:
1286         (dbus_g_proxy_call_no_reply): unref the message once sent.
1287         (dbus_g_proxy_call): protect against NULL proxy.
1288
1289 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1290
1291         * python/__init__.py: Version updated (0, 43, 0)
1292         
1293         * python/dbus_bindings.pyx: 
1294         - Fixed type objects to have self passed into __init__
1295         - Added the Variant type
1296         - Add the ability to specify types or signatures for Array, Variant 
1297         and Dictionary
1298         (Connection::send_with_reply_handlers): return a PendingCall object
1299         (_pending_call_notification): handle the case when an error is returned 
1300         without an error message in the body
1301         (MessageIter::get_boolean): return True or False instead of an integer
1302         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1303         and add checks for objects with embeded signatures or types (Array, 
1304         Variant and Dictionary)
1305         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1306         (MessageIter::append_dict): handle embeded types or signatures
1307         (MessageIter::append_array): handle embeded types or signatures
1308         (MessageIter::append_variant): new method
1309         
1310         * python/proxies.py:
1311         (DeferedMethod): New. Dummy executable object used when queuing calls 
1312         blocking on introspection data
1313         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1314         or shorter timeouts for method calls
1315         (ProxyObject): Add first pass at an introspection state machine
1316         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1317         introspection. 
1318         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1319         the usual mechanisms for sending messages.  This is to avoid a deadlock
1320         where the Intospect call would be queued waiting for the Introspect 
1321         call to finish ;-)
1322         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1323         when introspection returns with no error
1324         (ProxyObject::_introspect_error_handler): New.  This method is called 
1325         when introspection encounters an error
1326         (ProxyObject::__getattr__): Code to handle different introspection 
1327         states.  Queue async calls or block blocking calls if we are 
1328         introspecting.  Pass through as normal if we are not or are done with 
1329         introspecting.
1330         
1331         * python/service.py: Import signal and method from decorators.py
1332
1333         * python/types.py: Add Variant type
1334
1335 2005-08-16  Colin Walters  <walters@verbum.org>
1336
1337         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1338         DBusError message is NULL.
1339
1340 2005-08-09  Havoc Pennington  <hp@redhat.com>
1341
1342         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1343         malloc'd copy of the name parameter
1344
1345 2005-08-09  Havoc Pennington  <hp@redhat.com>
1346
1347         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1348         warning if the reply serial is set to 0
1349
1350 2005-08-04  Colin Walters  <walters@verbum.org>
1351
1352         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1353         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1354         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1355         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1356         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1357         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1358         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1359         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1360         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1361         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1362         
1363         Prefix name with _ to ensure they're not exported.  All callers
1364         updated.
1365
1366         * glib/dbus-gvalue.c (typecode_to_gtype)
1367         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1368         (signature_iter_to_g_type_dict)
1369         (signature_iter_to_g_type_array)
1370         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1371         (dbus_gtypes_from_arg_signature):
1372         Move to dbus-gsignature.c.
1373
1374         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1375         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1376         (dbus_binding_tool_output_glib_client): Ditto.
1377
1378         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1379         and dbus-gsignature.h
1380
1381         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1382         unused variable.
1383
1384 2005-08-03  Colin Walters  <walters@verbum.org>
1385
1386         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1387         catch any incompatible changes accidentally made.
1388
1389 2005-08-03  Havoc Pennington  <hp@redhat.com>
1390
1391         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1392         typo, from Julien Puydt
1393
1394         * bus/connection.c (bus_connection_disconnected): we were always
1395         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1396
1397 2005-08-01  Colin Walters  <walters@verbum.org>
1398
1399         Patch from Joe Markus Clarke:   
1400         
1401         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1402         use-after-free.
1403
1404 2005-08-01  Colin Walters  <walters@verbum.org>
1405         
1406         Patch from Joe Markus Clarke:   
1407         
1408         * tools/dbus-send.c (main): 
1409         
1410         Don't use C99 style initializers (bug #3933).
1411         
1412 2005-08-01  Colin Walters  <walters@verbum.org>
1413
1414         Patch from Joe Markus Clarke:   
1415
1416         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1417         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1418         * glib/dbus-gobject.c (write_interface):
1419
1420         Don't use C99 style initializers (bug #3933).
1421
1422 2005-07-31  Havoc Pennington  <hp@redhat.com>
1423
1424         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1425         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1426
1427 2005-07-30  Havoc Pennington  <hp@redhat.com>
1428
1429         * fix a bunch of Doxygen warnings and mistakes
1430
1431 2005-07-30  Havoc Pennington  <hp@redhat.com>
1432
1433         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1434         DBUS_BUILD_TESTS since it's now used in production code
1435
1436 2005-07-29  Havoc Pennington  <hp@redhat.com>
1437
1438         * test/glib/test-profile.c (write_junk): initialize the junk
1439         buffer so valgrind doesn't have a breakdown
1440
1441 2005-07-29  Havoc Pennington  <hp@redhat.com>
1442
1443         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1444         (match_rule_matches): remove unused arg
1445         (test_matching): add tests for match_rule_matches()
1446
1447         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1448         do arg0='foo' arg5='bar' in the match rules
1449         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1450
1451         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1452
1453 2005-07-29  Ross Burton  <ross@openedhand.com>
1454
1455         * dbus/dbus-connection.c:
1456         Don't create a DBusCondVar which is never used.
1457
1458 2005-07-27  Ross Burton  <ross@openedhand.com>
1459
1460         * dbus/dbus-message.c:
1461         Reduce the size of the maximum cached message to 10K.
1462
1463 2005-07-25  Ross Burton  <ross@openedhand.com>
1464
1465         * glib/dbus-gproxy.c:
1466         Remove matches when all proxies are unregistered.
1467
1468 2005-07-24  Colin Walters  <walters@verbum.org>
1469
1470         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1471         typedata; recursive arrays won't have it.
1472
1473         * test/glib/test-dbus-glib.c:
1474         * test/glib/test-service-glib.c:
1475         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1476         
1477 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1478
1479         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1480         proxies.py, service.py: Cleanup of code after running it through the
1481         pyflakes code checker mostly dealing with undefined names.  
1482         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1483
1484 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1485
1486         * NEWS: Update to 0.35.2
1487
1488 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1489
1490         * python/_dbus.py: Remove import of the dbus.services
1491         module as it no longer exists (patch from Dimitur Kirov)
1492
1493         * python/service.py (Object::__init__): Fixed typo
1494         s/name/bus_name (patch from Dimitur Kirov)
1495
1496         * python/examples/example-signal-emitter.py: import dbus.glib
1497         to get the main loop and use glib mainloop instead of gtk so
1498         X doesn't have to be running.
1499
1500         * python/examples/example-signal-recipient.py: import dbus.glib
1501         to get the main loop and use glib mainloop instead of gtk so
1502         X doesn't have to be running. Import the decorators module
1503         directly.
1504
1505         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1506         didn't pick up on but are needed to build
1507
1508         * configure.in: upped version to 0.35.2
1509
1510         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1511         added Colin Walters' SELinux API rename patch from head 
1512         s/unix sercurity context/selinux security context/
1513
1514 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1515
1516         * python/Makefile.am: dbus_binding.pxd.in should be included 
1517         in EXTRA_DIST not dbus_binding.pxd
1518         fix up $(srcdir) hopefully for the last time
1519
1520         * NEWS: Update to 0.35.1
1521
1522 2005-07-16  Colin Walters  <walters@verbum.org>
1523
1524         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1525         from bus_driver_handle_get_connection_unix_security_context.  Update for
1526         error usage.
1527         (message_handlers): Update for renames.
1528
1529         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1530         _dbus_string_init failure correctly.
1531         (bus_selinux_append_context): Convert SID to context.  Append it
1532         as a byte array.
1533         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1534         hasn't been called.
1535
1536         * bus/selinux.h: Update prototype.
1537
1538         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1539         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1540
1541 2005-07-15  Colin Walters  <walters@verbum.org>
1542
1543         * doc/TODO: Add note about convenience wrappers.
1544
1545 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1546
1547         * NEWS: Update to 0.35
1548
1549 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1550
1551         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1552         so distcheck doesn't fail
1553
1554         * glib/examples/Makefile.am: Add example-service.xml and 
1555         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1556
1557         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1558         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1559
1560         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1561         compiler looks in the right places during distcheck
1562
1563 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1564
1565         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1566         to fail
1567
1568 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1569
1570         * python/examples/example-service.py,
1571         python/examples/example-signal-emitter.py: Fixed up examples
1572         for API changes
1573
1574 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1575
1576         * python/__init__.py: Upped to version (0,42,0) because of
1577         the API change
1578
1579 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1580
1581         * ChangeLog: fix date in last entry
1582
1583         * configure.in, bus/system.conf.in: add the ability to configure 
1584         the system bus user at compiletime with the --with-dbus-user flag
1585         (patch from Kristof Vansant)
1586
1587 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1588
1589         * bus/dispatch.c, test/test-service.c: Add testcase
1590         for sending messages to oneself (TODO item).
1591
1592         * python/service.py (class Object): Swap ordering of bus_name 
1593         and object_path parameters to better support inheritance.
1594
1595         * doc/dbus-tutorial.xml: change Python docs to reflect change
1596         in parameter ordering and fix the inheritance section.
1597
1598         * doc/TODO: remove sending message to oneself TODO item
1599
1600 2005-07-15  Ross Burton  <ross@openedhand.com>
1601
1602         * glib/dbus-gproxy.c:
1603         Fix a leak when calling methods via the proxy.
1604
1605 2005-07-15  Colin Walters  <walters@verbum.org>
1606
1607         * bus/selinux.c (bus_selinux_append_context): Wrap in
1608         HAVE_SELINUX.
1609
1610 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1611
1612         * python/_dbus.py (Bus::remove_signal_receiver):
1613         don't add a callback to the match if none has been passed in
1614         
1615         * python/matchrules.py (SignalMatchTree::remove): if the rule
1616         being matched does not have a callback treat it as a wildcard
1617         fix matching logic
1618
1619         * doc/dbus-tutorial.xml: Add Python tutorial
1620
1621 2005-07-14  Colin Walters  <walters@verbum.org>
1622
1623         * bus/driver.c
1624         (bus_driver_handle_get_connection_unix_security_context): New function.
1625         (message_handlers): Add.
1626
1627         * bus/selinux.c (bus_selinux_append_context): New function; appends
1628         security context to message.
1629
1630         * bus/selinux.h: Prototype.
1631
1632         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1633
1634 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1635
1636         * bus/activation.c: clean up all tabs to be 8 spaces 
1637         (bus_activation_activate_service): make sure we clean up
1638         if activation fails
1639
1640         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1641         (check_shell_fail_service_auto_start): New function
1642         tests to make sure we get fail properly when trying to auto start a service
1643         with a faulty command line
1644         (check_shell_service_success_auto_start): New function tests to make sure
1645         auto started services get the arguments on the command line
1646
1647         * test/test-shell-service.c: Added service for testing auto-starting with 
1648         command line arguments
1649
1650         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1651         test/data/valid-service-files/debug-shell-echo-success.service.in:
1652         Added service files for testing auto-starting with command line arguments
1653
1654         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1655
1656 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1657
1658         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1659         
1660         * dbus/Makefile.am: added new files to build.
1661
1662         * bus/activation.c (bus_activation_activate_service): support
1663         activation commands with parameters.
1664
1665         * test/shell-test.c: added test program for the shell parsing
1666         code.
1667
1668 2005-07-13  David Zeuthen  <davidz@redhat.com>
1669
1670         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1671         64 bit signed and unsigned parameters
1672
1673 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1674
1675         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1676
1677         * python/service.py (class Name): renamed BusName to make it clearer
1678         what the object is for (a name on the bus)
1679
1680         * python/examples/example-service.py,
1681         python/examples/example-signal-emitter.py: change the Name object to
1682         BusName
1683
1684 2005-07-12  Colin Walters  <walters@verbum.org>
1685
1686         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1687
1688         * tools/dbus-launch.c: Include sys/select.h.
1689
1690 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1691         * python/dbus_bindings.pyx.in: removed
1692
1693         * python/dbus_bindings.pyx: Added.
1694         - Fixed some memleaks (patch from 
1695         Sean Meiners <sean.meiners@linspireinc.com>)
1696         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1697         own pxd file (Pyrex definition)
1698         - Broke out glib dependancies into its own pyx module
1699         
1700         * python/dbus_bindings.pdx: Added.
1701         - Defines C class Connection for exporting to other modules
1702
1703         * python/dbus_glib_bindings.pyx: Added.
1704         - New module to handle lowlevel dbus-glib mainloop integration
1705
1706         * python/glib.py: Added.
1707         - Registers the glib mainloop when you import this module
1708
1709         * python/services.py: Removed (renamed to service.py)
1710         
1711         * python/service.py: Added.
1712         - (class Server): renamed Name
1713
1714         * python/__init__.py: Bump ro version (0,41,0)
1715         -don't import the decorators or service module
1716         by default.  These now reside in the dbus.service namespace
1717
1718         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1719         setup function on creation 
1720
1721         * python/examples/example-service.py,
1722         python/examples/example-signal-emitter.py: update examples
1723
1724         * python/examples/gconf-proxy-service.py,
1725         python/examples/gconf-proxy-service2.py: TODO fix these up
1726
1727         * doc/TODO: Addition
1728         - Added a Python Bindings 1.0 section
1729         - added "Add match on args or match on details to match rules"
1730
1731
1732 2005-07-12  Colin Walters  <walters@verbum.org>
1733
1734         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1735         (statemachine-glue.h): 
1736         * glib/examples/Makefile.am (example-service-glue.h) 
1737         (example-signal-emitter-glue.h): 
1738         * glib/Makefile.am (dbus-glib-error-switch.h): 
1739         Add libtool --mode=execute so we use the built library instead
1740         of any installed one.
1741
1742 2005-07-11  Colin Walters  <walters@verbum.org>
1743
1744         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1745         (dbus_g_value_types_init): Remove assertion.
1746         (dbus_g_value_get_g_type, dbus_g_value_open)
1747         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1748         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1749         functions related to DBusGValue.  Now we marshal/demarshal
1750         structures as GValueArray.
1751         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1752         structures.
1753         (signature_iter_to_g_type_array): Don't call
1754         signature_iter_to_g_type_struct.
1755         (signature_iter_to_g_type_struct): Delete.
1756         (dbus_gvalue_to_signature): Delete.
1757         (dbus_gvalue_to_signature): New function with same name as other
1758         one; we can convert structures to signatures.
1759         (demarshal_valuearray): New function.
1760         (get_type_demarshaller): Use it.
1761         (demarshal_recurse): Delete.
1762         (marshal_proxy): New function.
1763         (marshal_map): Warn if we can't determine signature from type.
1764         (marshal_collection_ptrarray): Ditto.
1765         (marshal_collection_array): Ditto.
1766         (get_type_marshaller): Use marshal_valuearray.
1767         (marshal_recurse): Delete.
1768         (_dbus_gvalue_test): Add some tests.
1769
1770         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
1771         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1772         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1773         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1774         (dbus_g_value_free): Remove prototypes.
1775
1776         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1777         G_TYPE_VALUE_ARRAY.
1778
1779         * glib/examples/example-service.c:
1780         * glib/examples/example-client.c: Implement GetTuple.
1781
1782         * test/glib/test-dbus-glib.c:
1783         * test/glib/test-service-glib.c:
1784         * test/glib/test-service-glib.xml: Add structure tests.
1785
1786 2005-07-10  Colin Walters  <walters@verbum.org>
1787
1788         * doc/TODO: Knock off some GLib items with this patch.
1789
1790         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
1791         (_dbus_gvalue_signals_error): New functions.
1792
1793         * glib/dbus-gvalue-utils.h: Prototype them.
1794
1795         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1796         and change to not output const/retval flags for input args.  All
1797         callers updated.
1798         (invoke_object_method): Refactor to handle return values.  Add
1799         some more comments in various places.  Remove debug g_print.
1800
1801         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1802
1803         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1804         Handle G_TYPE_NONE.
1805         (compute_gsignature): New function; refactored from code from
1806         compute_marshaller and compute_marshaller_name.  Enhance to
1807         handle return values and async ops more cleanly.  Update for
1808         async ops returning NONE instead of BOOLEAN.
1809         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1810         and output appropriate string.
1811         (generate_glue): Handle return value annotation.  Also don't dump
1812         constness flag for input arguments.
1813
1814         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1815         files shared between installed library and utilities.
1816         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1817         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1818         binding tool can access gtype utility functions.
1819
1820         * test/glib/test-service-glib.c: 
1821         * test/glib/test-service-glib.xml: 
1822         * test/glib/test-dbus-glib.c: Add some tests for return values.
1823
1824 2005-07-09  Colin Walters  <walters@verbum.org>
1825
1826         * glib/dbus-gparser.c (parse_annotation): Add annotations to
1827         argument if available, not method.
1828
1829         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1830         (invoke_object_method): First, remove some redundant
1831         GValues (object_value, error_value) in favor of working on
1832         array directly.  Second, rework constness to be less buggy.
1833         Now we iterate directly over the argument metadata instead
1834         of parallel iterating over output signature and metadata.
1835
1836         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1837
1838         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1839         annotation on input args.
1840         
1841 2005-07-09  Colin Walters  <walters@verbum.org>
1842
1843         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1844         Define.
1845
1846         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1847         annotation.
1848
1849         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1850         (method_dir_signature_from_object_info): Handle arg_iterate change.
1851         (write_interface): Ditto.
1852         (lookup_object_info): Don't barf if format_version is > 0.
1853         (invoke_object_method): Handle arg constness.
1854
1855         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1856         (arg_info_new): Create.
1857         (arg_info_unref): Destroy.
1858         (arg_info_get_annotations, arg_info_get_annotation) 
1859         (arg_info_add_annotation): New functions.
1860
1861         * glib/dbus-gidl.h: Prototype them.
1862
1863         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1864         args, disallow them in properties.
1865         (parse_annotation): Handle arg annotations.
1866
1867         * test/glib/test-service-glib.xml: 
1868         * test/glib/test-service-glib.c: Update to make some methods
1869         const.
1870
1871 2005-07-08  Colin Walters  <walters@verbum.org>
1872
1873         * test/glib/test-service-glib.xml: 
1874         * test/glib/test-service-glib.c:
1875         * test/glib/test-dbus-glib.c: Test a{sv}.
1876
1877         * glib/examples/statemachine/statemachine.c:
1878         * glib/examples/statemachine/statemachine-server.c:
1879         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1880         add progress bar, etc.
1881
1882         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1883         needed anymore due to generic array/map marshalling.
1884         (dbus_g_value_types_init): Don't register basic arrays or the
1885         string/string hash.
1886         (dbus_gtype_from_signature_iter): Don't try to recurse into
1887         variants.
1888         (dbus_gtype_to_signature): Check collection/map before type
1889         metadata.
1890         (demarshal_garray_basic): Renamed to demarshal_collection_array.
1891         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1892         generic map creation/append functions instead of hash table
1893         specifically.
1894         (get_type_demarshaller): Handle maps.
1895         (demarshal_collection): Dispatch on collection type to either
1896         demarshal_collection_ptrarray or demarshal_collection_array.
1897         (get_type_marshaller): Handle maps.
1898         (marshal_collection): Dispatch collection type to either
1899         marshal_collection_ptrarray or marshal_collection_array.
1900         (_dbus_gvalue_test): New test.
1901
1902         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1903         (hash_free_from_gtype): Use it to free GValues.
1904         (hashtable_append): New function.
1905         (ptrarray_append): Fix prototype.
1906         (slist_append): Ditto.
1907         (_dbus_gvalue_utils_test): Extend tests.
1908
1909         * glib/dbus-gtype-specialized.c
1910         (dbus_g_type_specialized_init_append): Renamed from
1911         dbus_g_type_specialized_collection_init_append.  Remove const from
1912         value, since we steal it.
1913         (dbus_g_type_specialized_map_append): New function.
1914
1915         * glib/dbus-gtype-specialized.h: Update prototypes.
1916         Add DBusGTypeSpecializedMapAppendFunc.
1917
1918         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1919         _dbus_gvalue_test.
1920         
1921         * glib/dbus-gtest.h: Prototype it.
1922
1923 2005-07-08  Ross Burton  <ross@openedhand.com>
1924
1925         * dbus/dbus-glib.h:
1926         Add DBysGAsyncData for the async bindings.
1927
1928         * glib/dbus-binding-tool-glib.c:
1929         Re-enable the async bindings.
1930
1931         * test/glib/test-dbus-glib.c:
1932         Add a test for the generated async bindings.
1933
1934 2005-07-08  Colin Walters  <walters@verbum.org>
1935
1936         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1937         connection concept.
1938         
1939 2005-07-08  Colin Walters  <walters@verbum.org>
1940         
1941         * tools/Makefile.am: Kill of print-introspect in favor of using
1942         dbus-send --print-reply=literal.
1943
1944         * test/glib/test-service-glib.xml: 
1945         * test/glib/test-service-glib.c (my_object_get_objs): New test
1946         for "ao".
1947
1948         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1949         (main): Test GetObjs.
1950
1951         * glib/examples/statemachine/Makefile.am:
1952         * glib/examples/statemachine/sm-marshal.list:
1953         * glib/examples/statemachine/statemachine-client.c:
1954         * glib/examples/statemachine/statemachine-server.c:
1955         * glib/examples/statemachine/statemachine-server.xml:
1956         * glib/examples/statemachine/statemachine.c:
1957         * glib/examples/statemachine/statemachine.h:
1958         * glib/examples/statemachine/statemachine.xml:
1959
1960         New example.
1961
1962         * glib/examples/example-service.c (main): Move invocation
1963         of dbus_g_object_type_install_info earlier, to emphasize it
1964         should only be done once.
1965
1966         * glib/examples/example-signal-emitter.c (main): Ditto.
1967
1968         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1969
1970         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1971         (dbus_gvalue_marshal): Update prototypes.
1972
1973         * glib/dbus-gvalue.c: Update all marshalling functions to take
1974         const GValue instead of GValue.
1975         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1976         types.
1977         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1978         change.
1979         (dbus_gtype_to_signature): Handle generic collecitons and maps.
1980         Return a newly-allocated string.
1981         (demarshal_proxy, demarshal_object_path, demarshal_object)
1982         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1983         we get the wrong types from message.
1984         (get_type_demarshaller): New function, extracted from
1985         dbus_gvalue_demarshal.
1986         (demarshal_collection): New function, demarshals generic
1987         collection.
1988         (dbus_gvalue_demarshal): Just invoke result of
1989         get_type_demarshaller.  Throw error if we don't have one.
1990         (marshal_garray_basic): Abort on OOM.
1991         (get_type_marshaller): New function, extracted from
1992         dbus_gvalue_marshal.
1993         (collection_marshal_iterator, marshal_collection): New functions;
1994         implements generic marshalling for an iteratable specialized
1995         collection.
1996         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1997
1998         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1999         G_TYPE_STRING.
2000         (ptrarray_value_from_gvalue): Ditto.
2001         (ptrarray_append, ptrarray_free): New functions.
2002         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2003         (slist_append, slist_end_append, slist_free): New functions.
2004         (dbus_g_type_specialized_builtins_init): Add append fuctions
2005         for GPtrArray and GSList.  Register GSList.
2006         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2007
2008         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2009         New.
2010         (dbus_g_type_specialized_collection_init_append)
2011         (dbus_g_type_specialized_collection_append)
2012         (dbus_g_type_specialized_collection_end_append): Prototype.
2013         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2014         end_append_func.
2015
2016         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2017         (dbus_g_type_specialized_collection_append) 
2018         (dbus_g_type_specialized_collection_end_append): New functions.
2019         (dbus_g_type_map_value_iterate): Take const GValue.
2020         (dbus_g_type_collection_value_iterate): Ditto.
2021
2022         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2023         _dbus_gvalue_utils_test.
2024         
2025         * glib/dbus-gtest.h: Prototype it.
2026
2027         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2028         using uninitialized owner_list.
2029         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2030         public API.
2031         (dbus_g_proxy_end_call_internal): Update to use error set
2032         from dbus_gvalue_demarshal instead of setting it here.
2033         (dbus_g_proxy_begin_call): Move return_if_fail here.
2034
2035         * glib/dbus-gobject.c (write_interface): Update for
2036         dbus_gtype_to_signature returning new string.
2037
2038         * configure.in: Add glib/examples/statemachine.
2039
2040 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2041
2042         * configure.in: Add a configure option, --with-console-auth-dir
2043         
2044         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2045         new setting.  Patch from Kay Sievers.
2046
2047 2005-07-06  Colin Walters  <walters@verbum.org>
2048
2049         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2050         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2051         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2052         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2053         Delete in favor of dbus_g_proxy_begin_call and
2054         dbus_g_proxy_cancel_call.
2055         (DBusGProxyCall, DBusGProxyCallNotify): New.
2056         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2057         data, and destroy function.  This replaces
2058         dbus_g_pending_call_set_notify.
2059         (dbus_g_proxy_cancel_call): Prototype.
2060         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2061
2062         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2063         pending_calls map.
2064         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2065         internal proxy for calls to the bus. Remove
2066         pending_nameowner_calls, now the internal proxy keeps track.
2067         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2068         pending_nameowner_calls.
2069         (got_name_owner_cb): Update prototype, and use
2070         dbus_g_proxy_end_call.
2071         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2072         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2073         favor of using internal proxy.
2074         (dbus_g_proxy_manager_unregister): Update to use
2075         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2076         (dbus_g_proxy_init): Initialize pending calls map.
2077         (dbus_g_proxy_constructor): New.
2078         (dbus_g_proxy_class_init): Add get/set property functions,
2079         constructor, and add NAME, PATH, and INTERFACE properties.
2080         (cancel_pending_call): New function.
2081         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2082         cancel them.
2083         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2084         (GPendingNotifyClosure): New structure.
2085         (d_pending_call_notify, d_pending_call_free): Moved here from
2086         dbus-glib.c.
2087         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2088         ordering.
2089         (manager_begin_bus_call): New internal function for talking to
2090         internal bus proxy.
2091         (dbus_g_proxy_new): Construct object using GObjet properties.
2092         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2093         Create closure of same, and insert call into map of pending calls.
2094         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2095         call.  Look up pending call in current set.  Remove it when we've
2096         completed.
2097         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2098         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2099         and destroy function directly.
2100         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2101         (dbus_g_proxy_call): Invoke with NULL callback.
2102         (dbus_g_proxy_cancel_call): New function, replaces
2103         dbus_g_pending_call_cancel.
2104
2105         * glib/dbus-gparser.c (validate_signature): Fix call to
2106         dbus_set_g_error.
2107
2108         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2109         New quark for attaching metadata to GType.
2110         (info_hash): Delete.
2111         (lookup_object_info): Look up using quark.
2112         (dbus_g_object_type_install_info): Check that a type is classed,
2113         not that it's an object.  Also just install type data using quark
2114         instead of using global hash.
2115
2116         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2117         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2118         (GPendingNotifyClosure): Delete.
2119         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2120         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2121
2122         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2123         client method generation until we can fix it...
2124         
2125         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2126         (load_from_service_thread_func): Ditto.
2127
2128         * tools/dbus-names-model.c (struct NamesModel): Hold
2129         DBusGProxyCall.
2130         (have_names_notify): Update prototype, use
2131         dbus_g_proxy_cancel_call.
2132         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2133
2134         * tools/dbus-monitor.c (filter_func): Update for print_message
2135         API change.
2136
2137         * test/glib/test-dbus-glib.c: Add more tests for async
2138         invocations.  Update many begin_call/end_call pairs to just use
2139         dbus_g_proxy_call.
2140
2141         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2142         allows us to dump print-introspect.c.
2143
2144         * tools/dbus-print-message.h (print_message): Add literal argument
2145         to print_message which is intended to allow printing arguments without
2146         metadata like "string=".
2147
2148         * tools/dbus-print-message.c (print_iter): Add literal argument.
2149         (print_message): Allow printing string messages literally.
2150
2151 2005-07-05  Colin Walters  <walters@verbum.org>
2152
2153         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2154         Remove value refcount leak, original patch from Jorn Baayen
2155         <jorn@openedhand.com>.  Also remove useless extra value in favor
2156         of prepending to value array directly.
2157
2158 2005-07-02  Colin Walters  <walters@verbum.org>
2159
2160         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2161
2162 2005-07-01  Colin Walters  <walters@verbum.org>
2163
2164         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2165         
2166         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2167         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2168         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2169         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2170
2171 2005-06-30  Colin Walters  <walters@verbum.org>
2172
2173         * test/glib/test-dbus-glib.c:
2174         * test/glib/test-service-glib.c:
2175         * test/glib/test-service-glib.xml: Update tests for new error
2176         setting bits, also add async tests (patch from Ross Burton).
2177
2178         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2179         DBUS_GLIB_THREADS_LIBS.
2180
2181         * glib/dbus-gproxy.c (get_name_owner)
2182         (dbus_g_pending_call_end_valist): Ditto.
2183
2184         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2185         domain (GQuark) to DBusGErrorInfo.  
2186         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2187         quark in error_metadata.  Take message interface as default
2188         error message interface.
2189         (gerror_to_dbus_error_message): Pass message interface.
2190         (dbus_set_g_error): Resurrected.
2191         (dbus_g_error_info_free): New function.
2192         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2193         of _peek to actually create the object class if it hasn't been
2194         created yet.
2195         (dbus_g_error_domain_register): New function.
2196
2197         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2198
2199         * glib/dbus-gparser.c (validate_signature): Ditto.
2200
2201         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2202         (dbus_g_error_domain_register): Prototype.
2203
2204         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2205         Update tests.
2206
2207 2005-06-29  Colin Walters  <walters@verbum.org>
2208
2209         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2210         DBUS_TYPE_G_OBJECT_PATH.
2211
2212         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2213         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2214         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2215         (dbus_g_object_path_get_g_type): New function.
2216         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2217         to DBUS_TYPE_G_OBJECT_PATH by default.
2218         (demarshal_proxy): Remove unused name variable.
2219         (demarshal_object_path, marshal_object_path): New functions.
2220         (demarshal_proxy_array, marshal_proxy_array): Delete.
2221         
2222         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2223         DBUS_TYPE_G_OBJECT_PATH to char *.
2224         (dbus_g_type_get_lookup_function): Map builtin
2225         DBUS_TYPE_G_OBJECT_PATH.
2226
2227         * test/glib/test-dbus-glib.c
2228         * test/glib/test-service-glib.c (my_object_objpath): 
2229         Adapt tests to new object path marshalling.
2230
2231 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2232
2233         * configure.in: force check for Python >= 2.4
2234
2235 2005-06-29  Colin Walters  <walters@verbum.org>
2236         
2237         Patch from Ross Burton <ross@openedhand.com>
2238         
2239         * glib/dbus-gobject.c (invoke_object_method): Unset object
2240         value in all cases, not only in async case.
2241
2242 2005-06-29  Colin Walters  <walters@verbum.org>
2243
2244         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2245         name_call for keeping track of any outgoing GetNameOwner call.
2246         Also add for_owner and associated.
2247         (struct _DBusGProxyManager): Add owner_names, which is hash table
2248         that maps a base name to a list of names it owns (that we're
2249         interested in).  Add pending_nameowner_calls which is a list of
2250         all outstanding GetNameOwner; avoids us having to iterate over
2251         every proxy.  Add unassociated_proxies which keeps track of name
2252         proxies with no associated name owner.
2253         (dbus_g_proxy_manager_unref): Destroy owner_names.
2254         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2255         name refcounts.
2256         (find_name_in_info, name_owner_foreach)
2257         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2258         (dbus_g_proxy_manager_monitor_name_owner)
2259         (dbus_g_proxy_manager_unmonitor_name_owner)
2260         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2261         New functions; they manipulate the owner_names mapping.
2262         (got_name_owner_cb): New function.
2263         (get_name_owner): New function, extracted from
2264         dbus_g_proxy_new_for_name_owner.
2265         (dbus_g_proxy_manager_register): For now we need to keep track of
2266         all NameOwnerChanged.  Also if the proxy is for a name, if we
2267         don't already know the name owner, queue a new GetNameOwner
2268         request and add it to our list of unassociated proxies.  Otherwise
2269         inc the refcount.
2270         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2271         cancel any pending GetNameOwner call, etc.
2272         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2273         the owner_names mapping to look up the current names for the
2274         signal source, and dispatch to any proxies for that name.
2275         (dbus_g_proxy_new): Initialize new members.
2276         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2277         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2278         (dbus_g_pending_call_end_valist): New function, extracted from
2279         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2280         but want to use the GLib infrastructure.  Also note how many
2281         arguments in reply were over.
2282         (dbus_g_pending_call_end): New function, just call
2283         dbus_g_pending_call_end_valist.
2284         (dbus_g_proxy_end_call_internal): Just call
2285         dbus_g_pending_call_end_valist.
2286
2287         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2288         of builtin marshaller for STRING_STRING_STRING.
2289
2290         * test/glib/test-dbus-glib.c: 
2291         * test/glib/test-service-glib.c:
2292         * test/glib/test-service-glib.xml:
2293         Extend tests to cover name proxies, destruction of owner proxies,
2294         etc.
2295         
2296         * glib/examples/example-signal-recipient.c
2297         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2298         
2299         * tools/dbus-send.c (main): Print D-BUS error name in addition
2300         to message.
2301
2302 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2303
2304         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2305         cmessage_function_handler): Patch from 
2306         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2307         by using the Py_GILState_Ensure/Release to synchronize with the
2308         python runtime.
2309         
2310 2005-06-28  Ray Strode  <rstrode@redhat.com>
2311
2312         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2313         babysitter helper process on last unref, bug #2813.
2314
2315 2005-06-27  Colin Walters  <walters@verbum.org>
2316
2317         * test/glib/test-dbus-glib.c: 
2318         * test/glib/test-service-glib.c:
2319         * test/glib/test-service-glib.xml:
2320         Test hash table signal emitting.
2321
2322         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2323         types to their fundamental basis types, since this is what
2324         marshallers operate on.  Also add an entry for VOID__BOXED.
2325         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2326
2327 2005-06-26  Havoc Pennington  <hp@redhat.com>
2328
2329         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2330         from Don Park
2331
2332 2005-06-26  Colin Walters  <walters@verbum.org>
2333
2334         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2335         (dbus_g_error_set): New public function from its ashes; used by
2336         both service-side method implementation and GLib bindings
2337         internals.
2338         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2339         (_dbus_glib_test): Add some tests.
2340
2341         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2342
2343         * test/glib/test-service-glib.c (my_object_throw_error): Use
2344         dbus_g_error_set.
2345
2346         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2347         errors thrown by dbus_g_error_set.
2348
2349         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2350
2351         * glib/dbus-gparser.c (validate_signature): Ditto.
2352
2353         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2354         (dbus_g_proxy_end_call_internal): Ditto.
2355
2356         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2357         converts DBUS_ERROR_x to DBUS_GERROR_x.
2358         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2359
2360         * doc/TODO: Remove error TODO.
2361
2362         * doc/dbus-tutorial.xml: Update with documentation about error
2363         handling.
2364
2365         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2366         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2367         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2368
2369 2005-06-22  Colin Walters  <walters@verbum.org>
2370         
2371         Patch from Ross Burton <ross@openedhand.com>
2372
2373         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2374
2375 2005-06-20  Colin Walters  <walters@verbum.org>
2376
2377         * configure.in: Add glib/examples.
2378
2379         * glib/Makefile.am: Add examples/
2380
2381         * glib/examples/.cvsignore
2382         * glib/examples/Makefile.am
2383         * glib/examples/example-client.c
2384         * glib/examples/example-service.c
2385         * glib/examples/example-service.xml
2386         * glib/examples/example-signal-emitter.c
2387         * glib/examples/example-signal-emitter.xml
2388         * glib/examples/example-signal-recipient.c:
2389         New files; GLib binding examples, ported from
2390         python/examples.
2391
2392 2005-06-20  Colin Walters  <walters@verbum.org>
2393
2394         * dbus/dbus-glib.h: 
2395         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2396         dbus_g_proxy_call.
2397
2398         * glib/dbus-binding-tool-glib.c: 
2399         * doc/dbus-tutorial.xml: 
2400         * test/glib/test-dbus-glib.c: Update for rename.
2401         
2402 2005-06-20  Colin Walters  <walters@verbum.org>
2403
2404         Patch suggested by Ross Burton <ross@openedhand.com>
2405
2406         * glib/dbus-gobject.c (export_signals): Free signal name.
2407         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2408         memory leak.  Add a bit of documentation.
2409         (dbus_g_method_return_error): Free context, and note we do
2410         so.
2411
2412 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2413
2414         * dbus/dbus-glib.h:
2415         * glib/dbus-gobject.c:
2416         * glib/dbus-gproxy.c:
2417         * glib/dbus-gvalue.c: Predeclare structs as 
2418         typedef struct _Something Something instead of 
2419         typedef struct Something Something, so we can 
2420         redeclare the prototypes. Other GNOME libraries 
2421         do this already.
2422
2423 2005-06-17  Colin Walters  <walters@verbum.org>
2424
2425         * tools/dbus-names-model.c (have_names_notify): Fix call
2426         to dbus_g_proxy_end_call.
2427         
2428 2005-06-17  Colin Walters  <walters@verbum.org>
2429
2430         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2431         spew warnings if we get malformed remote signals.
2432
2433         * glib/dbus-gobject.c (propsig_iterate): New function.
2434         (lookup_object_info): New function, extracted from
2435         lookup_object_and_method.
2436         (introspect_properties, introspect_signals): Delete; these
2437         are merged into write_interface.
2438         (write_interface): Write out signals and properties here;
2439         dump the org.gtk.object stuff and use the interface given
2440         in the introspection data blob.  Also fix up property XML.
2441         (lookup_values): New function.
2442         (introspect_interfaces): Gather a mapping from interface to a
2443         list of its methods, signals, and properties, then write out
2444         each interface.
2445         (lookup_object_and_method): Use lookup_object_info.
2446         (struct DBusGSignalClosure): Add interface.
2447         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2448         we can just use the constant data.
2449         (dbus_g_signal_closure_finalize): Don't free signal name.
2450         (signal_emitter_marshaller): Use interface from signal closure.
2451         (export_signals): Only export signals mentioned in introspection
2452         blob.
2453         (dbus_g_connection_register_g_object): Warn if we have no
2454         introspection data for an object.
2455         (funcsig_equal): Remove unused variable.
2456         (dbus_g_object_register_marshaller): Take varargs instead of
2457         list.
2458         (dbus_g_object_register_marshaller_array): New function,
2459         extracted from old dbus_g_object_register_marshaller.
2460
2461         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2462         signals and property data.
2463         (write_quoted_string): New function, extracted from generate_glue.
2464         (generate_glue): Write signals and properties to introspection
2465         blob.
2466
2467         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2468         exported_signals and exported_properties.
2469         (dbus_g_object_register_marshaller): Update prototype.
2470         (dbus_g_object_register_marshaller_array): Prototype.
2471         
2472         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2473
2474         * test/glib/test-service-glib.c: Add new test signals and method
2475         to emit them.
2476
2477         * test/glib/test-service-glib.xml: Add some test signals.
2478
2479         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2480         and my-object-marshal.h
2481         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2482         my-object-marshal.c.
2483         (my-object-marshal.c, my-object-marshal.h): Implement.
2484
2485         * test/glib/.cvsignore: Update.
2486
2487         * doc/TODO: Remove two GLib TODO items fixed by this
2488         patch.
2489
2490 2005-06-16  Colin Walters  <walters@verbum.org>
2491
2492         * doc/TODO: Update for GLib bindings.
2493         
2494 2005-06-16  Colin Walters  <walters@verbum.org>
2495
2496         * glib/dbus-binding-tool-glib.c:
2497         * glib/dbus-gobject.c:
2498         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2499         from Ross Burton, for his GLib bindings work.
2500
2501 2005-06-16  Colin Walters  <walters@verbum.org>
2502
2503         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2504         to iterate instead of walking to G_TYPE_INVALID.
2505
2506         Patch based on a patch from Ryan Gammon.
2507
2508 2005-06-16  Colin Walters  <walters@verbum.org>
2509
2510         * bus/bus.c (bus_context_new): Set parser to NULL
2511         after we unref it (Patch from Chris Boscolo, #2174).
2512         
2513 2005-06-16  Colin Walters  <walters@verbum.org>
2514
2515         * python/dbus_bindings.pyx.in: Import size_t,
2516         __int64_t, __uint64_t, and __signed.
2517
2518         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2519         Define cmsg struct, output it.
2520         (_dbus_read_credentials_unix_socket):
2521         Use cmsg struct.
2522         
2523         Patch from Joe Markus Clarke for FreeBSD support.
2524         
2525 2005-06-16  Colin Walters  <walters@verbum.org>
2526
2527         * tools/dbus-send.c (append_array): Use strtok.
2528         (append_dict): New function.
2529         (type_from_name): New function, extracted from main.
2530         (main): Handle sending dicts.
2531
2532         * tools/dbus-print-message.c (print_iter): Print dict
2533         entries.
2534         
2535 2005-06-16  Colin Walters  <walters@verbum.org>
2536
2537         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2538         values as the empty string (#2948).
2539         
2540 2005-06-16  Colin Walters  <walters@verbum.org>
2541
2542         * dbus/Makefile.am:
2543         * mono/doc/Makefile.am:
2544         * test/glib/Makefile.am:
2545
2546         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2547
2548 2005-06-16  Colin Walters  <walters@verbum.org>
2549
2550         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2551         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2552
2553         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2554         Increment pointer after swapping fixed array.  Add assertion
2555         for array length.
2556                 
2557 2005-06-15  Colin Walters  <walters@verbum.org>
2558
2559         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2560         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2561         
2562 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2563
2564         * NEWS: Update to 0.34
2565
2566 2005-06-15  David Zeuthen  <davidz@redhat.com>
2567
2568         * configure.in (LT_CURRENT): Revert back to 1 as the library
2569         hasn't changed and we've certainly not committed to protocol
2570         stability yet.  All this does is to break ABI. See commit note
2571         from hp@redhat.com 2005-05-05 for details.
2572         
2573 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2574
2575         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2576         (_dbus_connection_run_builtin_filters): New method
2577         (dbus_connection_dispatch): Run the builtin filters which in turn
2578         runs the peer filter which handles Ping messages.
2579
2580         * doc/TODO: 
2581          - Ping isn't handled: This patch fixes it
2582          
2583          - Add a test case for the Ping message: added TODO item
2584
2585 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2586
2587         * dbus/dbus-message.c:
2588         (dbus_message_has_path): New method
2589         (dbus_message_has_interface): New method
2590         (dbus_message_has_member): New method
2591
2592         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2593         New method
2594
2595         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2596         the keyring directory is private to the user
2597
2598         * doc/TODO:
2599          - The convenience functions in dbus-bus.h should perhaps have
2600          the signatures that they would have if they were autogenerated
2601          stubs. e.g. the acquire service function. We should also evaluate
2602          which of these functions to include, in light of the fact that
2603          GLib/Qt native stubs will probably also exist.: Punted
2604
2605          - add dbus_message_has_path(), maybe has_member/interface:
2606          fixed in this patch
2607
2608          - in dbus-keyring.c, enforce that the keyring dir is not
2609          world readable/writable: Fixed in this patch
2610
2611 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2612
2613         * dbus/dbus-marshal-validate.h: Added a new validation
2614         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2615         out of memory errors when validating signitures
2616
2617         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2618         in places where we previously used DBUS_VALID and a FALSE return 
2619         value to indicate OOM
2620         
2621         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2622         Use a stack to track the number of elements inside containers.  The 
2623         stack values are then used to validate that dict entries have only two
2624         elements within them.
2625         (validate_body_helper): check the reason for failure when validating
2626         varients
2627         
2628         * dbus/dbus-message.c (load_message): use 
2629         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2630         DBUS_VALID and a FALSE return value to indicate OOM
2631
2632         * doc/TODO: remove "- validate dict entry number of fields" as this
2633         patch fixes it
2634
2635 2005-06-14  David Zeuthen  <davidz@redhat.com>
2636
2637         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2638         watches (if applicable) and add new watches
2639
2640         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2641         (main): Setup SIGIO signal handler if using D_NOTIFY
2642
2643         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2644
2645         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2646         (merge_included): Also merge conf_dirs list
2647         (bus_config_parser_unref): Clear conf_dirs list
2648         (include_dir): Add directory to conf_dirs list
2649         (bus_config_parser_get_conf_dirs): New function
2650
2651         * bus/dir-watch.[ch]: New files
2652
2653         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2654
2655         * configure.in: Add checks for D_NOTIFY on Linux
2656
2657 2005-06-14  Colin Walters  <walters@verbum.org>
2658
2659         * glib/dbus-binding-tool-glib.c:
2660         * glib/dbus-gobject.c:
2661         * glib/dbus-gvalue.c: Fix indentation and brace style.
2662         
2663 2005-06-14  Ross Burton <ross@openedhand.com>.
2664
2665         * glib/dbus-glib.h: Make DBusGMethodInvocation
2666         a private structure.  Rearrange prototypes a bit.
2667         
2668         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2669         documentation for first_arg_type.
2670         
2671         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2672         here, add documentation.  Move dbus_g_method_return
2673         and dbus_g_method_return_error into public API
2674         section.
2675
2676 2005-06-14  Colin Walters  <walters@verbum.org>
2677
2678         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2679         Add missing return statements, noticed by Ross Burton.
2680         
2681 2005-06-13  Ross Burton <ross@openedhand.com>.
2682
2683         * glib/dbus-gobject.c: Handle errors on message
2684         demarshalling by sending error message back.
2685         * glib/dbus-gvalue.c: Initialize return variables.
2686
2687 2005-06-13  Colin Walters  <walters@verbum.org>
2688
2689         * glib/Makefile.am: Fix thinko in last patch.
2690
2691 2005-06-13  Colin Walters  <walters@verbum.org>
2692
2693         * glib/Makefile.am: Move dbus-gtype-specialized.c
2694         and dbus-gtype-specialized.h into a _HEADERS variable,
2695         install them.
2696
2697 2005-06-12  Colin Walters  <walters@verbum.org>
2698
2699         Async signals and various bugfixes and testing by
2700         Ross Burton <ross@openedhand.com>.
2701
2702         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2703         (dbus_gvalue_genmarshal_name_from_type)
2704         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2705         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2706         (dbus_g_value_types_init, dbus_gtype_from_signature)
2707         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2708         (dbus_gtypes_from_arg_signature): New function prototypes.
2709         (dbus_gvalue_demarshal): Take context and error arguments.
2710         (dbus_gvalue_demarshal_variant): New function.
2711         (dbus_gvalue_demarshal_message): New function.
2712         (dbus_gvalue_store): Delete.
2713
2714         * glib/dbus-gvalue.c:
2715
2716         File has been almost entirely rewritten; now we special-case
2717         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2718         hash tables correctly, etc.  Full support for recursive values
2719         is not yet complete.
2720
2721         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2722         argument of signal to G_TYPE_POINTER since we now pass a
2723         structure.
2724         (lookup_g_marshaller): Delete in favor of
2725         _dbus_gobject_lookup_marshaller.
2726         (marshal_dbus_message_to_g_marshaller): Use
2727         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2728         to handle remote signal callbacks.
2729         (dbus_g_proxy_new_from_proxy): New function; creates a new
2730         DBusGProxy by copying an existing one.
2731         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2732         (dbus_g_proxy_get_path): New functions.
2733         (dbus_g_proxy_marshal_args_to_message): New function;
2734         factored out of existing code.
2735         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2736         from a varargs array.
2737         (dbus_g_proxy_begin_call_internal): New function.
2738         (dbus_g_proxy_end_call_internal): New function.
2739         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2740         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2741         after collecting args into value array.
2742         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2743         invoke dbus_g_proxy_end_call_internal.
2744         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2745         end_call_internal.
2746         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2747         types.
2748         (array_free_all): New function.
2749         (dbus_g_proxy_add_signal): Take GTypes.
2750
2751         * glib/dbus-gobject.h:
2752         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2753         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2754         Prototype.
2755
2756         * glib/dbus-gobject.c: Add a global marshal_table hash which
2757         stores mappings from type signatures to marshallers.  Change lots
2758         of invocations of dbus_gtype_to_dbus_type to
2759         dbus_gtype_to_signature.
2760         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2761         (introspect_signals): Fix test for query.return_type.
2762         (set_object_property): Update invocation of dbus_gvalue_demarshal.
2763         (invoke_object_method): Many changes.  Handle asynchronous
2764         invocations.  Convert arguments with
2765         dbus_gvalue_demarshal_message.  Handle errors.  Use
2766         DBusSignatureIter instead of strlen on args. Handle all arguments
2767         generically.  Special-case variants.
2768         (dbus_g_method_return, dbus_g_method_return_error): New function.
2769         (DBusGSignalClosure): New structure, closes over signal
2770         information.
2771         (dbus_g_signal_closure_new): New function.
2772         (dbus_g_signal_closure_finalize): New function.
2773         (signal_emitter_marshaller): New function; is special marshaller
2774         which emits signals on bus.
2775         (export_signals): New function; introspects object signals and
2776         connects to them.
2777         (dbus_g_object_type_install_info): Take GType instead of
2778         GObjectClass.
2779         (dbus_g_connection_register_g_object): Invoke export_signals.
2780         (dbus_g_connection_lookup_g_object): New function.
2781         (DBusGFuncSignature) New structure; used for mapping type
2782         signatures to marshallers.
2783         (funcsig_hash): New function; hashes DBusGFuncSignature.
2784         (funcsig_equal): New function; compares DBusGFuncSignature.
2785         (_dbus_gobject_lookup_marshaller): New function.
2786         (dbus_g_object_register_marshaller): New function; used to
2787         register a marshaller at runtime for a particular signature.
2788
2789         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2790
2791         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2792         which notes a server method implementation should be
2793         asynchronous.
2794
2795         * glib/dbus-binding-tool-glib.c
2796         (dbus_binding_tool_output_glib_server): Call
2797         dbus_g_value_types_init.
2798         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
2799         variants specially.
2800         (dbus_g_type_get_lookup_function): Turn GType into an invocation
2801         of a lookup function.
2802         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2803         (write_untyped_out_args): New method; write output arguments.
2804         (write_formal_declarations_for_direction): Function for
2805         writing prototypes.
2806         (write_formal_parameters_for_direction): Function for
2807         writing implementations.
2808         (write_typed_args_for_direction): Function for writing
2809         arguments prefixed with GTypes.
2810         (write_async_method_client): Write out async version
2811         of method.
2812
2813         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2814         (dbus_g_type_get_marshal_name): Move mapping from GType
2815         to marshal name into here.
2816         (dbus_g_type_get_c_name): Move into here.
2817         (compute_marshaller): Convert signature to type with
2818         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2819         (compute_marshaller_name): Ditto.
2820         (compute_marshaller): Handle async signal annotations.
2821         (gather_marshallers): Return if we don't have a known
2822         prefix.
2823         (generate_glue): Collect introspection blob here, and
2824         write all of the blob at the end.  This allows an object
2825         with multiple interfaces to work.
2826         Mark async methods in introspection blob.
2827
2828         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2829         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2830         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2831
2832         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2833         avoids people accidentally using DBUS_TYPE_* which should
2834         not be necessary anymore.
2835         Do include dbus-gtype-specialized.h, which are utilities
2836         for GLib container types.
2837         Add various #defines for types such as
2838         DBUS_TYPE_G_BOOLEAN_ARRAY.
2839         (DBusGValueIterator, DBusGValue): Define, not fully used
2840         yet.
2841         (dbus_g_value_get_g_type): Type for recursive value.
2842         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2843         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2844         (dbus_g_value_free): Prototypes.
2845         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2846         (dbus_g_proxy_set_interface): Prototype.
2847         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2848         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2849         types.
2850         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2851         Accessors.
2852         (DBusGAsyncData, DBusGMethodInvocation): Structures for
2853         doing async invocations.
2854         (dbus_g_method_return, dbus_g_method_return_error):
2855         Prototypes.
2856         * doc/dbus-tutorial.xml: Update GLib section.
2857         
2858         * tools/dbus-viewer.c (load_child_nodes): Update
2859         for new invocation type of dbus_g_proxy_end_call.
2860         (load_from_service_thread_func): Ditto.
2861
2862         * tools/print-introspect.c (main): Ditto.
2863
2864         * tools/dbus-names-model.c (have_names_notify)
2865         (names_model_reload, names_model_set_connection)
2866         Use GTypes.
2867
2868         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2869         needed since Python bindings use GLib bindings.
2870
2871         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2872         Add --prefix argument.
2873
2874         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
2875         unneeded --ignore-unsupported arg.
2876         
2877         * test/glib/test-service-glib.c: 
2878         * test/glib/test-service-glib.xml:
2879         * test/glib/test-dbus-glib.c: Add many more tests.
2880
2881 2005-06-06  David Zeuthen  <davidz@redhat.com>
2882
2883         * doc/TODO: Add item about need to remove deprecated functions.
2884
2885         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2886
2887         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2888         to repair the ABI which was broken with the last commit.
2889
2890 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
2891
2892         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2893         (dbus_connection_disconnect): renamed to dbus_connection_close 
2894         for API symmetry with dbus_connection_open
2895         (_dbus_connection_open_internal): 
2896         s/dbus_connection_disconnect/dbus_connection_close
2897
2898         * dbus/dbus-bus.c (dbus_bus_get):
2899         s/dbus_connection_disconnect/dbus_connection_close
2900
2901         * bus/connection.c (bus_connections_unref, 
2902         bus_connections_setup_connection, bus_connections_expire_incomplete):
2903         s/dbus_connection_disconnect/dbus_connection_close
2904
2905         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2906         kill_client_connection_unchecked, check_hello_connection):
2907         s/dbus_connection_disconnect/dbus_connection_close
2908
2909         * bus/bus.c (new_connection_callback):
2910         s/dbus_connection_disconnect/dbus_connection_close
2911
2912         * tools/dbus-send.c (main):
2913         s/dbus_connection_disconnect/dbus_connection_close
2914
2915         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2916         s/dbus_connection_disconnect/dbus_connection_close
2917         
2918         * test/test-service.c (path_message_func, filter_func):
2919         s/dbus_connection_disconnect/dbus_connection_close
2920         
2921         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
2922         
2923 2005-05-25  Colin Walters  <walters@verbum.org>
2924
2925         * dbus/dbus-protocol.h: Move various bus service #defines such
2926           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2927           dbus/dbus-shared.h.
2928         * dbus/dbus-shared.h: Various defines moved here.
2929         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2930
2931 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
2932
2933         * python/__init__.py: Python bindings deserve a minor version
2934         update.  Upped to (0, 40, 2)
2935
2936 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
2937
2938         * python/decorators.py: add explicitly_pass_message decorator
2939         for passing in the dbus message as keyword for edge case signal
2940         handling
2941
2942         * python/matchrules.py (SignalMatchRule.__repr__): fix output
2943         to conform with what dbus expects for match rules
2944         (SignalMatchRule.execute): add the dbus message as a keyword
2945         if the signal handler has requested it
2946
2947         * python/examples/example/signal-recipient.py: added some more
2948         examples on how to hook up to signals
2949
2950 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
2951
2952         * python/decorators.py: import dbus_bindings
2953
2954         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
2955         SignalMatchNode): new classes that implement wildcard signal
2956         callback matching using a tree lookup. Heavily modified from a
2957         patch sent by Celso Pinto (fd.o bug #3241)
2958
2959         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2960         use new match classes to handle signals.
2961
2962 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
2963         
2964         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2965
2966 2005-05-18  Havoc Pennington  <hp@redhat.com>
2967
2968         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2969         gettext. Not really worth requiring yet perhaps, but any
2970         production quality 1.0 would require it so we should go ahead and
2971         get things set up. We do have a couple token calls to
2972         bindtextdomain in the code already.
2973
2974 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
2975
2976         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2977         when using recursive g_main_loops
2978
2979         * python/_dbus.py (class Bus): add the ProxyObjectClass
2980         alias for ProxyObject to make it easier for the Twisted 
2981         networking framework to integrate dbus.
2982
2983         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2984         alias for ProxyMethod to make it easier for the Twisted 
2985         networking framework to integrate dbus. 
2986
2987 2005-05-11  Ross Burton  <ross@openedhand.com>
2988
2989         * glib/dbus-glib-tool.c: Add --prefix argument.
2990         * glib/dbus-binding-tool-glib.h: Add prefix argument.
2991         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2992         Add prefix argument.
2993         (generate_glue): Pass prefix argument down.
2994         (dbus_binding_tool_output_glib_server): Pass prefix to
2995         glib-genmarshal.
2996         
2997 2005-05-11  Colin Walters  <walters@verbum.org>
2998
2999         * tools/dbus-send.c (append_array): New function.
3000         (append_arg): Broken out from main.
3001         (main): Add cheesy hack to send arrays and variants.
3002         (usage): Update.
3003         * tools/dbus-print-message.c (print_iter): Broken out
3004         from main.
3005
3006 2005-05-11  Colin Walters  <walters@verbum.org>
3007
3008         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3009         New function, returns signature string for signature iter.
3010         * dbus/dbus-signature.h: Prototype it.
3011         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3012         New function, returns signature string for message iter.
3013         (dbus_message_iter_get_array_len): New function, returns
3014         length of array.
3015         (dbus_message_iter_get_fixed_array): Fix assertion; this
3016         function should be used when the iter is pointing to the
3017         contents of an array
3018         * dbus/dbus-message.h: Prototypes.
3019         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3020         New function; returns length of an array.
3021         * dbus/dbus-marshal-recursive.h: Prototype it.
3022         
3023 2005-05-11  Colin Walters  <walters@verbum.org>
3024
3025         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3026         compilation error.
3027         
3028 2005-05-08  Havoc Pennington  <hp@redhat.com>
3029
3030         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3031         daemon's pid, not the parent's pid, to the file descriptor.
3032         Reported by Taj Morton.
3033
3034 2005-05-05  Havoc Pennington  <hp@redhat.com>
3035
3036         * configure.in (LT_*): add notes on how the libtool versioning
3037         works to save thinking. Increment soname to indicate protocol
3038         breakage (though really the library interface hasn't changed I
3039         guess)
3040
3041         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3042         verify the GUID received from server matches what we were
3043         expecting, if we had an expectation
3044
3045         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3046         (_dbus_auth_get_guid_from_server): new function
3047         (send_begin): parse the OK args
3048
3049         * doc/dbus-specification.xml: add GUID to the auth protocol
3050
3051 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3052
3053         * Fix my name in previous changelog ;)
3054
3055         * python/proxies.py (ProxyObject.__getattr__): add further patch
3056         from Anthony Baxter to throw an AttributeError when python 
3057         __special__ functions are called instead of marshling them over 
3058         the bus (Bug#1685 comment 3).
3059
3060 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3061
3062         * python/Makefile.am: changed to use pyexecdir for the binding
3063         shared libraries (Bug#2494)
3064
3065         * python/exceptions.py: bring exceptions over from the bindings
3066         so they can be used in applications (Bug#2036)
3067         Make all exceptions derive from DBusException
3068
3069         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3070         of classes so that print obj doesn't throw an exception (Bug #1685)
3071
3072 2005-05-03  Ross Burton  <ross@openedhand.com>
3073
3074         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3075         Return if we get an error during registration.  Set up a
3076         weak reference on object to unregister if object is destroyed.
3077         (unregister_gobject): New function.
3078         
3079 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3080
3081         * python/dbus_bindings.pyx.in: 
3082         - added new type classes for hinting to the marashaler what type 
3083         to send over the wire
3084         - added int16 and uint16 marshalers
3085         - Fixed a bug in the type constants that caused int32 to go out
3086         as uint16 over the wire
3087         * python/dbus.py: split up into different files and renamed _dbus.py
3088         * python/__init__.py, python/_util.py, python/decorators.py, 
3089         python/exceptions.py, python/proxies.py, python/services.py,
3090         python/types.py: new files split off from dbus.py
3091         * python/Makefile.am: Add new files, remove dbus.py and 
3092         install all python files to <python module dir>/dbus
3093         * python/examples/*: Added #!/usr/bin/env python to the top of
3094         every example.  Patch provided by Tatavarty Kalyan
3095
3096 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3097
3098         * NEWS: Update to 0.33
3099
3100 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3101
3102         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3103         method for doing async calls
3104         (_pending_call_notification): New C function for handling pendning call
3105         callbacks
3106         (set_notify): New method for setting pending call notification
3107         
3108         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3109         Async capabilities added to remote method calls
3110         (Sender): class removed
3111         (RemoteService): class removed
3112         (ObjectTree): class removed for now
3113         (RemoteObject): Renamed to ProxyObject
3114         (RemoteMethod): Renamed to ProxyMethod
3115         (method): Decorator added for decorating python methods as dbus methods
3116         (signal): Decorator added for decorating python methods as signal emitters
3117         (ObjectType): Metaclass added for generating introspection data and the
3118         method callback vtable
3119         (Interface): Wrapper class added to wrap objects in a dbus interface
3120         (Object): Uses ObjectType as its metaclass and exports Introspect
3121         of the org.freedesktop.DBus.Introspectable interface
3122         (ValidationException, UnknownMethodException): new exceptions
3123
3124         * python/examples/*: Modified to fit with the new bindings
3125
3126 2005-04-23  Havoc Pennington  <hp@redhat.com>
3127
3128         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3129         reported by Tony Houghton
3130
3131         * test/test-service.c (main): test
3132         dbus_connection_get_object_path_data()
3133
3134         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3135         the exact_match
3136         (_dbus_object_tree_get_user_data_unlocked): new function used by
3137         dbus_connection_get_object_path_data()
3138         (do_register): add assertion test for get_user_data_unlocked
3139         (object_tree_test_iteration): more tests
3140
3141         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3142         new function from Dan Reed to let you get the user data from 
3143         dbus_connection_register_object_path()
3144
3145 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3146
3147         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3148         in numerous places that did not account for the NULL terminator
3149         (signature_from_seed): changed the manual string copy loop to 
3150         just use strcpy instead
3151         make check should now pass
3152
3153 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3154
3155         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3156         so that it allows messages that are not signals to pass in 
3157         NULL as the interface.
3158
3159 2005-04-18  David Zeuthen  <davidz@redhat.com>
3160
3161         * glib/dbus-gmain.c (io_handler_destroy_source): 
3162         (timeout_handler_destroy_source, connection_setup_free): 
3163         Also unref the source to avoid memory leaks.
3164
3165 2005-04-13  David Zeuthen  <davidz@redhat.com>
3166
3167         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3168         more reasonable, yet still totally arbitrary, value :-). 
3169
3170 2005-04-13  David Zeuthen  <davidz@redhat.com>
3171
3172         * doc/TODO: Added an "important for 1.0" item about selinux
3173         allow/deny messages
3174
3175 2005-04-13  David Zeuthen  <davidz@redhat.com>
3176
3177         * bus/selinux.c: Add c-file-style to top of file
3178         (log_audit_callback): Don't free the data here anymore
3179         (bus_selinux_check): Don't take spid and tpid since appending
3180         that to auxdata may OOM.
3181         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3182         to the caller if we are OOM by taking an error object.
3183         (bus_selinux_allows_send): -do-
3184
3185         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3186         and bus_selinux_allows_send
3187
3188         * bus/bus.c (bus_context_check_security_policy): Pass error and
3189         pass on OOM thrown by bus_selinux_allows_send()
3190
3191         * bus/services.c (bus_registry_acquire_service): Pass error and
3192         pass on OOM thrown by bus_selinux_allows_acquire_service()
3193
3194 2005-04-13  Havoc Pennington  <hp@redhat.com>
3195
3196         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3197         message at a time to avoid monopolizing the main loop, bug 
3198         #2953 from Benjamin Otte
3199
3200 2005-04-09  Havoc Pennington  <hp@redhat.com>
3201
3202         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3203         possible overlap, fix from Daniel Reed
3204         (fixup_alignment): fix signedness warnings
3205         (_dbus_string_append_unichar): ditto
3206
3207 2005-04-09  Havoc Pennington  <hp@redhat.com>
3208
3209         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3210
3211         * glib/dbus-glib-tool.c (main): fix warning
3212
3213         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3214
3215         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3216         add a new function that can be used in simple applications that
3217         don't have a main loop and are willing to block
3218
3219 2005-04-05  David Zeuthen  <davidz@redhat.com>
3220
3221         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3222
3223         * glib/dbus-gmain.c:
3224         (io_handler_destroy_source): Remove from list of IO handlers
3225         of the ConnectionSetup object
3226         (timeout_handler_destroy_source): -do- for timeout handlers
3227         (io_handler_source_finalized): Don't remove from list since
3228         we now do that in io_handler_destroy_source(). Renamed from
3229         io_handler_source_destroyed
3230         (timeout_handler_source_destroyed): -do- for timeout handlers
3231         (connection_setup_free): It is now safe to iterate over all
3232         IO and timeout handlers as the _destroy_source removes them
3233         from the list synchronously
3234
3235 2005-03-30  Havoc Pennington  <hp@redhat.com>
3236
3237         * configure.in: change check to gtk 2.4
3238
3239         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3240         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3241         to 2.4
3242
3243 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3244
3245         * News: Update 0.32
3246
3247         * HACKING: Fixed realease instructions.  configure.in should be updated to
3248           the next release by the person who made the last release.
3249
3250 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3251
3252         * python/lvalue_cast_post_process.py - removed.  Patch has been
3253           submitted to Pyrex maintainers that fixes gcc4.0 errors
3254
3255         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3256
3257 2005-03-24  Daniel Reed  <n@ml.org>
3258
3259         * tools/Makefile.am: Make print-introspect and
3260         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3261
3262 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3263
3264         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3265
3266         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3267           had in Red Hat packages for a while but for some reason never 
3268           got merged upstream
3269           (_dbus_is_a_number): New checks if a string
3270           can be converted to a number and does the conversion if it can
3271           (_dbus_user_database_lookup): Add check to see if the given username
3272           is a udi.  This allows udi's to be used instead of usernames in the
3273           config file.
3274           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3275           is a gdi.  This allows gdi's to be used instead of groupnames in the
3276           config file.
3277
3278 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3279
3280         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3281           code so that it compiles with gcc4.0
3282
3283         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3284           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3285           results back to dbus_binding.c
3286
3287 2005-03-20  Colin Walters  <walters@verbum.org>
3288
3289         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3290
3291         * configure.in: Require GTK+ 2.6.
3292         
3293 2005-03-20  Colin Walters  <walters@verbum.org>
3294
3295         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3296
3297 2005-03-17  Tom Parker  <palfrey@tevp.net>
3298
3299         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3300         print DBUS_UID_UNSET; instead print passed username.  Also
3301         be sure to actually use gid looked up in cache.
3302         
3303         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3304         for DBUS_GID_UNSET and groupname.
3305
3306 2005-03-17  Colin Walters  <walters@verbum.org>
3307
3308         * bus/print-introspect.c: Move to tools/.
3309         * bus/run-with-tmp-session-bus.sh: Ditto.
3310         
3311         * glib/Makefile.am (dbus-glib-bindings.h): Move
3312         generation to tools/Makefile.am.
3313
3314         * test/glib/run-test.sh: Update to handle move
3315         of run-with-tmp-session-bus.sh.
3316
3317         * test/glib/test-service-glib.c: Update to handle
3318         move of dbus-glib-bindings.h.
3319
3320         * tools/print-introspect.c: Moved here
3321         from bus/, and ported to GLib bindings.
3322
3323         * tools/run-with-tmp-session-bus.sh: Moved here
3324         from bus/.
3325
3326         * tools/Makefile.am: Generate dbus-glib-bindings.h
3327         and dbus-bus-introspect.xml here.
3328
3329         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3330         Update.
3331
3332 2005-03-17  Colin Walters  <walters@verbum.org>
3333
3334         * bus/driver.c (write_args_for_direction): Use
3335         _dbus_string_get_const_data to retrieve string;
3336         _dbus_string_get_const_data_len doesn't actually return
3337         a NULL-terminated substring.
3338
3339         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3340         (main): Change to use org_freedesktop_DBus_request_name
3341         instead of using g_proxy_begin_call/end_call.
3342
3343 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3344
3345         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3346         generating the finalizer.  Fixes from Ben Maurer.
3347
3348 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3349
3350         * mono/BusDriver.cs: Update method names: ListServices
3351         becomes ListNames; GetOwner becomes GetNameOwner.
3352
3353         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3354         onto the eval stack when removing the delegate.
3355
3356 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3357
3358         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3359         LT_CURRENT.  Set it to the autoconf variable.
3360                                                                                 
3361         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3362         classes that disconnects the signal handler delegate from the
3363         service object.  Fixes a big leak of proxy objects on the
3364         client side of things.  Patch from Ben Maurer
3365         <bmaurer@ximian.com>
3366
3367 2005-03-12  Colin Walters  <walters@verbum.org>
3368
3369         * bus/driver.c (write_args_for_direction): New function,
3370         parses a type signature into arguments and outputs to
3371         XML.
3372         (bus_driver_handle_introspect): Use it instead of
3373         hardcoding XML for certain signatures.
3374         
3375         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3376         dependency on dbus-daemon.
3377
3378         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3379         argument, pass it to dbus_binding_tool_output_glib_client.
3380
3381         * glib/dbus-binding-tool-glib.c
3382         (generate_client_glue): Protect against multiple inclusion.
3383         (dbus_binding_tool_output_glib_client): Add
3384         G_BEGIN_DECLS/G_END_DECLS.
3385
3386         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3387         Change to just take iface prefix directly.
3388         (write_formal_parameters): Clarify error message.
3389         (check_supported_parameters): New function; checks to see type
3390         signatures of method parameters are supported.
3391         (generate_client_glue): Handle ignore_unsupported flag.
3392         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3393         parameter.
3394
3395         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3396         --ignore-unsupported by default until glib bindings
3397         support arrays.
3398
3399 2005-03-11  Colin Walters  <walters@verbum.org>
3400
3401         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3402         install it.
3403
3404         * bus/print-introspect.c: New file; prints introspection
3405         data for a given name and object path.
3406
3407         * bus/run-with-tmp-session-bus.sh: New file, refactored
3408         from test/glib/run-test.sh.  Creates a temporary session
3409         bus and runs another program.
3410
3411         * test/glib/run-test.sh: Refactor to invoke
3412         run-with-tmp-session-bus.sh.
3413
3414         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3415         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3416         macros instead of hardcoding.
3417
3418         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3419
3420 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3421
3422         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3423         this unref; it doesn't match up evenly in some codepaths.
3424         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3425         this evenly matches with the ref near the top of this function.
3426
3427 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3428
3429         * dbus/dbus-object-tree.c
3430         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3431         and we try to unregister a path that's not registered, still go
3432         through the process of unlocking and don't just return.
3433
3434 2005-03-09  Colin Walters  <walters@verbum.org>
3435
3436         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3437         to this are generated for client-side wrappers.  Invokes a
3438         D-BUS method and returns reply values.  
3439
3440         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3441         function; writes signature string for argument direction.
3442         (write_args_for_direction): Change to pass input values directly
3443         instead of via address, and fix indentation.
3444         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3445         make generated wrappers inlineable.
3446
3447         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3448         note about using dbus_type_is_fixed.
3449
3450         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3451         dbus/dbus-signature.c as dbus_type_is_fixed.
3452
3453         All callers updated.
3454
3455         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3456         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3457
3458         * dbus/dbus-signature.h: Prototype.
3459
3460         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3461         error printf code.
3462
3463         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3464         appropriate instead of just freeing it.
3465         (main): Free returned strings using g_free.
3466
3467         * test/glib/Makefile.am (test-service-glib-glue.h)
3468         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3469
3470         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3471         simply maps a simple D-BUS type to GType.
3472         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3473         GType.
3474         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3475         initialize the value with it.
3476         (dbus_gvalue_binding_type_from_type): Unused, delete.
3477         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3478         various types instead of unmarshalling to value data directly.
3479         Remove can_convert boolean.
3480         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3481         returning directly instead of using can_convert boolean.
3482         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3483         Stores a GValue in a pointer to a value of its corresponding C
3484         type.
3485
3486         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3487         add dbus_gvalue_store.
3488
3489 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3490
3491         Fix a bunch of lifecycle and memory management problems
3492         in the mono bindings.
3493
3494         * mono/Arguments.cs (Arguments): Implement IDisposable
3495
3496         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3497         strictly a static class.
3498
3499         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3500         delegates into this file.
3501         (Connection): Implement IDisposable.
3502         (Dispose): Disconnect the connection and set the raw connection
3503         pointer to IntPtr.Zero.
3504         (~Connection): Call Dispose().
3505         (RegisterObjectPath): Added.  Manages the registration of object
3506         paths so we can cleanly disconnect them at dispose/finalize time.
3507         (UnregisterObjectPath): Ditto.
3508         (set_RawConnection): Unregister all of the object paths when
3509         changing the underlying DBusConnection.  Add them back onto the
3510         new connection, if any.
3511
3512         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3513         more unmanaged resources anymore, so it's not necessary.  Move all
3514         the DBusObjectPathVTable stuff out of here.
3515         (Handler): Save references to our delegates so that they don't get
3516         finalized.  Call Connection.RegisterObjectPath() instead of
3517         dbus_connection_register_object_path() directly.
3518         (Message_Called): Dispose the message after we're finished with
3519         it.
3520
3521         * mono/Message.cs (Message): Implement IDisposable.
3522         (Dispose): Dispose the Arguments, and set the RawMessage to
3523         IntPtr.Zero.
3524         (SendWithReplyAndBlock): We own the ref to the reply that comes
3525         back from dbus_connection_send_with_reply_and_block() so add a
3526         comment about that and unref it after we've constructed a managed
3527         MethodReturn class around it.  Fixes a big, big leak.
3528
3529         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3530         method.
3531         (BuildSignalHandler): After we've sent the Signal message, dispose
3532         of it.
3533         (BuildMethod): Dispose of the method call and reply messages after
3534         we've sent the message and extracted the data we want from the
3535         reply.
3536
3537         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3538         anymore.
3539         (Service_FilterCalled): Dispose of the message after we're
3540         finished with it.
3541
3542 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3543
3544         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3545         After we attach our pending call to the connection, unref
3546         it.  Fixes a leak.
3547  
3548         * mono/Connection.cs (set_RawConnection): Disconnect our
3549         filter and match callbacks from the old connection and
3550         reconnect them to the new connection, if any.
3551
3552         * mono/DBusType/Array.cs: "Code" is a static member, so
3553         don't use "this" to refer to it.  Fix for stricter checking
3554         in Mono 1.1.4.
3555  
3556         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3557         object path that we pass into unmanaged code.
3558  
3559         * mono/DBusType/String.cs (Append): Don't leak the string
3560         that we pass into unmanged code.
3561
3562 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3563         * NEWS: Update for 0.31
3564
3565         * configure.in: Release 0.31
3566         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3567
3568         * qt/Makefile.am: fixed build
3569
3570         * dbus/Makefile.am: soname bump for libdbus
3571
3572         * glib/Makefile.am: soname bump for libdbus-glib
3573
3574 2005-03-05  Havoc Pennington  <hp@redhat.com>
3575
3576         * dbus/dbus-sysdeps.c:
3577         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3578         value
3579         (_dbus_generate_random_bytes_buffer): fix return value
3580
3581         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3582         checks actually work, from Tom Parker <fdo@tevp.net>
3583
3584 2005-03-01  Colin Walters  <walters@verbum.org>
3585
3586         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3587         functions copied from dbus-glib-tool.c.
3588         (main): Convert lots of error code to use them.
3589         Also add some testing for introspection bits.
3590
3591 2005-03-01  Colin Walters  <walters@verbum.org>
3592         
3593         * doc/TODO: Remove introspection signature TODO.
3594
3595 2005-02-27  Colin Walters  <walters@verbum.org>
3596
3597         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3598         Change return value to const char * instead of int so we can do
3599         full signatures.
3600         (struct PropertyInfo, struct ArgInfo): Store char *.
3601         (property_info_new, arg_info_new): Update parameters, strdup.
3602         (property_info_unref, arg_info_unref): Free.
3603
3604         * glib/dbus-gidl.h: Update prototypes.
3605
3606         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3607         (validate_signature): New function, just validates signature and
3608         sets GError.
3609         (parse_property, parse_arg): Invoke validate_signature.  Store
3610         signature instead of just type code.
3611
3612         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3613         function to return a primary type for a signature, dropping
3614         information about types in container types.
3615         (dbus_gvalue_genmarshal_name_from_type)
3616         (dbus_gvalue_binding_type_from_type)
3617         (dbus_gvalue_ctype_from_type): Update to take full signature
3618          instead of type code.
3619         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3620
3621         * glib/dbus-gvalue.h: Update prototypes for above.
3622
3623         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3624         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3625         (introspect_properties, introspect_signals, write_interface):
3626         Update to handle signatures, and remove usage of
3627         _dbus_gutils_type_to_string.
3628         (handle_introspect): Print out type codes instead of e.g. "string"
3629         in hardcoded introspection XML; also use x_AS_STRING constants
3630         instead of hardcoding in string.
3631
3632         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3633         to string.  Remove usage of _dbus_gutils_type_to_string.
3634
3635         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3636
3637         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3638         deletion.
3639         
3640         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3641         (compute_marshaller_name, generate_glue): Handle signature change
3642         to string.
3643         (write_formal_parameters, write_args_for_direction): Ditto, and
3644         remove FIXME.
3645
3646         * tools/dbus-tree-view.c (type_to_string): Delete.
3647         (info_set_func_text): Update to print full signatures.
3648
3649         * test/glib/test-service-glib.xml: Change types to new
3650         introspection format.
3651
3652 2005-02-26  Havoc Pennington  <hp@redhat.com>
3653
3654         * doc/TODO: remove the "guid" item
3655
3656         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3657         (with_bus_thread_func): use open_private
3658
3659         * dbus/dbus-connection.c (dbus_connection_open_private): new
3660         function that works like the old dbus_connection_open()
3661         (dbus_connection_open): now returns an existing connection if
3662         possible
3663
3664         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3665         through the GUID to the transport
3666
3667         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3668         GUID in hex-encoded form.
3669
3670         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3671         pass GUID argument in to the transport
3672
3673         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3674         guid argument
3675
3676         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3677
3678         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3679
3680 2005-02-25  Havoc Pennington  <hp@redhat.com>
3681
3682         * doc/dbus-specification.xml: document the GUID thing
3683
3684         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3685         globally unique ID for the server, and put a "guid=hexencoded"
3686         field in the address
3687
3688         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3689
3690         * dbus/dbus-message.c: ditto
3691
3692         * dbus/dbus-dataslot.c: ditto
3693
3694         * dbus/dbus-list.c: ditto
3695
3696         * dbus/dbus-internals.h: wait, just include
3697         dbus-threads-internal.h here
3698         
3699         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3700         use in main library
3701
3702         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3703
3704 2005-02-24  Colin Walters  <walters@verbum.org>
3705
3706         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3707
3708 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3709
3710         * glib/Makefile.am: added dbus-gobject.h to sources list
3711         so distcheck doesn't fail
3712         
3713 2005-02-24  Havoc Pennington  <hp@redhat.com>
3714
3715         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3716         you must disconnect before unref, since locking and other things
3717         are screwed up otherwise. Fix assorted other locking stuff.
3718
3719         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3720         fix compilation
3721
3722         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3723         into a private header and don't export from the library
3724
3725         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3726
3727 2005-02-24  Colin Walters  <walters@verbum.org>
3728         
3729         * dbus/dbus-signature.c: New file; implements various functions
3730         related to type signatures.  Includes an interator for parsing,
3731         validation functions.
3732         (dbus_type_is_basic): Moved here from
3733         dbus-marshal-basic.c:_dbus_type_is_basic.
3734         (dbus_type_is_container): Moved here from
3735         dbus-marshal-basic.c:_dbus_type_is_container.
3736
3737         All callers of _dbus_type_is_container and _dbus_type_is_basic
3738         updated, and include dbus-signature.h.
3739
3740         * dbus/dbus-signature.h: New file; prototypes for the above.
3741
3742         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3743         dbus-signature.h.
3744
3745         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3746         function factored out of _dbus_first_type_in_signature.
3747         (_dbus_first_type_in_signature_c_str): New function; returns first
3748         type code for a type signature character.
3749
3750         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3751         handle function moves.
3752
3753         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3754
3755         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3756         function; skips to next complete type in type signature.
3757         Implemented using previous skip_one_complete_type.  Now
3758         skip_one_complete_type just delegates to
3759         _dbus_type_signature_next.
3760
3761         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3762         to dbus-signature.c
3763         (_dbus_type_is_container): Ditto.
3764
3765         * doc/dbus-specification.xml: Update introspection sample to
3766         use real type signatures.
3767
3768         * dbus/dbus-test.h: Prototype signature test.
3769
3770         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3771         signature tests.
3772
3773         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3774
3775 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
3776
3777         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3778         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3779
3780 2005-02-21  Colin Walters  <walters@verbum.org>
3781
3782         * dbus/dbus-test-main.c (main): Take optional specific test
3783         argument.
3784
3785         * dbus/dbus-test.c (run_test): New function, runs a test function
3786         with no data directory.
3787         (run_data_test): Like above, but takes data directory.
3788         (dbus_internal_do_not_use_run_tests): Take
3789         specific test argument.  Replace lots of cut n' paste code
3790         with run_test and run_data_test.
3791
3792         * dbus/dbus-test.h: Update prototype for
3793         dbus_internal_do_not_use_run_tests.
3794
3795 2005-02-20  Havoc Pennington  <hp@redhat.com>
3796
3797         Fix bugs reported by Daniel P. Berrange
3798         
3799         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3800         (protected_change_watch): new function
3801         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3802         (_dbus_server_add_watch): change to work like the
3803         dbus-connection.c equivalents; like those, probably kind of
3804         busted, but should at least mostly work for now
3805         (dbus_server_disconnect): drop the lock if we were already
3806         disconnected, patch from Daniel P. Berrange
3807
3808         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
3809         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3810         same stuff
3811
3812         * doc/TODO: todo about unscrewing this mess
3813
3814 2005-02-19  Colin Walters  <walters@verbum.org>
3815
3816         * glib/dbus-binding-tool-glib.c
3817         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3818
3819         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3820         as errno.h and sys/stat.h.
3821         (lose): New function, prints error with
3822         newline and exits.
3823         (lose_gerror): Similar, but takes GError for message.
3824         (main): Add --output argument to specify output file to write to,
3825         instead of always printing to stdout.  In this mode, determine
3826         timestamps on source files to see whether any are newer than the
3827         target file.  If not, exit.  Also convert a number of error
3828         messages to use lose (since it's shorter), and switch to using
3829         g_io_channel_shutdown.
3830
3831 2005-02-19  Havoc Pennington  <hp@redhat.com>
3832
3833         * glib/dbus-gobject.c
3834         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3835
3836         * glib/dbus-glib.c: fix doxygen warnings
3837
3838         * glib/dbus-gparser.c (parse_annotation): error if an annotation
3839         is found on an <arg>
3840
3841 2005-02-17  Colin Walters  <walters@verbum.org>
3842
3843         * glib/dbus-gobject.h: Don't export
3844         _dbus_glib_marshal_dbus_message_to_gvalue_array.
3845         
3846         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3847         (invoke_object_method): Handle it.
3848
3849         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3850         Handle rename.
3851         
3852 2005-02-17  Colin Walters  <walters@verbum.org>
3853
3854         * bus/.cvsignore, doc/.cvsignore
3855         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3856         Update.
3857
3858 2005-02-17  Colin Walters  <walters@verbum.org>
3859         
3860         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3861         Rename to DBUS_SERVICE_DBUS.
3862         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3863         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3864         Change the value from "org.freedesktop.Local"
3865         to "org.freedesktop.DBus.Local".
3866         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3867         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3868         DBUS_INTERFACE_INTROSPECTABLE.
3869         Change the value from "org.freedesktop.Introspectable"
3870         to "org.freedesktop.DBus.Introspectable".
3871         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3872         DBUS_INTERFACE_PROPERTIES.
3873         Change the value from "org.freedesktop.Properties"
3874         to "org.freedesktop.DBus.Properties".
3875         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3876         DBUS_INTERFACE_PEER.
3877         Change the value from "org.freedesktop.Peer"
3878         to "org.freedesktop.DBus.Peer".
3879         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
3880         DBUS_INTERFACE_LOCAL.
3881         Change the value from "org.freedesktop.Local"
3882         to "org.freedesktop.DBus.Local".
3883
3884         All other users of those constants have been changed.
3885
3886         * bus/driver.c (bus_driver_handle_introspect): Use constants.
3887
3888         * glib/dbus-gobject.c (handle_introspect): Use constants.
3889
3890         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3891
3892 2005-02-17  Colin Walters  <walters@verbum.org>
3893
3894         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3895         (parse_node, parse_interface, parse_method, parse_signal)
3896         (parse_property, parse_annotation): Lose if we're currently in an
3897         annotation.
3898         (parse_annotation): New function.
3899         (parser_start_element, parser_end_element): Handle annotation.
3900         (parse_method, parse_interface): Remove support for c_name attribute,
3901         switch to annotations.
3902
3903         * glib/dbus-gidl.h (interface_info_get_binding_names)
3904         (method_info_get_binding_names)
3905         (interface_info_get_binding_name, method_info_get_binding_name)
3906         (interface_info_set_binding_name, method_info_set_binding_name):
3907         Remove.
3908         (interface_info_get_annotations, method_info_get_annotations)
3909         (interface_info_get_annotation, method_info_get_annotation)
3910         (interface_info_add_annotation, method_info_add_annotation):
3911         Prototype.
3912
3913         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3914         for "bindings".
3915         (struct MethodInfo): Ditto.
3916         Straightfoward conversion of binding methods into annotation methods
3917         as prototyped.
3918
3919         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3920
3921         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3922
3923         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3924         Use new annotation API.
3925
3926         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
3927         annotation element.
3928         
3929         * doc/dbus-specification.xml: Discuss introspection annotations,
3930         include list of well-known annotations.
3931
3932         * test/glib/test-service-glib.xml: Make validate against new DTD.
3933
3934 2005-02-17  Colin Walters  <walters@verbum.org>
3935
3936         This patch is based on initial work from
3937         Paul Kuliniewicz <kuliniew@purdue.edu>.
3938
3939         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3940         initialization of GValue from dbus type to here.
3941         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3942         for the "glib-genmarshal" program from a DBus type.
3943         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3944         into the C name for it we use in the glib bindings.
3945         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3946         glib C type (not GValue).
3947         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3948
3949         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3950         from dbus-gobject.c.
3951
3952         * glib/dbus-gutils.h: Prototype it.
3953
3954         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3955         (marshal_dbus_message_to_g_marshaller): Use new shared function
3956         dbus_glib_marshal_dbus_message_to_gvalue_array.
3957
3958         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3959         Will be changed once we have annotations.
3960
3961         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3962         GStaticRWLock.  Callers updated.
3963         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
3964         (string_table_next): New function for iterating over zero-terminated
3965         string value array.
3966         (string_table_lookup): New function; retrieves specific entry in
3967         array.
3968         (get_method_data): New function; look up method data in object data chunk.
3969         (object_error_domain_prefix_from_object_info)
3970         (object_error_code_from_object_info): New functions, but not implemented yet.
3971         (method_interface_from_object_info): New function; retrieve interface name.
3972         (method_name_from_object_info): New function; retrieve method name.
3973         (method_arg_info_from_object_info): New function; retrieve argument data.
3974         (arg_iterate): New function; iterates over serialized argument data.
3975         (method_dir_signature_from_object_info): New function; returns a
3976         GString holding type signature for arguments for just one
3977         direction (input or output).
3978         (method_input_signature_from_object_info)
3979         (method_output_signature_from_object_info): New functions.
3980         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3981         converts dbus message arguments into a GValue array.  Used for both
3982         signal handling and method invocation.
3983         (struct DBusGlibWriteIterfaceData): New utility structure.
3984         (write_interface): New function; generate introspection XML for
3985         an interface.
3986         (introspect_interfaces): New function; gathers all interface->methods,
3987         generates introspection XML for them.
3988         (handle_introspect): Invoke introspect_interfaces.
3989         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3990         (lookup_object_and_method): New function; examines an incoming message
3991         and attempts to match it up (via interface, method name, and argument
3992         signature) with a known object and method.
3993         (gerror_domaincode_to_dbus_error_name): New function; converts a
3994         GError domain and code into a DBus error name.  Needs GError data
3995         added to object introspection to work well.
3996         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3997         GError.
3998         (invoke_object_method): New function to invoke an object method
3999         looked up via lookup_object_and_method.  Parses the incoming
4000         message, turns it into a GValue array, then invokes the marshaller
4001         specified in the DBusGMethodInfo.  Creates a new message with
4002         either return values or error message as appropriate.
4003         (gobject_message_function): Invoke lookup_object_and_method and
4004         invoke_object_method.
4005
4006         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4007         (enum DBusBindingOutputMode): New enum for binding output modes.
4008         (pretty_print): Print binding names.
4009         (dbus_binding_tool_error_quark): GError bits.
4010         (version): Fix typo.
4011         (main): Create GIOChannel for output.  Parse new --mode argument,
4012         possible values are "pretty-print", "glib-server", "glib-client".
4013         Use mode to invoke appropriate function.
4014         
4015         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4016
4017         * glib/dbus-glib-tool.h: New header, just includes GError bits
4018         for now.
4019
4020         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4021         maps binding style to name.
4022         (struct MethodInfo): Ditto.
4023         (get_hash_keys, get_hash_key): Utility function, returns keys for
4024         a GHashTable.
4025         (interface_info_new, method_info_new): Initialize bindings.
4026         (interface_info_unref, method_info_unref): Destroy bindings.
4027         (method_info_get_binding_names, method_info_get_binding_name)
4028         (interface_info_get_binding_names, interface_info_get_binding_name):
4029         Functions for retrieving binding names.
4030         (method_info_set_binding_name, interface_info_set_binding_name):
4031         Functions for setting binding names.
4032
4033         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4034         for glib binding generation.
4035
4036         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4037         and client-side glib glue generation.
4038
4039         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4040         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4041         dbus-glib-tool.h.
4042
4043         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4044         of using GClosureMarshal directly.
4045         (struct DBusGObjectInfo): Add n_infos member.
4046
4047         * test/glib/test-service-glib.xml: New file; contains introspection data
4048         for MyTestObject used in test-service-glib.c.
4049
4050         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4051         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4052         (my_object_uppercase, my_object_many_args): New test methods.
4053         (main): Use dbus_g_object_class_install_info to include generated object
4054         info.
4055
4056         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4057         as well as client-side bindings.
4058
4059         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4060         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4061         using both the dbus_gproxy stuff directly as well as the generated bindings.
4062
4063 2005-02-15  Havoc Pennington  <hp@redhat.com>
4064
4065         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4066         complete a pending call, don't run filters first.
4067
4068         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4069         dbus_pending_call_steal_reply
4070
4071         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4072         _dbus_connection_block_pending_call
4073         (dbus_pending_call_get_reply): change to steal_reply and return a
4074         ref
4075
4076         * dbus/dbus-connection.c
4077         (dbus_connection_send_with_reply_and_block): port to work in terms
4078         of DBusPendingCall
4079         (_dbus_connection_block_pending_call): replace block_for_reply
4080         with this
4081
4082 2005-02-14  Havoc Pennington  <hp@redhat.com>
4083
4084         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4085         properly handle looking up group information by name; fix 
4086         from j@bootlab.org
4087
4088 2005-02-13  Havoc Pennington  <hp@redhat.com>
4089
4090         * dbus/dbus-connection.c (dbus_connection_return_message) 
4091         (dbus_connection_borrow_message): hold dispatch lock while message
4092         is outstanding
4093         (_dbus_connection_block_for_reply): hold dispatch lock while we
4094         block for the reply, so nobody steals our reply
4095         (dbus_connection_pop_message): hold the dispatch lock while we
4096         pluck the message
4097
4098 2005-02-13  Havoc Pennington  <hp@redhat.com>
4099
4100         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4101         (_dbus_connection_release_dispatch)
4102         (_dbus_connection_acquire_io_path)
4103         (_dbus_connection_release_io_path): make the mutex and condvar
4104         control access to the "acquired" flag. Drop the connection lock
4105         while waiting on the condvar. Hopefully these are baby steps in
4106         roughly the right direction.
4107
4108 2005-02-13  Havoc Pennington  <hp@redhat.com>
4109
4110         * dbus/dbus-connection.c: use separate mutexes for the condition
4111         variables; this is some kind of baseline for sanity, but the
4112         condition variables still aren't used correctly afaict
4113
4114 2005-02-13  Havoc Pennington  <hp@redhat.com>
4115
4116         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4117         fix a double-unlock
4118
4119         * dbus/dbus-connection.c
4120         (_dbus_connection_detach_pending_call_unlocked): add this
4121
4122         Initial semi-correct pass through to fix thread locking; there are
4123         still some issues with the condition variable paths I'm pretty
4124         sure
4125         
4126         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4127         lock/unlock calls
4128
4129         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4130         rename to add _unlocked
4131         (struct DBusConnection): move "dispatch_acquired" and
4132         "io_path_acquired" to use only one bit each.
4133         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4134         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4135         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4136         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4137         (_dbus_connection_remove_timeout) 
4138         (_dbus_connection_toggle_timeout): drop lock when calling out to
4139         user functions; done in a hacky/bad way.
4140         (_dbus_connection_send_and_unlock): add a missing unlock
4141         (_dbus_connection_block_for_reply): add a missing unlock
4142
4143         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4144         drop lock in a hacky probably unsafe way to call out to user
4145         function
4146
4147 2005-02-12  Havoc Pennington  <hp@redhat.com>
4148
4149         * tools/dbus-tree-view.c (info_set_func_text): display more
4150         details on args
4151
4152         * bus/driver.c (bus_driver_handle_list_services): list the bus
4153         driver
4154
4155         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4156
4157         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4158         (method_info_get_n_args): new function
4159
4160 2005-02-12  Havoc Pennington  <hp@redhat.com>
4161
4162         * bus/driver.c (bus_driver_handle_introspect): add introspection
4163         for bus driver
4164
4165 2005-02-12  Havoc Pennington  <hp@redhat.com>
4166
4167         * bus/driver.c: put the signature of each bus driver method in the
4168         table of handlers and check it on incoming calls; this isn't
4169         really useful, but going to add introspect support in a minute.
4170
4171 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4172
4173         * mono/Connection.cs: The unpredictability of finalizers in mono
4174         prevents us from deterministically disconnecting the filters from
4175         the Service class's finalizer, so move tracking of filters and
4176         matches here.  Add API for that.
4177
4178         * mono/Service.cs: Remove the code, add code which calls the
4179         methods now on the Connection class.
4180
4181 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4182
4183         * python/dbus.py (class Sender): added to support dbus signals better
4184         (Bus::add_signal_receiver): added expand_args parameter which defaults
4185         to True.  When expand args is True the signal handler will pass the 
4186         message arguments as parameters to the signal handler.  If False
4187         revert to previous behavior where the signal handler must get the
4188         argument list from the message.  This is to help port applications
4189         like HAL that have a tendancy to send variable length argument lists.
4190         self._match_rule_to_receivers is now a dict of dicts.
4191         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4192         removing it from a list
4193         (Bus::_signal_func): change signal handlers so that interface,
4194         signal_name, service, path and message are packed into a Sender
4195         object and that is passed to the handler.  If expand_args is True
4196         extract the args list from the message and append it to the parameter
4197         list
4198         
4199         * python/dbus_bindings.pyx.in (class Signature): added to support 
4200         signiature types
4201         (MessageIter::__init__): changed iteration limit to match D-BUS
4202         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4203         STRUCT and VARIENT type support
4204         (MessageIter::python_value_to_dbus_sig): made recursive to support
4205         recursive types
4206         (MessageIter::append*): added Signature, dict, tuple 
4207         support
4208
4209         * python/examples/example-client.py: added examples of getting tuples
4210         and dicts
4211
4212         * python/examples/example-service.py: added examples of sending tuples
4213         and dicts
4214
4215         * python/examples/example-signal-recipient.py: Fixed to handle new
4216         signal callback format
4217
4218 2005-02-10  Havoc Pennington  <hp@redhat.com>
4219
4220         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4221         (call dbus_g_proxy_add_signal)
4222
4223         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4224         escape the hostname
4225         (_dbus_server_new_for_domain_socket): escape the path
4226
4227         * dbus/dbus-address.c (dbus_address_escape_value): new
4228         (dbus_address_unescape_value): new
4229         (dbus_parse_address): unescape values
4230
4231         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4232
4233         * doc/dbus-specification.xml: explain how to escape values in
4234         addresses
4235
4236 2005-02-10  Havoc Pennington  <hp@redhat.com>
4237
4238         * dbus/dbus-message-factory.c (generate_special): modify test to
4239         avoid using a non-basic dict key
4240
4241         * dbus/dbus-marshal-validate-util.c: add test for the below
4242
4243         * doc/dbus-specification.xml: require that dict keys are a basic
4244         type
4245
4246         * dbus/dbus-marshal-validate.c
4247         (_dbus_validate_signature_with_reason): require that dict key is a
4248         basic type
4249
4250 2005-02-10  Havoc Pennington  <hp@redhat.com>
4251
4252         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4253         change to be _and_unlock instead of _unlocked
4254
4255         * dbus/dbus-connection.c
4256         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4257         have no_update so we can find this bug quickly in future
4258
4259 2005-02-10  Havoc Pennington  <hp@redhat.com>
4260
4261         * dbus/dbus-message-util.c (verify_test_message): tests for string
4262         array
4263
4264         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4265         support for arrays of string/signature/path
4266
4267 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4268
4269         * dbus/dbus-connection.c
4270         (_dbus_connection_queue_received_message_link,
4271         _dbus_connection_message_sent): Add the path to
4272         the verbose output.
4273         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4274         _dbus_connection_send_preallocated_unlocked(), updated the
4275         dispatch status, and unlocks.  Fixes a bug where certain
4276         situations (like a broken pipe) could cause a Disconnect message
4277         to not be sent, tricking the bus into thinking a service was still
4278         there when the process had quit.
4279         (_dbus_connection_send_preallocated): Call
4280         _dbus_connection_send_preallocated_and_unlock().
4281         (_dbus_connection_send_and_unlock): Added.  Calls
4282         _dbus_connection_send_preallocated_and_unlock().
4283         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4284         (dbus_connection_send_with_reply): Update the dispatch status and
4285         unlock.
4286
4287         * mono/Service.cs (~Service): Added.  Removes the filter so that
4288         we don't get unmanaged code calling back into a GCed delegate.
4289         (RemoveFilter); Added.
4290
4291 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4292
4293         * dbus/dbus-message.c (dbus_message_iter_open_container):
4294         - Removed check for iterator type being an array because
4295         get_arg_type does not work with writer iterators
4296         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4297
4298 2005-02-07  Havoc Pennington  <hp@redhat.com>
4299
4300         * doc/dbus-specification.xml: some more language cleanups; add
4301         stuff about how to deal with invalid protocol and extension
4302         points; add _ to allowed chars in auth commands; add EXTENSION_
4303         auth command prefix
4304
4305 2005-02-06  Havoc Pennington  <hp@redhat.com>
4306
4307         * s/expected/required/ in a couple places for clarity
4308
4309 2005-02-07  Colin Walters  <walters@verbum.org>
4310
4311         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4312         sender or proposed_recipient.
4313
4314 2005-02-06  Havoc Pennington  <hp@redhat.com>
4315
4316         * dbus/dbus-message-factory.c (generate_special): more tests
4317
4318         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4319         array length that exceeds the maximum
4320
4321 2005-02-05  Havoc Pennington  <hp@redhat.com>
4322
4323         * dbus/dbus-message-factory.c (generate_special): more test cases,
4324         increasing coverage
4325
4326         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4327         reason why a signature was invalid
4328
4329         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4330         skip the length of the string before we look at it in validation
4331
4332         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4333         equal_substring
4334
4335         * dbus/dbus-message.c (_dbus_message_loader_new): default
4336         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4337
4338 2005-02-05  Havoc Pennington  <hp@redhat.com>
4339
4340         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4341         if the signature of a variant was empty
4342         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4343         struct with no element type)
4344
4345         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4346         mangled messages to break things
4347
4348 2005-02-04  Havoc Pennington  <hp@redhat.com>
4349
4350         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4351         g_quark_try_string() so it actually can return 0
4352         (dbus_g_proxy_connect_signal): ditto
4353
4354 2005-02-04  Havoc Pennington  <hp@redhat.com>
4355
4356         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4357         bogus warning
4358         (tristring_from_message): assert cleanly on null path/interface
4359         (should not be possible though I decided later)
4360         (dbus_g_proxy_dispose): move proxy manager unregistration here
4361         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4362         g_return_if_fail() checks
4363
4364 2005-02-04  Havoc Pennington  <hp@redhat.com>
4365
4366         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4367
4368         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4369         (with some minor changes)
4370
4371         * doc/dbus-specification.xml: add deprecated attribute to
4372         introspection format
4373
4374 2005-01-31  Havoc Pennington  <hp@redhat.com>
4375
4376         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4377         think it's sort of right
4378
4379 2005-01-30  Havoc Pennington  <hp@redhat.com>
4380
4381         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4382
4383 2005-01-30  Havoc Pennington  <hp@redhat.com>
4384
4385         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4386
4387         * autogen.sh: change to autotools 1.9
4388
4389         * glib/dbus-gproxy.c: completely change how signals work
4390         (dbus_g_proxy_add_signal): new function to specify signature of a
4391         signal
4392         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4393         and g_warning if the incoming message has the wrong signature.
4394
4395 2005-01-30  Havoc Pennington  <hp@redhat.com>
4396
4397         * tools/dbus-names-model.c (have_names_notify): fix this
4398
4399         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4400         up the string array handling a bit 
4401
4402 2005-01-30  Havoc Pennington  <hp@redhat.com>
4403
4404         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4405         (dbus_g_pending_call_cancel): new function
4406
4407         * dbus/dbus-glib.h: move GType decls for connection/message here;
4408         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4409         here, just kind of rationalizing how we handle all that
4410
4411         * tools/dbus-names-model.c: new file for a tree model listing the
4412         services on a bus
4413
4414         * tools/dbus-tree-view.c (model_new): use proper typing on the
4415         model rows
4416
4417 2005-01-30  Havoc Pennington  <hp@redhat.com>
4418
4419         * glib/dbus-gmain.c: add a custom GSource back that just checks
4420         whether the message queue has anything in it; otherwise, there are 
4421         cases where we won't see messages in the queue since there was no 
4422         IO visible to the glib main loop
4423
4424         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4425         increase default message timeout to 25 seconds
4426
4427 2005-01-30  Havoc Pennington  <hp@redhat.com>
4428
4429         * test/glib/test-profile.c (no_bus_stop_server): remove the
4430         warning about the g_warning that I just fixed
4431
4432         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4433         custom source, seems to be a lot easier to understand and work
4434         better.
4435
4436 2005-01-30  Havoc Pennington  <hp@redhat.com>
4437
4438         I think this main loop thing is conceptually broken, but here are 
4439         some band aids. I'll maybe rewrite it in a minute.
4440         
4441         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4442         custom GSource, so don't pass it in; confusing
4443         (gsource_server_finalize, gsource_connection_finalize): add
4444         finalize handlers that remove all the watches.  
4445
4446 2005-01-30  Havoc Pennington  <hp@redhat.com>
4447
4448         * glib/dbus-gobject.c (introspect_properties): fix the XML
4449         generated
4450
4451         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4452         which effectively detects the use of freed messages
4453
4454         * glib/dbus-gobject.c (handle_introspect): modify and return the
4455         reply message instead of the incoming message
4456
4457         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4458         gee, maybe it should SEND THE XML instead of just making a string
4459         and freeing it again ;-)
4460
4461         * tools/dbus-print-message.c (print_message): improve printing of
4462         messages
4463
4464         * configure.in: add debug-glib.service to the output
4465
4466 2005-01-30  Havoc Pennington  <hp@redhat.com>
4467
4468         dbus-viewer introspected and displayed the bus driver
4469         
4470         * dbus/dbus-object-tree.c 
4471         (object_tree_test_iteration): add tests for a handler registered on "/"
4472
4473         * dbus/dbus-object-tree.c
4474         (_dbus_decompose_path): fix to handle path "/" properly
4475         (run_decompose_tests): add tests for path decomposition
4476         
4477         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4478         properly
4479
4480         * glib/dbus-gobject.c (handle_introspect): fix quotes
4481
4482         * test/glib/run-test.sh: support launching the bus, then running
4483         dbus-viewer
4484
4485         * test/glib/test-service-glib.c (main): put in a trivial gobject
4486         subclass and register it on the connection
4487
4488         * bus/driver.c (bus_driver_handle_introspect): implement
4489         introspection of the bus driver service
4490
4491         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4492         identifiers, doctype decl
4493
4494         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4495         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4496         returning the service unchanged.
4497         (bus_driver_handle_message): remove old check for reply_serial in
4498         method calls, now the message type deals with that
4499         (bus_driver_handle_message): handle NULL interface
4500
4501         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4502
4503         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4504         -1 for len
4505
4506         * tools/dbus-viewer.c: add support for introspecting a service on
4507         a bus
4508
4509         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4510         (dbus_g_pending_call_unref): add
4511
4512 2005-01-29  Havoc Pennington  <hp@redhat.com>
4513
4514         * tools/dbus-tree-view.c: add support for displaying properties.
4515         (run dbus-viewer with an introspect xml file as arg, then resize
4516         the window so the tree elements show up, not sure what that is)
4517
4518         * glib/dbus-gobject.c (handle_introspect): return
4519         org.freedesktop.Properties and org.freedesktop.Introspectable
4520         interfaces when we are introspected.
4521
4522         * doc/dbus-specification.xml: allow empty interface name when 
4523         Get/Set a property
4524
4525 2005-01-29  Havoc Pennington  <hp@redhat.com>
4526
4527         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4528         though it uses glib, it could be extended for any binding in
4529         principle
4530
4531         * glib/dbus-gobject.c (gobject_message_function): change to the
4532         new way properties work
4533
4534         * dbus/dbus-protocol.h: add the new interfaces
4535
4536         * doc/dbus-specification.xml: document the introspection format,
4537         Introspectable interface, and add an org.freedesktop.Properties
4538         interface.
4539
4540         * glib/dbus-gparser.c: add support for a <property> element
4541
4542         * glib/dbus-gidl.c: add PropertyInfo
4543
4544         * glib/dbus-gobject.c (handle_introspect): put the outermost
4545         <node> outside the signal and property descriptions.
4546         (introspect_properties): export properties as <property> rather
4547         than as method calls
4548
4549 2005-01-28  Havoc Pennington  <hp@redhat.com>
4550
4551         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4552         related to authentication protocol
4553
4554 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4555
4556         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4557                 - BUS_ACTIVATION -> BUS_STARTER
4558                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4559                 - class MessageIter (__init__): Added recursion checking 
4560                 so we throw a nice error instead of just disconnecting from the
4561                 bus.
4562                 (get): Added arg_type parameter for recursion.
4563                 Removed the nil type
4564                 Added signiture type placeholder (not implemented)
4565                 Added struct type placeholder (not implemented)
4566                 Added varient type placeholder (not implemented)
4567                 Commented out dict type for now     
4568                 (get_element_type): renamed from get_array_type
4569                 (get_*): changed to use the dbus_message_iter_get_basic API
4570                 (get_*_array): removed in favor of recursive get_array method
4571                 (get_array): new recursive method which calls get to marshal
4572                 the elements of the array
4573                 (value_to_dbus_sig): New method returns the corrasponding
4574                 dbus signiture to a python value
4575                 (append): Comment out dict handling for now
4576                 Handle lists with the new recursive API
4577                 Comment out None handling for now
4578                 (append_nil): removed
4579                 (append_*): changed to use dbus_message_iter_append_basic API
4580                 (append_*_array): removed in favor of recursive append_array 
4581                 method
4582                 (__str__): Make it easier to print out recursive iterators
4583                 for debugging
4584                 - class Message (__str__): moved type inspection to the
4585                 MessageIter class' __str__ method
4586                 (get_iter): Added an append parameter wich defaults to False
4587                 If True use the new API's to create an append iterator
4588
4589         * python/dbus.py: Update to use new bindings API
4590                 - TYPE_ACTIVATION -> TYPE_STARTER
4591                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4592                 - class ActivationBus -> class StarterBus
4593                 - class RemoteObject (__call__): get an append iterator
4594                 - (_dispatch_dbus_method_call): get an append iterator
4595                 - class Object (emit_signal): get an append iterator
4596
4597         * python/examples/: Fixed up the examples to work with the new API
4598                 
4599 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4600
4601         * configure.in: Bump version up to 0.30.
4602
4603         * HACKING: Add a release item to bump the version number up after 
4604         a release.
4605
4606 2005-01-28  Havoc Pennington  <hp@redhat.com>
4607
4608         * doc/dbus-specification.xml: update to describe 16-bit types and
4609         dict entries
4610
4611         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4612         assertion
4613
4614         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4615         type
4616
4617         * dbus/dbus-marshal-recursive.c: implement
4618
4619 2005-01-27  Havoc Pennington  <hp@redhat.com>
4620
4621         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4622
4623         * configure.in: find the right type for 16 and 32 bit ints as well
4624         as 64
4625
4626         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4627         the 16-bit types so people don't have to stuff them in 32-bit or
4628         byte arrays.
4629
4630 2005-01-27  Havoc Pennington  <hp@redhat.com>
4631
4632         * dbus/dbus-message.c: byteswap the message if you init an
4633         iterator to read/write from it
4634         
4635         * dbus/dbus-marshal-byteswap.c: new file implementing 
4636         _dbus_marshal_byteswap()
4637
4638         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4639
4640 2005-01-26  Havoc Pennington  <hp@redhat.com>
4641         
4642         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4643         build, apparently - nobody noticed?)
4644         
4645 2005-01-26  Havoc Pennington  <hp@redhat.com>
4646
4647         * dbus/dbus-marshal-recursive.h: remove todo comment
4648
4649 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4650
4651         * Land the mono binding changes to conform to the new APIs.
4652
4653         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4654         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4655
4656         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4657         type code as a string.
4658         (InitAppending): Rename dbus_message_append_iter_init() to
4659         dbus_message_iter_init_append().
4660
4661         * mono/BusDriver.cs: Rename ServiceEventHandler to
4662         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4663         Rename ServiceOwnerChanged to NameOwnerChanged.
4664
4665         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4666         underlying C call.
4667
4668         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4669
4670         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4671         dbus_bus_acquire_service() to dbus_bus_request_name().
4672
4673         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4674         of Type.UnderlyingSystemType to get the correct element type for
4675         the array.
4676         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4677         dbus_message_get_{element|arg}_type() instead of
4678         dbus_message_iter_init_array_iterator().
4679         (Append): Replace dbus_message_iter_append_array() with
4680         dbus_message_iter_open_container() and
4681         dbus_message_iter_close_container().
4682
4683         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4684         types have been removed.
4685         
4686         * mono/DBusType/*.cs: Replace calls of
4687         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4688         but specify the type in the DllImport extern declaration.  Ditto
4689         for dbus_message_iter_append_[type]() ->
4690         dbus_message_iter_append_basic().
4691
4692         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4693         NameOwnerChangedHandler.
4694
4695 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4696
4697         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4698                 - get_base_service -> get_unique_name
4699                 - bus_get_base_service -> bus_get_unique_name
4700                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4701                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4702                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4703                 - bus_activate_service -> bus_start_service_by_name
4704                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4705                 - bus_acquire_service -> bus_request_name
4706                 - dbus_bus_acquire_service -> dbus_bus_request_name
4707                 - bus_service_exists -> bus_name_has_owner
4708                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4709
4710         * python/dbus.py: Rename of methods
4711                 - activate_service -> start_service_by_name
4712                 - bus_acquire_service -> bus_request_name
4713                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4714                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4715
4716         
4717 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4718
4719         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4720         signature for the method that can't be found.
4721
4722         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4723         the message has any arguments, we need to call
4724         _dbus_type_reader_get_current_type(), not
4725         _dbus_type_reader_has_next().
4726
4727 2005-01-24  Havoc Pennington  <hp@redhat.com>
4728
4729         * dbus/dbus-message-factory.c: more testing of message validation
4730
4731         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4732         header
4733
4734 2005-01-23  Havoc Pennington  <hp@redhat.com>
4735
4736         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4737         get this all working, not many tests in the framework yet though
4738
4739 2005-01-22  Havoc Pennington  <hp@redhat.com>
4740
4741         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4742         tutorial, based on work from David Wheeler.
4743
4744 2005-01-21  Havoc Pennington  <hp@redhat.com>
4745
4746         * dbus/dbus-bus.c: add more return_if_fail checks
4747
4748         * dbus/dbus-message.c (load_message): have the "no validation"
4749         mode (have to edit the code to toggle the mode for now though)
4750
4751         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4752         skips all validation; I want to use this at least for benchmark
4753         baseline, I'm not sure if it should be a publicly-available switch.
4754
4755 2005-01-21  Havoc Pennington  <hp@redhat.com>
4756
4757         * glib/dbus-gmain.c: don't put the GLib bindings in the same
4758         toplevel doxygen group as the low-level API stuff
4759
4760         * dbus/dbus.h: note that libdbus is the low-level API
4761
4762 2005-01-20  Havoc Pennington  <hp@redhat.com>
4763
4764         * update-dbus-docs.sh: script to update docs on the web site, only
4765         works for me though. neener.
4766
4767 2005-01-20  Havoc Pennington  <hp@redhat.com>
4768
4769         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4770         code can reveal bugs in it
4771
4772 2005-01-20  Havoc Pennington  <hp@redhat.com>
4773
4774         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4775         select() version, patches from Tor Lillqvist
4776
4777 2005-01-20  Havoc Pennington  <hp@redhat.com>
4778
4779         * doc/dbus-tutorial.xml: replace > with &gt;
4780
4781         * bus/services.c (bus_registry_acquire_service): validate the name
4782         and return a better error if it's no good.
4783
4784         * doc/dbus-specification.xml: note NO_AUTO_START change
4785
4786         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4787         from AUTO_START, we're toggling the default
4788
4789         * bus/dispatch.c: adapt the tests to change of auto-start default
4790
4791 2005-01-18  Havoc Pennington  <hp@redhat.com>
4792
4793         * rename dbus-daemon-1 to dbus-daemon throughout
4794
4795 2005-01-18  Havoc Pennington  <hp@redhat.com>
4796
4797         * Throughout, grand renaming to strip out the use of "service",
4798         just say "name" instead (or "bus name" when ambiguous).  Did not
4799         change the internal code of the message bus itself, only the
4800         programmer-facing API and messages.
4801         
4802         * doc/dbus-specification.xml: further update the message bus section
4803         
4804         * bus/config-parser.c (all_are_equiv): fix bug using freed string
4805         in error case
4806
4807 2005-01-17  Havoc Pennington  <hp@redhat.com>
4808
4809         * dbus/dbus-types.h: remove 16-bit types since we don't use them
4810         ever
4811
4812         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4813         "invalid name character" not only non-ASCII
4814
4815         * doc/dbus-specification.xml: further update spec, message bus 
4816         parts are still out-of-date but the marshaling etc. stuff is now
4817         accurate-ish
4818
4819 2005-01-17  Havoc Pennington  <hp@redhat.com>
4820
4821         * doc/dbus-specification.xml: partially update spec
4822
4823 2005-01-17  Havoc Pennington  <hp@redhat.com>
4824
4825         * Throughout, align variant bodies according to the contained
4826         type, rather than always to 8. Should save a fair bit of space in
4827         message headers.
4828         
4829         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4830         fix handling of case where p == end
4831
4832         * doc/TODO: remove the dbus_bool_t item and variant alignment items
4833
4834 2005-01-17  Havoc Pennington  <hp@redhat.com>
4835
4836         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4837
4838         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4839         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
4840         are marshaling/unmarshaling a boolean.
4841
4842 2005-01-16  Havoc Pennington  <hp@redhat.com>
4843
4844         This is about it on what can be disabled/deleted from libdbus
4845         easily, back below 150K anyhow. Deeper cuts are more work than 
4846         just turning the code off as I've done here.
4847         
4848         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4849         signed int convenience funcs
4850
4851         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4852         verbose mode
4853
4854         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4855         things out of libdbus
4856
4857         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4858         
4859         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4860         tests-enabled-only, though it should probably be deleted)
4861
4862         * dbus/dbus-message-util.c: same stuff
4863
4864         * dbus/dbus-auth-util.c: same stuff
4865
4866 2005-01-16  Havoc Pennington  <hp@redhat.com>
4867
4868         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4869
4870         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4871         way for stripping down dbus-userdb.c stuff included in libdbus.
4872         Rename _dbus_parse_uid for consistency.
4873
4874 2005-01-16  Havoc Pennington  <hp@redhat.com>
4875
4876         * dbus/dbus-internals.c (_dbus_real_assert): print the function
4877         name the assertion failed in
4878
4879         * dbus/dbus-internals.h (_dbus_return_if_fail) 
4880         (_dbus_return_val_if_fail): assert that the name of the function
4881         containing the check doesn't start with '_', since we only want to 
4882         use checks on public functions
4883         
4884         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4885         checks to assertions
4886
4887         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4888         change checks to asserts for private function
4889
4890         * dbus/dbus-message.c (_dbus_message_set_serial): checks
4891         to asserts for private function
4892
4893         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4894         broken assertion that was breaking make check
4895         (_dbus_type_reader_array_is_empty): remove this rather than fix
4896         it, was only used in assertions
4897
4898 2005-01-16  Havoc Pennington  <hp@redhat.com>
4899
4900         * test/unused-code-gc.py: hacky script to find code that's used
4901         only by the bus (not libdbus) or used only by tests or not used at
4902         all. It has some false alarms, but looks like we can clean up a
4903         lot of size from libdbus.
4904
4905         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4906         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4907         
4908 2005-01-16  Havoc Pennington  <hp@redhat.com>
4909
4910         * Add and fix docs according to Doxygen warnings throughout
4911         source.
4912         
4913         * dbus/dbus-marshal-recursive.c
4914         (_dbus_type_reader_array_is_empty): change this to just call
4915         array_reader_get_array_len() and make it static
4916
4917         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4918         from get_array_type
4919         (dbus_message_iter_init_append): rename from append_iter_init
4920
4921         * dbus/dbus-marshal-recursive.c
4922         (_dbus_type_reader_get_element_type): rename from
4923         _dbus_type_reader_get_array_type
4924
4925 2005-01-15  Havoc Pennington  <hp@redhat.com>
4926
4927         * test/glib/test-profile.c (with_bus_server_filter): fix crash
4928
4929         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4930         when DBUS_DISABLE_ASSERT
4931         (_dbus_marshal_set_basic): be sure we align for the string length
4932
4933         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4934         this look faster
4935
4936         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4937         inline macro version
4938         (_dbus_string_set_byte): provide inline macro version
4939
4940 2005-01-15  Havoc Pennington  <hp@redhat.com>
4941
4942         * Land the new message args API and type system.
4943
4944         This patch is huge, but the public API change is not 
4945         really large. The set of D-BUS types has changed somewhat, 
4946         and the arg "getters" are more geared toward language bindings;
4947         they don't make a copy, etc.
4948
4949         There are also some known issues. See these emails for details
4950         on this huge patch:
4951         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4952         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4953         
4954         * dbus/dbus-marshal-*: all the new stuff
4955
4956         * dbus/dbus-message.c: basically rewritten
4957
4958         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4959         freed blocks to be all non-nul bytes so using freed memory is less
4960         likely to work right
4961
4962         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4963         DBUS_FAIL_MALLOC=N environment variable, so you can do
4964         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4965         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4966         thorough.
4967
4968         * qt/message.cpp: port to the new message args API
4969         (operator<<): use str.utf8() rather than str.unicode()
4970         (pretty sure this is right from the Qt docs?)
4971
4972         * glib/dbus-gvalue.c: port to the new message args API
4973
4974         * bus/dispatch.c, bus/driver.c: port to the new message args API
4975
4976         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4977         "locked" flag to TRUE and align_offset to 0; I guess we never
4978         looked at these anyhow, but seems cleaner.
4979
4980         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4981         move allocation padding macro to this header; use it to implement
4982         (_DBUS_STRING_STATIC): ability to declare a static string.
4983
4984         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4985         change to return TRUE if the interface is not set.
4986
4987         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4988         to dbus-marshal-validate.[hc]
4989
4990         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4991         dbus-internals.c
4992
4993         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4994         to dbus-marshal-*.[hc]
4995
4996         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4997         function here from dbus-marshal.c
4998
4999 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5000
5001         * NEWS: Update for 0.23.
5002
5003         * configure.in: Release 0.23.
5004
5005 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5006
5007         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5008         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5009         behind.
5010
5011         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5012         uninstall"
5013
5014         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5015         is an enum, get the enum's underlying type.  Another mono
5016         1.1.3 fix.
5017
5018 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5019
5020         Patch from Sjoerd Simons <sjoerd@luon.net>
5021
5022         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5023         DESTDIR.  It breaks stuff.
5024
5025 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5026
5027         Patch from Tambet Ingo <tambet@ximian.com>
5028
5029         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5030         calling type.GetElementType().  The code previously depended on
5031         broken Mono behavior, which was fixed in Mono 1.1.3.
5032
5033         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5034         Activator.CreateInstance() so that the class's constructor is
5035         called with the right parameters.
5036
5037 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5038
5039         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5040
5041         * dbus/dbus-connection.c
5042         (_dbus_connection_queue_received_message_link): Call
5043         _dbus_connection_remove_timeout() instead of the _locked()
5044         variant, since it's always called from
5045         _dbus_connection_handle_watch(), which handles the locking.
5046         Removed the _locked() variant since it's no longer used.
5047
5048 2005-01-03  Havoc Pennington  <hp@redhat.com>
5049
5050         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5051         return
5052         
5053 2004-12-26  Havoc Pennington  <hp@redhat.com>
5054
5055         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5056
5057 2005-01-03  Havoc Pennington  <hp@redhat.com>
5058
5059         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5060         floating point
5061
5062         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5063
5064 2005-01-02  Havoc Pennington  <hp@redhat.com>
5065
5066         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5067
5068 2005-01-01  Havoc Pennington  <hp@redhat.com>
5069
5070         * configure.in: add -Wfloat-equal
5071
5072 2005-01-01  Havoc Pennington  <hp@redhat.com>
5073
5074         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5075         for a variety of reasons '==' doesn't do this.
5076
5077 2004-12-31  Havoc Pennington  <hp@redhat.com>
5078
5079         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5080         I keep wishing I had
5081
5082 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5083
5084         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5085
5086 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5087
5088         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5089         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5090         dbus-protocol.h.  Because they are defines and not enums they are not
5091         autogenerated.
5092
5093 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5094
5095         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5096         dbus_bus_activate_service
5097
5098         * python/dbus.py (Bus.activate_service): activate a service on the
5099         bus.
5100
5101 2004-12-24  Havoc Pennington  <hp@redhat.com>
5102
5103         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5104         file format has also changed and I haven't adapted to that yet
5105         
5106         * Makefile.am: load .gcno files from latest gcc
5107
5108 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5109         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5110
5111         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5112         lowlevel binding
5113
5114         * python/dbus.py (get_unix_user): Added binding to 
5115         call dbus_bindings.bus_get_unix_user
5116
5117         * python/extract.py: Modified the proto_pat regex to
5118         handle unsigned long
5119
5120 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5121
5122         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5123         better POSIX compliance.
5124
5125 2004-12-19  Havoc Pennington  <hp@redhat.com>
5126
5127         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5128         (_dbus_string_insert_8_aligned): new functions
5129
5130         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5131
5132 2004-12-18  Havoc Pennington  <hp@redhat.com>
5133
5134         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5135         macro
5136
5137         * dbus/dbus-message.c: fix a comment, and add a still-unused
5138         not-implemented function
5139
5140         * dbus/dbus-marshal.h: fix comment
5141
5142         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5143
5144 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5145
5146         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5147         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5148         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5149         Type.UnderlyingSystemType to get the actual system type
5150         underneath.  This code previously depended on the broken Mono
5151         behavior, which was fixed in 1.1.3.
5152
5153 2004-11-27  Havoc Pennington  <hp@redhat.com>
5154
5155         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5156         are disabled
5157         (_dbus_string_get_const_data): inline when asserts are disabled
5158
5159         * dbus/dbus-message.c: record the _dbus_current_generation of
5160         creation so we can complain if dbus_shutdown() is used improperly.
5161         Do this only if checks are enabled.
5162
5163         * dbus/dbus-connection.c: ditto
5164         
5165 2004-11-26  Havoc Pennington  <hp@redhat.com>
5166
5167         * test/glib/test-profile.c: add with_bus mode to profile echoes
5168         that go through the bus.
5169
5170         * test/glib/run-test.sh: add ability to run test-profile
5171
5172         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5173         config file reload.
5174
5175 2004-11-26  Havoc Pennington  <hp@redhat.com>
5176
5177         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5178         thing was implemented
5179
5180 2004-11-26  Havoc Pennington  <hp@redhat.com>
5181
5182         * test/glib/test-profile.c: tweak a bit, add support for some
5183         made-up minimal malloc overhead with plain sockets, since in 
5184         real life some sort of buffers are unavoidable thus we could 
5185         count them in the theoretical best case
5186
5187 2004-11-26  Havoc Pennington  <hp@redhat.com>
5188
5189         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5190         where I was trying to cache one too many messages
5191
5192 2004-11-26  Havoc Pennington  <hp@redhat.com>
5193
5194         * dbus/dbus-message.c: reimplement message cache as an array which 
5195         makes the cache about twice as fast and saves maybe 1.5% overall
5196
5197 2004-11-26  Havoc Pennington  <hp@redhat.com>
5198
5199         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5200         message cache lock here
5201
5202 2004-11-26  Havoc Pennington  <hp@redhat.com>
5203
5204         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5205         the "char byte_order" next to each other to save 4 bytes
5206         (dbus_message_new_empty_header): reduce preallocation, since the
5207         message cache should achieve a similar effect
5208         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5209         message cache that keeps a few DBusMessage around in a pool,
5210         another 8% speedup or so.
5211
5212         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5213
5214 2004-11-25  Havoc Pennington  <hp@redhat.com>
5215
5216         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5217         to write, without reading or blocking, try it before the poll()
5218         and skip the poll() if nothing remains to write. This is about a
5219         3% speedup in the echo client/server
5220
5221 2004-11-25  Havoc Pennington  <hp@redhat.com>
5222
5223         The primary change here is to always write() once before adding
5224         the write watch, which gives us about a 10% performance increase.
5225         
5226         * dbus/dbus-transport-unix.c: a number of modifications to cope
5227         with removing messages_pending
5228         (check_write_watch): properly handle
5229         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5230         messages_pending stuff
5231         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5232         AUTHENTICATED cases
5233         (unix_handle_watch): after writing, see if the write watch can be
5234         removed
5235         (unix_do_iteration): assert that write_watch/read_watch are
5236         non-NULL rather than testing that they aren't, since they 
5237         aren't allowed to be NULL. check_write_watch() at the end so 
5238         we add the watch if we did not finish writing (e.g. got EAGAIN)
5239
5240         * dbus/dbus-transport-protected.h: remove messages_pending call,
5241         since it resulted in too much inefficient watch adding/removing; 
5242         instead we now require that the transport user does an iteration 
5243         after queueing outgoing messages, and after trying the first
5244         write() we add a write watch if we got EAGAIN or exceeded our 
5245         max bytes to write per iteration setting
5246
5247         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5248         function
5249
5250         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5251         freed and then accessed, valgrind flagged this bug, fix it
5252
5253         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5254         as the last valid field plus 1, where really it is equal to the
5255         last valid field. Corrects some message corruption issues.
5256
5257         * dbus/dbus-mainloop.c: verbosity changes
5258
5259         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5260         instead of aborting in one of the test codepaths
5261
5262         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5263         caused not printing the pid ever again if a verbose was missing
5264         the newline at the end
5265         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5266
5267         * dbus/dbus-connection.c: verbosity changes; 
5268         (dbus_connection_has_messages_to_send): new function
5269         (_dbus_connection_message_sent): no longer call transport->messages_pending
5270         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5271         try to write() immediately, so we can avoid the write watch. This
5272         is the core purpose of this patchset
5273         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5274         dump the outgoing message queue, so nobody will get confused
5275         trying to send them or thinking stuff is pending to be sent
5276
5277         * bus/test.c: verbosity changes
5278
5279         * bus/driver.c: verbosity/assertion changes
5280
5281         * bus/dispatch.c: a bunch of little tweaks to get it working again
5282         because this patchset changes when/where you need to block.
5283
5284 2004-11-23  Havoc Pennington  <hp@redhat.com>
5285
5286         * test/glib/test-profile.c: modify to accept a plain_sockets
5287         argument in which case it will bench plain sockets instead of
5288         libdbus, for comparison purposes.
5289
5290 2004-11-22  Havoc Pennington  <hp@redhat.com>
5291
5292         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5293         threads for more time, so sysprof can get a grip on it.
5294
5295         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5296         pointless variable
5297
5298 2004-11-13  Havoc Pennington  <hp@redhat.com>
5299
5300         * test/glib/test-profile.c: fix this thing up a bit
5301
5302         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5303         preallocation sizes by a fair bit; not sure if this will be an
5304         overall performance win or not, but it does reduce reallocs.
5305
5306         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5307         the test hack that forced constant realloc if asserts are
5308         disabled, so we can profile sanely. Sprinkle in some
5309         _DBUS_UNLIKELY() which are probably pointless, but before I
5310         noticed the real performance problem I put them in.
5311         (_dbus_string_validate_utf8): micro-optimize this thing a little
5312         bit, though callgrind says it didn't help; then special-case
5313         ascii, which did help a lot; then be sure we detect nul bytes as
5314         invalid, which is a bugfix.
5315         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5316         superstition; use memset to nul the padding instead of a manual
5317         loop.
5318         (_dbus_string_get_length): inline this as a
5319         macro; it showed up in the profile because it's used for loop
5320         tests and so forth
5321
5322 2004-11-10  Colin Walters  <walters@verbum.org>
5323
5324         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5325         for extra paranoia.
5326
5327 2004-11-09  Colin Walters  <walters@verbum.org>
5328
5329         * dbus/dbus-string.c (_dbus_string_get_length): New
5330         function, writes DBusString to C buffer.
5331
5332         * dbus/dbus-string.h: Prototype it.
5333
5334         * dbus/dbus-message.c (dbus_message_type_to_string): New
5335         function, converts message type into C string.
5336
5337         * dbus/dbus-message.h: Prototype it.
5338
5339         * bus/selinux.c (bus_selinux_check): Take source pid,
5340         target pid, and audit data.  Pass audit data to
5341         avc_has_perm.
5342         (log_audit_callback): New function, appends extra
5343         audit information.
5344         (bus_selinux_allows_acquire_service): Also take
5345         service name, add it to audit data.
5346         (bus_selinux_allows_send): Also take message
5347         type, interface, method member, error name,
5348         and destination, and add them to audit data.
5349         (log_cb): Initialize func_audit.
5350         
5351         * bus/selinux.h (bus_selinux_allows_acquire_service)
5352         (bus_selinux_allows_send): Update prototypes 
5353
5354         * bus/services.c (bus_registry_acquire_service): Pass
5355         service name to bus_selinux_allows_acquire_service.
5356
5357         * bus/bus.c (bus_context_check_security_policy): Pass
5358         additional audit data.  Move assignment of dest
5359         to its own line.
5360
5361 2004-11-07  Colin Walters  <walters@verbum.org>
5362
5363         * dbus/dbus-transport-unix.c (do_authentication): Always
5364         initialize auth_completed.
5365         
5366 2004-11-07  Colin Walters  <walters@verbum.org>
5367
5368         * bus/bus.c (load_config): Break into three
5369         separate functions: process_config_first_time_only,
5370         process_config_every_time, and process_config_postinit.
5371         (process_config_every_time): Move call of
5372         bus_registry_set_service_context_table into
5373         process_config_postinit.
5374         (process_config_postinit): New function, does
5375         any processing that needs to happen late
5376         in initialization (and also on reload).
5377         (bus_context_new): Instead of calling load_config,
5378         open config parser here and call process_config_first_time_only
5379         and process_config_every_time directly.  Later, after
5380         we have forked but before changing UID,
5381         invoke bus_selinux_full_init, and then call
5382         process_config_postinit.
5383         (bus_context_reload_config): As in bus_context_new,
5384         load parse file inside here, and call process_config_every_time
5385         and process_config_postinit.
5386
5387         * bus/services.h, bus/services.c
5388         (bus_registry_set_service_context_table): Rename
5389         from bus_registry_set_sid_table.  Take string hash from config
5390         parser, and convert them here into SIDs.
5391
5392         * bus/config-parser.c (struct BusConfigParser): Have
5393         config parser only store a mapping of service->context
5394         string.
5395         (merge_service_context_hash): New function.
5396         (merge_included): Merge context string hashes instead
5397         of using bus_selinux_id_table_union.
5398         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5399         simply create a new string hash.
5400         (bus_config_parser_unref): Unref it.
5401         (start_selinux_child): Simply insert strings into hash,
5402         don't call bus_selinux_id_table_copy_over.
5403
5404         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5405         (bus_selinux_id_table_copy_over): Delete.
5406
5407 2004-11-03  Colin Walters  <walters@verbum.org>
5408
5409         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5410         variables.
5411         
5412 2004-11-03  Colin Walters  <walters@verbum.org>
5413
5414         * bus/test-main.c (test_pre_hook): Fix test logic,
5415         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5416
5417 2004-11-02  Colin Walters  <walters@redhat.com>
5418
5419         * bus/selinux.c (bus_selinux_init): Split into two functions,
5420         bus_selinux_pre_init and bus_selinux_post_init.
5421         (bus_selinux_pre_init): Just determine whether SELinux is
5422         enabled.
5423         (bus_selinux_post_init): Do everything else.
5424
5425         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5426         config file, and bus_selinux_post_init after.  This ensures that
5427         we don't lose the policyreload notification thread that
5428         bus_selinux_init created before forking previously.
5429         
5430         * bus/test-main.c (test_pre_hook): Update for split.
5431
5432 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5433
5434         Patch from Johan Fischer <linux@fischaz.com>
5435         
5436         * mono/doc/Makefile.am (install-data-local): Added directory
5437         install for DESTDIR
5438
5439 2004-10-29  Colin Walters  <walters@redhat.com>
5440
5441         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5442         parameter for fd to write pid to.       
5443
5444         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5445         
5446         * bus/bus.c (bus_context_new): Pass print_pid_fd
5447         to _dbus_become_daemon (bug #1720)
5448
5449 2004-10-29  Colin Walters  <walters@redhat.com>
5450
5451         Patch from Ed Catmur <ed@catmur.co.uk>
5452
5453         * mono/doc/Makefile.am (install-data-local): Handle
5454         DESTDIR.
5455
5456 2004-10-29  Colin Walters  <walters@redhat.com>
5457
5458         * bus/.cvsignore, qt/.cvsignore: Update.
5459
5460 2004-10-29  Colin Walters  <walters@redhat.com>
5461
5462         Patch from Kristof Vansant <de_lupus@pandora.be>
5463
5464         * configure.in: Detect Slackware.
5465         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5466         * bus/rc.messagebus.in: New file.
5467
5468 2004-10-29  Colin Walters  <walters@redhat.com>
5469
5470         * tools/dbus-monitor.c (filter_func): Return
5471         DBUS_HANDLER_RESULT_HANDLED in filter function
5472         for now.  See:
5473         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5474
5475 2004-10-29  Colin Walters  <walters@redhat.com>
5476
5477         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5478
5479         * bus/services.c (bus_registry_acquire_service): 
5480         Correctly retrieve service name from DBusString
5481         for printing.
5482
5483 2004-10-29  Colin Walters  <walters@redhat.com>
5484
5485         * dbus/dbus-glib.h: Update documentation to not
5486         refer to internal APIs.
5487
5488 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5489
5490         * mono/Arguments.cs (GetDBusTypeConstructor):
5491         type.UnderlyingSystemType will return "System.Byte" if you do it
5492         on "byte[]", which is not what we want.  So check the type.IsArray
5493         property and use System.Array instead.
5494
5495 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5496
5497         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5498         the DBusUserInfo structure since this is passed into the function.
5499         This would cause a double free when the function that allocated
5500         the structure would try to free it when an error occured.
5501
5502         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5503         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5504         for service activation to avoid 32bit/64bit parallel install issues
5505
5506 2004-10-21  Colin Walters  <walters@verbum.org>
5507
5508         * AUTHORS: Fix my email address, the @gnu.org one
5509         has been bouncing for some time.  Also add J5.
5510         
5511 2004-10-21  Colin Walters  <walters@verbum.org>
5512
5513         * dbus/dbus-transport-unix.c (do_authentication): Return
5514         authentication status to callers.
5515         (unix_handle_watch): If we completed authentication this round,
5516         don't do another read.  Instead wait until the next iteration,
5517         after we've read any pending data in the auth buffer.
5518         (unix_do_iteration): Ditto.
5519         (unix_handle_watch): Updated for new do_authentication prototype.
5520
5521 2004-10-18  Colin Walters  <walters@verbum.org>
5522
5523         * bus/selinux.c (bus_selinux_enabled): Handle
5524         --disable-selinux case.
5525         
5526 2004-10-18  Colin Walters  <walters@verbum.org>
5527
5528         * bus/selinux.h: Add bus_selinux_enabled.
5529         
5530         * bus/selinux.c (bus_selinux_enabled): Implement it.
5531         
5532         * bus/config-parser.c (struct include): Add
5533         if_selinux_enabled member.
5534         (start_busconfig_child): Parse if_selinux_enabled
5535         attribute for include.
5536         (bus_config_parser_content): Handle it.
5537
5538         * bus/session.conf.in, bus/system.conf.in: Add
5539         inclusion of context mapping to default config files;
5540         conditional on SELinux being enabled.
5541         
5542         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5543         
5544         * test/data/invalid-config-files/badselinux-1.conf, 
5545         test/data/invalid-config-files/badselinux-2.conf:
5546         Test files for bad syntax.
5547         
5548 2004-10-17  Colin Walters  <walters@verbum.org>
5549
5550         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5551         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5552         format specifier mismatches.
5553
5554 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5555
5556         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5557         format string.
5558
5559         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5560         pointer (bug #1540, Leonardo Boiko).
5561
5562 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5563
5564         * mono/BusDriver.cs: Changed BusDriver struct to remove
5565         the ServiceCreated and ServiceDeleted events and replace them
5566         with the new ServiceOwnerChanged event.
5567
5568         * mono/example/BusListener.cs: Added a new example program,
5569         which listens for and reports any ServiceOwnerChanged events
5570         on the bus driver.
5571
5572         * mono/example/Makefile.am (DESTDIR): Build changes for the
5573         new BusListener.cs example.
5574
5575 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5576
5577         * bus/signals.c (bus_match_rule_parse): validate the components of
5578         match rules (bug #1439).
5579
5580         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5581
5582 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5583
5584         * doc/dbus-specification.xml: document ServiceOwnerChanged
5585         signal.
5586         
5587         * bus/driver.c, bus/driver.h, bus/services.c: Use
5588         ServiceOwnerChanged signal instead of ServiceCreated and
5589         ServiceDeleted.
5590         
5591         * bus/dispatch.c: update testcase for the new signal.
5592
5593 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5594
5595         Patch from Nat Friedman <nat@novell.com>
5596
5597         * mono/Makefile.am: A number of small build fixes to allow "make
5598         distcheck" to succeed.
5599
5600         * mono/example/Makefile.am: "make distcheck" fixes.
5601
5602         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5603         key in @srcdir@.
5604
5605         * test/Makefile.am: "make distcheck" fixes.
5606
5607 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5608
5609         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5610
5611         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5612
5613         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5614         messages after the first one (bug #1389).
5615         
5616         * bus/dispatch.c (check_double_hello_message): add a test case for
5617         the double hello message bug.
5618         (check_existent_service_activation): fix check of spawning error.
5619         
5620 2004-09-16  David Zeuthen  <david@fubar.dk>
5621
5622         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5623
5624 2004-09-12  David Zeuthen  <david@fubar.dk>
5625
5626         Patch from Kay Sievers <kay.sievers@vrfy.org>
5627
5628         * bus/bus.c (bus_context_new):
5629         * bus/bus.h:
5630         * bus/main.c (usage)
5631         (main):
5632         Add commandline option --nofork to override configuration file
5633         setting.
5634
5635 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5636
5637         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5638         compilers don't like it (bug #974).
5639
5640 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5641
5642         * qt/connection.*: Applied patch by Jérôme Lodewyck
5643         <lodewyck@clipper.ens.fr> to integrate an existing
5644         connection into the Qt eventloop
5645
5646 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5647
5648         * mono/BusDriver.cs: Added.  This is a class for interacting with
5649         the org.freedesktop.DBus service.
5650
5651         * mono/Message.cs: Added a mechanism to expose the message that is
5652         currently being dispatched via the static Message.Current
5653         property.  Added Message.Sender and Message.Destination
5654         properties.
5655
5656         * mono/Handler.cs: Expose the dispatched message via
5657         Message.Current when handling method calls.
5658
5659         * mono/Service.cs: Expose the dispatched message via
5660         Message.Current when handling signal emissions.
5661         
5662         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5663         Connection.BaseService property.
5664
5665 2004-08-28  Havoc Pennington  <hp@redhat.com>
5666
5667         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5668
5669         More fixes from Steve Grubb
5670         
5671         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5672         (_dbus_listen_tcp_socket): fix fd leak
5673
5674         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5675         EINTR to a bit lower in the code
5676
5677 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5678
5679         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5680         TRUE if we are inquiring about the existence of the built-in
5681         org.freedesktop.DBus service.
5682
5683 2004-08-25  John Palmieri  <johnp@redhat.com>
5684         * bus/config-parser.c:
5685         (struct PolicyType): Add POLICY_CONSOLE
5686         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5687         (start_busconfig_child): Sets up console element when
5688         <policy at_console=""> is encountered in a policy file
5689         (append_rule_from_element): Convert console elements to console
5690         rules.
5691
5692         * bus/policy.c: 
5693         (bus_policy_create_client_policy): Add console rules to the client
5694         policy based on if the client is at the console
5695         (bus_policy_append_console_rule): New function for adding a
5696         console rule to a policy
5697         (bus_policy_merge): Handle console rule merging
5698
5699         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5700         where we check for console user files
5701         
5702         * dbus/dbus-sysdeps.c:
5703         (_dbus_file_exists): New function which checks if the given
5704         file exists
5705         (_dbus_user_at_console): New function which does the system
5706         specific process of checking if the user is at the console
5707
5708         * dbus/dbus-userdb.c:
5709         (_dbus_is_console_user): New function converts a UID to user name
5710         and then calls the system specific _dbus_user_at_console to 
5711         see if the user is at the console and therefor a console user
5712
5713 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5714
5715         * bus/config-parser.c (set_limit):
5716         * bus/dbus-daemon-1.1.in:
5717         * test/data/valid-config-files/many-rules.conf: set the
5718         max_match_rules_per_connection limt from the config file. 
5719
5720         * doc/busconfig.dtd: update the DTD.
5721
5722         * bus/driver.c: remove some unused variables.
5723
5724 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5725
5726         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5727         it's been replaced by dbus_g_bus_get
5728
5729 2004-08-23  Colin Walters  <walters@redhat.com>
5730
5731         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5732
5733         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5734
5735         * bus/selinux.c: Create a thread for policy reload notification.
5736         (bus_selinux_get_policy_root): Implement.
5737
5738         * bus/config-parser.c (start_busconfig_child)
5739         (bus_config_parser_content): Support SELinux-root relative
5740         inclusion.
5741
5742         * configure.in <HAVE_SELINUX>: Add -lpthread.
5743         
5744         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5745         (test_post_hook): Move memory checking into here.
5746         (test_pre_hook, test_post_hook): Move SELinux checks in
5747         here, but conditional on a DBUS_TEST_SELINUX environment
5748         variable.  Unfortunately we can't run the SELinux checks
5749         as a normal user, since they won't have any permissions
5750         for /selinux.  So this will have to be tested manually
5751         for now, until we have virtualization for most of
5752         libselinux.
5753         
5754 2004-08-23  Havoc Pennington  <hp@redhat.com>
5755
5756         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5757         drop supplementary groups, suggested by Steve Grubb
5758
5759 2004-08-20  Colin Walters  <walters@redhat.com>
5760
5761         * bus/config-parser.c (start_busconfig_child): Remove some unused
5762         variables.
5763         
5764         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5765         warning.
5766
5767 2004-08-17  Joe Shaw  <joeshaw@novell.com>
5768
5769         * configure.in: If --enable-mono is passed in, if we can't find
5770         mono error out.
5771
5772         * mono/Makefile.am: Use /gacutil to install assemblies into the
5773         GAC and not /root.
5774
5775 2004-08-12  Havoc Pennington  <hp@redhat.com>
5776
5777         * NEWS: update for 0.22
5778
5779         * configure.in: release 0.22
5780
5781 2004-08-11  Colin Walters  <walters@redhat.com>
5782
5783         * tools/dbus-send.c (main, usage): Add --reply-timeout
5784         argument.
5785
5786 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5787
5788         * bus/bus.c (process_config_first_time_only): get rid of an unused
5789         DBusError that was causing a memoy leak (bug #989).
5790
5791         * dbus/dbus-keyring.c, dbus/dbus-message.c:
5792         fix compilation on Solaris/Forte C (bug #974)
5793
5794         * bus/main.c (main): plug two minuscule memleaks.
5795
5796 2004-08-10  Havoc Pennington  <hp@redhat.com>
5797
5798         * doc/dbus-tutorial.xml: add some more info on GLib bindings
5799
5800 2004-08-09  Havoc Pennington  <hp@redhat.com>
5801
5802         * COPYING: switch to Academic Free License version 2.1 instead of
5803         2.0, to resolve complaints about patent termination clause.
5804
5805 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
5806
5807         * README: added documentation for the --enable-python 
5808         configure switch.
5809
5810 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5811
5812         * bus/config-parser.c (bus_config_parser_new): fix an invalid
5813         _unref in the SELinux support.
5814
5815         * doc/busconfig.dtd: update DTD for SELinux support.
5816
5817         * bus/config-loader-libxml.c: fix error handler and parser
5818         initialisation/cleanup. OOM test now works with libxml2 HEAD.
5819
5820         * configure.in: remove the warning about libxml2.
5821
5822         * dbus/dbus-bus.c: silence doxygen warning.
5823
5824 2004-07-31  Colin Walters  <walters@redhat.com>
5825
5826         * configure.in: Move #error in SELinux check to its own line.
5827
5828 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5829
5830         * dbus/dbus-internals.h (_DBUS_SET_OOM):
5831         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5832         dbus_error_set.
5833
5834         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5835         broken by the change in the _SET_OOM macros.
5836
5837 2004-07-31  Colin Walters  <walters@redhat.com>
5838
5839         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5840         BUS_SET_OOM.
5841
5842 2004-07-31  Colin Walters  <walters@redhat.com>
5843
5844         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5845         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
5846         AC_MSG_CHECKING.
5847
5848 2004-07-24  Havoc Pennington  <hp@redhat.com>
5849
5850         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5851
5852         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5853         functionality
5854
5855         * configure.in: add --enable-selinux
5856         
5857         * bus/policy.c (bus_policy_merge): add FIXME to a comment
5858
5859         * bus/main.c (main): initialize and shut down selinux
5860
5861         * bus/connection.c: store SELinux ID on each connection, to avoid 
5862         repeated getting of the string context and converting it into 
5863         an ID
5864
5865         * bus/bus.c (bus_context_get_policy): new accessor, though it
5866         isn't used
5867         (bus_context_check_security_policy): check whether the security
5868         context of sender connection can send to the security context of
5869         recipient connection
5870
5871         * bus/config-parser.c: add parsing for <selinux> and <associate>
5872         
5873         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5874         implement dbus_connection_get_unix_fd()
5875
5876         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5877         function, used by the selinux stuff
5878         
5879 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5880
5881         * bus/config-loader-libxml.c: complete the implementation of
5882         libxml backend for config file loader. Doesn't work with full OOM
5883         test yet. 
5884         
5885         * configure.in: change error when selecting libxml into a warning.
5886         
5887         * test/data/invalid-config-files: add two non-well-formed XML
5888         files. 
5889         
5890         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5891         
5892         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5893         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5894         be necessary to read all the buffer. (bug #894)
5895
5896         * bus/activation.c (bus_activation_activate_service): fix a
5897         potential assertion failure (bug #896). Small optimization in the
5898         case of auto-activation messages.
5899
5900         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5901         add test case for byte-through-vararg bug (#901). patch by Kimmo
5902         Hämäläinen. 
5903
5904 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5905
5906         * python/dbus.py:
5907         * python/dbus_bindings.pyx.in:
5908         Add dbus.init_gthreads (), allow emit_signal to pass
5909         arguments to the signal.
5910         
5911 2004-07-24  Havoc Pennington  <hp@redhat.com>
5912
5913         * AUTHORS: add some people, not really comprehensively, let me
5914         know if I missed you
5915
5916 2004-07-24  Havoc Pennington  <hp@redhat.com>
5917
5918         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5919         Owen
5920
5921         * test/Makefile.am (DIST_SUBDIRS): here also
5922
5923 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5924
5925         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5926         breaking build on Solaris, reported by Farhad Saberi on the ML.
5927
5928         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5929         va_arg invocation to account for integer promotion in the case of
5930         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5931
5932         * bus/services.c (bus_service_remove_owner): fix bug #902, use
5933         _dbus_list_get_first_link, not _dbus_list_get_first.
5934
5935         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5936
5937         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5938         handler functions so that the asserts in _dbus_object_subtree_unref
5939         do not fail.
5940
5941         * dbus/dbus-transport-unix.c (do_reading):
5942         _dbus_transport_queue_messages return value is of type
5943         dbus_bool_t, not DBusDispatchStatus.
5944         
5945 2004-07-19  David Zeuthen  <david@fubar.dk>
5946
5947         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5948
5949         * bus/dispatch.c:
5950         (check_get_connection_unix_user): Debug says GetProperty; but the
5951         method is called GetConnectionUnixUser
5952         (check_get_connection_unix_process_id): New function
5953         (bus_dispatch_test): Actually call check_get_connection_unix_user();
5954         also call check_get_connection_unix_process_id()
5955         
5956         * bus/driver.c:
5957         (bus_driver_handle_get_connection_unix_process_id): New function,
5958         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5959         interface
5960         
5961         * dbus/dbus-auth.c:
5962         (handle_server_data_external_mech): Set pid from the credentials
5963         obtained from the socket
5964         
5965         * dbus/dbus-connection.c:
5966         (dbus_connection_get_unix_process_id): New function
5967         
5968         * dbus/dbus-connection.h: 
5969         Add prototype for dbus_connection_get_unix_process_id
5970         
5971         * dbus/dbus-transport.c:
5972         (_dbus_transport_get_unix_process_id): New function
5973         
5974         * dbus/dbus-transport.h:
5975         Add prototype for _dbus_transport_get_unix_process_id
5976         
5977 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5978
5979         * dbus/dbus-message.c: Message counter fix, patch by Christian
5980         Hammond <chipx86@gnupdate.org>
5981
5982 2004-07-18  Seth Nickell  <seth@gnome.org>
5983
5984         * python/dbus.py:
5985         * python/dbus_bindings.pyx.in:
5986         * python/tests/test-client.py:
5987
5988         Add dbus.ByteArray and dbus_bindings.ByteArray
5989         types so that byte streams can be passed back.
5990
5991         Give jdahlin the heaps of credit that are so
5992         rightfully his.
5993         
5994 2004-07-12  Seth Nickell  <seth@gnome.org>
5995
5996         * python/dbus.py:
5997
5998         Add message argument to the default object_method_handler
5999         function.
6000         
6001         * python/dbus_bindings.pyx.in:
6002
6003         Automatically return NIL when passed an empty list
6004         (we can't pass back a list since lists are typed
6005         and we don't have any idea what type the the client
6006         intended the list to be... :-( )
6007         
6008 2004-07-10  Seth Nickell  <seth@gnome.org>
6009
6010         * python/examples/Makefile.am:
6011
6012         Fix distcheck breakage caused by new examples.
6013
6014 2004-07-10  Seth Nickell  <seth@gnome.org>
6015
6016         * python/dbus.py:
6017
6018         Add "message" argument to service-side dbus.Object
6019         methods. This will break existing services written
6020         using the python bindings, but will allow extraction
6021         of all the message information (e.g. who its from).
6022
6023         Add improved "object oriented" signal handling/emission.
6024         
6025         * python/examples/example-service.py:
6026
6027         Nix this example.
6028         
6029         * python/examples/example-signal-emitter.py:
6030         * python/examples/example-signal-recipient.py:
6031
6032         Two new examples that show how to emit and receive
6033         signals using the new APIs.
6034         
6035         * python/examples/example-signals.py:
6036         * python/examples/gconf-proxy-service.py:
6037         * python/examples/gconf-proxy-service2.py:
6038
6039         Add "message" argument to service methods.
6040
6041 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6042
6043         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6044         * dbus/bus.c (dbus_bus_get_unix_user)
6045         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6046         method of org.freedesktop.DBus interface.
6047
6048         * bus/dispatch.c: test case
6049
6050 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6051
6052         * python/Makefile.am: switched include directory from glib/ to dbus/
6053         since dbus-glib.h moved
6054  
6055 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6056
6057         * configure.in: prevent building the gcj stuff and libxml loader
6058         since they are broken.
6059
6060 2004-06-20  Havoc Pennington  <hp@redhat.com>
6061
6062         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6063         codes from the dbus error names
6064         
6065         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6066         as dbus/dbus-glib.h and that breakage is now visible due to 
6067         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6068         
6069         * glib/dbus-glib.h: s/gproxy/g_proxy/
6070
6071         * dbus/dbus-shared.h: new header to hold stuff shared with
6072         binding APIs
6073         
6074         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6075         than dbus-errors.h
6076
6077         * glib/dbus-glib.h (dbus_set_g_error): move to
6078         dbus-glib-lowlevel.h
6079
6080         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6081         of stuff to enable this
6082
6083         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6084
6085         * a bunch of other changes with the same basic "separate glib 
6086         bindings from dbus.h" theme
6087         
6088 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6089
6090         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6091
6092         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6093
6094 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6095
6096         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6097         the reply value of the ServiceExists message.
6098
6099 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6100
6101         * python/dbus_bindings.pyx.in: No longer need to parse path
6102         elements and pass them as arrays of strings.  The C API now
6103         accepts plain path strings.
6104         (_build_parsed_path): removed 
6105
6106 2004-06-07  Havoc Pennington  <hp@redhat.com>
6107
6108         * doc/TODO: remove auto-activation item since it's done; sort
6109         items by importance/milestone
6110
6111 2004-06-07  Havoc Pennington  <hp@redhat.com>
6112
6113         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6114         random signature when using REQUIRED_FIELDS (this hack won't work
6115         in the long term)
6116
6117         * dbus/dbus-message.c: change the signature to be a header field,
6118         instead of message->signature special-case string. Incremental
6119         step forward. Then we can fix up code to send the signature in the
6120         message, then fix up code to validate said signature, then fix up
6121         code to not put the typecodes inline, etc.
6122         (load_one_message): don't make up the signature after the fact
6123         (decode_header_data): require signature field for the known
6124         message types
6125
6126         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6127
6128         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6129
6130 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6131
6132         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6133
6134         * mono/Handler.cs: Updated to follow new path argument for
6135         (un-)registering objects.
6136
6137         * mono/example/Makefile.am:
6138         * mono/Makefile.am:
6139         * configure.in: Bumped required version for mono and use new -pkg
6140         syntax for deps
6141
6142 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6143
6144         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6145         registration functions take the path argument as char* instead of
6146         char**.
6147
6148         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6149         split off the path decompostion part of
6150         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6151         warnings. 
6152
6153         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6154         
6155 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6156  
6157         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6158         machine approach.  A state is implemented as a function that
6159         handles incoming events as specified for that state.
6160         
6161         * doc/dbus-specification.xml: Update auth protocol state machine
6162         specification to match implementation.  Remove some leftover
6163         base64 examples.
6164
6165 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6166
6167         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6168         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6169         quiet doxygen.
6170
6171         * Doxyfile.in: remove deprecated options.
6172
6173         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6174         glib/test-thread.h, glib/test-thread-client.c,
6175         glib/test-thread-server.c, glib/test-profile.c,
6176         glib/test-dbus-glib.c: remove these unused files.
6177
6178 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6179
6180         * dbus/dbus-object-tree.c
6181         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6182         non-fallback handlers (bug #684).
6183         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6184         (find_subtree_recurse): report wether the returned subtree is an
6185         exact match or a "fallback" match higher up in the tree.
6186         (object_tree_test_iteration): update test case.
6187
6188 2004-06-01  Seth Nickell  <seth@gnome.org>
6189
6190         * python/dbus_bindings.pyx.in:
6191         * python/tests/test-client.py:
6192
6193         Round off basic type support. Add dicts (yay!), and 
6194         remaining array types.
6195
6196         Make MessageIter more general so it works for dicts too.
6197
6198         Mark all loop variables as C integers.
6199         
6200 2004-05-31  Havoc Pennington  <hp@redhat.com>
6201
6202         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6203         "in" before "out"
6204
6205         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6206
6207         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6208         option that runs the tests, and start filling in some code
6209         including for starters just dumping the interfaces to stdout
6210
6211         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6212
6213         * test/data/valid-introspection-files/lots-of-types.xml: test of
6214         an example introspection file
6215
6216         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6217         "node" (I think...)
6218
6219 2004-05-31  Seth Nickell  <seth@gnome.org>
6220
6221         * python/dbus_bindings.pyx.in:
6222         * python/tests/test-client.py:
6223
6224         Test Suite: 1
6225         Python Bindings: 0
6226
6227         Fix string array memory trashing bug... oops...
6228
6229 2004-05-30  Seth Nickell  <seth@gnome.org>
6230
6231         * python/dbus.py:
6232
6233         Add a nicer-but-less-flexible alternate API for handling 
6234         calls to virtual objects in dbus.ObjectTree.
6235
6236         Screw up the argument order to the dbus.Object constructor
6237         for consistency with dbus.ObjectTree (and to make dbus_methods
6238         optional for future extension)
6239         
6240         * python/examples/Makefile.am:
6241         * python/examples/gconf-proxy-service.py:
6242         * python/examples/gconf-proxy-service2.py:
6243
6244         Alternate implementation of gconf-proxy-service using the
6245         nicer dbus.ObjectTree API.
6246         
6247         * python/examples/example-service.py:
6248         * python/tests/test-server.py
6249
6250         Reverse the argument order to deal with dbus.Object constructor
6251         changes.
6252         
6253 2004-05-30  Seth Nickell  <seth@gnome.org>
6254
6255         * python/examples/example-client.py:
6256         * python/examples/example-service.py:
6257
6258         Take it back. Lists seem to work but they're broken
6259         in the test suite. Make the base examples use
6260         lists (works fine).
6261
6262 2004-05-30  Seth Nickell  <seth@gnome.org>
6263
6264         * python/dbus_bindings.pyx.in:
6265         * python/tests/test-client.py:
6266
6267         Add some more tests and fix errors that crop up.
6268         Unfortunately, currently it seems like marshalling
6269         and unmarshalling of lists is completely broken :-(
6270
6271 2004-05-30  Seth Nickell  <seth@gnome.org>
6272
6273         * python/dbus_bindings.pyx.in:
6274
6275         Add support for ObjectPath type.
6276
6277         * python/dbus.py:
6278
6279         Refactor message handling code to a common function.
6280         
6281         * python/tests/test-client.py:
6282         * python/tests/test-server.py:
6283
6284         Add tests that check to make sure values of all types
6285         can be echoed from a service w/o mangling.
6286         
6287 2004-05-29  Seth Nickell  <seth@gnome.org>
6288
6289         * python/dbus.py:
6290
6291         Add ObjectTree class which allows implementation
6292         of trees of "virtual" objects. Basically the python
6293         wrapper for "register_fallback".
6294         
6295         * python/examples/Makefile.am
6296         * python/examples/gconf-proxy-client.py:
6297         * python/examples/gconf-proxy-service.py:
6298
6299         Implement a simple GConf proxy service that supports
6300         get/set on string and int GConf keys using the ObjectTree.
6301         
6302 2004-05-29  Seth Nickell  <seth@gnome.org>
6303
6304         * python/dbus.py:
6305         * python/examples/example-client.py:
6306         * python/examples/example-service.py:
6307         * python/examples/list-system-services.py:
6308
6309         Add SessionBus, SystemBus and ActivationBus classes
6310         so you don't need to know the special little BUS_TYPE
6311         flag.
6312         
6313 2004-05-29  Havoc Pennington  <hp@redhat.com>
6314
6315         * bus/config-parser.c (process_test_valid_subdir): temporarily
6316         stop testing config parser OOM handling, since expat has issues
6317         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6318
6319         * bus/dbus-daemon-1.1.in: change requested_reply to
6320         send_requested_reply/receive_requested_reply so we can send the
6321         replies, not just receive them.
6322
6323         * bus/config-parser.c: parse the new
6324         send_requested_reply/receive_requested_reply
6325
6326         * bus/policy.c (bus_client_policy_check_can_send): add
6327         requested_reply argument and use it
6328
6329         * bus/bus.c (bus_context_check_security_policy): pass through
6330         requested_reply status to message send check
6331
6332         * bus/system.conf.in: adapt to requested_reply change
6333         
6334 2004-05-28  Havoc Pennington  <hp@redhat.com>
6335
6336         * test/glib/test-service-glib.c (main): remove unused variable
6337
6338         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6339
6340         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6341         from the enum, no longer in use.
6342
6343         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6344         works right.
6345
6346         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6347         whether error_name passed in is a valid error name.
6348
6349 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6350
6351         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6352         OBJECT_PATH and OBJECT_PATH_ARRAY
6353
6354 2004-05-28  Seth Nickell  <seth@gnome.org>
6355
6356         * python/examples/Makefile.am:
6357
6358         Forget to add Makefile.am. Do not pass go.
6359
6360 2004-05-28  Michael Meeks  <michael@ximian.com>
6361
6362         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6363         fix no int64 case.
6364
6365         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6366
6367         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6368         (_dbus_message_iter_get_basic_type_array): impl.
6369         drastically simplify ~all relevant _get methods to use these.
6370         (_dbus_message_iter_append_basic_array),
6371         (dbus_message_iter_append_basic): impl
6372         drastically simplify ~all relevant _append methods to use these.
6373
6374         * dbus/dbus-message-builder.c (parse_basic_type) 
6375         (parse_basic_array, lookup_basic_type): impl.
6376         (_dbus_message_data_load): prune scads of duplicate /
6377         cut & paste coding.
6378
6379         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6380         (_dbus_demarshal_basic_type): implement,
6381         (demarshal_and_validate_len/arg): beef up debug.
6382         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6383
6384 2004-05-27  Seth Nickell  <seth@gnome.org>
6385
6386         * configure.in:
6387         * python/Makefile.am:
6388
6389         Include the example python apps in the tarball.
6390         
6391         * python/examples/list-system-services.py
6392
6393         Add a python new example that fetches the list of services
6394         from the system bus.
6395         
6396 2004-05-27  Seth Nickell  <seth@gnome.org>
6397
6398         * python/dbus.py:
6399         * python/dbus_bindings.pyx.in:
6400
6401         Fix failure to notify that a signal was not handled,
6402         resulted in hung functions.
6403         
6404 2004-05-25  Colin Walters  <walters@redhat.com>
6405
6406         * tools/dbus-monitor.c (main): Monitor all types of messages.
6407
6408 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6409
6410         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6411         which unregisters the object path and disposes the handler.
6412
6413 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6414  
6415         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6416          
6417         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6418         operands to && so we call dbus_message_iter_next () for the last
6419         argument also.
6420
6421 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6422
6423         * dbus/dbus-object-tree.c
6424         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6425         children even if the requested path isn't registered.
6426         (object_tree_test_iteration): test object_tree_list_registered.
6427
6428         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6429         it to 0.
6430         
6431 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6432
6433         * doc/TODO: Remove resolved items.
6434
6435         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6436         field.
6437         
6438         * bus/connection.c (bus_connections_expect_reply): Enforce the
6439         per-connection limit on pending replies.
6440         
6441         Patch from Jon Trowbridge <trow@ximian.com>:
6442  
6443         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6444         up a watch that triggers a config reload when one end of the pipe
6445         becomes readable.
6446         (signal_handler): Instead of doing the config reload in our SIGHUP
6447         handler, just write to the reload pipe and let the associated
6448         watch handle the reload when control returns to the main loop.
6449  
6450         * bus/driver.c (bus_driver_handle_reload_config): Added.
6451         Implements a ReloadConfig method for requesting a configuration
6452         file reload via the bus driver.
6453  
6454 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6455
6456         * HACKING: Updated release instructions concerning the wiki page.
6457
6458 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6459
6460         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6461         filter against auth->allowed_mechs; we only add allowed mechs in
6462         record_mechanisms().
6463  
6464         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6465         ALLOWED_MECHS to auth-script format so we can set the list of
6466         allowed mechanisms.
6467  
6468         * data/auth/client-out-of-mechanisms.auth-script: New test to
6469         check client disconnects when it is out of mechanisms to try.
6470  
6471         * dbus/dbus-auth.c (process_command): Remove check for lines
6472         longer that 1 MB; we only buffer up maximum 16 kB.
6473  
6474         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6475         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6476         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6477         assume there might be unused bytes.
6478  
6479         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6480         client-out-of-mechs, it is handled in process_reject(). Move check
6481         for max failures to send_rejected(), as it's a server-only thing.
6482
6483         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6484         send_auth(), send_data(), send_rejected(), send_error(),
6485         send_ok(), send_begin() and send_cancel().
6486
6487 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6488
6489         Remove base64 encoding, replace with hex encoding. Original patch
6490         from trow@ximian.com, added error handling.
6491
6492         * dbus/dbus-string.c (_dbus_string_base64_encode)
6493         (_dbus_string_base64_decode): Remove.
6494         (_dbus_string_hex_decode): Add end_return argument so we can
6495         distinguish between OOM and invalid hex encoding.
6496         (_dbus_string_test): Remove base64 tests and add test case for
6497         invalid hex.
6498
6499         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6500         Replace base64 with hex.
6501
6502         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6503         for invalid hex encoded data in auth protocol.
6504
6505 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6506
6507         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6508         leak.
6509
6510 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6511
6512         * mono/dbus-sharp.dll.config.in: Added for GAC
6513         * mono/dbus-sharp.snk: Added for GAC
6514         * mono/Assembly.cs.in: Added for GAC
6515         * mono/Makefile.am: Changes for GAC installation        
6516         * configure.in: Added refs for dbus-sharp.dll.config.in and
6517         Assembly.cs.in. More fixes for mono testing
6518         * mono/example/Makefile.am: Changed var to CSC
6519         * Makefile.am: Changed flag name to DBUS_USE_CSC
6520
6521 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6522
6523         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6524         * mono/doc/*: Added documentation framework
6525         * configure.in: Added monodoc check
6526         * README: Added description of mono configure flags
6527
6528 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6529
6530         * doc/dbus-specification.xml: Added a "Required" column to the 
6531         header fields table and changed the "zero or more" verbage in
6532         the above paragraph to read "The header must contain the required 
6533         named header fields and zero or more of the optional named header 
6534         fields".
6535         * test/data/invalid-messages/*.message: Added the required PATH 
6536         named header field to the tests so that they don't fail on 
6537         'Missing path field'
6538
6539 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6540
6541         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6542         the stack by implicitly defining variable and parameter types and
6543         removing the hack of defining C pointers as python objects and later
6544         casting them.
6545
6546 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6547
6548         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6549
6550 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6551
6552         * mono/DBusType/Dict.cs: Handle empty dicts
6553         * mono/DBusType/Array.cs: Handle empty arrays
6554         * mono/Arguments.cs: Handle empty arguments
6555
6556 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6557
6558         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6559         field
6560
6561 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6562
6563         * test/data/valid-messages/standard-*.message: Update message
6564         test scripts to new header field names.
6565
6566 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6567
6568         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6569         overflow to times_we_did_each_thing array which would chop off the
6570         first character of the failure_dir string. Increased the size of
6571         the array to 7 to reflect the number of random mutation functions
6572         we have.
6573
6574 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6575
6576         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6577         unix_server->watch here, it is unreffed in disconnect.
6578         (_dbus_server_new_for_tcp_socket): convert NULL host to
6579         "localhost" here so we don't append NULL to address.
6580         
6581         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6582         various addresses, including tcp with no explicit host.
6583
6584 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6585
6586         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6587         fix incorrect setting of .name_offset in the HeaderField (it was
6588         off by two bytes, positioned right after the name and typecode)
6589
6590         * bus/bus.c (bus_context_new, bus_context_unref): test before
6591         calling dbus_server_free_data_slot and _dbus_user_database_unref
6592         in case of an error.
6593
6594         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6595         by libdbus-gtool.
6596
6597 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6598
6599         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6600         _dbus_poll() instead of select().
6601
6602 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6603
6604         * bus/main.c (signal_handler): Reload the configuration files
6605         on SIGHUP.
6606         (main): Set up our SIGHUP handler.
6607
6608         * bus/bus.c (struct BusContext): Store the config file, user and
6609         fork flag in the BusContext.
6610         (process_config_first_time_only): Added.  Contains the code
6611         (previously in bus_context_new) for setting up the BusContext from
6612         the BusConfigParser that should only be run the first time the
6613         config files are read.
6614         (process_config_every_time): Added.  Contains the code (previously
6615         in bus_context_new) for setting up the BusContext from the
6616         BusConfigParser that should be run every time the config files are
6617         read.
6618         (load_config): Added.  Builds a BusConfigParser from the config
6619         files and passes the resulting structure off to
6620         process_config_first_time_only (assuming this is the first time)
6621         and process_config_every_time.
6622         (bus_context_new): All of the config-related code has been moved
6623         to process_config_first_time_only and process_config_every_time.
6624         Now this function just does the non-config-related initializations
6625         and calls load_config.
6626         (bus_context_reload_config): Added.
6627
6628 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6629
6630         * bus/driver.c (bus_driver_handle_get_service_owner):
6631         implement a GetServiceOwner method.
6632         * doc/dbus-specification.xml: document it.
6633         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6634         
6635         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6636         implement, using the bus GetServiceOwner method.
6637
6638         * test/glib/test-dbus-glib.c:
6639         use dbus_gproxy_new_for_service_owner so that we can receive the
6640         signal. 
6641
6642 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6643
6644         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6645         dbus/dbus-message.c, dbus/dbus-protocol.h
6646         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6647
6648         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6649         dbus/dbus-message.c, dbus/dbus-protocol.h
6650         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6651
6652         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6653         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6654         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6655
6656         * doc/dbus-specification.xml (Header Fields Table):
6657         s/SERVICE/DESTINATION
6658         s/SENDER_SERVICE/SENDER
6659
6660
6661 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6662
6663         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6664         a few seconds.
6665
6666 2004-04-13  Michael Meeks  <michael@ximian.com>
6667
6668         * glib/dbus-gobject.c (handle_introspect): split out
6669         (introspect_properties): this.
6670         (handle_introspect): implement this.
6671
6672         * test/glib/Makefile.am: use the absolute path so the bus
6673         daemon's chdir ("/") doesn't kill us dead.
6674
6675         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6676
6677 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6678
6679         * bus/config-parser.c (struct BusConfigParser): Added
6680         included_files field.
6681         (seen_include): Added.  Checks whether or not a file has already
6682         been included by any parent BusConfigParser.
6683         (bus_config_parser_new): Copy the parent's included_files.
6684         (include_file): Track which files have been included, and fail on
6685         circular inclusions.
6686         (process_test_valid_subdir): Changed printf to report if we are
6687         testing valid or invalid conf files.
6688         (all_are_equiv): Changed printf to be a bit clearer about
6689         what we are actually doing.
6690         (bus_config_parser_test): Test invalid configuration files.
6691
6692 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6693
6694         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6695         argument.  If non-null, the newly-constructed BusConfigParser will
6696         be initialized with the parent's BusLimits instead of the default
6697         values.
6698         (include_file): When including a config file, pass in
6699         the current parser as the parent and then copy the BusLimits
6700         from the included BusConfigParser pack to the current parser.
6701         (process_test_valid_subdir): Renamed from process_test_subdir.
6702         (process_test_equiv_subdir): Added.  Walks through a directory,
6703         descending into each subdirectory and loading the config files
6704         it finds there.  If any subdirectory contains two config files
6705         that don't produce identical BusConfigParser structs, fail.
6706         For now, the BusConfigParser's BusPolicies are not compared.
6707         (bus_config_parser_test): Call both process_test_valid_subdir and
6708         process_test_equiv_subdir.
6709
6710         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6711         argument and pass it along to the call to bus_config_parser_new.
6712         Also made a few small changes to allow this code to compile.
6713
6714         * bus/config-loader-expat.c (bus_config_load): Take a parent
6715         argument and pass it along to the call to bus_config_parser_new.
6716
6717         * bus/bus.c (bus_context_new): Load the config file
6718         with a NULL parent argument.
6719
6720 2004-03-29  Michael Meeks  <michael@ximian.com>
6721
6722         * glib/dbus-gobject.c (introspect_properties): split
6723         out, fix mangled 'while' flow control.
6724         (introspect_signals): implement.
6725         (handle_introspect): update.
6726
6727 2004-03-29  Michael Meeks  <michael@ximian.com>
6728
6729         * glib/dbus-gobject.c (set_object_property): split out / 
6730         re-work, use the property type, and not the message type(!)
6731         (get_object_property): ditto.
6732
6733         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6734         (dbus_gvalue_marshal): make this code re-usable, needed
6735         for signals too, also on both proxy and server side.
6736         Re-write for more efficiency / readability.
6737
6738 2004-03-29  Michael Meeks  <michael@ximian.com>
6739
6740         * dbus/dbus-message.c
6741         (dbus_message_new_error_printf): impl.
6742
6743         * dbus/dbus-connection.c
6744         (dbus_connection_unregister_object_path): fix warning.
6745
6746         * configure.in: fix no-mono-installed situation.
6747
6748 2004-03-27  Havoc Pennington  <hp@redhat.com>
6749
6750         Patch from Timo Teräs:
6751         
6752         * tools/dbus-send.c (main): if --print-reply, assume type is
6753         method call; support boolean type args
6754         
6755         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6756         bunch of memleak and logic bugs
6757         
6758 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6759
6760         * mono/Arguments.cs:
6761         * mono/Introspector.cs:
6762         * mono/Handler.cs:
6763         * mono/InterfaceProxy.cs:
6764         * mono/Message.cs
6765         * mono/ProxyBuilder.cs:
6766         * mono/Service.cs:
6767         Added InterfaceProxy class to avoid building proxies for every
6768         object.
6769
6770         * dbus-message.h:
6771         * dbus-message.c (dbus_message_append_args_valist)
6772         (dbus_message_iter_get_object_path)
6773         (dbus_message_iter_get_object_path_array)
6774         (dbus_message_iter_append_object_path)
6775         (dbus_message_iter_append_object_path_array):
6776         Added object_path iter functions to handle OBJECT_PATH arguments
6777         
6778 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6779
6780         First checkin of mono bindings.
6781         * configure.in:
6782         * Makefile.am:
6783         Build stuff for the bindings
6784         * dbus-sharp.pc.in: Added for pkgconfig
6785         
6786 2004-03-21  Havoc Pennington  <hp@redhat.com>
6787
6788         * test/test-service.c (main): remove debug spew
6789
6790 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6791
6792         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6793         arrays
6794
6795         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6796         (dbus_message_iter_init_array_iterator)
6797         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6798         indicate whether the iterator is empty
6799
6800         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6801         warnings
6802
6803 2004-03-19  Havoc Pennington  <hp@redhat.com>
6804
6805         * NEWS: 0.21 updates
6806
6807         * configure.in: 0.21
6808
6809         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6810         
6811         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6812         you don't need pyrex to make dist
6813
6814         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6815         sources; run moc
6816         
6817 2004-03-18  Richard Hult  <richard@imendio.com>
6818
6819         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
6820         (dbus_message_set_auto_activation): Add doxygen docs.
6821
6822 2004-03-16  Richard Hult  <richard@imendio.com>
6823
6824         * bus/activation.c: (bus_activation_service_created),
6825         (bus_activation_send_pending_auto_activation_messages),
6826         (bus_activation_activate_service):
6827         * bus/activation.h:
6828         * bus/dispatch.c: (bus_dispatch),
6829         (check_nonexistent_service_auto_activation),
6830         (check_service_auto_activated),
6831         (check_segfault_service_auto_activation),
6832         (check_existent_service_auto_activation), (bus_dispatch_test):
6833         * bus/driver.c: (bus_driver_handle_activate_service):
6834         * bus/services.c: (bus_registry_acquire_service):
6835         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6836         (dbus_message_get_auto_activation):
6837         * dbus/dbus-message.h:
6838         * dbus/dbus-protocol.h: Implement auto-activation.
6839         
6840         * doc/dbus-specification.xml: Add auto-activation to the spec.
6841
6842 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6843
6844         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6845         fix a bug with CUSTOM types.
6846
6847         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6848         a unit test for this bug (used to fail).
6849
6850 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6851
6852         * bus/activation.c:
6853         (babysitter_watch_callback): notify all pending activations waiting for
6854           the same exec that the activation failed.
6855         (bus_activation_activate_service): shortcut the activation if we 
6856           already waiting for the same executable to start up.
6857
6858 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6859
6860         * bus/activation.c: 
6861         - Added service file reloading. 
6862           Each service files directory is kept in an hash table in 
6863           BusActivation and each BusActivationEntry knows what .service-file it
6864           was read from. So when you try to activate a service the bus will 
6865           check if it's been updated, removed or if new .service-files has 
6866           been installed.
6867         - Test code at the bottom for the service file reloading.
6868         * bus/test-main.c: (main):
6869         * bus/test.h:
6870         - added service reloading test.
6871         * dbus/dbus-sysdeps.c: 
6872         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6873
6874 2004-03-08  Michael Meeks  <michael@ximian.com>
6875
6876         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
6877         bail immediately if disconnected, to avoid busy loop.
6878
6879         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6880         cleanup cut/paste/inefficiency.
6881
6882 2004-03-01  David Zeuthen  <david@fubar.dk>
6883
6884         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6885         bug where args were used twice. This bug resulted in a segfault
6886         on a Debian/PPC system when starting the messagebus daemon. Include
6887         dbus-sysdeps.h for DBUS_VA_COPY
6888
6889         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6890
6891         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6892         appropriate va_copy implementation. From GLib
6893         
6894 2004-02-24  Joe Shaw  <joe@ximian.com>
6895
6896         * bus/services.c (bus_registry_acquire_service): We need to pass
6897         in the service name to dbus_set_error() to prevent a crash.
6898
6899 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6900
6901         * AUTHORS: Reveal my True identity.
6902
6903 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6904
6905         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6906         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6907
6908 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6909
6910         * doc/TODO: Added not about better error check of configuration files.
6911
6912 2003-12-02  Richard Hult  <richard@imendio.com>
6913
6914         * Update AFL version to 2.0 throughout the source files to reflect
6915         the update that was done a while ago.
6916
6917 2003-12-02  Richard Hult  <richard@imendio.com>
6918
6919         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6920         wrote_dict_key to FALSE on the iter that the dict is appended to,
6921         just like when appending other types. Fixes a bug where a dict
6922         couldn't be put inside a dict.
6923         (dbus_message_iter_append_dict_key): Fix typo in warning message.
6924         (message_iter_test, _dbus_message_test): Add test case for dict
6925         inside dict.
6926
6927 2003-12-01  David Zeuthen  <david@fubar.dk>
6928
6929         * python/dbus.py: Add the actual message when calling the reciever
6930         of a signal such that parameters can be inspected. Add the method
6931         remove_signal_receiver
6932         
6933 2003-11-26  Mikael Hallendal  <micke@imendio.com>
6934
6935         * bus/*.[ch]:
6936         * dbus/*.[ch]:
6937         * glib/*.[ch]: Made ref functions return the pointer
6938
6939 2003-11-25  Zack Rusin  <zack@kde.org>
6940
6941         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6942
6943         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
6944         wrappers,
6945
6946         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
6947         the Integrator and to better fit with the server,
6948
6949 2003-11-24  Zack Rusin  <zack@kde.org>
6950
6951         * qt/connection.h, qt/connection.cpp: removing initDbus method since
6952         the integrator handles it now
6953
6954         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6955         since QTimer wasn't really meant to be used the way DBusTimeout is
6956
6957 2003-11-24  Zack Rusin  <zack@kde.org>
6958
6959         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
6960         Integrator class which integrates D-BUS with the Qt event loop,
6961
6962         * qt/connection.h, qt/connection.cpp: Move all the code which
6963         was dealing with D-BUS integration to the Integrator class,
6964         and start using Integrator,
6965
6966 2003-11-23  Zack Rusin  <zack@kde.org>
6967
6968         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
6969         wrapper
6970
6971         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6972         switching namespaces to DBusQt, reworking the class,
6973
6974         * Makefile.cvs: switching dependencies so that it matches KDE 
6975         schematics,
6976         
6977         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
6978         the library
6979
6980 2003-11-19  Havoc Pennington  <hp@redhat.com>
6981
6982         * NEWS: update
6983
6984         * configure.in: bump version to 0.20
6985
6986         * configure.in (have_qt): add yet another place to look for qt
6987         (someone hand trolltech a .pc file...)
6988
6989 2003-11-01  Havoc Pennington  <hp@redhat.com>
6990
6991         * doc/dbus-specification.xml: add state machine docs on the auth
6992         protocol; just a first draft, I'm sure it's wrong.      
6993
6994 2003-10-28  David Zeuthen  <david@fubar.dk>
6995
6996         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6997         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6998         
6999 2003-10-28  Havoc Pennington  <hp@redhat.com>
7000
7001         * dbus/dbus-message.c (get_next_field): delete unused function
7002
7003 2003-10-28  Havoc Pennington  <hp@redhat.com>
7004
7005         * bus/expirelist.c (do_expiration_with_current_time): detect
7006         failure of the expire_func due to OOM
7007
7008         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7009
7010         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7011         NoReply error that's now created by the bus when the service exits
7012
7013 2003-10-28  Havoc Pennington  <hp@redhat.com>
7014
7015         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7016         tests for set_path, set_interface, set_member, etc.
7017
7018         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7019
7020         * dbus/dbus-message.c (set_string_field): always just delete and
7021         re-append the field; accept NULL for deletion
7022         (re_align_fields_recurse): reimplement
7023         
7024 2003-10-26  Havoc Pennington  <hp@redhat.com>
7025
7026         * dbus/dbus-connection.c: fix docs to properly describe the
7027         disconnected message
7028         (_dbus_connection_notify_disconnected): remove this function; 
7029         we can't synchronously add the disconnected message, we have to 
7030         do it after we've queued any remaining real messages
7031         (_dbus_connection_get_dispatch_status_unlocked): queue the
7032         disconnect message only if the transport has finished queueing all
7033         its real messages and is disconnected.
7034         (dbus_connection_disconnect): update the dispatch status here
7035
7036 2003-10-22  Havoc Pennington  <hp@redhat.com>
7037
7038         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7039
7040         * bus/connection.c (bus_transaction_send_from_driver): set the
7041         destination to the connection's base service
7042
7043 2003-10-20  Havoc Pennington  <hp@redhat.com>
7044
7045         hmm, make check is currently not passing.
7046         
7047         * doc/dbus-specification.xml: add requirement that custom type
7048         names follow the same rules as interface names.
7049
7050         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7051         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7052         'map'
7053
7054         * doc/dbus-specification.xml: update type codes to match
7055         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7056         CUSTOM. Add type OBJECT_PATH to the spec.
7057
7058 2003-10-17  Havoc Pennington  <hp@redhat.com>
7059
7060         * bus/driver.c (create_unique_client_name): use "." as separator
7061         in base service names instead of '-'
7062
7063         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7064         byte at the end of the string
7065
7066         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7067         optimization macros since string validation seems to be a slow
7068         point.
7069         
7070         * doc/dbus-specification.xml: restrict valid
7071         service/interface/member/error names. Add test suite code for the
7072         name validation.
7073
7074         * dbus/dbus-string.c: limit service/interface/member/error names 
7075         to [0-9][A-Z][a-z]_
7076
7077         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7078         format arg to verbose spew
7079
7080         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7081         memory, return instead of g_error
7082
7083         * test/test-service.c (path_message_func): support emitting a
7084         signal on request
7085
7086         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7087         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7088         assuming the activation bus was the session bus so that services
7089         started manually will still register.
7090         (init_connections_unlocked): fix so that in OOM situation we get
7091         the same semantics when retrying the function
7092         
7093         * test/test-service.c (main): change to use path registration, to
7094         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7095         than DBUS_BUS_SESSION
7096
7097 2003-10-16  Havoc Pennington  <hp@redhat.com>
7098
7099         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7100
7101         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7102         coverage of the tests
7103         (coverage-report.txt): don't move the .da and .bbg files around
7104
7105 2003-10-16  Havoc Pennington  <hp@redhat.com>
7106
7107         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7108         to put there
7109
7110 2003-10-16  Havoc Pennington  <hp@redhat.com>
7111
7112         * bus/connection.c (bus_pending_reply_expired): either cancel or
7113         execute, not both
7114         (bus_connections_check_reply): use unlink, not remove_link, as we
7115         don't want to free the link; fixes double free mess
7116
7117         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7118         where no reply was received
7119
7120         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7121         fix a refcount leak
7122
7123         * bus/signals.c (match_rule_matches): add special cases for the
7124         bus driver, so you can match on sender/destination for it.
7125
7126         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7127         DBUS_PRINT_BACKTRACE is set
7128
7129         * dbus/dbus-internals.c: add pid to assertion failure messages
7130
7131         * dbus/dbus-connection.c: add message type code to the debug spew
7132
7133         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7134         sender=foo not service=foo
7135
7136         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7137         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7138         DBUS_ACTIVATION_ADDRESS instead
7139
7140         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7141         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7142
7143         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7144         context struct
7145
7146         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7147         (dbus_message_iter_get_object_path_array): new function (half
7148         finished, disabled for the moment)
7149         
7150         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7151         DBUS_MESSAGE_TYPE_ERROR
7152
7153         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7154         avoid redirecting stderr to /dev/null
7155         (babysit): close stdin if not doing the "exit_with_session" thing
7156
7157         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7158         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7159         stdout/stdin, so things don't get confused
7160         
7161         * bus/system.conf.in: fix to allow replies, I modified .conf
7162         instead of .conf.in again.
7163
7164 2003-10-14  David Zeuthen  <david@fubar.dk>
7165
7166         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7167         argtype to arg_type when raising unknown arg type exception.
7168         Changed type list to reflect the changes in dbus-protocol.h so 
7169         the bindings actually work.
7170
7171 2003-10-14  Havoc Pennington  <hp@redhat.com>
7172
7173         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7174         to have a bug keeping it from outputting the .da files sometimes
7175         (string_get_string): don't append garbage nul bytes to the string.
7176
7177 2003-10-15  Seth Nickell  <seth@gnome.org>
7178
7179         * python/Makefile.am:
7180
7181         Include dbus_h_wrapper.h in the dist tarball.
7182
7183 2003-10-14  Havoc Pennington  <hp@redhat.com>
7184
7185         * bus/bus.c (bus_context_check_security_policy): revamp this to
7186         work more sanely with new policy-based requested reply setup
7187
7188         * bus/connection.c (bus_transaction_send_from_driver): set bus
7189         driver messages as no reply
7190
7191         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7192         requested_reply attribute on allow/deny rules
7193
7194         * bus/system.conf: add <allow requested_reply="true"/>
7195
7196         * bus/driver.c (bus_driver_handle_message): fix check for replies
7197         sent to the bus driver, which was backward. How did this ever work
7198         at all though? I think I'm missing something.
7199
7200         * dbus/dbus-message.c (decode_header_data): require error and
7201         method return messages to have a reply serial field to be valid
7202         (_dbus_message_loader_queue_messages): break up this function;
7203         validate that reply serial and plain serial are nonzero; 
7204         clean up the OOM/error handling.
7205         (get_uint_field): don't return -1 from this
7206         (dbus_message_create_header): fix signed/unsigned bug
7207
7208         * bus/connection.c (bus_connections_expect_reply): save serial of
7209         the incoming message, not reply serial
7210
7211 2003-10-14  Havoc Pennington  <hp@redhat.com>
7212
7213         * bus/connection.c: implement pending reply tracking using
7214         BusExpireList
7215
7216         * bus/bus.c (bus_context_check_security_policy): verify that a
7217         reply is pending in order to allow a reply to be sent. Deny 
7218         messages of unknown type.
7219
7220         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7221
7222         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7223         (bus_context_get_reply_timeout): new
7224
7225 2003-10-13  Seth Nickell  <seth@gnome.org>
7226
7227         * python/Makefile.am:
7228
7229         Pass "make distcheck": remove a couple files from DIST_FILES
7230         that weren't included in the final version.
7231
7232 2003-10-12  Havoc Pennington  <hp@pobox.com>
7233
7234         Added test code that 1) starts an actual bus daemon and 2) uses
7235         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7236         more testing possible, but this is the basic framework.
7237         
7238         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7239         empty proxy lists from the proxy list hash
7240
7241         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7242         couple of return_if_fail checks
7243
7244         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7245         to allocate, so everything is cleared to NULL as it should be.
7246
7247         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7248         source as data to dbus_connection_set_timeout_functions() as the 
7249         timeout functions expected
7250
7251         * test/glib/run-test.sh: add a little script to start up a message
7252         bus and run tests using it
7253
7254         * tools/dbus-launch.1: updates
7255
7256         * tools/dbus-launch.c (main): add --config-file option
7257
7258         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7259         that could never be reached.
7260
7261         * dbus/dbus-message.c (dbus_message_new_method_return) 
7262         (dbus_message_new_error, dbus_message_new_signal): set the
7263         no-reply-expected flag on all these. Redundant, but may
7264         as well be consistent.
7265
7266 2003-10-11  Havoc Pennington  <hp@pobox.com>
7267
7268         * test/decode-gcov.c (function_solve_graph): make broken block
7269         graph a nonfatal error since it seems to be broken. Need to debug
7270         this.
7271
7272         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7273         can't just check type > INVALID < LAST anymore
7274
7275         * dbus/dbus-message.c (dbus_message_get_signature): new function
7276         (dbus_message_has_signature): new function
7277         (struct DBusMessage): add signature field (right now it isn't sent
7278         over the wire, just generated on the fly)
7279         (dbus_message_copy): copy the signature, and init strings to
7280         proper length to avoid some reallocs
7281         (dbus_message_iter_init_array_iterator): return void, since it
7282         can't fail
7283         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7284         (_dbus_message_loader_queue_messages): add silly temporary hack to
7285         fill in message->signature on load
7286
7287         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7288         characters, so they are relatively human-readable.
7289
7290 2003-10-11  Havoc Pennington  <hp@pobox.com>
7291
7292         * dbus/dbus-message.c (_dbus_message_test): add more test
7293         coverage, but #if 0 for now since they uncover a bug 
7294         not fixed yet; I think in re_align_field_recurse()
7295         (re_align_field_recurse): add FIXME about broken assertion
7296
7297         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7298
7299         * bus/connection.c: share a couple code bits with expirelist.c
7300
7301         * bus/expirelist.h, bus/expirelist.c: implement a generic
7302         expire-items-after-N-seconds facility, was going to share between
7303         expiring connections and replies, decided not to use for expiring
7304         connections for now.
7305
7306         * COPYING: include AFL 2.0 (still need to change all the file headers)
7307
7308 2003-10-09  Havoc Pennington  <hp@redhat.com>
7309
7310         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7311         gcc 3.3. Not that we do anything about it yet.
7312
7313         * bus/signals.c (bus_match_rule_parse): impose max length on the
7314         match rule text
7315
7316         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7317
7318 2003-10-09  Havoc Pennington  <hp@redhat.com>
7319
7320         Make matching rules theoretically work (add parser).
7321         
7322         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7323         the case where destination is explicitly specified as bus driver
7324         and someone else is eavesdropping.
7325         
7326         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7327         definition of eavesdropping and assertion
7328
7329         * tools/dbus-send.c (main): use dbus_message_type_from_string
7330
7331         * bus/signals.c (bus_match_rule_parse): implement
7332
7333         * dbus/dbus-message.c (dbus_message_type_from_string): new
7334
7335         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7336
7337 2003-10-02  Havoc Pennington  <hp@pobox.com>
7338
7339         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7340         dbus_gproxy_oneway_call
7341
7342         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7343         (dbus_server_setup_with_g_main): fix to allow calling them more
7344         than once on the same args
7345         (dbus_bus_get_with_g_main): new function
7346
7347 2003-10-02  Havoc Pennington  <hp@redhat.com>
7348
7349         * doc/dbus-tutorial.xml: write some stuff
7350
7351 2003-09-29  Havoc Pennington  <hp@pobox.com>
7352
7353         * configure.in: split checks for Doxygen from XML docs, check for
7354         xmlto
7355
7356         * doc/Makefile.am: XML-ify all the docs, and add a blank
7357         dbus-tutorial.xml
7358
7359 2003-09-29  Havoc Pennington  <hp@pobox.com>
7360
7361         * Merge dbus-object-names branch. To see the entire patch 
7362         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7363         it's huuuuge though.
7364         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7365         
7366 2003-09-28  Havoc Pennington  <hp@pobox.com>
7367
7368         * HACKING: update to reflect new server
7369
7370 2003-09-26  Seth Nickell  <seth@gnome.org>
7371
7372         * python/dbus.py:
7373         * python/examples/example-signals.py:
7374
7375         Start implementing some notions of signals. The API
7376         is really terrible, but they sort of work (with the
7377         exception of being able to filter by service, and to
7378         transmit signals *as* a particular service). Need to
7379         figure out how to make messages come from the service
7380         we registered :-(
7381         
7382         * python/dbus_bindings.pyx.in:
7383
7384         Removed duplicate message_handler callbacks.
7385         
7386 2003-09-25  Havoc Pennington  <hp@redhat.com>
7387
7388         * bus/session.conf.in: fix my mess
7389
7390 2003-09-25  Havoc Pennington  <hp@pobox.com>
7391
7392         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7393
7394 2003-09-25  Seth Nickell  <seth@gnome.org>
7395
7396         * python/examples/example-service.py:
7397
7398         Johan notices complete wrong code in example-service, but
7399         completely wrong in a way that works exactly the same (!).
7400         Johan is confused, how could this possibly work? Example
7401         code fails to serve purpose of making things clear.
7402         Seth fixes.
7403
7404 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7405
7406         * doc/dbus-specification.sgml: don't require header fields
7407         to be 4-byte aligned and specify that fields should be
7408         distinguished from padding by the fact that zero is not
7409         a valid field name.
7410         
7411         * doc/TODO: remove re-alignment item and add item to doc
7412         the OBJECT_PATH type.
7413         
7414         * dbus/dbus-message.c:
7415         (HeaderField): rename the original member to value_offset
7416         and introduce a name_offset member to keep track of where
7417         the field actually begins.
7418         (adjust_field_offsets): remove.
7419         (append_int_field), (append_uint_field),
7420         (append_string_field): don't align the start of the header
7421         field to a 4-byte boundary.
7422         (get_next_field): impl finding the next marhsalled field
7423         after a given field.
7424         (re_align_field_recurse): impl re-aligning a number of
7425         already marshalled fields.
7426         (delete_field): impl deleting a field of any type and
7427         re-aligning any following fields.
7428         (delete_int_or_uint_field), (delete_string_field): remove.
7429         (set_int_field), (set_uint_field): no need to re-check
7430         that we have the correct type for the field.
7431         (set_string_field): ditto and impl re-aligning any
7432         following fields.
7433         (decode_header_data): update to take into account that
7434         the fields aren't 4-byte aligned any more and the new
7435         way to distinguish padding from header fields. Also,
7436         don't exit when there is too much header padding.
7437         (process_test_subdir): print the directory.
7438         (_dbus_message_test): add test to make sure a following
7439         field is re-aligned correctly after field deletion.
7440         
7441         * dbus/dbus-string.[ch]:
7442         (_dbus_string_insert_bytes): rename from insert_byte and
7443         allow the insert of multiple bytes.
7444         (_dbus_string_test): test inserting multiple bytes.
7445
7446         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7447         warning note to docs about having to re-align any
7448         marshalled values following the string.
7449         
7450         * dbus/dbus-message-builder.c:
7451         (append_string_field), (_dbus_message_data_load):
7452         don't align the header field.
7453         
7454         * dbus/dbus-auth.c: (process_test_subdir): print the
7455         directory.
7456         
7457         * test/break-loader.c: (randomly_add_one_byte): upd. for
7458         insert_byte change.
7459         
7460         * test/data/invalid-messages/bad-header-field-alignment.message:
7461         new test case.
7462         
7463         * test/data/valid-messages/unknown-header-field.message: shove
7464         a dict in the unknown field.
7465
7466 2003-09-25  Seth Nickell  <seth@gnome.org>
7467
7468         * python/dbus.py:
7469         * python/dbus_bindings.pyx.in:
7470
7471         Handle return values.
7472         
7473         * python/examples/example-client.py:
7474         * python/examples/example-service.py:
7475
7476         Pass back return values from the service to the client.
7477         
7478 2003-09-24  Seth Nickell  <seth@gnome.org>
7479
7480         * python/dbus.py:
7481
7482         Connect Object methods (when you are sharing an object) up... pass
7483         in a list of methods to be shared. Sharing all the methods just
7484         worked out too weird. You can now create nice Services over the
7485         DBus in Python. :-)
7486         
7487         * python/dbus_bindings.pyx.in:
7488
7489         Keep references to user_data tuples passed into C functions so 
7490         Python doesn't garbage collect on us.
7491
7492         Implement MethodReturn and Error subclasses of Message for creating
7493         DBusMessage's of those types.
7494         
7495         * python/examples/example-client.py:
7496         * python/examples/example-service.py:
7497
7498         Simple example code showing both how create DBus services and objects,
7499         and how to use them.
7500
7501 2003-09-23  Havoc Pennington  <hp@pobox.com>
7502
7503         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7504
7505 2003-09-23  Havoc Pennington  <hp@redhat.com>
7506
7507         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7508         (dbus_gproxy_disconnect_signal): implement
7509         (dbus_gproxy_manager_remove_signal_match): implement
7510         (dbus_gproxy_manager_add_signal_match): implement
7511         (dbus_gproxy_oneway_call): implement
7512
7513 2003-09-23  Havoc Pennington  <hp@pobox.com>
7514
7515         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7516         subclass. This means dropping the transparent thread safety of the
7517         proxy; you now need a separate proxy per-thread, or your own
7518         locking on the proxy. Probably right anyway.
7519         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7520
7521 2003-09-22  Havoc Pennington  <hp@redhat.com>
7522
7523         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7524
7525 2003-09-21  Seth Nickell  <seth@gnome.org>
7526
7527         First checkin of the Python bindings.
7528         
7529         * python/.cvsignore:
7530         * python/Makefile.am:
7531         * python/dbus_bindings.pyx.in:
7532         * python/dbus_h_wrapper.h:
7533
7534         Pieces for Pyrex to operate on, building a dbus_bindings.so
7535         python module for low-level access to the DBus APIs.
7536         
7537         * python/dbus.py:
7538
7539         High-level Python module for accessing DBus objects.
7540
7541         * configure.in:
7542         * Makefile.am:
7543
7544         Build stuff for the python bindings.
7545
7546         * acinclude.m4:
7547
7548         Extra macro needed for finding the Python C header files.
7549
7550 2003-09-21  Havoc Pennington  <hp@pobox.com>
7551
7552         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7553         implementing the proxy manager, didn't get very far.
7554
7555         * dbus/dbus-bus.c (dbus_bus_add_match): new
7556         (dbus_bus_remove_match): new
7557
7558         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7559         path_name argument; adjust the other not-yet-implemented 
7560         gproxy constructors to be what I think they should be.
7561
7562 2003-09-21  Havoc Pennington  <hp@pobox.com>
7563
7564         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7565         by default for message bus connections.
7566
7567         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7568         exit_on_disconnect flag is set and we process the disconnected
7569         signal.
7570         (dbus_connection_set_exit_on_disconnect): new function
7571
7572 2003-09-21  Havoc Pennington  <hp@pobox.com>
7573
7574         Get matching rules mostly working in the bus; only actually
7575         parsing the rule text remains. However, the client side of
7576         "signal connections" hasn't been started, this patch is only the
7577         bus side.
7578         
7579         * dbus/dispatch.c: fix for the matching rules changes
7580         
7581         * bus/driver.c (bus_driver_handle_remove_match)
7582         (bus_driver_handle_add_match): send an ack reply from these
7583         method calls
7584
7585         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7586         arguments, reported by Seth Nickell
7587
7588         * bus/config-parser.c (append_rule_from_element): support
7589         eavesdrop=true|false attribute on policies so match rules 
7590         can be prevented from snooping on the system bus.
7591
7592         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7593         and "destination" in attribute names; fix some docs bugs; 
7594         add eavesdrop=true|false attribute
7595
7596         * bus/driver.c (bus_driver_handle_add_match)
7597         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7598         messages
7599
7600         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7601         rid of broadcast service concept, signals are just always broadcast
7602
7603         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7604         mostly implement matching rules stuff (currently only exposed as signal
7605         connections)
7606
7607 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7608
7609         * doc/dbus-specification.sgml: Change the header field name
7610         to be an enum and update the rest of the spec to reference
7611         the fields using the conventinal name.
7612
7613         * dbus/dbus-protocol.h: update to reflect the spec.
7614
7615         * doc/TODO: add item to remove the 4 byte alignment requirement.
7616         
7617         * dbus/dbus-message.c: Remove the code to generalise the
7618         header/body length and serial number header fields as named
7619         header fields so we can reference field names using the 
7620         protocol values.
7621         (append_int_field), (append_uint_field), (append_string_field):
7622         Append the field name as a byte rather than four chars.
7623         (delete_int_or_uint_field), (delete_string_field): reflect the
7624         fact that the field name and typecode now occupy 4 bytes instead
7625         of 8.
7626         (decode_string_field), (decode_header_data): update to reflect
7627         protocol changes and move the field specific encoding from
7628         decode_string_field() back into decode_header_data().
7629         
7630         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7631         Add utility to aid debugging.
7632         
7633         * dbus/dbus-message-builder.c:
7634         (append_string_field), (_dbus_message_data_load): Update to
7635         reflect protocol changes; Change the FIELD_NAME directive
7636         to HEADER_FIELD and allow it to take the field's conventional
7637         name rather than the actual value.
7638         
7639         * test/data/*/*.message: Update to use HEADER_FIELD instead
7640         of FIELD_NAME; Always align the header on an 8 byte boundary
7641         *before* updating the header length.
7642
7643 2003-09-15  Havoc Pennington  <hp@pobox.com>
7644
7645         * dbus/dbus-pending-call.c: add the get/set object data
7646         boilerplate as for DBusConnection, etc. Use generic object data
7647         for the notify callback.
7648
7649         * glib/dbus-gparser.c (parse_node): parse child nodes
7650
7651         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7652         
7653         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7654         contain functions shared between the convenience lib and the
7655         installed lib
7656
7657         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7658         -export-symbols-regex to the GLib library
7659
7660         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7661         fix the locking in here, and add a default handler for
7662         Introspect() that just returns sub-nodes.
7663
7664 2003-09-14  Havoc Pennington  <hp@pobox.com>
7665
7666         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7667         rather than gfoo consistent
7668
7669         * glib/dbus-gproxy.h: delete for now, move contents to
7670         dbus-glib.h, because the include files don't work right since we
7671         aren't in the dbus/ subdir.
7672         
7673         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7674         (dbus_gproxy_end_call): finish
7675         (dbus_gproxy_begin_call): finish
7676
7677         * glib/dbus-gmain.c (dbus_set_g_error): new
7678
7679         * glib/dbus-gobject.c (handle_introspect): include information
7680         about child nodes in the introspection
7681
7682         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7683         function to help in implementation of introspection
7684
7685         * dbus/dbus-object-tree.c
7686         (_dbus_object_tree_list_registered_and_unlock): new function
7687
7688 2003-09-12  Havoc Pennington  <hp@pobox.com>
7689
7690         * glib/dbus-gidl.h: add common base class for all the foo_info
7691         types
7692
7693         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7694         similar to kdcop
7695
7696         * test/Makefile.am: try test srcdir -ef . in addition to test
7697         srcdir = ., one of them should work (yeah lame)
7698         
7699         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7700         library
7701         
7702         * glib/dbus-gparser.h: make description_load routines return
7703         NodeInfo* not Parser*
7704
7705         * Makefile.am (SUBDIRS): build test dir after all library dirs
7706
7707         * configure.in: add GTK+ detection
7708
7709 2003-09-07  Havoc Pennington  <hp@pobox.com>
7710
7711         * Make Doxygen contented.
7712
7713 2003-09-07  Havoc Pennington  <hp@pobox.com>
7714
7715         * doc/dbus-specification.sgml: more updates
7716
7717 2003-09-06  Havoc Pennington  <hp@pobox.com>
7718
7719         * doc/dbus-specification.sgml: partial updates
7720
7721         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7722         zillionth time; hopefully I edited the right file this time.
7723
7724         * bus/config-parser.c (append_rule_from_element): support
7725         send_type, send_path, receive_type, receive_path
7726
7727         * bus/policy.c: add message type and path to the list of things
7728         that can be "firewalled"
7729
7730 2003-09-06  Havoc Pennington  <hp@pobox.com>
7731
7732         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7733         (dbus_connection_register_object_path): make this not handle
7734         messages to paths below the given path
7735
7736 2003-09-03  Havoc Pennington  <hp@pobox.com>
7737
7738         * test/glib/Makefile.am: add this with random glib-linked test
7739         programs
7740
7741         * glib/Makefile.am: remove the random test programs from here,
7742         leave only the unit tests
7743
7744         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7745         uscore/javacaps conversion, and fix     
7746         (get_object_property, set_object_property): change to .NET
7747         convention for mapping props to methods, set_FooBar/get_FooBar, 
7748         since one language has such a convention we may as well copy it. 
7749         Plus real methods in either getFooBar or get_foo_bar style won't 
7750         collide with this convention.
7751
7752 2003-09-01  Havoc Pennington  <hp@pobox.com>
7753
7754         * glib/dbus-gparser.c: implement
7755
7756         * glib/dbus-gobject.c: start implementing skeletons support
7757
7758         * configure.in: when disabling checks/assert, also define
7759         G_DISABLE_ASSERT and G_DISABLE_CHECKS
7760
7761 2003-09-01  Havoc Pennington  <hp@pobox.com>
7762
7763         * glib/Makefile.am: rearrange a bunch of files and get "make
7764         check" framework set up
7765
7766 2003-08-31  Havoc Pennington  <hp@pobox.com>
7767
7768         * fix build with --disable-tests
7769
7770 2003-08-30  Havoc Pennington  <hp@pobox.com>
7771
7772         * dbus/dbus-connection.c: purge DBusMessageHandler
7773
7774         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
7775         use callbacks everywhere
7776
7777 2003-08-30  Havoc Pennington  <hp@pobox.com>
7778
7779         * test/data/valid-config-files/system.d/test.conf: change to 
7780         root for the user so warnings don't get printed
7781
7782         * dbus/dbus-message.c: add dbus_message_get_path,
7783         dbus_message_set_path
7784         
7785         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7786         dispatching to a path
7787
7788         * dbus/dbus-string.c (_dbus_string_validate_path): add
7789
7790         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7791         (_dbus_marshal_object_path): implement
7792
7793         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
7794         to contain the path to the target object
7795         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7796         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7797
7798 2003-08-30  Havoc Pennington  <hp@pobox.com>
7799
7800         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7801
7802 2003-08-29  Havoc Pennington  <hp@pobox.com>
7803
7804         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7805         registered
7806         (struct DBusObjectSubtree): shrink this
7807         a lot, since we may have a lot of them
7808         (_dbus_object_tree_free_all_unlocked): implement
7809         (_dbus_object_tree_dispatch_and_unlock): implement
7810
7811 2003-08-29  Havoc Pennington  <hp@pobox.com>
7812
7813         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7814
7815 2003-08-28  Havoc Pennington  <hp@pobox.com>
7816
7817         purge DBusObjectID
7818         
7819         * dbus/dbus-connection.c: port to no ObjectID, create a
7820         DBusObjectTree, rename ObjectTree to ObjectPath in public API
7821
7822         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
7823         everything except UnregisterFunction and MessageFunction
7824         
7825         * dbus/dbus-marshal.c: port away from DBusObjectID, 
7826         add DBUS_TYPE_OBJECT_PATH
7827         
7828         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
7829         dbus/dbus-objectid.[hc]: remove these, we are moving to 
7830         path-based object IDs
7831
7832 2003-08-25  Havoc Pennington  <hp@pobox.com>
7833
7834         Just noticed that dbus_message_test is hosed, I wonder when I
7835         broke that. I thought make check was passing earlier...
7836         
7837         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
7838         container tree, will replace most of dbus-object-registry
7839
7840         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7841         screwup
7842
7843 2003-08-19  Havoc Pennington  <hp@pobox.com>
7844
7845         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7846         (dbus_message_is_error): fix this function
7847
7848         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7849         match
7850
7851         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7852         reflect clarified man page
7853         (bus_client_policy_check_can_send): ditto
7854         
7855         * bus/session.conf.in: fixup
7856
7857         * bus/system.conf.in: fixup
7858
7859 2003-08-18  Havoc Pennington  <hp@redhat.com>
7860
7861         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7862
7863         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7864         dumb bug created earlier (wrong order of args to
7865         decode_header_data())
7866         
7867         * tools/dbus-send.c: port
7868
7869         * tools/dbus-print-message.c (print_message): port
7870
7871         * test/data/*messages: port all messages over
7872         
7873         * dbus/dbus-message-builder.c: support including 
7874         message type
7875         
7876         * bus/driver.c: port over
7877         
7878         * bus/dispatch.c: port over to new stuff
7879
7880         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7881         rename disconnect signal to "Disconnected"
7882
7883 2003-08-17  Havoc Pennington  <hp@pobox.com>
7884
7885         This doesn't compile yet, but syncing up so I can hack on it from
7886         work. What are branches for if not broken code? ;-)
7887         
7888         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7889         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7890         DBUS_HEADER_FIELD_ERROR_NAME
7891         
7892         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7893         for the interface+member pairs
7894         (string_hash): change to use g_str_hash algorithm
7895         (find_direct_function, find_string_function): refactor these to
7896         share most code.
7897         
7898         * dbus/dbus-message.c: port all of this over to support 
7899         interface/member fields instead of name field
7900
7901         * dbus/dbus-object-registry.c: port over
7902         
7903         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7904         from _dbus_string_validate_name
7905
7906         * bus/dbus-daemon-1.1: change file format for the 
7907         <deny>/<allow> stuff to match new message naming scheme
7908
7909         * bus/policy.c: port over
7910
7911         * bus/config-parser.c: parse new format
7912         
7913 2003-08-16  Havoc Pennington  <hp@pobox.com>
7914
7915         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7916         broken assertion
7917
7918         * glib/dbus-gproxy.c: some hacking
7919
7920 2003-08-15  Havoc Pennington  <hp@redhat.com>
7921
7922         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7923
7924         * dbus/dbus-connection.c
7925         (dbus_connection_send_with_reply_and_block): factor out internals;
7926         change to convert any error replies to DBusError instead of 
7927         returning them as a message
7928
7929 2003-08-15  Havoc Pennington  <hp@pobox.com>
7930
7931         * dbus/dbus-connection.c, 
7932         dbus/dbus-pending-call.c: Finish the pending call stuff
7933
7934 2003-08-14  Havoc Pennington  <hp@redhat.com>
7935
7936         * dbus/dbus-pending-call.c: start on new object that will replace
7937         DBusMessageHandler and ReplyHandlerData for tracking outstanding
7938         replies
7939
7940         * dbus/dbus-gproxy.c: start on proxy object used to communicate
7941         with remote interfaces
7942
7943         * dbus/dbus-gidl.c: do the boring boilerplate in here
7944         
7945 2003-08-12  Havoc Pennington  <hp@pobox.com>
7946
7947         * bus/dispatch.c (bus_dispatch): make this return proper 
7948         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7949
7950         * dbus/dbus-errors.c (dbus_set_error): use
7951         _dbus_string_append_printf_valist
7952
7953         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7954         (_dbus_string_append_printf): new
7955
7956         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7957         UNKNOWN_METHOD
7958
7959         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7960         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7961         message is unhandled.
7962
7963 2003-08-11  Havoc Pennington  <hp@pobox.com>
7964
7965         * bus/test.c (client_disconnect_handler): change to return
7966         HANDLED (would have been REMOVE_MESSAGE)
7967
7968         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7969         HANDLED/NOT_YET_HANDLED instead of
7970         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
7971         should be used.
7972
7973 2003-08-10  Havoc Pennington  <hp@pobox.com>
7974
7975         * tools/dbus-send.c (main): add --type argument, for now
7976         supporting only method_call and signal types.
7977
7978         * tools/dbus-print-message.c: print message type
7979
7980         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7981         init connection->objects
7982
7983         * doc/dbus-specification.sgml: fix sgml
7984
7985         * bus/*.c: port over to object-instance API changes
7986
7987         * test/test-service.c: ditto
7988         
7989         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7990         name, we will have to fix up the rest of the code to also handle
7991         this
7992         (dbus_message_new): generic message-creation call
7993         (set_string_field): allow appending name field
7994
7995 2003-08-06  Havoc Pennington  <hp@pobox.com>
7996
7997         * dbus/dbus-object-registry.c: implement signal connection 
7998         and dispatch
7999
8000         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8001
8002         * dbus/dbus-internals.c (_dbus_memdup): new function
8003
8004 2003-08-02  Havoc Pennington  <hp@pobox.com>
8005
8006         * dbus/dbus-message.c (dbus_message_get_no_reply)
8007         (dbus_message_set_no_reply): add these and remove
8008         set_is_error/get_is_error
8009
8010         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8011         remove the ERROR flag, since there's now an ERROR type
8012
8013 2003-08-01  Havoc Pennington  <hp@pobox.com>
8014
8015         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8016         implement
8017
8018         * dbus/dbus-message.c (dbus_message_get_type): new function
8019
8020         * doc/dbus-specification.sgml: add "type" byte to messages
8021
8022 2003-08-01  Havoc Pennington  <hp@pobox.com>
8023
8024         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8025         a message type enum to distinguish kinds of message
8026         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8027         that need not be replied to
8028
8029 2003-08-01  Havoc Pennington  <hp@pobox.com>
8030
8031         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8032         (unpack_8_octets): fix no-64-bit-int bug
8033
8034         * dbus/dbus-object-registry.c (validate_id): validate the 
8035         connection ID bits, not just the instance ID.
8036
8037         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8038         the connection-global 33 bits of the object ID
8039
8040         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8041         object ID in the new way
8042
8043         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8044         define server/client/instance bits.
8045
8046 2003-07-30  Havoc Pennington  <hp@pobox.com>
8047
8048         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8049         build
8050
8051 2003-07-13  Havoc Pennington  <hp@pobox.com>
8052
8053         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8054         fields to DBusObjectVTable and DBusObjectInfo
8055
8056 2003-07-12  Havoc Pennington  <hp@pobox.com>
8057
8058         * dbus/dbus-object-registry.c: implement unit test,
8059         fix bugs discovered in process
8060
8061         * dbus/dbus-connection.c: remove handler_table and
8062         register_handler(), add DBusObjectRegistry usage
8063
8064         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8065         (dbus_object_id_set_null): new functions
8066
8067 2003-07-08  Havoc Pennington  <hp@pobox.com>
8068
8069         * dbus/dbus-object.c: implement some of this
8070
8071         * dbus/dbus-object-registry.c
8072         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8073         param
8074         (_dbus_object_registry_new): handle OOM
8075
8076 2003-07-08  Havoc Pennington  <hp@pobox.com>
8077
8078         * dbus/dbus-object.h: sketch out an API for registering objects
8079         with a connection, that allows us to use as little as 24 bytes
8080         per object and lets application code represent an object in 
8081         any conceivable way.
8082
8083         * dbus/dbus-object-registry.c: implement the hard bits of the
8084         DBusConnection aspect of object API. Not yet wired up.
8085         
8086 2003-07-06  Havoc Pennington  <hp@pobox.com>
8087
8088         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8089         (_dbus_marshal_object_id): new
8090         (_dbus_demarshal_object_id): new
8091         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8092         consolidate identical switch cases. Don't conditionalize handling
8093         of DBUS_TYPE_UINT64, need to handle the type always.
8094         (_dbus_marshal_validate_arg): consolidate identical cases, and
8095         handle DBUS_TYPE_OBJECT_ID
8096
8097         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8098
8099         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8100
8101 2003-09-28  Havoc Pennington  <hp@pobox.com>
8102
8103         * real 0.13 release
8104
8105 2003-09-28  Havoc Pennington  <hp@pobox.com>
8106
8107         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8108         to work with Debian db2html
8109
8110 2003-09-28  Havoc Pennington  <hp@pobox.com>
8111
8112         * configure.in: 0.13
8113
8114         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8115         stylesheet-images for benefit of Debian
8116         
8117         Change back to using filesystem-linked sockets for the system
8118         bus, so only root can create the default system bus address.
8119         
8120         * bus/system.conf.in: change to use
8121         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8122
8123         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8124         from here.
8125
8126         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8127         here, and AC_DEFINE DBUS_SYSTEM_PATH
8128
8129 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8130
8131         * doc/TODO:
8132         * doc/busconfig.dtd:
8133         Add busconfig DTD.
8134         
8135 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8136
8137         * doc/dbus-specification.sgml:
8138         Add activation reply values.
8139         
8140 2003-08-05  Havoc Pennington  <hp@redhat.com>
8141
8142         * configure.in: 0.12
8143
8144 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8145
8146         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8147         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8148         (add_watch), (remove_watch), (create_source):
8149         Refcount fds, fixes some reentrancy issues.
8150         
8151 2003-07-30  Havoc Pennington  <hp@redhat.com>
8152
8153         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8154         bus address to be abstract if we have abstract sockets
8155
8156         * NEWS: update
8157
8158 2003-07-28  Havoc Pennington  <hp@redhat.com>
8159
8160         * bus/messagebus.in: fix to avoid processname/servicename 
8161         confusion, from Michael Kearey
8162         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8163         
8164 2003-07-23  Havoc Pennington  <hp@pobox.com>
8165
8166         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8167         fix from Andy Hanton to remove broken "+1"
8168
8169 2003-07-16  Havoc Pennington  <hp@pobox.com>
8170
8171         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8172         babysitter process, as suggested by Thomas Leonard, so 
8173         an "eval `dbus-launch --exit-with-session`" will actually 
8174         return
8175
8176 2003-07-16  Havoc Pennington  <hp@pobox.com>
8177
8178         * configure.in: print out EXPANDED_* variables in the summary at
8179         the end; clean up the code that computes EXPANDED_ variables and
8180         get the ones using exec_prefix right. Should make things work
8181         when you build without --prefix
8182
8183 2003-06-29  Havoc Pennington  <hp@pobox.com>
8184
8185         * mono/Test.cs (class Test): fire up a main loop and run it
8186
8187         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8188         done once, the app has to do it
8189
8190 2003-06-26  Havoc Pennington  <hp@pobox.com>
8191
8192         * mono/Connection.cs: set up connection with the glib main loop
8193
8194 2003-07-01  Havoc Pennington  <hp@redhat.com>
8195
8196         * doc/dbus-specification.sgml: clarify the format of a type code,
8197         change suggested by Jim Blandy
8198
8199 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8200
8201         * doc/Makefile.am:
8202         * tools/Makefile.am: Don't assume srcdir == builddir.
8203
8204         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8205         the allocated block.
8206         (_dbus_memory_test): New function.
8207         * dbus/dbus-test.h: Add _dbus_memory_test ().
8208         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8209
8210         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8211         of %c%c%c%c.
8212         (dbus_message_new): Remove obsolete @todo.
8213
8214         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8215         (_dbus_marshal_set_uint64): Fix comment.
8216
8217         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8218         hardcode FIELD_REPLY_SERIAL.
8219
8220         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8221         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8222
8223         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8224         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8225
8226 2003-06-24  Havoc Pennington  <hp@pobox.com>
8227
8228         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8229
8230 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8231
8232         * configure.in:
8233         * gcj/.cvsignore:
8234         * gcj/Hello.java:
8235         * gcj/Makefile.am:
8236         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8237         * gcj/org/.cvsignore:
8238         * gcj/org/Makefile.am:
8239         * gcj/org/freedesktop/.cvsignore:
8240         * gcj/org/freedesktop/Makefile.am:
8241         * gcj/org/freedesktop/dbus/.cvsignore:
8242         * gcj/org/freedesktop/dbus/Makefile.am:
8243         * gcj/org/freedesktop/dbus/Message.java: (Message),
8244         (Message.Message):
8245         * gcj/org/freedesktop/dbus/natMessage.cc:
8246         Fix the build system.
8247
8248 2003-06-22  Havoc Pennington  <hp@pobox.com>
8249
8250         * mono/Connection.cs: add more bindings
8251
8252         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8253         more than once.
8254
8255 2003-06-22  Havoc Pennington  <hp@pobox.com>
8256
8257         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8258         Start wrapping more stuff.
8259
8260 2003-06-22  Havoc Pennington  <hp@pobox.com>
8261
8262         * mono/Message.cs: implement Message.Wrap() that ensures we only
8263         have a single C# wrapper per DBusMessage, assuming it works which
8264         it probably doesn't.
8265
8266         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8267         (dbus_message_free_data_slot): new
8268         (dbus_message_set_data): new
8269         (dbus_message_get_data): new
8270
8271 2003-06-22  Havoc Pennington  <hp@pobox.com>
8272
8273         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8274         (_dbus_data_slot_allocator_alloc): rework these to keep a
8275         reference count on each slot and automatically manage a global
8276         slot ID variable passed in by address
8277
8278         * bus/bus.c: convert to new dataslot API
8279
8280         * dbus/dbus-bus.c: convert to new dataslot API
8281
8282         * dbus/dbus-connection.c: convert to new dataslot API
8283
8284         * dbus/dbus-server.c: convert to new dataslot API
8285
8286         * glib/dbus-gmain.c: ditto
8287
8288         * bus/test.c: ditto
8289
8290         * bus/connection.c: ditto
8291
8292 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8293
8294         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8295         after the gcj checks so that the correct configuration tags
8296         will be added to libtool.
8297
8298         * dbus-glib-1.pc.in: No need to specify any includes since
8299         dbus-1.pc.in has those.
8300
8301 2003-06-22  Havoc Pennington  <hp@pobox.com>
8302
8303         * mono/*, gcj/*, configure.in, Makefile.am:
8304         Check in makefiles and subdirs for mono and gcj bindings.
8305         Neither binding actually exists, just trying to get through
8306         all the build and other boring bits.
8307
8308 2003-06-21  Philip Blundell  <philb@gnu.org>
8309
8310         * tools/dbus-monitor.1: Updated.
8311
8312         * tools/dbus-send.1: Likewise.
8313
8314 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8315
8316         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8317         for hangup and error after checking read so we won't discard
8318         pending data if both hangup and read are set.
8319
8320 2003-06-19  Philip Blundell  <philb@gnu.org>
8321
8322         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8323
8324         * tools/dbus-send.c: Accept both --system and --session.
8325
8326         * tools/dbus-monitor.c: Same here.
8327
8328 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8329
8330         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8331         from C++ (Patch by Miloslav Trmac).
8332
8333 2003-06-15  Joe Shaw  <joe@assbarn.com>
8334
8335         * configure.in: Check for socklen_t.
8336
8337         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8338
8339         * test/test-segfault.c: Add #include <sys/time.h>
8340
8341         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8342         dbus-launch needs it.
8343
8344 2003-06-09  Havoc Pennington  <hp@redhat.com>
8345
8346         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8347         SUN_LEN, it breaks abstract socket usage
8348
8349         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8350         starts of lines.
8351
8352 2003-06-04  Havoc Pennington  <hp@pobox.com>
8353
8354         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8355         using unix:abstract=/foo, and when listening in a tmpdir
8356         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8357
8358         * dbus/dbus-transport.c (_dbus_transport_open): support
8359         unix:abstract=/foo
8360
8361         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8362         support abstract sockets
8363
8364         * dbus/dbus-transport-unix.c
8365         (_dbus_transport_new_for_domain_socket): support abstract sockets
8366
8367         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8368         toggle as an argument, implement abstract namespace support
8369         (_dbus_listen_unix_socket): ditto
8370
8371         * configure.in: add --enable-abstract-sockets and implement
8372         a configure check for autodetection of the right value.
8373
8374 2003-06-01  Havoc Pennington  <hp@pobox.com>
8375
8376         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8377         in /tmp (though on Linux this will end up being useless,
8378         when we add abstract namespace support)
8379
8380         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8381         subst'ing it
8382
8383 2003-05-28  Colin Walters  <walters@verbum.org>
8384
8385         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8386
8387 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8388
8389         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8390
8391 2003-05-17  Colin Walters  <walters@gnu.org>
8392
8393         * tools/dbus-send.c: Don't exit with an error code if --help was
8394         passed.  Default to using the session bus instead of the system
8395         one.
8396
8397         * tools/dbus-launch.c: Ditto.
8398
8399         * tools/dbus-monitor.c: Ditto.
8400
8401         * tools/dbus-send.1: Update with new arguments.
8402
8403         * tools/dbus-launch.c: Emit code to export variables.  New
8404         arguments -s and -c to specify shell syntax, and a bit of code to
8405         autodetect syntax.  Also, allow specifying a program to run.
8406
8407         * tools/dbus-launch.1: Update with new arguments.
8408
8409         * tools/dbus-send.1: Ditto.
8410
8411         * tools/dbus-monitor.1: Ditto.
8412
8413 2003-05-17  Havoc Pennington  <hp@pobox.com>
8414
8415         * bus/config-parser.c (merge_included): merge in policies from
8416         child configuration file.
8417
8418         * bus/policy.c (bus_policy_merge): function to merge two policies
8419         together
8420
8421 2003-05-16  Havoc Pennington  <hp@redhat.com>
8422
8423         * dbus/dbus-connection.c: disable verbose lock spew
8424
8425         * tools/dbus-send.c: add --print-reply command line option
8426
8427         * tools/dbus-print-message.h (print_message): new util function
8428         shared by dbus-send and dbus-monitor
8429
8430         * tools/dbus-monitor.c (handler_func): exit on disconnect
8431
8432         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8433         disconnected, don't try to use the read_watch
8434
8435         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8436         so we can find this bug more easily
8437
8438 2003-05-16  Havoc Pennington  <hp@redhat.com>
8439
8440         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8441         NULL as DBusHashTable is annoyingly likely to do.
8442
8443 2003-05-16  Colin Walters  <walters@verbum.org>
8444
8445         * tools/dbus-monitor.c: Add --session argument and usage()
8446         function.
8447
8448         * tools/dbus-monitor.1: Update with new --session arg.
8449
8450         * bus/Makefile.am (install-data-hook): Create
8451         $(libdir)/dbus-1.0/services so that the session bus is happy.
8452
8453 2003-05-15  Havoc Pennington  <hp@redhat.com>
8454
8455         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8456         on non-x86. ifdef's are evil.
8457
8458 2003-05-15  Havoc Pennington  <hp@redhat.com>
8459
8460         * configure.in: 0.11
8461
8462         * NEWS: update
8463
8464         * bus/Makefile.am (initddir): apparently we are supposed to put
8465         init scripts in /etc/rc.d/init.d not /etc/init.d
8466
8467         * bus/Makefile.am: remove the "you must --enable-tests to make
8468         check" as it broke distcheck
8469
8470         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8471
8472 2003-05-13  James Willcox  <jwillcox@gnome.org>
8473
8474         * configure.in:
8475         * bus/activation.c: (bus_activation_service_created),
8476         (bus_activation_activate_service):
8477         * bus/driver.c: (bus_driver_send_service_deleted),
8478         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8479         (bus_driver_send_service_acquired),
8480         (bus_driver_send_welcome_message),
8481         (bus_driver_handle_list_services):
8482         * bus/session.conf.in:
8483         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8484         (dbus_bus_service_exists), (dbus_bus_activate_service):
8485         * dbus/dbus-bus.h:
8486
8487         Add some convenience API which lets you activate a service, and did a
8488         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8489         and dbus_message_get_args()
8490
8491 2003-05-11  Havoc Pennington  <hp@pobox.com>
8492
8493         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8494         calling _dbus_marshal_validate_arg() for every byte in a byte
8495         array, etc.
8496
8497         * dbus/dbus-message-handler.c: use atomic reference counting to
8498         reduce number of locks slightly; the global lock in here sucks
8499
8500         * dbus/dbus-connection.c
8501         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8502         update_dispatch_status that can be called with lock held; then use
8503         in a couple places to reduce locking/unlocking
8504         (dbus_connection_send): hold the lock over the whole function
8505         instead of acquiring it twice.
8506
8507         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8508
8509         * bus/connection.c (bus_connections_setup_connection): fix access
8510         to already-freed memory.
8511
8512         * dbus/dbus-connection.c: keep a little cache of linked list
8513         nodes, to avoid using the global linked list alloc lock in the
8514         normal send-message case. Instead we just use the connection lock
8515         that we already have to take.
8516
8517         * dbus/dbus-list.c (_dbus_list_find_last): new function
8518
8519         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8520         change to use a struct for the atomic type; fix docs,
8521         they return value before increment, not after increment.
8522
8523         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8524         (_dbus_string_append_8_aligned): new functions to try to
8525         microoptimize this operation.
8526         (reallocate_for_length): break this out of set_length(), to
8527         improve profile info, and also so we can consider inlining the
8528         set_length() part.
8529
8530         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8531         strings with some preallocation, cuts down on our calls to realloc
8532         a fair bit. Though if we can get the "move entire string to empty
8533         string" optimization below to kick in here, it would be better.
8534
8535         * dbus/dbus-string.c (_dbus_string_move): just call
8536         _dbus_string_move_len
8537         (_dbus_string_move_len): add a special case for moving
8538         an entire string into an empty string; we can just
8539         swap the string data instead of doing any reallocs.
8540         (_dbus_string_init_preallocated): new function
8541
8542 2003-05-11  Havoc Pennington  <hp@pobox.com>
8543
8544         Write a "test-profile" that does echo client-server with threads;
8545         profile reveals lock contention, memcpy/realloc of buffers, and
8546         UTF-8 validation as hot spots. 20% of lock contention eliminated
8547         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8548         contention is global mempool locks for GList and DBusList.
8549
8550         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8551         x86 implementation
8552
8553         * dbus/dbus-connection.c (struct DBusConnection): use
8554         dbus_atomic_t for the reference count
8555
8556         * dbus/dbus-message.c (struct DBusMessage): declare
8557         dbus_atomic_t values as volatile
8558
8559         * configure.in: code to detect ability to use atomic integer
8560         operations in assembly, from GLib patch
8561
8562         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8563         time, tired of it being wrong in threads and forked processes
8564
8565         * glib/test-profile.c: a little program to bounce messages back
8566         and forth between threads and eat CPU
8567
8568         * dbus/dbus-connection.c: add debug spew macros for debugging
8569         thread locks; include config.h at top; fix deadlock in
8570         dbus_connection_flush()
8571
8572 2003-05-08  Havoc Pennington  <hp@pobox.com>
8573
8574         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8575         data from getting written, and there wasn't a good reason to
8576         use _exit really.
8577
8578         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8579         dbus_verbose lines in test coverage
8580         (main): add list of functions sorted by # of untested blocks
8581         to the coverage report
8582
8583         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8584
8585         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8586
8587         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8588         extend test coverage
8589
8590         * test/data/auth/cancel.auth-script: test canceling an
8591         authentication
8592
8593         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8594         aren't used. in CVS history if we end up needing them.
8595
8596 2003-05-04  Havoc Pennington  <hp@pobox.com>
8597
8598         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8599         unit test
8600
8601         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8602         function, which assumed length was in # of strings, not bytes
8603
8604         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8605         missing coverage
8606
8607         * dbus/dbus-connection.c
8608         (_dbus_connection_queue_received_message): disable function for
8609         now, we are only using it in test mode
8610
8611         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8612         remove a mistaken FIXME
8613
8614 2003-05-04  Havoc Pennington  <hp@pobox.com>
8615
8616         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8617         unlock mutex on successful return, patch from Anders Gustafsson
8618
8619 2003-05-04  Havoc Pennington  <hp@pobox.com>
8620
8621         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8622         Anders Gustafsson
8623
8624 2003-05-04  Havoc Pennington  <hp@pobox.com>
8625
8626         * tools/dbus-launch.c: implement
8627
8628         * bus/main.c (main), bus/bus.c (bus_context_new):
8629         implement --print-pid and --fork
8630
8631 2003-05-03  Havoc Pennington  <hp@redhat.com>
8632
8633         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8634         the address had no value, and add to test suite. Fix and
8635         regression test from Miloslav Trmac
8636
8637 2003-05-03  Havoc Pennington  <hp@pobox.com>
8638
8639         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8640         watch is invalid when handled
8641
8642         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8643         dbus-launch utility to launch the bus from a shell script.  Didn't
8644         actually implement dbus-launch yet, it's just a placeholder still.
8645
8646 2003-05-03  Havoc Pennington  <hp@pobox.com>
8647
8648         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8649         daemon; also documents daemon config file, so replaces
8650         doc/config-file.txt. Corrected some stuff from config-file.txt in
8651         the process of moving it.
8652
8653 2003-05-03  Havoc Pennington  <hp@pobox.com>
8654
8655         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8656         add some man pages
8657
8658 2003-05-03  Colin Walters  <walters@verbum.org>
8659
8660         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8661         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8662
8663         * Makefile.am: Update to use new .pc versioning scheme.
8664
8665 2003-05-02  Havoc Pennington  <hp@redhat.com>
8666
8667         * bus/system.conf.in: allow send/receive to/from message bus
8668         service
8669
8670 2003-04-30  Havoc Pennington  <hp@redhat.com>
8671
8672         * configure.in: print a note when building with unit tests and
8673         without assertions
8674
8675 2003-04-30  Havoc Pennington  <hp@redhat.com>
8676
8677         * Makefile.am: add a check-local that complains if you didn't
8678         configure with --enable-tests
8679
8680 2003-04-29  Havoc Pennington  <hp@redhat.com>
8681
8682         * glib/dbus-gmain.c: docs cleanups
8683
8684         * dbus/dbus-types.h: add docs on int64 types
8685
8686         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8687         public API docs section
8688
8689 2003-04-29  Havoc Pennington  <hp@redhat.com>
8690
8691         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8692         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8693         parallel install API version, not with the D-BUS package version.
8694
8695         * HACKING: move some of README over here
8696
8697         * README: updates, and document API/ABI policy
8698
8699         * configure.in: reindentation
8700
8701 2003-04-29  Havoc Pennington  <hp@redhat.com>
8702
8703         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8704         to use this library" to be sure people have the right
8705         expectations.
8706
8707 2003-04-28  Havoc Pennington  <hp@redhat.com>
8708
8709         * configure.in: add --enable-docs which by default is auto yes if
8710         doxygen and db2html found, no otherwise; but can be forced on/off
8711
8712         * doc/Makefile.am: conditionalize whether to build docs on
8713         --enable-docs
8714
8715 2003-04-28  Havoc Pennington  <hp@redhat.com>
8716
8717         * configure.in: 0.10
8718
8719         * NEWS: update
8720
8721         * bus/system.conf.in: add <includedir>system.d</includedir>
8722
8723         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8724         username was provided but not uid
8725
8726         * bus/config-parser.c (struct BusConfigParser): keep track of
8727         whether the parser is toplevel or was included; change some
8728         of the error handling if it's included.
8729
8730 2003-04-27  Havoc Pennington  <hp@pobox.com>
8731
8732         Unbreak my code...
8733
8734         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8735         report correct status if we finish processing authentication
8736         inside this function.
8737
8738         * bus/activation.c (try_send_activation_failure): use
8739         bus_transaction_send_error_reply
8740
8741         * bus/connection.c (bus_connection_get_groups): return an error
8742         explaining the problem
8743
8744         * bus/bus.c (bus_context_check_security_policy): implement
8745         restriction here that inactive connections can only send the
8746         hello message. Also, allow bus driver to send anything to
8747         any recipient.
8748
8749         * bus/connection.c (bus_connection_complete): create the
8750         BusClientPolicy here instead of on-demand.
8751         (bus_connection_get_policy): don't return an error
8752
8753         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8754         sender field in message being replied to
8755
8756         * bus/bus.c (bus_context_check_security_policy): fix silly typo
8757         causing it to return FALSE always
8758
8759         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8760         we checked sender rather than destination
8761
8762 2003-04-25  Havoc Pennington  <hp@redhat.com>
8763
8764         test suite is slightly hosed at the moment, will fix soon
8765
8766         * bus/connection.c (bus_connections_expire_incomplete): fix to
8767         properly disable the timeout when required
8768         (bus_connection_set_name): check whether we can remove incomplete
8769         connections timeout after we complete each connection.
8770
8771         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8772         probably still broken.
8773
8774         * bus/services.c (bus_registry_acquire_service): implement max
8775         number of services owned, and honor allow/deny rules on which
8776         services a connection can own.
8777
8778         * bus/connection.c (bus_connection_get_policy): report errors here
8779
8780         * bus/activation.c: implement limit on number of pending
8781         activations
8782
8783 2003-04-25  Havoc Pennington  <hp@redhat.com>
8784
8785         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8786         where we used >= 0 instead of != DBUS_UID_UNSET.
8787
8788 2003-04-25  Havoc Pennington  <hp@redhat.com>
8789
8790         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8791         were toggled without add/remove, fix from Anders Gustafsson
8792
8793 2003-04-24  Havoc Pennington  <hp@redhat.com>
8794
8795         * test/data/valid-config-files/basic.conf: add <limit> tags to
8796         this test
8797
8798         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8799         <limit> tag in configuration file.
8800
8801 2003-04-24  Havoc Pennington  <hp@redhat.com>
8802
8803         * bus/dispatch.c: somehow missed some name_is
8804
8805         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8806         (_dbus_timeout_set_interval): new
8807
8808         * bus/connection.c (bus_connections_setup_connection): record time
8809         when each connection is first set up, and expire them after the
8810         auth timeout passes.
8811
8812 2003-04-24  Havoc Pennington  <hp@redhat.com>
8813
8814         * dbus/dbus-message.c (dbus_message_name_is): rename
8815         (dbus_message_service_is): rename
8816         (dbus_message_sender_is): rename
8817         (dbus_message_get_service): rename
8818
8819 2003-04-24  Havoc Pennington  <hp@redhat.com>
8820
8821         * configure.in: add --enable-checks
8822
8823         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8824
8825         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8826         to use thread locks.
8827         (_dbus_connection_handler_destroyed_locked): move some private
8828         functions into proper docs group
8829
8830         * dbus/dbus-internals.h: add _dbus_return_if_fail,
8831         _dbus_return_val_if_fail
8832
8833         Throughout: use dbus_return_if_fail
8834
8835 2003-04-23  James Willcox  <jwillcox@gnome.org>
8836
8837         * glib/dbus-glib.h:
8838         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8839         (dbus_connection_setup_with_g_main),
8840         (dbus_server_setup_with_g_main):
8841         * glib/test-dbus-glib.c: (main):
8842         * glib/test-thread-client.c: (main):
8843         * glib/test-thread-server.c: (new_connection_callback), (main):
8844         * tools/dbus-monitor.c: (main):
8845
8846         Added a GMainContext argument to dbus_connection_setup_with_g_main()
8847         and dbus_server_setup_with_g_main().
8848
8849 2003-04-20  Havoc Pennington  <hp@pobox.com>
8850
8851         * doc/dbus-specification.sgml: document the restrictions on
8852         message and service names
8853
8854 2003-04-22  Havoc Pennington  <hp@redhat.com>
8855
8856         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8857         support, and do some code cleanups to share more code and
8858         speed up array marshal/demarshal.
8859
8860         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8861
8862         * configure.in: generate dbus-arch-deps.h
8863
8864         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8865         64-bit typecodes
8866
8867 2003-04-22  Havoc Pennington  <hp@redhat.com>
8868
8869         * test/data/valid-messages/opposite-endian.message: fix test
8870         to use proper type for rply field
8871
8872         * test/data/invalid-messages: add tests for below validation
8873
8874         * dbus/dbus-message.c (decode_header_data): validate field types,
8875         and validate that named fields are valid names
8876         (decode_name_field): consider messages in the
8877         org.freedesktop.Local. namespace to be invalid.
8878
8879         * dbus/dbus-string.c (_dbus_string_validate_name): new
8880
8881 2003-04-19  Havoc Pennington  <hp@pobox.com>
8882
8883         * bus/driver.c (bus_driver_handle_hello): check limits and
8884         return an error if they are exceeded.
8885
8886         * bus/connection.c: maintain separate lists of active and inactive
8887         connections, and a count of each. Maintain count of completed
8888         connections per user. Implement code to check connection limits.
8889
8890         * dbus/dbus-list.c (_dbus_list_unlink): export
8891
8892         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8893         number of bytes in the message queue for a connection
8894
8895 2003-04-18  Havoc Pennington  <hp@pobox.com>
8896
8897         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8898
8899         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8900         memleaks
8901
8902         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8903         on realloc be sure to update the pointer in the keyring
8904
8905         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8906         offset to avoid writing to unallocated memory
8907
8908         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8909         try the next mechanism, so we properly handle OOM
8910
8911         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8912         on OOM.
8913         (_dbus_keyring_new): fix OOM bug
8914         (_dbus_keyring_new_homedir): always set error; impose a maximum
8915         number of keys we'll load from the file, mostly to speed up the
8916         test suite and make its OOM checks more useful, but also for
8917         general sanity.
8918
8919         * dbus/dbus-auth.c (process_error_server): reject authentication
8920         if we get an error from the client
8921         (process_cancel): on cancel, send REJECTED, per the spec
8922         (process_error_client): send CANCEL if we get an error from the
8923         server.
8924
8925 2003-04-18  Havoc Pennington  <hp@pobox.com>
8926
8927         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8928         debug spew
8929
8930         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8931         handling problem
8932
8933         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8934         about DBUS_TEST_HOMEDIR once
8935
8936         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8937         the environment
8938
8939         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8940         config file so we test the right thing
8941
8942         Throughout: assorted docs improvements
8943
8944 2003-04-18  Havoc Pennington  <hp@pobox.com>
8945
8946         * glib/dbus-gmain.c: adapt to watch changes
8947
8948         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8949
8950         * dbus/dbus-server.h: remove dbus_server_handle_watch
8951
8952         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8953
8954         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8955         like DBusTimeout, so we don't need dbus_connection_handle_watch
8956         etc.
8957
8958 2003-04-17  Havoc Pennington  <hp@redhat.com>
8959
8960         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8961         database usage so it all goes via the DBusUserDatabase cache.
8962
8963 2003-04-17  Havoc Pennington  <hp@redhat.com>
8964
8965         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8966         there was an OOM watch we skipped, we always return TRUE so we
8967         iterate again to have a look at it again. Fixes test suite hang.
8968         Code rearrangement also lets us lose some memset and only iterate
8969         over callbacks once.
8970
8971         * bus/driver.c (bus_driver_handle_message): sense of test for
8972         reply was backward
8973
8974 2003-04-16  Havoc Pennington  <hp@pobox.com>
8975
8976         * doc/dbus-specification.sgml: make spec say serials are unsigned
8977
8978         * dbus/dbus-message.h: change message serials to unsigned
8979
8980         * dbus/dbus-connection.c: adapt to message serials being unsigned
8981
8982 2003-04-15  Havoc Pennington  <hp@pobox.com>
8983
8984         * bus/bus.c: create and keep around a shared DBusUserDatabase
8985         object.
8986
8987         * bus/connection.c (bus_connection_get_groups): don't cache
8988         groups for user in the connection object, since user database
8989         object now does that.
8990
8991 2003-04-16  Havoc Pennington  <hp@redhat.com>
8992
8993         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8994         list of size counters
8995         (_dbus_message_loader_putback_message_link): put back a popped link
8996
8997         * dbus/dbus-connection.c
8998         (dbus_connection_set_max_live_messages_size): rename
8999         max_received_size
9000         (dbus_connection_get_outgoing_size): get size of outgoing
9001         queue
9002         (_dbus_connection_set_connection_counter): remove this cruft
9003
9004 2003-04-14  Havoc Pennington  <hp@redhat.com>
9005
9006         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9007         caching, but at some point we might want to be able to use a
9008         different database.
9009
9010         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9011         SHA1 conf file to test the sha1 auth mechanism, since the regular
9012         test always uses EXTERNAL when available.
9013
9014         * configure.in,
9015         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9016         add conf file that requires use of sha1 auth
9017
9018 2003-04-13  Havoc Pennington  <hp@pobox.com>
9019
9020         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9021         from Philip Blundell to send messages and monitor them.
9022
9023 2003-04-13  Havoc Pennington  <hp@pobox.com>
9024
9025         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9026         callbacks
9027
9028         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9029         users
9030
9031         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9032         fix to only recover unused bytes if we're already authenticated
9033         (_dbus_transport_get_is_authenticated): fix to still mark us
9034         authenticated if there are unused bytes.
9035
9036         * bus/dispatch.c: implement security policy checking
9037
9038         * bus/connection.c (bus_transaction_send_from_driver): new
9039
9040         * bus/bus.c (bus_context_check_security_policy): new
9041
9042         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9043         now we just set the DBusError and it gets converted to an error
9044         reply.
9045
9046         * bus/connection.c (allow_user_function): enable code using actual
9047         data from the config file
9048
9049         * bus/policy.c (list_allows_user): handle wildcard rules for
9050         user/group connection perms
9051
9052 2003-04-13  Havoc Pennington  <hp@pobox.com>
9053
9054         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9055
9056         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9057
9058         * bus/policy.c (bus_policy_append_mandatory_rule)
9059         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9060         (bus_policy_append_group_rule): new functions
9061
9062 2003-04-12  Havoc Pennington  <hp@pobox.com>
9063
9064         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9065
9066         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9067         the pid/gid/uid, just for paranoia.
9068
9069         * test/break-loader.c (randomly_do_n_things): find a byte
9070         containing a type code, and randomly change it to a different
9071         type code.
9072
9073 2003-04-12  Havoc Pennington  <hp@pobox.com>
9074
9075         * bus/policy.h: change BusPolicy to be the thing from the config
9076         file, and rename old BusPolicy to BusClientPolicy
9077
9078         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9079         match change in how policy works
9080
9081         * dbus/dbus-internals.h: mark assert_not_reached as
9082         __attribute((noreturn))__
9083
9084 2003-04-11  Havoc Pennington  <hp@redhat.com>
9085
9086         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9087         the broadcast service. Use boolean return for ServiceExists.
9088
9089 2003-04-11  Havoc Pennington  <hp@redhat.com>
9090
9091         * configure.in: add another directory to look for qt in.
9092
9093 2003-04-11  Havoc Pennington  <hp@redhat.com>
9094
9095         * AUTHORS: add Colin Walters
9096
9097 2003-04-11  Havoc Pennington  <hp@redhat.com>
9098
9099         * NEWS: update
9100
9101         * configure.in: 0.9
9102
9103 2003-04-11  Havoc Pennington  <hp@redhat.com>
9104
9105         * bus/messagebus.in: remove pid file when stopping the
9106         message bus, since the bus won't have privileges to remove it
9107         itself.
9108
9109 2003-04-11  Havoc Pennington  <hp@redhat.com>
9110
9111         * bus/bus.c (bus_context_new): move credentials change after
9112         creating pidfile
9113
9114 2003-04-11  Havoc Pennington  <hp@pobox.com>
9115
9116         * test/decode-gcov.c: add "below average functions" to the
9117         coverage report, and change how some of the code works.
9118
9119         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9120         not in the coverage stats.
9121
9122         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9123         couple places so running the test suite doesn't result in megaspam.
9124
9125 2003-04-11  Havoc Pennington  <hp@pobox.com>
9126
9127         * bus/dispatch.c (check_existent_service_activation): accept a no
9128         memory error in a place we didn't before
9129
9130         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9131         in case the first one failed," since the test suite is less
9132         broken now.
9133
9134 2003-04-10  Havoc Pennington  <hp@pobox.com>
9135
9136         * bus/dispatch.c (check_segfault_service_activation): add test
9137         for launching an executable that just crashes.
9138
9139         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9140         don't leave a million cores. We'll see how portable this is.
9141
9142 2003-04-10  Havoc Pennington  <hp@pobox.com>
9143
9144         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9145         the possible parent failures before we fork, so that we don't
9146         fail to create a babysitter after creating the child.
9147
9148         * bus/activation.c (bus_activation_activate_service): kill child
9149         if we don't successfully complete the activation.
9150
9151 2003-04-10  Havoc Pennington  <hp@redhat.com>
9152
9153         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9154         the connection if it's disconnected
9155
9156         * bus/activation.c (bus_activation_service_created): use new
9157         transaction features to roll back removal of pending activation if
9158         we don't successfully create the service after all. Don't remove
9159         pending activation if the function fails.
9160
9161         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9162         (_dbus_list_insert_after_link): new code to facilitate
9163         services.c fixes
9164
9165         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9166         new functionality, so we can preallocate the ability to insert
9167         into a hash table.
9168
9169         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9170         allowing us to put custom hooks in a transaction to be used for
9171         cancelling said transaction
9172
9173         * doc/dbus-specification.sgml: add some discussion of secondary
9174         service owners, and disallow zero-length service names
9175
9176         * bus/services.c (bus_registry_acquire_service): new function,
9177         splits out part of bus_driver_handle_acquire_service() and fixes
9178         a bug where we didn't remove the service doing the acquiring
9179         from the secondary queue if we failed to remove the current owner
9180         from the front of the queue.
9181
9182 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9183
9184         * doc/dbus-specification.sgml:
9185         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9186
9187 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9188
9189         * bus/.cvsignore:
9190         * glib/.cvsignore:
9191         * test/.cvsignore:
9192         Added files to cvsignore
9193
9194         * dbus/dbus-message.h:
9195         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9196         Make get_named() take two out argument and return a boolean.
9197         (dbus_message_iter_get_args_valist):
9198         Update usage of get_named().
9199         (dbus_message_iter_append_byte):
9200         Fix typo
9201         (dbus_message_iter_append_named)
9202         Fix typo
9203         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9204         More tests.
9205
9206 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9207
9208         * dbus/dbus-marshal.[ch]:
9209         Add array_type_pos argument to _dbus_marshal_validate_arg.
9210         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9211
9212         * dbus/dbus-message.[ch]:
9213         Multi-dimensional arrays have full type specification in the
9214         outermost array. Iter code re-arranged to handle this.
9215         Added some more iter tests.
9216
9217         * doc/dbus-specification.sgml:
9218         Add me to authors.
9219         Remove old FIXME.
9220         Update new array encoding description.
9221         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9222
9223         * test/data/invalid-messages/array-with-mixed-types.message:
9224         * test/data/valid-messages/array-of-array-of-uint32.message:
9225         Change to the new array format.
9226
9227         * test/data/invalid-messages/too-short-dict.message:
9228         Fix bug in test.
9229
9230         * test/data/valid-messages/recursive-types.message:
9231         Fix up and extend test.
9232
9233 2003-04-10  Havoc Pennington  <hp@pobox.com>
9234
9235         * bus/dispatch.c: lots of fixes
9236
9237         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9238         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9239         that was crack, broke the test service.
9240
9241         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9242         handling to avoid piling up errors if we get a failure on the
9243         first address.
9244
9245         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9246         pid in assertion failures.
9247
9248         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9249         to some fixed size of file descriptor array. Don't return TRUE
9250         anytime a timeout exists, that led to lots of busy loop silliness
9251         in the tests.
9252
9253 2003-04-09  Havoc Pennington  <hp@redhat.com>
9254
9255         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9256         I'd checked this in earlier but hadn't.
9257
9258 2003-04-09  Havoc Pennington  <hp@redhat.com>
9259
9260         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9261         the activation test (man this is getting old!)
9262
9263 2003-04-09  Havoc Pennington  <hp@redhat.com>
9264
9265         * test/test-utils.c: use dispatch status function to fix this up
9266
9267         * bus/connection.c (connection_watch_callback): don't dispatch
9268         from here
9269         (connection_timeout_callback): don't dispatch from here
9270         (bus_connections_setup_connection): set the dispatch status function
9271         (bus_connection_disconnected): unset it
9272
9273         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9274         used to add a connection to be dispatched
9275         (_dbus_loop_iterate): do the dispatching at the end of each
9276         iteration
9277
9278         * dbus/dbus-connection.c
9279         (dbus_connection_set_dispatch_status_function): new function
9280         allowing us to fix up main loop usage
9281         (_dbus_connection_last_unref): free all the various function
9282         user data
9283         (dbus_connection_dispatch): call the DispatchStatusFunction
9284         whenever this function returns
9285         (dbus_connection_handle_watch): call DispatchStatusFunction
9286         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9287         (reply_handler_timeout): call DispatchStatusFunction
9288         (dbus_connection_flush): call DispatchStatusFunction
9289
9290 2003-04-09  Havoc Pennington  <hp@redhat.com>
9291
9292         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9293         a memory leak
9294
9295         * bus/dispatch.c (check_service_activated): fix bug in test
9296
9297         * dbus/dbus-mainloop.c (check_timeout): fix this up
9298
9299         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9300         verbose output so we can sort out output from different processes,
9301         e.g. in the activation case.
9302
9303 2003-04-08  Colin Walters  <walters@gnu.org>
9304
9305         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9306         the pid file.
9307         (bus_context_new): Set it.
9308         (bus_context_unref): Use it to delete the pid file.
9309
9310 2003-04-08  Havoc Pennington  <hp@redhat.com>
9311
9312         * test/data/invalid-messages/array-with-mixed-types.message:
9313         regression test that fails for the moment
9314
9315         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9316         tests for convenience
9317
9318         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9319         array of nil, it broke things.
9320
9321         * test/data/invalid-messages/array-of-nil.message: regression test
9322
9323         * test/data/valid-messages/array-of-array-of-uint32.message:
9324         happened to write this so added it to suite
9325
9326 2003-04-08  Havoc Pennington  <hp@redhat.com>
9327
9328         * bus/driver.c (bus_driver_handle_acquire_service): init
9329         retval/reply before checking name
9330
9331         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9332         recursion depth argument
9333
9334         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9335         in the public struct for future extension
9336
9337         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9338         typo
9339
9340         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9341         message
9342
9343         * doc/dbus-specification.sgml: fix typo
9344
9345 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9346
9347         Implemented recursive types, named types and new-style iters
9348
9349         * bus/driver.c:
9350         * glib/test-thread-client.c: (thread_func):
9351         * glib/test-thread-server.c: (handle_test_message):
9352         * test/test-service.c: (handle_echo):
9353         Update to new api
9354
9355         * dbus/Makefile.am:
9356         * dbus/dbus-dict.c:
9357         * dbus/dbus-dict.h:
9358         * dbus/dbus.h
9359         Remove DBusDict
9360
9361         * dbus/dbus-internals.c: (_dbus_type_to_string):
9362         Update for new types.
9363
9364         * dbus/dbus-marshal.[ch]:
9365         Implement recursive types and the new marshalling format.
9366         Remove hardcoded dict marshalling.
9367         Marshal named types.
9368
9369         * dbus/dbus-message-builder.c:
9370         Add BYTE_ARRAY.
9371         Remove references to old types
9372
9373         * dbus/dbus-message.[ch]:
9374         New non-refcounted iter API that supports recursive iters.
9375         Use iters for appending, including support for recursive
9376         iters.
9377         Add byte and named type support.
9378         Update everything to new marshalling formats.
9379         Add tests for new API.
9380
9381         * dbus/dbus-protocol.h:
9382         Remove old array types.
9383         Add types: BYTE, ARRAY, DICT, NAMED
9384
9385         * dbus/dbus-string.c:
9386         * dbus/dbus-sysdeps.c:
9387         Make parse_double locale safe.
9388
9389         * dbus/dbus-test-main.c:
9390         Call setlocale.
9391
9392         * dbus/dbus-test.c:
9393         Kill dict test
9394
9395         * doc/dbus-specification.sgml:
9396         Update spec
9397
9398         * test/data/incomplete-messages/missing-body.message:
9399         * test/data/invalid-messages/bad-boolean.message:
9400         * test/data/invalid-messages/bad-boolean-array.message:
9401         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9402         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9403         * test/data/invalid-messages/too-short-dict.message:
9404         * test/data/valid-messages/dict-simple.message:
9405         * test/data/valid-messages/dict.message:
9406         * test/data/valid-messages/emptiness.message:
9407         * test/data/valid-messages/lots-of-arguments.message:
9408         * test/data/valid-messages/no-padding.message:
9409         * test/data/valid-messages/recursive-types.message:
9410         Add missing NAME fields
9411         Fix up dicts & arrays
9412
9413         * test/data/invalid-messages/dict-with-nil-value.message:
9414         Removed, this is not invalid anymore.
9415
9416         * test/data/valid-messages/recursive-types.message:
9417         Add new test for deeply recursive types.
9418
9419 2003-04-07  Havoc Pennington  <hp@pobox.com>
9420
9421         * bus/driver.c (bus_driver_handle_acquire_service): return an
9422         error if you try to acquire a service that starts with ':'
9423
9424 2003-04-07  Havoc Pennington  <hp@redhat.com>
9425
9426         * doc/dbus-specification.sgml: require that base service names
9427         start with ':' and that the base service is created/deleted
9428         as first and last things a connection does on the bus
9429
9430         * bus/dispatch.c (check_existent_service_activation): lots more
9431         work on the activation test; it doesn't fully pass yet...
9432
9433         * test/test-service.c (main): fix so we don't memleak the
9434         connection to the message bus
9435         (filter_func): accept a message asking us to exit
9436
9437 2003-04-06  Havoc Pennington  <hp@pobox.com>
9438
9439         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9440         from Colin Walters
9441
9442         * configure.in: fixes to Qt detection from Colin Walters
9443
9444         * doc/Makefile.am: Only remove generated docbook dirs if they
9445         exist, from Colin Walters
9446
9447         * dbus/dbus-bus.c: change how we set well-known connections to
9448         NULL, so that it works if a single connection is stored in
9449         two well-known array slots.
9450
9451         * test/Makefile.am: remove a lot of stuff that isn't immediately
9452         useful, it's in CVS history if we want it.
9453
9454         * test/test-service.c: use dbus-mainloop instead of that
9455         watch.[hc] crack
9456
9457 2003-04-06  Havoc Pennington  <hp@pobox.com>
9458
9459         * dbus/Makefile.am: split lists of sources into stuff that goes in
9460         the library, util functions that go in the lib and are also used
9461         elsewhere, and util functions that are used in tests/daemon but
9462         don't go in the lib.
9463
9464         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9465         here so it can be used in test binaries also
9466
9467 2003-04-06  Havoc Pennington  <hp@pobox.com>
9468
9469         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9470         here in the parent process, so we can return an error if it
9471         fails. Also, move some of the code into the child so the parent
9472         is less hosed if we fail midway through.
9473
9474         * bus/bus.c (bus_context_new): move pidfile detection further up
9475         in the function, before we start overwriting sockets and such.
9476
9477         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9478
9479         * configure.in: add --with-system-pid-file and --with-system-socket
9480
9481 2003-04-06  Colin Walters  <walters@verbum.org>
9482
9483         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9484
9485         * bus/system.conf.in: Declare a pidfile.
9486
9487         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9488         create one (if appropriate).
9489
9490         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9491         (struct BusConfigParser) [pidfile]: New.
9492         (element_type_to_name, merge_included, start_busconfig_child)
9493         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9494         (bus_config_parser_unref): Free it.
9495         (bus_config_parser_get_pidfile): New function.
9496
9497         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9498
9499         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9500
9501         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9502
9503         * dbus/dbus-sysdeps.h: Prototype it.
9504
9505 2003-04-06  Havoc Pennington  <hp@pobox.com>
9506
9507         * bus/bus.c (bus_context_new): print the address in here, rather
9508         than in main(), because we need to do it before forking the daemon
9509
9510         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9511         on the service nonexistent error
9512
9513         * bus/driver.c (bus_driver_handle_acquire_service): set the
9514         sender on the AcquireService reply
9515
9516         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9517         server also listen on a UNIX socket so services can connect to it.
9518
9519 2003-04-06  Havoc Pennington  <hp@pobox.com>
9520
9521         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9522         so it detects deadlocks and also we actually init threads when
9523         debugging.
9524
9525 2003-04-06  Havoc Pennington  <hp@pobox.com>
9526
9527         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9528         save the domain socket name, and unlink it when we disconnect the
9529         server. Means that at least when we exit normally, we won't leave
9530         a bunch of junk in /tmp
9531
9532         * dbus/dbus-transport-unix.c
9533         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9534         memory management). (I was making a real change here but then
9535         didn't)
9536
9537 2003-04-06  Havoc Pennington  <hp@pobox.com>
9538
9539         * bus/bus.c (bus_context_new): fix wrong handling of
9540         server_data_slot_unref() in the error case.
9541
9542         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9543         "(condition) != 0" to _dbus_real_assert so that
9544         "_dbus_assert (pointer)" doesn't cause a warning
9545
9546         * bus/main.c (main): accept --print-address option to print out
9547         the message bus address
9548
9549         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9550
9551         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9552         "tmpdir" option to unix: address on client side
9553
9554         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9555         to unix: address
9556
9557         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9558         we can use to create sockets in the test suite.
9559
9560         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9561         cleanly. To be used for testing.
9562
9563         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9564
9565         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9566
9567         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9568         handle trying to call this when there's no servers active
9569
9570 2003-04-05  Havoc Pennington  <hp@pobox.com>
9571
9572         * NEWS: update
9573
9574         * configure.in: 0.8
9575
9576 2003-04-05  Havoc Pennington  <hp@pobox.com>
9577
9578         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9579         crash on startup. Need to get "try starting the daemon"
9580         in the test suite I guess. ;-)
9581
9582         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9583         tracked the number of open connections; it's better done in
9584         application-specific code as you want it to span all servers etc.
9585
9586 2003-04-05  Havoc Pennington  <hp@pobox.com>
9587
9588         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9589         patch from Colin Walters
9590
9591 2003-04-05  Havoc Pennington  <hp@pobox.com>
9592
9593         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9594         reality; in fact multiple mechanisms are allowed.
9595
9596         * dbus/dbus-internals.c (_dbus_real_assert)
9597         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9598         _dbus_assert_not_reached() into functions, so that they don't show
9599         up in basic block counts for test coverage, and don't use up as
9600         much disk space. Does mean slower execution speed though, so
9601         assumes --disable-asserts is the normal production case.
9602
9603 2003-04-05  Havoc Pennington  <hp@pobox.com>
9604
9605         * test/Makefile.am (dist-hook): also dist *.in files
9606
9607         * NEWS: update
9608
9609         * configure.in: 0.7
9610
9611 2003-04-05  Havoc Pennington  <hp@pobox.com>
9612
9613         * dbus/dbus-string.c: docs warning
9614
9615         * dbus/dbus-spawn.c: missing docs
9616
9617         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9618
9619 2003-04-05  Havoc Pennington  <hp@pobox.com>
9620
9621         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9622         magic from GLib
9623
9624         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9625         to -1 once we've reaped the babysitter
9626         (_dbus_babysitter_handle_watch): do as much work as we can, not
9627         just one go of it
9628
9629         * bus/activation.c: add code using DBusBabysitter so that we
9630         handle it when a service fails to start up properly.
9631         (bus_activation_service_created): don't remove the activation
9632         entries as we go, just let them get removed when we free the pending
9633         activation. Unref reply messages after sending them.
9634
9635 2003-04-05  Havoc Pennington  <hp@pobox.com>
9636
9637         * test/decode-gcov.c (main): print per-directory stats in the report
9638
9639         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9640
9641 2003-04-05  Havoc Pennington  <hp@pobox.com>
9642
9643         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9644
9645         * test/decode-gcov.c: hack up a little program to suck data
9646         out of gcov files. Yes this is sort of silly.
9647
9648         * configure.in: define something in config.h and do an
9649         AM_CONDITIONAL when gcov is enabled
9650
9651 2003-04-04  Havoc Pennington  <hp@redhat.com>
9652
9653         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9654         return a "babysitter" object that is used to monitor the status of
9655         the spawned process and reap it when required.
9656
9657         * test/test-segfault.c, test/test-exit.c,
9658         test/test-sleep-forever.c: binaries that do various lame things,
9659         used in the test suite.
9660
9661         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9662
9663 2003-04-03  Havoc Pennington  <hp@pobox.com>
9664
9665         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9666         in preparation for modifying it, dbus-sysdeps is getting
9667         a bit unmanageable.
9668
9669 2003-04-03  Havoc Pennington  <hp@redhat.com>
9670
9671         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9672         have multiple ones
9673
9674         * bus/*.[hc]: adapt to mainloop change
9675
9676 2003-04-03  Havoc Pennington  <hp@redhat.com>
9677
9678         * bus/activation.c (load_directory): fix up memleaks
9679         (bus_activation_entry_free): free the entry
9680
9681         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9682         we get one from the message bus; fix memleaks.
9683
9684         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9685
9686 2003-04-03  Havoc Pennington  <hp@pobox.com>
9687
9688         * bus/config-parser.c (bus_config_parser_unref): free
9689         list of mechanisms, bug discovered by test suite enhancements
9690         (putting system.conf and session.conf into suite)
9691
9692         * test/Makefile.am, test/test-service.c: add placeholder for a
9693         test service that we'll activate as part of test suite. Doesn't
9694         do anything yet.
9695
9696         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9697         setting NULL value, and use system malloc not dbus_malloc()
9698         when we have unavoidable memleakage.
9699
9700         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9701         didn't work, and support DBUS_BUS_ACTIVATION.
9702
9703         * bus/activation.c (child_setup): pass our well-known bus type to
9704         the child
9705
9706         * bus/config-parser.c: support <type> to specify well-known type
9707
9708         * doc/dbus-specification.sgml: document the env variables to
9709         locate well-known buses and find service activator
9710
9711 2003-04-02  Havoc Pennington  <hp@redhat.com>
9712
9713         * test/Makefile.am (all-local): add a rule to copy tests to
9714         builddir, so we can have generated tests. Use this to remove the
9715         silly hack for testing system.conf and session.conf. Will use this
9716         shortly to generate .service files pointing to test binaries.
9717
9718 2003-04-02  Havoc Pennington  <hp@redhat.com>
9719
9720         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9721         current alloc and needed new length, not max of the doubled
9722         allocation and needed new length. Also, when building tests,
9723         don't do the double-allocation stuff, just realloc every time.
9724
9725 2003-04-02  Havoc Pennington  <hp@redhat.com>
9726
9727         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9728         in error messages
9729         (_dbus_string_get_dirname): new
9730         (_dbus_sysdeps_test): new
9731         (_dbus_directory_open): include dirnames in error messages
9732
9733         * bus/config-parser.c: interpret <include> and <includedir> and
9734         <servicedir> relative to config file location if the given
9735         filename is not absolute.
9736
9737         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9738
9739 2003-04-02  Havoc Pennington  <hp@redhat.com>
9740
9741         * bus/connection.c (bus_transaction_send_error_reply): set sender
9742         service for the error, and unref the reply on success
9743
9744         * bus/activation.c: convert to use BusTransaction so OOM can be
9745         handled correctly
9746         (bus_activation_service_created): set sender of the message
9747
9748 2003-04-01  Havoc Pennington  <hp@redhat.com>
9749
9750         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9751         <includedir> (at least mostly)
9752
9753         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9754         first, then the user ID
9755
9756 2003-04-01  Havoc Pennington  <hp@pobox.com>
9757
9758         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9759         function
9760
9761         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9762
9763         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9764
9765         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9766         socket 0777, and unlink any existing socket.
9767
9768         * bus/bus.c (bus_context_new): change our UID/GID and fork if
9769         the configuration file so specifies; set up auth mechanism
9770         restrictions
9771
9772         * bus/config-parser.c (bus_config_parser_content): add support
9773         for <fork> option and fill in code for <auth>
9774
9775         * bus/system.conf.in: add <fork/> to default configuration,
9776         and limit auth mechanisms to EXTERNAL
9777
9778         * doc/config-file.txt (Elements): add <fork>
9779
9780         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9781         (_dbus_change_identity): new function
9782
9783 2003-03-31  Havoc Pennington  <hp@redhat.com>
9784
9785         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9786         (_dbus_listen_unix_socket): fix off-by-one error in null
9787         termination spotted by Nalin
9788
9789 2003-03-31  Havoc Pennington  <hp@redhat.com>
9790
9791         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9792         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9793         having a real home directory available.
9794
9795 2003-03-31  Havoc Pennington  <hp@redhat.com>
9796
9797         * bus/Makefile.am (install-data-hook): create /var/run/dbus
9798
9799         * bus/messagebus.in: add init script for Red Hat /etc/init.d
9800
9801         * configure.in: add support for specifying a style of init script
9802         to install
9803
9804 2003-03-31  Havoc Pennington  <hp@redhat.com>
9805
9806         Fix some annoying DBusString API and fix all affected code.
9807
9808         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9809         max_length argument
9810         (_dbus_string_get_data): change to return string instead of using
9811         an out param
9812         (_dbus_string_get_const_data): ditto
9813         (_dbus_string_get_data_len): ditto
9814         (_dbus_string_get_const_data_len): ditto
9815
9816 2003-03-31  Havoc Pennington  <hp@redhat.com>
9817
9818         * bus/main.c (main): fix up the command line arguments to be nicer
9819
9820 2003-03-31  Havoc Pennington  <hp@redhat.com>
9821
9822         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9823         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9824         final location that lands in the config file
9825
9826         * bus/config-loader-expat.c (bus_config_load): fix type of
9827         XML_Parser variable
9828
9829         * doc/TODO: remove TODO item for dbus_bus_get()
9830
9831         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9832
9833 2003-03-31  Havoc Pennington  <hp@pobox.com>
9834
9835         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9836         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9837         argument since they are always client side
9838
9839         * dbus/dbus-server.c (dbus_server_get_address): new function
9840
9841         * bus/main.c (main): take the configuration file as an argument.
9842
9843         * test/data/valid-config-files/debug-allow-all.conf: new file to
9844         use with dispatch.c tests for example
9845
9846         * bus/test-main.c (main): require test data dir
9847
9848         * bus/bus.c (bus_context_new): change this to take a
9849         configuration file name as argument
9850
9851         * doc/config-file.txt (Elements): add <servicedir>
9852
9853         * bus/system.conf, bus/session.conf: new files
9854
9855         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9856         well-known socket if none set
9857
9858         * configure.in: create system.conf and session.conf
9859
9860 2003-03-30  Havoc Pennington  <hp@pobox.com>
9861
9862         * bus/config-parser.c: hacking
9863
9864         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9865         to shut down, since it could cause weirdness with the DBusList
9866         lock
9867
9868         * dbus/dbus-list.c (_dbus_list_test): add tests for the
9869         link-oriented stack routines
9870         (alloc_link): free the mempool if the first alloc from it fails
9871
9872         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9873
9874         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9875         from GLib
9876         (_dbus_string_skip_white): new
9877
9878         * doc/config-file.txt (Elements): add <includedir>
9879
9880 2003-03-28  Havoc Pennington  <hp@pobox.com>
9881
9882         * dbus/dbus-string.c (_dbus_string_copy_data_len)
9883         (_dbus_string_copy_data): new functions
9884
9885 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
9886
9887         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9888         * dbus/dbus-bus.h:
9889         Add dbus_bus_get.
9890
9891         * dbus/dbus-memory.c:
9892         Fix a doc comment.
9893
9894 2003-03-28  Havoc Pennington  <hp@pobox.com>
9895
9896         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9897         I think it may have just been superstition. Not sure.
9898
9899         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9900         failures that were not being handled.
9901
9902         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9903
9904         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9905         row that will fail on out-of-memory.
9906
9907         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9908         function for testing out-of-memory handling.
9909
9910         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9911         allocation functions, they do map exactly to the expat ones.
9912
9913 2003-03-27  Havoc Pennington  <hp@redhat.com>
9914
9915         * bus/config-loader-libxml.c (bus_config_load): add another error
9916         check
9917
9918 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9919
9920         * doc/TODO:
9921         Add note about automatic service activation.
9922
9923         * doc/dbus-specification.sgml:
9924         Rename the specification and clarify a few things.
9925
9926 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9927
9928         * Doxyfile.in:
9929         * dbus/dbus-address.c:
9930         * dbus/dbus-dict.c:
9931         * dbus/dbus-marshal.c:
9932         * dbus/dbus-server-debug-pipe.c:
9933         * dbus/dbus-transport-unix.c:
9934         Fix documentation warnings.
9935
9936 2003-03-26  Havoc Pennington  <hp@pobox.com>
9937
9938         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9939         after every test so it's quick and easy to see which leaked, and
9940         so we test multiple dbus_shutdown() calls
9941
9942         * configure.in: change configure.in XML stuff to also support
9943         expat
9944
9945         * config-loader-libxml.c: some hacking
9946
9947         * config-loader-expat.c: some hacking
9948
9949         * config-parser.c: some hacking, plus tests
9950
9951 2003-03-25  Havoc Pennington  <hp@redhat.com>
9952
9953         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9954
9955         * configure.in: add --with-xml option to specify XML library,
9956         right now only libxml is supported.
9957
9958         * bus/config-loader-libxml.c, config-parser.c: sync some minor
9959         nonworking code between home and work, still just stubs
9960
9961 2003-03-24  Havoc Pennington  <hp@redhat.com>
9962
9963         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9964         file
9965
9966         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9967         NULL argument for "message" if the error is a well-known one,
9968         fill in a generic message in this case.
9969
9970         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9971         favor of DBusError
9972
9973         * bus/test.c (bus_test_flush_bus): add
9974
9975         * bus/policy.c (bus_policy_test): test code stub
9976
9977 2003-03-24  Havoc Pennington  <hp@pobox.com>
9978
9979         * bus/connection.c (bus_connections_setup_connection): set up
9980         the "can this user connect" function, but it always returns
9981         TRUE until we have a config file parser so we can have a config
9982         file that allows connections.
9983
9984 2003-03-23  Havoc Pennington  <hp@pobox.com>
9985
9986         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9987         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9988         the mutex, so we can check for proper memory management
9989         and OOM handling.
9990
9991         * dbus/dbus-dataslot.c: remove the mutex from
9992         DBusDataSlotAllocator and lock it manually when using it,
9993         to simplify fitting it into the global slots framework.
9994
9995         * dbus/dbus-threads.c (init_static_locks): rework how we're
9996         handling global locks so they are easily shut down.
9997
9998         * bus/policy.c (bus_policy_append_rule): fix
9999
10000         * bus/test-main.c (main): check for memleaks
10001
10002         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10003         test suite check for memleaks
10004
10005         * dbus/dbus-memory.c: add support in test mode for tracking
10006         number of outstanding blocks
10007
10008 2003-03-23  Havoc Pennington  <hp@pobox.com>
10009
10010         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10011         policies code
10012
10013         * dbus/dbus-hash.h: add ULONG hash keys
10014
10015         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10016         (_dbus_get_group_id): new function
10017
10018 2003-03-20  Havoc Pennington  <hp@redhat.com>
10019
10020         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10021         new function
10022         (dbus_connection_get_unix_user): new function
10023
10024 2003-03-20  Havoc Pennington  <hp@pobox.com>
10025
10026         * bus/connection.c (bus_connection_send_oom_error): assert that
10027         message has a sender
10028         (connection_execute_transaction): ditto
10029         (bus_connection_preallocate_oom_error): fix to set the sender, and
10030         set recipient to the destination service, not the bus driver
10031
10032         * bus/policy.c: hacking
10033
10034         * dbus/dbus-message.c (dbus_message_service_is): new function
10035         (dbus_message_sender_is): new
10036
10037 2003-03-19  Havoc Pennington  <hp@redhat.com>
10038
10039         * bus/policy.c: start sketching code for policy restrictions on
10040         what connections can do.
10041
10042 2003-03-18  Havoc Pennington  <hp@redhat.com>
10043
10044         * doc/TODO: some notes on high-level todo items. Little nitpick
10045         stuff is all in @todo, so no need to add it here.
10046
10047         * doc/config-file.txt: some notes on how config file might look
10048
10049 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10050
10051         * configure.in: 0.6
10052
10053         * NEWS: Update.
10054
10055 2003-03-17  Havoc Pennington  <hp@redhat.com>
10056
10057         * dbus/dbus-internals.h: add gcc attributes so that
10058         our printf-style functions warn on bad arguments to
10059         format
10060
10061         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10062         format bug
10063
10064         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10065         printf format bug
10066
10067 2003-03-17  Havoc Pennington  <hp@redhat.com>
10068
10069         * bus/test-main.c (main): make it print something as it runs
10070         so make check doesn't look stuck
10071
10072         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10073         from CVS, now obsolete
10074
10075 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10076
10077         * bus/dispatch.c: (bus_dispatch):
10078         Refetch the service name since it may have been reallocated
10079         when dbus_message_set_sender was called.
10080
10081         * dbus/dbus-sysdeps.c: (_dbus_accept):
10082         Add address and address length variables and use them to stop
10083         valgrind from complaining.
10084
10085 2003-03-17  Havoc Pennington  <hp@pobox.com>
10086
10087         All tests pass, no memleaks, no valgrind complaints.
10088
10089         * bus/test.c: refcount handler_slot
10090
10091         * bus/connection.c (bus_connections_new): refcount
10092         connection_data_slot
10093
10094         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10095         bytes so that auth scripts pass.
10096
10097         * bus/dispatch.c: init message_handler_slot so it gets allocated
10098         properly
10099
10100         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10101
10102         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10103         dealloc server_pipe_hash when no longer used for benefit of
10104         leak checking
10105
10106         * dbus/dbus-auth.c (process_command): memleak fix
10107
10108         * bus/dispatch.c (check_hello_message): memleak fix
10109
10110 2003-03-16  Havoc Pennington  <hp@pobox.com>
10111
10112         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10113
10114 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10115
10116         * bus/activation.c (bus_activation_activate_service): Append
10117         the pending activation entry to the list of pending activations.
10118
10119 2003-03-16  Havoc Pennington  <hp@pobox.com>
10120
10121         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10122         connections
10123
10124         * dbus/dbus-address.c (create_entry): fix OOM handling when
10125         failing to alloc entry->method
10126
10127 2003-03-16  Havoc Pennington  <hp@pobox.com>
10128
10129         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10130         the watch
10131
10132         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10133         add some missing dbus_set_result
10134
10135         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10136         alloc the DBusMessageHandler
10137
10138         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10139         the transport here, since we call this from the finalizer; it
10140         resulted in a double-finalize.
10141
10142         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10143         where we tried to use transport->connection that was NULL,
10144         happened when transport was disconnected early on due to OOM
10145
10146         * bus/*.c: adapt to handle OOM for watches/timeouts
10147
10148         * dbus/dbus-transport-unix.c: port to handle OOM during
10149         watch handling
10150
10151         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10152         reference to unused bytes instead of a copy
10153
10154         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10155         out of memory
10156
10157         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10158         FALSE on OOM
10159
10160         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10161         of memory
10162
10163 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10164
10165         * doc/dbus-specification.sgml:
10166         Document reply message for ActivateService.
10167
10168 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10169
10170         * bus/activation.c: (bus_pending_activation_entry_free),
10171         (bus_pending_activation_free), (bus_activation_new),
10172         (bus_activation_unref), (bus_activation_service_created),
10173         (bus_activation_activate_service):
10174         * bus/activation.h:
10175         * bus/bus.c: (bus_context_new):
10176         * bus/desktop-file.c: (new_section):
10177         * bus/driver.c: (bus_driver_send_service_deleted),
10178         (bus_driver_handle_activate_service):
10179         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10180         * bus/services.h:
10181         * dbus/dbus-connection.c:
10182         (dbus_connection_send_with_reply_and_block):
10183         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10184         * dbus/dbus-protocol.h:
10185         Make activation work better. Now pending activations will be queued
10186         and the daemon won't try to activate services that are already registered.
10187
10188 2003-03-16  Havoc Pennington  <hp@pobox.com>
10189
10190         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10191         connection data
10192
10193         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10194         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10195
10196 2003-03-16  Havoc Pennington  <hp@pobox.com>
10197
10198         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10199         this. always run the test suite before commit...
10200
10201         * bus/*: adapt to DBusConnection API changes
10202
10203         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10204         requires renaming stuff to avoid dbus_connection_dispatch name
10205         conflict.
10206
10207         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10208         function
10209
10210         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10211         separate from _dbus_message_loader_return_buffer()
10212
10213         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10214         this, because it's now always broken to use; the number of
10215         messages in queue vs. the number still buffered by the message
10216         loader is undefined/meaningless. Should use
10217         dbus_connection_get_dispatch_state().
10218         (dbus_connection_dispatch): rename from
10219         dbus_connection_dispatch_message
10220
10221 2003-03-16  Havoc Pennington  <hp@pobox.com>
10222
10223         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10224         implementation
10225
10226 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10227
10228         * dbus/dbus-connection.c:
10229         (dbus_connection_send_with_reply_and_block):
10230         Decrease connection->n_incoming when removing an entry
10231         from the list.
10232         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10233         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10234         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10235         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10236         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10237         (dbus_dict_get_byte_array):
10238         Handle NULL arrays and strings. Also add support for byte arrays.
10239
10240         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10241         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10242         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10243         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10244         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10245         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10246         * dbus/dbus-marshal.h:
10247         Add support for marshalling and demarshalling empty arrays and strings.
10248
10249         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10250         (dbus_message_append_string_array),
10251         (dbus_message_iter_get_boolean),
10252         (dbus_message_iter_get_boolean_array),
10253         (dbus_message_iter_get_int32_array),
10254         (dbus_message_iter_get_uint32_array),
10255         (dbus_message_iter_get_double_array),
10256         (dbus_message_iter_get_byte_array),
10257         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10258         (check_message_handling):
10259         Add support for getting empty arrays and dicts.
10260
10261         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10262         Don't do any validation at all for now, that's better than just checking
10263         for ASCII.
10264
10265         * test/data/valid-messages/emptiness.message:
10266         New test message with lots of empty arrays.
10267
10268 2003-03-16  Havoc Pennington  <hp@pobox.com>
10269
10270         * dbus/dbus-connection.c
10271         (_dbus_connection_queue_received_message_link): new function that
10272         can't fail due to OOM
10273
10274         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10275         new function pops a message together with a list link
10276         containing it.
10277
10278         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10279         message queuing functions to avoid needing to alloc memory
10280
10281 2003-03-16  Havoc Pennington  <hp@pobox.com>
10282
10283         Oops - test code was only testing failure of around 30 of the
10284         mallocs in the test path, but it turns out there are 500+
10285         mallocs. I believe this was due to misguided linking setup such
10286         that there was one copy of dbus_malloc etc. in the daemon and one
10287         in the shared lib, and only daemon mallocs were tested. In any
10288         case, the test case now tests all 500+ mallocs, and doesn't pass
10289         yet, though there are lots of fixes in this patch.
10290
10291         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10292         this so that it doesn't need to allocate memory, since it
10293         has no way of indicating failure due to OOM (and would be
10294         annoying if it did).
10295
10296         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10297
10298         * bus/Makefile.am: rearrange to create two self-contained
10299         libraries, to avoid having libraries with overlapping symbols.
10300         that was resulting in weirdness, e.g. I'm pretty sure there
10301         were two copies of global static variables.
10302
10303         * dbus/dbus-internals.c: move the malloc debug stuff to
10304         dbus-memory.c
10305
10306         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10307         empty.
10308
10309         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10310
10311         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10312         on failure.
10313
10314         * bus/dispatch.c (bus_dispatch_add_connection): free
10315         message_handler_slot when no longer using it, so
10316         memory leak checkers are happy for the test suite.
10317
10318         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10319
10320         * bus/bus.c (new_connection_callback): disconnect in here if
10321         bus_connections_setup_connection fails.
10322
10323         * bus/connection.c (bus_connections_unref): fix to free the
10324         connections
10325         (bus_connections_setup_connection): if this fails, don't
10326         disconnect the connection, just be sure there are no side
10327         effects.
10328
10329         * dbus/dbus-string.c (undo_alignment): unbreak this
10330
10331         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10332         leaking
10333         (_dbus_auth_new): fix the order in which we free strings
10334         on OOM failure
10335
10336         * bus/connection.c (bus_connection_disconnected): fix to
10337         not send ServiceDeleted multiple times in case of memory
10338         allocation failure
10339
10340         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10341         get the base service name
10342         (dbus_bus_register_client): don't return base service name,
10343         instead store it on the DBusConnection and have an accessor
10344         function for it.
10345         (dbus_bus_register_client): rename dbus_bus_register()
10346
10347         * bus/dispatch.c (check_hello_message): verify that other
10348         connections on the bus also got the correct results, not
10349         just the one sending hello
10350
10351 2003-03-15  Havoc Pennington  <hp@pobox.com>
10352
10353         Make it pass the Hello handling test including all OOM codepaths.
10354         Now to do other messages...
10355
10356         * bus/services.c (bus_service_remove_owner): fix crash when
10357         removing owner from an empty list of owners
10358         (bus_registry_ensure): don't leave service in the list of
10359         a connection's owned services if we fail to put the service
10360         in the hash table.
10361
10362         * bus/connection.c (bus_connection_preallocate_oom_error): set
10363         error flag on the OOM error.
10364
10365         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10366         handle _dbus_transport_set_connection failure
10367
10368         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10369         to create watches up front and simply enable/disable them as
10370         needed.
10371         (unix_connection_set): this can now fail on OOM
10372
10373         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10374         of enabling/disabling a watch or timeout.
10375
10376         * bus/loop.c (bus_loop_iterate): don't touch disabled
10377         watches/timeouts
10378
10379         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10380
10381 2003-03-15  Havoc Pennington  <hp@pobox.com>
10382
10383         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10384         write useful test code, after all that futzing around ;-)
10385
10386         Test does not yet pass because we can't handle OOM in
10387         _dbus_transport_messages_pending (basically,
10388         dbus_connection_preallocate_send() does not prealloc the write
10389         watch). To fix this, I think we need to add new stuff to
10390         set_watch_functions, namely a SetEnabled function so we can alloc
10391         the watch earlier, then enable it later.
10392
10393         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10394         dbus-memory.c to the convenience lib
10395
10396         * bus/test.c: rename some static functions to keep them clearly
10397         distinct from stuff in connection.c. Handle client disconnection.
10398
10399 2003-03-14  Havoc Pennington  <hp@pobox.com>
10400
10401         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10402         transport, tests more of the real codepath. Set up clients
10403         with bus_setup_debug_client.
10404
10405         * bus/test.c (bus_setup_debug_client): function to set up debug
10406         "clients" on the main loop
10407
10408         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10409         support
10410
10411         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10412         server type
10413
10414         * dbus/dbus-server-debug.c: support a debug server based on pipes
10415
10416         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10417         (_dbus_close): new function
10418
10419         * configure.in: check for socketpair
10420
10421 2003-03-14  Havoc Pennington  <hp@redhat.com>
10422
10423         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10424         cheesy hack
10425
10426         * dbus/dbus-transport-debug.c: rework this a good bit to be
10427         less complicated. hopefully still works.
10428
10429         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10430         manually
10431
10432         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10433         after running it
10434
10435         * dbus/dbus-message.c (dbus_message_copy): rename from
10436         dbus_message_new_from_message, fix it up to copy
10437         all the message fields, add test case
10438
10439         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10440         not quite passing yet
10441
10442 2003-03-14  Havoc Pennington  <hp@pobox.com>
10443
10444         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10445         until no work remains" in test code. (the large diff here
10446         is just code movement, no actual changes)
10447
10448         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10449         1, no point waiting around for test code.
10450         (_dbus_server_debug_accept_transport): unref the timeout
10451         after adding it (right?)
10452
10453         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10454
10455 2003-03-13  Havoc Pennington  <hp@redhat.com>
10456
10457         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10458         out of memory
10459
10460         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10461         of memory
10462
10463         * dbus/dbus-connection.h: Make AddWatchFunction and
10464         AddTimeoutFunction return a bool so they can fail on out-of-memory
10465
10466         * bus/bus.c (bus_context_new): set up timeout handlers
10467
10468         * bus/connection.c (bus_connections_setup_connection): set up
10469         timeout handlers
10470
10471         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10472         can fail
10473
10474         * bus/bus.c (bus_context_new): adapt to changes
10475
10476         * bus/connection.c: adapt to changes
10477
10478         * test/watch.c: adapt to DBusWatch changes
10479
10480         * bus/dispatch.c (bus_dispatch_test): started adding this but
10481         didn't finish
10482
10483 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10484
10485         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10486
10487 2003-03-13  Havoc Pennington  <hp@pobox.com>
10488
10489         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10490         set up a test framework as for the library
10491
10492 2003-03-12  Havoc Pennington  <hp@pobox.com>
10493
10494         Throughout: purge global variables, introduce BusActivation,
10495         BusConnections, BusRegistry, etc. objects instead.
10496
10497         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10498         message bus object
10499
10500         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10501         going to redo this a bit differently I think
10502
10503 2003-03-12  Havoc Pennington  <hp@redhat.com>
10504
10505         Mega-patch that gets the message bus daemon initially handling
10506         out-of-memory. Work still needed. Also lots of random
10507         moving stuff to DBusError instead of ResultCode.
10508
10509         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10510
10511         * dbus/dbus-connection.c
10512         (dbus_connection_send_with_reply_and_block): use DBusError
10513
10514         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10515         DBusResultCode
10516
10517         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10518         code here, as the only failure possible is OOM.
10519
10520         * bus/connection.c (bus_connection_disconnect):
10521         rename bus_connection_disconnected as it's a notification only
10522
10523         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10524         "name" on get_args failure, should be done by get_args;
10525         don't disconnect client for bad args, just return an error.
10526         (bus_driver_handle_service_exists): ditto
10527
10528         * bus/services.c (bus_services_list): NULL-terminate returned array
10529
10530         * bus/driver.c (bus_driver_send_service_lost)
10531         (bus_driver_send_service_acquired): send messages from driver to a
10532         specific client to the client's unique name, not to the broadcast
10533         service.
10534
10535         * dbus/dbus-message.c (decode_header_data): reject messages that
10536         contain no name field
10537         (_dbus_message_get_client_serial): rename to
10538         dbus_message_get_serial and make public
10539         (_dbus_message_set_serial): rename from set_client_serial
10540         (_dbus_message_set_reply_serial): make public
10541         (_dbus_message_get_reply_serial): make public
10542
10543         * bus/connection.c (bus_connection_foreach): allow stopping
10544         iteration by returning FALSE from foreach function.
10545
10546         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10547         (dbus_connection_free_preallocated_send)
10548         (dbus_connection_preallocate_send): new API for sending a message
10549         without possibility of malloc failure.
10550         (dbus_connection_send_message): rename to just
10551         dbus_connection_send (and same for whole function family)
10552
10553         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10554
10555         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10556
10557         * bus/activation.c: handle/return errors
10558
10559         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10560
10561         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10562         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10563         (_dbus_result_from_errno): move to this file
10564
10565 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10566
10567         * dbus/dbus-marshal.c:
10568         (_dbus_marshal_set_string):
10569         Take a length argument so we can marshal the correct string
10570         length.
10571
10572         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10573         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10574         (_dbus_marshal_test):
10575         * dbus/dbus-marshal.h:
10576         Add support for marshalling and demarshalling dicts.
10577
10578         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10579         Add support for TYPE DICT.
10580
10581         * dbus/dbus-message.c: (set_string_field):
10582         Adjust header padding.
10583
10584         (dbus_message_append_args_valist), (dbus_message_append_dict),
10585         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10586         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10587         (check_message_handling), (check_have_valid_message):
10588         * dbus/dbus-message.h:
10589         Add functions for setting and getting dicts.
10590
10591         * dbus/dbus-protocol.h:
10592         Add DBUS_TYPE_DICT.
10593
10594         * dbus/dbus.h:
10595         Add dbus-dict.h
10596
10597         * doc/dbus-specification.sgml:
10598         Add information about how dicts are marshalled.
10599
10600         * test/data/invalid-messages/dict-with-nil-value.message:
10601         * test/data/invalid-messages/too-short-dict.message:
10602         * test/data/valid-messages/dict-simple.message:
10603         * test/data/valid-messages/dict.message:
10604         Add sample messages containing dicts.
10605
10606 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10607
10608         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10609
10610 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10611
10612         * dbus/Makefile.am:
10613         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10614         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10615         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10616         (dbus_dict_set_double), (dbus_dict_set_string),
10617         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10618         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10619         (dbus_dict_set_string_array), (_dbus_dict_test):
10620         * dbus/dbus-dict.h:
10621         Fix according to comments from Havoc.
10622
10623 2003-03-06  Michael Meeks  <michael@server.home>
10624
10625         * configure.in: if we don't have kde-config, disable have_qt.
10626
10627 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10628
10629         * dbus/Makefile.am:
10630         Add dbus-dict.[ch]
10631
10632         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10633         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10634         (dbus_dict_remove), (dbus_dict_get_value_type),
10635         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10636         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10637         (dbus_dict_put_double), (dbus_dict_put_string),
10638         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10639         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10640         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10641         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10642         (dbus_dict_get_double), (dbus_dict_get_string),
10643         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10644         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10645         (dbus_dict_get_string_array), (_dbus_dict_test):
10646         * dbus/dbus-dict.h:
10647         Add DBusDict implementation
10648
10649         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10650         * dbus/dbus-test.h:
10651         Add _dbus_dict_test
10652
10653 2003-03-04  Havoc Pennington  <hp@pobox.com>
10654
10655         * test/data/auth/*: adapt to changes
10656
10657         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10658         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10659         userid
10660
10661         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10662         more stuff from being in a context name, to make the protocol
10663         simpler to deal with
10664
10665         * dbus/dbus-errors.c (dbus_error_has_name): new function
10666         (dbus_error_is_set): new function
10667
10668         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10669         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10670
10671         * dbus/dbus-connection.c (dbus_connection_flush): also read
10672         messages during a flush operation
10673
10674         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10675
10676 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10677
10678         * configure.in: Check for gethostbyname on Solaris.
10679
10680         * dbus/dbus-transport.c: (_dbus_transport_open):
10681         Remove duplicate "tcp" entry.
10682
10683         * doc/dbus-specification.sgml:
10684         Clarify some things.
10685
10686 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10687
10688         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10689         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10690         (_dbus_keyring_test):
10691         * dbus/dbus-md5.c: (_dbus_md5_compute):
10692         * dbus/dbus-sha.c: (_dbus_sha_compute):
10693         Plug memory leaks.
10694
10695 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10696
10697         * README: Add some things.
10698
10699 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10700
10701         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10702         after case DBUS_TYPE_BOOELAN.
10703
10704 2003-03-02  Havoc Pennington  <hp@pobox.com>
10705
10706         * test/break-loader.c (randomly_set_extreme_ints): add test that
10707         sets really huge and small integers
10708
10709         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10710         that length of boolean array fits in the string, and that
10711         string has room for boolean value in single-bool case.
10712
10713         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10714         optional value to "ALIGN" command which is what to fill the
10715         alignment with.
10716
10717         * test/data/valid-messages/no-padding.message: add regression
10718         test for the message padding problem
10719
10720 2003-03-02  Havoc Pennington  <hp@pobox.com>
10721
10722         * dbus/dbus-message.c (decode_header_data): fix to always init
10723         message_padding, from Benjamin Dauvergne
10724
10725 2003-03-02  Havoc Pennington  <hp@pobox.com>
10726
10727         * configure.in: 0.5
10728
10729         * NEWS: Update.
10730
10731 2003-03-01  Joe Shaw  <joe@assbarn.com>
10732
10733         * configure.in: Check for "struct cmsgcred" and try to access its
10734         members for BSD-like unices.
10735
10736         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10737         _dbus_read_credentials_unix_socket().
10738         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10739         read() for reading the credential byte off the unix socket.  Use
10740         struct cmsgcred on systems that support it.
10741
10742 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10743
10744         * glib/Makefile.am:
10745         * configure.in:
10746         Make gthreads-2.0 dependency optional. Don't build thread test if
10747         its not found.
10748
10749 2003-02-27  Havoc Pennington  <hp@pobox.com>
10750
10751         * dbus/dbus-connection.c
10752         (dbus_connection_send_message_with_reply_and_block): fix doh!
10753         doh! doh! bug that resulted in never removing a reply from the
10754         queue, no wonder we called get_reply_serial so much ;-)
10755
10756         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10757         and client serial instead of demarshaling them every time
10758
10759 2003-02-27  Havoc Pennington  <hp@pobox.com>
10760
10761         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10762         more inlined, using dbus-string-private.h, speeds things up
10763         substantially
10764
10765         * dbus/dbus-string.c (_dbus_string_free): apply align offset
10766         when freeing the string
10767         (_dbus_string_steal_data): fix for align offset
10768         (undo_alignment): new function
10769
10770 2003-02-26  Havoc Pennington  <hp@redhat.com>
10771
10772         All kinds of audit fixes from Owen, plus initial attempt to
10773         handle unaligned memory returned from malloc.
10774
10775         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10776         leave room for align_offset and nul byte
10777         (fixup_alignment): function to track an align_offset and
10778         ensure real->str is aligned
10779         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10780         to allow a nul byte plus align offset
10781         (_dbus_string_lock): fix overflow issue
10782         (_dbus_string_init_const_len): add assertions on sanity of len,
10783         assign allocated to be ALLOCATION_PADDING larger than len
10784         (set_length): fixup the overflow handling
10785         (_dbus_string_get_data_len): fix overflow in assertion
10786         (open_gap): detect overflow in size of gap to be opened
10787         (_dbus_string_lengthen): add overflow check
10788         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10789         (_dbus_string_append): add overflow check
10790         (_dbus_string_append_unichar): overflow
10791         (_dbus_string_delete): fix overflow in assertion
10792         (_dbus_string_copy_len): overflow in assertion
10793         (_dbus_string_replace_len): overflows in assertions
10794         (_dbus_string_find): change to implement in terms of
10795         _dbus_string_find_to
10796         (_dbus_string_find_to): assorted fixage
10797         (_dbus_string_equal_c_str): assert c_str != NULL,
10798         fix logic so the function works
10799         (_dbus_string_ends_with_c_str): fix overflow thingy
10800         (_dbus_string_base64_encode): overflow fix
10801         (_dbus_string_validate_ascii): overflow
10802         (_dbus_string_validate_nul): overflow
10803
10804 2003-02-26  Havoc Pennington  <hp@redhat.com>
10805
10806         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10807
10808 2003-02-26  Alexander Larsson  <alexl@redhat.com>
10809
10810         * configure.in:
10811         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10812
10813         * dbus/dbus-connection.c:
10814         * dbus/dbus-connection.h:
10815         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10816         Add dbus_connection_set_wakeup_main_function and use it when queueing
10817         incoming and outgoing messages.
10818
10819
10820         * dbus/dbus-dataslot.c:
10821         Threadsafe usage of DBusDataSlotAllocator
10822
10823         * dbus/dbus-message.c: (dbus_message_get_args_iter):
10824         dbus_new can fail.
10825
10826         * dbus/dbus-server-unix.c:
10827         Add todo comment
10828
10829         * glib/dbus-gmain.c:
10830         Implement the new wakeup functions for glib.
10831
10832         * glib/Makefile.am:
10833         * glib/test-thread-client.c:
10834         * glib/test-thread-server.c:
10835         * glib/test-thread.h:
10836         Initial cut at some thread test code. Not really done yet.
10837
10838 2003-02-26  Havoc Pennington  <hp@pobox.com>
10839
10840         * dbus/dbus-connection.c
10841         (dbus_connection_send_message_with_reply_and_block): fix crash
10842         where we ref'd the outgoing message instead of the returned reply
10843
10844         * dbus/dbus-transport-unix.c (do_authentication): check read watch
10845         at the end of this function, so if we didn't need to read for
10846         authentication, we reinstall it for receiving messages
10847
10848         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10849         a NULL sender for peer-to-peer case
10850
10851         * dbus/dbus-transport-unix.c (check_read_watch): handle
10852         !authenticated case correctly
10853
10854         * glib/dbus-gmain.c: add support for DBusServer
10855
10856         * dbus/dbus-server.c: add data slot support
10857
10858         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10859         return values and handle errors
10860
10861         * dbus/dbus-dataslot.c: factor out the data slot stuff from
10862         DBusConnection
10863
10864         * Doxyfile.in (INPUT): add glib subdir
10865
10866         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10867         setup_with_g_main instead of hookup_with_g_main; write docs
10868
10869 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10870
10871         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10872         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10873         * dbus/dbus-message.c: (dbus_message_append_boolean),
10874         (dbus_message_append_boolean_array),
10875         (dbus_message_get_args_valist), (_dbus_message_test):
10876         * dbus/dbus-message.h:
10877         * doc/dbus-specification.sgml:
10878         Various fixes as pointed out by Havoc.
10879
10880         * test/data/invalid-messages/bad-boolean-array.message:
10881         * test/data/invalid-messages/bad-boolean.message:
10882         Add invalid boolean value test cases.
10883
10884 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10885
10886         * dbus/dbus-internals.c: (_dbus_type_to_string):
10887         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10888         (_dbus_marshal_validate_arg):
10889         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10890         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10891         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10892         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10893         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10894         (dbus_message_iter_get_double),
10895         (dbus_message_iter_get_boolean_array), (message_iter_test):
10896         * dbus/dbus-message.h:
10897         * dbus/dbus-protocol.h:
10898         * doc/dbus-specification.sgml:
10899         * test/data/valid-messages/lots-of-arguments.message:
10900         Add support for boolean and boolean array types.
10901
10902 2003-02-23  Havoc Pennington  <hp@pobox.com>
10903
10904         * dbus/dbus-keyring.c: finish most of this implementation and
10905         simple unit test
10906
10907         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10908         these barf if the error isn't cleared to NULL
10909
10910         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10911         (_dbus_create_directory): new function
10912
10913         * dbus/dbus-errors.c (dbus_set_error): fix warning
10914
10915         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10916         (_dbus_string_hex_decode): new function
10917         (test_hex_roundtrip): test code
10918
10919         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10920
10921         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10922
10923         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10924         the save-to-temp/rename trick to atomically write the new file
10925         (_dbus_string_parse_uint): new function
10926
10927 2003-02-22  Havoc Pennington  <hp@pobox.com>
10928
10929         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10930
10931 2003-02-22  Havoc Pennington  <hp@pobox.com>
10932
10933         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10934         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10935
10936         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10937
10938         * dbus/test/data/sha-1: add US government test suite for SHA-1
10939
10940 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10941
10942         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10943         Make string arrays NULL-terminated.
10944
10945         * dbus/dbus-memory.c: (dbus_free_string_array):
10946         * dbus/dbus-memory.h:
10947         New function for freeing NULL-terminated string arrays.
10948
10949         * dbus/dbus-message-builder.c: (append_quoted_string),
10950         (_dbus_message_data_load):
10951         Add support for array types.
10952
10953         * dbus/dbus-message.c: (check_message_handling):
10954         Add more types as test cases.
10955
10956         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10957         (_dbus_string_parse_double):
10958         Add the start offset to the end offset.
10959
10960         * test/data/valid-messages/lots-of-arguments.message:
10961         New test message with lots of arguments.
10962
10963 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10964
10965         * dbus/dbus-message.c: (dbus_message_append_nil),
10966         (dbus_message_append_int32), (dbus_message_append_uint32),
10967         (dbus_message_append_double), (dbus_message_append_string),
10968         (dbus_message_append_int32_array),
10969         (dbus_message_append_uint32_array),
10970         (dbus_message_append_double_array),
10971         (dbus_message_append_byte_array),
10972         (dbus_message_append_string_array):
10973         Fix all out-of-memory handling in these functions.
10974
10975 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10976
10977         * dbus/dbus-message.c: (dbus_message_append_nil):
10978         Fix a silly.
10979
10980 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10981
10982         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10983         (dbus_message_append_nil), (dbus_message_append_int32_array),
10984         (dbus_message_append_uint32_array),
10985         (dbus_message_append_double_array),
10986         (dbus_message_append_byte_array),
10987         (dbus_message_append_string_array), (dbus_message_get_args_valist),
10988         (dbus_message_iter_get_int32_array),
10989         (dbus_message_iter_get_uint32_array),
10990         (dbus_message_iter_get_double_array),
10991         (dbus_message_iter_get_byte_array),
10992         (dbus_message_iter_get_string_array):
10993
10994         * dbus/dbus-message.h:
10995         Add functions for appending and getting arrays.
10996
10997 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10998
10999         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11000         element size at least 8 bytes, fixes mempool tests on
11001         64-bit machines.
11002
11003 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11004
11005         * dbus/dbus-transport-unix.c (unix_do_iteration):
11006         Unlock the connection mutex during a blocking select call.
11007         Add todo about how we need a way to wake up the select.
11008
11009         * dbus/dbus-connection-internal.h:
11010         * dbus/dbus-connection.c:
11011         Add _dbus_connection_lock and _dbus_connection_unlock.
11012
11013 2003-02-19  Havoc Pennington  <hp@pobox.com>
11014
11015         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11016         Doxyfile.in, not Doxyfile
11017
11018         * dbus/dbus-keyring.c: do some hacking on this
11019
11020         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11021
11022         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11023         dbus_error_init
11024         (dbus_set_error): remove dbus_error_init, check for message ==
11025         NULL *before* we sprintf into it, and add @todo about including
11026         system headers in this file
11027
11028         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11029
11030         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11031
11032         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11033         get various bits of user information based on either username
11034         or user ID
11035         (_dbus_homedir_from_username): new function
11036
11037 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11038
11039         * configure.in:
11040         Add check for nonposix getpwnam_r
11041
11042         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11043         Align the pool element size to a sizeof (void *) boundary.
11044
11045         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11046         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11047         General Solaris fixes.
11048
11049         * test/data/valid-messages/simplest-manual.message:
11050         Explicitly state that we want little-endian packing.
11051
11052 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11053
11054         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11055
11056         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11057         Added to create a transport connecting using a tcp/ip socket.
11058
11059         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11060         to a tcp socket at given host and port.
11061         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11062         hostname and port.
11063
11064         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11065
11066         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11067         Added to create a server listening on a TCP/IP socket.
11068
11069 2003-02-19  Havoc Pennington  <hp@pobox.com>
11070
11071         Throughout: mop up all the Doxygen warnings and undocumented
11072         stuff.
11073
11074         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11075         to search any paths.
11076
11077         * dbus/dbus-threads.c: move global mutex initializers to
11078         dbus-internals.h, multiple prototypes was confusing doxygen
11079         besides being kind of ugly
11080
11081         * Doxyfile (PREDEFINED): have Doxygen define
11082         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11083         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11084         (do not abuse the feature! it's for stuff like the autogenerated
11085         macros in dbus-md5.c, not just for things you don't feel like
11086         documenting...)
11087
11088 2003-02-18  Havoc Pennington  <hp@pobox.com>
11089
11090         * dbus/dbus-string.c (_dbus_string_zero): new function
11091
11092         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11093         wrap it in some dbus-friendly API
11094
11095         * dbus/dbus-types.h: add 16-bit types
11096
11097 2003-02-18  Joe Shaw  <joe@assbarn.com>
11098
11099         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11100         credentials from our currently running process.
11101         (get_word): Fix a buglet where we were copying the entire length
11102         instead of relative to our position.
11103
11104         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11105         keys on the stack... it's 640k of data.
11106
11107         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11108         read the credentials byte off the socket, even if we don't have
11109         SO_PEERCRED.
11110         (_dbus_poll): Implement poll() using select() for systems which
11111         don't have it.
11112
11113         * glib/test-dbus-glib.c (main): Print out an error if no
11114         parameters are given.
11115
11116         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11117         can fallback to a secondary auth mechanism if the first fails.
11118
11119 2003-02-18  Havoc Pennington  <hp@pobox.com>
11120
11121         * AUTHORS: add Alex
11122
11123 2003-02-17  Havoc Pennington  <hp@pobox.com>
11124
11125         * doc/dbus-specification.sgml: lots of cosmetic
11126         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11127         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11128         s/server/bus/ (except in authentication section). Add a section
11129         "Message Bus Message Routing"
11130
11131 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11132
11133         Release 0.4
11134
11135         * NEWS: Update
11136
11137 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11138
11139         * doc/dbus-specification.sgml:
11140         Specification updates.
11141
11142 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11143
11144         * bus/activation.c: (bus_activation_init), (child_setup),
11145         (bus_activation_activate_service):
11146         * bus/activation.h:
11147         * bus/main.c: (main):
11148         Set DBUS_ADDRESS environment variable.
11149
11150         * dbus/dbus-errors.c: (dbus_set_error):
11151         Don't use va_copy since that's a C99 feature.
11152
11153         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11154         (_dbus_spawn_async):
11155         * dbus/dbus-sysdeps.h:
11156         Add child_setup_func to _dbus_spawn_async.
11157
11158         * doc/dbus-specification.sgml:
11159         Update specification.
11160
11161         * test/spawn-test.c: (setup_func), (main):
11162         Fix test.
11163
11164 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11165
11166         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11167         Added todo.
11168
11169 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11170
11171         * doc/.cvsignore:
11172         * doc/Makefile.am:
11173         * doc/dbus-test-plan.sgml:
11174         Add test plan document.
11175
11176         * test/Makefile.am:
11177         Fix distcheck.
11178
11179 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11180
11181         * dbus/dbus-message.c: (decode_header_data),
11182         (_dbus_message_loader_return_buffer):
11183         Set the header padding amount when loading a message.
11184
11185 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11186
11187         * bus/dispatch.c: (send_one_message):
11188         Only send broadcast messages to registered connections.
11189
11190         * dbus/dbus-message.c: (dbus_message_name_is):
11191         * dbus/dbus-message.h:
11192         New convenience function.
11193
11194         * dbus/dbus-transport-debug.c: (do_reading):
11195         Only dispatch one message per run.
11196
11197         * test/Makefile.am:
11198         * test/bus-test.c: (new_connection_callback), (die),
11199         (test_hello_client1_handler), (test_hello_client2_handler),
11200         (test_hello_replies), (main):
11201
11202         * test/bus-test-loop.[ch]:
11203         Add these.
11204
11205 2003-02-16  Havoc Pennington  <hp@pobox.com>
11206
11207         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11208         backward conditional
11209
11210 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11211
11212         * dbus/dbus-connection.c:
11213         Implement sent_message_with_reply. (with_reply_and block is still
11214         busted).
11215         Made dispatch_message not lose message if OOM.
11216
11217         * dbus/dbus-errors.h:
11218         Add NoReply error (for reply timeouts).
11219
11220 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11221
11222         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11223         Actually free keys and values when destroying hashtable.
11224
11225 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11226
11227         * dbus/dbus-auth.c: (client_try_next_mechanism):
11228         Plug a leak.
11229
11230         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11231         Return TRUE if there's no thread implementation around.
11232
11233         * glib/dbus-gmain.c: (free_source),
11234         (dbus_connection_hookup_with_g_main):
11235         Make sure to remove the GSource when the connection is finalized.
11236
11237 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11238
11239         * bus/dispatch.c: (bus_dispatch_message_handler):
11240         * dbus/dbus-errors.h:
11241         Return an error if someone tries to send a message to a service
11242         that doesn't exist.
11243
11244 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11245
11246         * bus/activation.c: (load_directory), (bus_activation_init),
11247         (bus_activation_activate_service):
11248         * bus/activation.h:
11249         * bus/driver.c:
11250         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11251         More work on the activation handling.
11252
11253         * dbus/dbus-errors.h:
11254         Add some error messages
11255
11256         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11257         * dbus/dbus-message.h:
11258         New function that creates an error message.
11259
11260         * dbus/dbus-protocol.h:
11261         Add ACTIVATE_SERVER message.
11262
11263         * dbus/dbus-server-unix.c: (unix_handle_watch),
11264         (_dbus_server_new_for_domain_socket):
11265         Call _dbus_fd_set_close_on_exec.
11266
11267         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11268         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11269         (_dbus_fd_set_close_on_exec):
11270         * dbus/dbus-sysdeps.h:
11271         Add _dbus_fd_set_close_on exec function. Also add function that checks
11272         that all open fds are set to close-on-exec and warns otherwise.
11273
11274         * dbus/dbus-transport-unix.c:
11275         (_dbus_transport_new_for_domain_socket):
11276         Call _dbus_fd_set_close_on_exec.
11277
11278 2003-02-16  Havoc Pennington  <hp@pobox.com>
11279
11280         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11281         allow people to avoid setting SIGPIPE to SIG_IGN
11282         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11283         we've been asked not to
11284
11285 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11286
11287         * dbus/dbus-list.c: (_dbus_list_append_link),
11288         (_dbus_list_prepend_link):
11289         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11290         (dbus_realloc):
11291         Warning fixes.
11292
11293 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11294
11295         * bus/Makefile.am:
11296         * bus/activation.c: (bus_activation_entry_free),
11297         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11298         * bus/activation.h:
11299         * bus/main.c: (main):
11300         Add simple activation support, doesn't work yet though.
11301
11302 2003-02-15   Zack Rusin  <zack@kde.org>
11303
11304         * qt/dbus-qthread.cpp:  small casting fix
11305
11306 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11307
11308         * dbus/dbus-errors.c: (dbus_set_error):
11309         * dbus/dbus-errors.h:
11310         Add a few errors and make dbus_set_error void.
11311
11312         * dbus/dbus-sysdeps.c:
11313         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11314         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11315         * dbus/dbus-sysdeps.h:
11316         Add _dbus_spawn_async.
11317
11318         * test/spawn-test.c: (main):
11319         Test for _dbus_spawn_async.
11320
11321 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11322
11323         * dbus/dbus-internals.h:
11324         Fix build without tests.
11325
11326         * dbus/dbus-list.c: (alloc_link):
11327         Fix a segfault when a malloc fails.
11328
11329         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11330         (dbus_malloc0), (dbus_realloc):
11331         Add support for malloc debugging.
11332
11333 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11334
11335         * dbus/dbus-threads.c:
11336         * dbus/dbus-threads.h:
11337         Add condvars. Remove static mutext from API.
11338         Implement static mutexes by initializing them from threads_init.
11339
11340         * glib/dbus-gthread.c:
11341         * qt/dbus-qthread.cpp:
11342         Update with the thread api changes.
11343
11344
11345         * dbus/dbus-list.c:
11346         * dbus/dbus-list.h:
11347         Turn StaticMutex into normal mutex + init function.
11348         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11349         _dbus_list_append_link, _dbus_list_prepend_link
11350
11351
11352         * dbus/dbus-sysdeps.c:
11353         * dbus/dbus-sysdeps.h:
11354         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11355         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11356
11357         * dbus/dbus-protocol.h:
11358         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11359
11360         * dbus/dbus-message.c:
11361         Make ref/unref atomic.
11362         Fix some docs.
11363
11364         * dbus/dbus-connection-internal.h:
11365         * dbus/dbus-connection.c:
11366         * dbus/dbus-connection.h:
11367         Make threadsafe.
11368         Change _peek to _borrow,_return & _steal_borrowed.
11369         Change disconnect callback to event.
11370         Make dbus_connection_dispatch_messages reentrant.
11371
11372         * dbus/dbus-transport.c:
11373         Don't ref the connection on calls to the transport
11374         implementation.
11375
11376         * dbus/dbus-message-handler.c:
11377         Make threadsafe.
11378
11379         * glib/dbus-gmain.c:
11380         Don't use peek_message anymore
11381
11382         * test/Makefile.am:
11383         * test/debug-thread.c:
11384         * test/debug-thread.h:
11385         Simple thread implementation that asserts() on deadlocks in
11386         single-threaded code.
11387
11388         * test/bus-test.c:
11389         (main) Call debug_threads_init.
11390
11391         * test/watch.c:
11392         Use disconnect message instead of disconnect callback.
11393
11394         * bus/connection.c:
11395         * bus/connection.h:
11396         Don't call dbus_connection_set_disconnect_function. Instead export
11397         bus_connection_disconnect.
11398
11399         * bus/dispatch.c:
11400         Call bus_connection_disconnect when we get a disconnected message.
11401
11402 2003-02-15  Havoc Pennington  <hp@pobox.com>
11403
11404         * dbus/dbus-message.c (dbus_message_new): fool around with the
11405         docs
11406
11407 2003-02-14  Havoc Pennington  <hp@pobox.com>
11408
11409         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11410
11411         * dbus/dbus-memory.c: fail if the debug functions indicate we
11412         should
11413
11414         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11415         (_dbus_decrement_fail_alloc_counter): debug functions to
11416         simulate memory allocation failures
11417
11418 2003-02-14  Havoc Pennington  <hp@pobox.com>
11419
11420         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11421         to DBusError
11422
11423 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11424
11425         * bus/driver.c: (bus_driver_handle_hello):
11426         * bus/driver.h:
11427         * bus/services.c: (bus_service_lookup):
11428         Reorder message sending so we get a more sane order.
11429
11430         * test/bus-test.c: (message_handler):
11431         Fix tyop.
11432
11433 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11434
11435         * bus/driver.c: (bus_driver_send_service_deleted),
11436         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11437         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11438         (bus_driver_send_welcome_message),
11439         (bus_driver_handle_list_services),
11440         (bus_driver_handle_acquire_service),
11441         (bus_driver_handle_service_exists):
11442         * dbus/dbus-bus.c: (dbus_bus_register_client),
11443         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11444         * dbus/dbus-errors.c: (dbus_result_to_string):
11445         * dbus/dbus-errors.h:
11446         * dbus/dbus-message.c: (dbus_message_append_args),
11447         (dbus_message_append_args_valist), (dbus_message_get_args),
11448         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11449         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11450         (dbus_message_iter_get_byte_array),
11451         (dbus_message_iter_get_string_array), (message_iter_test),
11452         (check_message_handling), (_dbus_message_test):
11453         * dbus/dbus-message.h:
11454         * test/bus-test.c: (main):
11455         Change fields to arguments in messages, so that they won't be
11456         confused with header fields.
11457
11458         * glib/test-dbus-glib.c: (main):
11459         Remove append_fields from hello message.
11460
11461 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11462
11463         * dbus/dbus-errors.c:
11464         * dbus/dbus-message.c:
11465         * dbus/dbus-string.c:
11466         Documentation fixes.
11467
11468 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11469
11470         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11471         (remove_timeout):
11472         Implement support for timeouts in dbus-glib.
11473
11474 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11475
11476         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11477         * dbus/dbus-message.c: (process_test_subdir):
11478         * test/break-loader.c: (find_breaks_based_on):
11479         Plug some memory leaks.
11480
11481 2003-02-13  Richard Hult  <rhult@codefactory.se>
11482
11483         * bus/main.c: Fix build.
11484
11485         * dbus/dbus-errors.h:
11486         * dbus/dbus-errors.c: Fix copyright for Anders.
11487
11488 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11489
11490         * bus/Makefile.am:
11491         Add utils.[ch]
11492
11493         * bus/connection.c: (bus_connection_foreach):
11494         Fix a warning.
11495
11496         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11497         (unescape_string), (new_section), (parse_section_start),
11498         (parse_key_value), (report_error), (bus_desktop_file_load),
11499         (bus_desktop_file_get_string):
11500         * bus/desktop-file.h:
11501         Use DBusError for error reporting.
11502
11503         * bus/dispatch.c: (send_one_message),
11504         (bus_dispatch_message_handler):
11505         * bus/driver.c: (bus_driver_send_service_deleted),
11506         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11507         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11508         (bus_driver_send_welcome_message),
11509         (bus_driver_handle_list_services),
11510         (bus_driver_handle_acquire_service),
11511         (bus_driver_handle_service_exists):
11512         * bus/loop.c: (bus_loop_run):
11513         * bus/main.c:
11514         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11515
11516         * bus/utils.c: (bus_wait_for_memory):
11517         * bus/utils.h:
11518         New files with general utility functions.
11519
11520         * dbus/dbus-internals.h:
11521         Remove _DBUS_HANDLE_OOM.
11522
11523 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11524
11525         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11526         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11527         * dbus/dbus-errors.h:
11528         Add DBusError structure.
11529
11530 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11531
11532         * test/data/valid-messages/standard-acquire-service.message:
11533         * test/data/valid-messages/standard-hello.message:
11534         * test/data/valid-messages/standard-list-services.message:
11535         * test/data/valid-messages/standard-service-exists.message:
11536         Add some standard messages.
11537
11538 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11539
11540         * bus/driver.c: (bus_driver_send_welcome_message),
11541         (bus_driver_handle_list_services),
11542         (bus_driver_handle_acquire_service),
11543         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11544         Update for API changes in libdbus.
11545
11546         * dbus/dbus-message.c: (dbus_message_new_reply):
11547         * dbus/dbus-message.h:
11548         Remove the name argument. The spec states that replies shouldn't
11549         have a name.
11550
11551 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11552
11553         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11554         (report_error), (bus_desktop_file_load), (lookup_section),
11555         (lookup_line), (bus_desktop_file_get_raw),
11556         (bus_desktop_file_get_string):
11557         * bus/desktop-file.h:
11558         Some fixes, and new functions for getting a key value from a section.
11559
11560 2003-02-13  Havoc Pennington  <hp@pobox.com>
11561
11562         * test/data/auth/fail-after-n-attempts.auth-script: new test
11563
11564         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11565         reject the client.
11566
11567 2003-02-13  Havoc Pennington  <hp@pobox.com>
11568
11569         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11570         dbus_credentials_match were backward
11571
11572         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11573         NO_CREDENTIALS and ROOT_CREDENTIALS
11574
11575         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11576         into here. Never process more commands after we've reached an
11577         end state; store further data as unused bytes.
11578
11579         * test/data/auth/*: add more auth tests
11580
11581         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11582         command to match exact string and EXPECT_UNUSED to match unused
11583         bytes
11584
11585         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11586
11587 2003-02-12  Havoc Pennington  <hp@pobox.com>
11588
11589         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11590         \r off of popped lines
11591
11592         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11593         scripts
11594
11595         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11596         SEND, append \r\n
11597
11598 2003-02-12  Havoc Pennington  <hp@pobox.com>
11599
11600         * dbus/Makefile.am: remove break-loader from the build, since it
11601         moved.
11602
11603         * configure.in: add --enable-gcov to turn on coverage profiling
11604         flags and disable optimization
11605
11606 2003-02-10  Havoc Pennington  <hp@pobox.com>
11607
11608         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11609         initial cut at test framework for DBusAuth from laptop.
11610         Doesn't quite work yet but it compiles and I need to get
11611         it off the 266mhz laptop. ;-)
11612
11613         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11614         fix a memleak in error case
11615
11616 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11617
11618         * bus/Makefile.am:
11619         * bus/desktop-file.c:
11620         * bus/desktop-file.h:
11621         Add a desktop file parser.
11622
11623 2003-02-11  Zack Rusin  <zack@kde.org>
11624
11625         * qt/message.[h|cpp]: sample implementation
11626         of the KDE wrapper for DBusMessage
11627
11628 2003-02-09  Zack Rusin  <zack@kde.org>
11629
11630         * test/bus-test.c: make_it_compile
11631         * doc/dbus-specification.sgml: minimal semantic fix
11632
11633 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11634
11635         Release 0.3
11636
11637         * NEWS: Update
11638
11639 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11640
11641         * dbus/Makefile.am:
11642         * dbus/dbus-break-loader.c:
11643         * test/Makefile.am:
11644         * test/break-loader.c:
11645         Move dbus-break-loader to test/ and rename it to break-loader.
11646
11647 2003-02-02  Havoc Pennington  <hp@pobox.com>
11648
11649         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11650         for code to manage cookies in your home directory
11651
11652         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11653
11654         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11655         to authenticate, then disconnect the client.
11656
11657 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11658
11659         * dbus/dbus-message.c (dbus_message_append_fields):
11660         Correct docs.
11661
11662 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11663
11664         * doc/dbus-specification.sgml:
11665         Update address format section.
11666
11667 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11668
11669         * test/Makefile.am:
11670         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11671         (message_handler), (new_connection_callback), (loop_quit),
11672         (loop_run), (main):
11673         Add bus test.
11674
11675 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11676
11677         * bus/driver.c: (bus_driver_handle_service_exists):
11678         Simplify the code a bit.
11679
11680         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11681         Fix a silly.
11682
11683 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11684
11685         * bus/Makefile.am:
11686         Add libdbus-daemon.la and link to it.
11687
11688 2003-02-01  James Willcox  <jwillcox@gnome.org>
11689
11690         * bus/driver.c: (bus_driver_handle_own_service):
11691         Actually include the service reply code in the message.
11692
11693 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11694
11695         * bus/driver.c: (bus_driver_handle_service_exists):
11696         Don't unref the incoming message.
11697
11698 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11699
11700         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11701
11702 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11703
11704         * dbus/dbus-server.c: (dbus_server_listen):
11705         * dbus/dbus-transport.c: (_dbus_transport_open):
11706         ifdef out the calls to the debug transport and server.
11707
11708 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11709
11710         * dbus/dbus-watch.c (dbus_watch_get_flags):
11711         Add note in the docs that ERROR or HANGUP won't be returned
11712         and are assumed always on.
11713
11714         * glib/dbus-gmain.c (add_watch):
11715         Always add IO_ERR | IO_HUP
11716
11717         * dbus/dbus-message.h:
11718         Add semicolon after dbus_message_iter_get_string_array().
11719         Makes qt code build again
11720
11721 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11722
11723         * bus/driver.c: (create_unique_client_name),
11724         (bus_driver_handle_hello):
11725         Don't take a name, just use a numeric id to identify
11726         each client.
11727
11728         * dbus/Makefile.am:
11729         * dbus/dbus-bus.c: (dbus_bus_register_client),
11730         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11731         * dbus/dbus-bus.h:
11732         Add new convenience functions for communicating with the bus.
11733
11734         * dbus/dbus-message.h:
11735
11736         * dbus/dbus-protocol.h:
11737         Fix a typo.
11738
11739 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11740
11741         * dbus/dbus-message.c (dbus_message_append_fields):
11742         Add some more doc comments.
11743
11744 2003-02-01  Havoc Pennington  <hp@pobox.com>
11745
11746         * dbus/dbus-break-loader.c (randomly_modify_length): change
11747         a 4-byte value in the message as if it were a length
11748
11749         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11750         execute bit on saved files
11751
11752 2003-02-01  Havoc Pennington  <hp@pobox.com>
11753
11754         * dbus/dbus-break-loader.c (main): new program to find messages
11755         that break the loader.
11756
11757         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11758         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11759
11760         * dbus/dbus-string.c (_dbus_string_set_byte): new
11761
11762 2003-01-31  Havoc Pennington  <hp@pobox.com>
11763
11764         * dbus/dbus-message.c: refactor the test code to be more general,
11765         in preparation for writing a "randomly permute test cases to
11766         try to break the loader" program.
11767
11768 2003-01-31  Havoc Pennington  <hp@pobox.com>
11769
11770         * doc/dbus-specification.sgml: work on the specification
11771
11772         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11773         the protocol version of the message.
11774
11775         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11776         no longer specifies that.
11777         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11778         1/2/3/4)
11779
11780         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11781         "break" for DBUS_TYPE_NIL, remove @todo
11782
11783 2003-01-31  Havoc Pennington  <hp@pobox.com>
11784
11785         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11786         just set_is_error/get_is_error as this is a commonly-used
11787         function, and write docs.
11788
11789 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
11790
11791         * dbus/dbus-address.c: (dbus_address_entry_free):
11792         Free key and value lists.
11793
11794         * dbus/dbus-internals.c: (_dbus_type_to_string):
11795         Add the types we didn't have.
11796
11797         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11798         (_dbus_marshal_validate_arg):
11799         Add NIL types.
11800
11801         * dbus/dbus-message.c: (dbus_message_set_sender):
11802         Remove todo about being able to set sender to NULL.
11803
11804         (dbus_message_set_is_error_reply),
11805         (dbus_message_get_is_error_reply):
11806         * dbus/dbus-message.h:
11807         New functions.
11808
11809         * dbus/dbus-protocol.h:
11810         Add error reply flag.
11811
11812         * test/data/valid-messages/opposite-endian.message:
11813         Add NIL type to test.
11814
11815 2003-01-31  Havoc Pennington  <hp@pobox.com>
11816
11817         * doc/dbus-specification.sgml: fully specify the header.  Add
11818         flags and major protocol version, and change header/body len to
11819         unsigned.
11820
11821         * dbus/dbus-message-builder.c (append_saved_length): append length
11822         as uint32
11823
11824         * dbus/dbus-message.c (dbus_message_create_header): change header
11825         length and body length to unsigned. Add the new fields from the
11826         spec
11827         (_dbus_message_loader_return_buffer): unsigned header/body len
11828
11829 2003-01-30  Havoc Pennington  <hp@pobox.com>
11830
11831         * dbus/dbus-auth.c: rework to use only REJECTED, no
11832         MECHANISMS
11833
11834         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11835         use REJECTED, suggested by Mark McLoughlin
11836
11837 2003-01-30  Havoc Pennington  <hp@pobox.com>
11838
11839         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11840         a better way to report errors here. e.g.  "unix address lacks
11841         path" or something. also "no such file" when the path doesn't
11842         exist, etc.
11843
11844         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11845         leaking list nodes
11846         (dbus_parse_address): add @todo about documenting address format,
11847         and allowing , and ; to be escaped
11848
11849 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
11850
11851         * dbus/Makefile.am:
11852         Add dbus-address.[ch]
11853
11854         * dbus/dbus-address.c: (dbus_address_entry_free),
11855         (dbus_address_entries_free), (create_entry),
11856         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11857         (dbus_parse_address), (_dbus_address_test):
11858         * dbus/dbus-address.h:
11859         New files for dealing with address parsing.
11860
11861         * dbus/dbus-connection.c:
11862         Document timeout functions.
11863
11864         * dbus/dbus-message.c:
11865         Document dbus_message_new_from_message.
11866
11867         * dbus/dbus-server-debug.c:
11868         Document.
11869
11870         * dbus/dbus-server.c: (dbus_server_listen):
11871         Parse address and use correct server implementation.
11872
11873         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11874         * dbus/dbus-string.h:
11875         New function with test.
11876
11877         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11878         * dbus/dbus-test.h:
11879         Add address tests.
11880
11881         * dbus/dbus-transport-debug.c:
11882         Document.
11883
11884         * dbus/dbus-transport.c: (_dbus_transport_open):
11885         Parse address and use correct transport implementation.
11886
11887 2003-01-30  Havoc Pennington  <hp@pobox.com>
11888
11889         * dbus/dbus-message.c: use message->byte_order instead of
11890         DBUS_COMPILER_BYTE_ORDER throughout.
11891         (dbus_message_create_header): pad header to align the
11892         start of the body of the message to 8-byte boundary
11893
11894         * dbus/dbus-marshal.h: make all the demarshalers take const
11895         DBusString arguments.
11896
11897         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11898         validate message args here, so we don't have to do slow validation
11899         later, and so we catch bad messages as they are incoming. Also add
11900         better checks on header_len and body_len. Also fill in
11901         message->byte_order
11902
11903         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11904         implemented properly)
11905         (_dbus_string_validate_nul): new function to check all-nul
11906
11907         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11908         get_arg_end_pos and remove all validation
11909         (_dbus_marshal_validate_arg): actually do validation here.
11910
11911 2003-01-29  Havoc Pennington  <hp@pobox.com>
11912
11913         * dbus/dbus-message.c (check_message_handling): fix assertion
11914         failure on set_client_serial
11915
11916 2003-01-28  Havoc Pennington  <hp@pobox.com>
11917
11918         * dbus/dbus-server-debug.c: Add doc section comments
11919
11920         * dbus/dbus-transport-debug.c: add doc section comments
11921
11922 2003-01-28  Havoc Pennington  <hp@redhat.com>
11923
11924         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11925         the reverse order from how I had it
11926         (_dbus_string_base64_encode): reverse encoding order. I was
11927         basically byteswapping everything during encoding.
11928
11929 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
11930
11931         * dbus/dbus-connection-internal.h:
11932         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11933         (_dbus_connection_remove_timeout):
11934         Add functions for adding and removing timeouts.
11935
11936         * dbus/dbus-message.c: (dbus_message_new_from_message):
11937         Add new function that takes a message and creates an exact
11938         copy of it, but with the refcount set to 1.
11939         (check_message_handling):
11940         Fix build error.
11941
11942         * dbus/dbus-server-protected.h:
11943         * dbus/dbus-server.c: (_dbus_server_init_base),
11944         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11945         (dbus_server_set_timeout_functions):
11946         (_dbus_server_remove_timeout):
11947         New functions so that a server can add and remove timeouts.
11948
11949         (dbus_server_listen):
11950         Add commented out call to dbus_server_debug_new.
11951
11952         * dbus/dbus-timeout.c: (_dbus_timeout_new):
11953         Actually set the handler, doh.
11954
11955         * dbus/dbus-transport.c: (_dbus_transport_open):
11956         Add commented out call to dbus_transport_debug_client_new.
11957
11958         * dbus/Makefile.am:
11959         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11960
11961 2003-01-28  Havoc Pennington  <hp@pobox.com>
11962
11963         * dbus/dbus-message.c (check_message_handling): function to check
11964         on the loaded message, iterates over it etc.
11965
11966 2003-01-28  Havoc Pennington  <hp@pobox.com>
11967
11968         * test/Makefile.am (dist-hook): fix make distdir
11969
11970         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11971
11972 2003-01-27  Havoc Pennington  <hp@pobox.com>
11973
11974         * dbus/dbus-mempool.c (time_for_size): replace printf with
11975         _dbus_verbose
11976
11977         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11978         empty lines; fix the SAVE_LENGTH stuff to be
11979         START_LENGTH/END_LENGTH so it actually works; couple other
11980         bugfixes
11981
11982         * test/Makefile.am (dist-hook): add dist-hook for .message files
11983
11984         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11985         can be constant or locked.
11986         (_dbus_string_free): allow freeing a const string as
11987         documented/intended
11988
11989         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11990
11991         * dbus/dbus-test-main.c (main): take an argument which is the
11992         directory containing test data
11993
11994         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11995         argument to this and load all the messages in test/data/
11996         checking that they can be loaded or not loaded as appropriate.
11997
11998 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
11999
12000         * bus/dispatch.c: (bus_dispatch_message_handler):
12001         Dispatch messages sent to services.
12002
12003         * bus/driver.c: (bus_driver_send_service_deleted),
12004         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12005         (bus_driver_send_service_acquired):
12006         Add helper functions for sending service related messages.
12007
12008         (bus_driver_send_welcome_message):
12009         Send HELLO_REPLY instead of WELCOME.
12010
12011         (bus_driver_handle_list_services):
12012         Send LIST_SERVICES_REPLY instead of SERVICES.
12013
12014         (bus_driver_handle_own_service),
12015         (bus_driver_handle_service_exists):
12016         New message handlers.
12017
12018         (bus_driver_handle_message):
12019         Invoke new message handlers.
12020
12021         (bus_driver_remove_connection):
12022         Don't remove any services here since that's done automatically
12023         by bus_service_remove_owner now.
12024
12025         * bus/driver.h:
12026         New function signatures.
12027
12028         * bus/services.c: (bus_service_add_owner):
12029         Send ServiceAcquired message if we're the only primary owner.
12030
12031         (bus_service_remove_owner):
12032         Send ServiceAcquired/ServiceLost messages.
12033
12034         (bus_service_set_prohibit_replacement),
12035         (bus_service_get_prohibit_replacement):
12036         Functions for setting prohibit replacement.
12037
12038         (bus_service_has_owner):
12039         New function that checks if a connection is in the owner queue of
12040         a certain service.
12041
12042         * bus/services.h:
12043         Add new function signatures.
12044
12045         * dbus/dbus-list.c: (_dbus_list_test):
12046         Add tests for _dbus_list_remove_last and traversing the list backwards.
12047
12048         * dbus/dbus-list.h:
12049         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12050         go any further, so return NULL then.
12051
12052         * dbus/dbus-protocol.h:
12053         Add new messages, service flags and service replies.
12054
12055 2003-01-26  Havoc Pennington  <hp@pobox.com>
12056
12057         * dbus/dbus-message-builder.c: implement, completely untested.
12058
12059         * test/data/*: add data to be used in testing.
12060         ".message" files are our simple loadable text format.
12061         ".message-raw" will be binary dumps of messages.
12062
12063         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12064
12065 2003-01-26  Havoc Pennington  <hp@pobox.com>
12066
12067         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12068
12069         * dbus/dbus-errors.c (dbus_result_to_string): add
12070         file errors
12071
12072         * dbus/dbus-message-builder.c: new file, will contain code to load
12073         up messages from files. Not implemented yet.
12074
12075 2003-01-26  Havoc Pennington  <hp@pobox.com>
12076
12077         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12078         the sender by setting to NULL
12079
12080 2003-01-26  Havoc Pennington  <hp@pobox.com>
12081
12082         The unit tests pass, but otherwise untested.  If it breaks, the
12083         tests should have been better. ;-)
12084
12085         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12086         the connection.
12087
12088         * dbus/dbus-message.c: redo everything so we maintain
12089         message->header as the only copy of the various fields.
12090         This avoids the possibility of out-of-memory in some cases,
12091         for example dbus_message_lock() can't run out of memory anymore,
12092         and avoids extra copying. Figured I may as well go ahead and do
12093         this since it was busted for dbus_message_lock to not return
12094         failure on OOM, and dbus_message_write_header was totally
12095         unchecked for OOM. Also fixed some random other bugs.
12096
12097         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12098         that strings are nul-terminated. Also, end_pos can be equal
12099         to string length just not greater than, I think.
12100         (_dbus_marshal_set_int32): new function
12101         (_dbus_marshal_set_uint32): new function
12102         (_dbus_marshal_set_string): new function
12103
12104         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12105         a warning, init timeout_list to NULL
12106         (dbus_connection_send_message): don't use uninitialized variable
12107         "serial"
12108
12109         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12110
12111 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12112
12113         * bus/driver.c: (bus_driver_handle_hello),
12114         (bus_driver_send_welcome_message):
12115         Plug leaks
12116
12117 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12118
12119         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12120         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12121         (dbus_connection_unref):
12122         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12123         * dbus/dbus-message.c: (dbus_message_unref),
12124         Plug memory leaks.
12125
12126         (dbus_message_get_fields):
12127         Remove debugging printout.
12128
12129         (_dbus_message_loader_return_buffer):
12130         Don't store the header string.
12131
12132         (_dbus_message_test):
12133         Plug leaks.
12134
12135 2003-01-26  Richard Hult  <rhult@codefactory.se>
12136
12137         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12138         the file descriptor list, since it can change under us.
12139
12140 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12141
12142         * glib/dbus-gmain.c: (dbus_connection_prepare),
12143         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12144         (remove_watch), (dbus_connection_hookup_with_g_main):
12145         Rewrite the glib handling to use its own GSource instead of a
12146         GIOChannel so we can catch messages put in the queue while waiting
12147         for a reply.
12148
12149 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12150
12151         * bus/Makefile.am:
12152         * bus/connection.c: (connection_disconnect_handler),
12153         (connection_watch_callback), (bus_connection_setup):
12154         * bus/dispatch.c: (send_one_message),
12155         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12156         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12157         * bus/dispatch.h:
12158         * bus/driver.c: (bus_driver_send_service_deleted),
12159         (bus_driver_send_service_created), (bus_driver_handle_hello),
12160         (bus_driver_send_welcome_message),
12161         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12162         (bus_driver_handle_message):
12163         * bus/driver.h:
12164         Refactor code, put the message dispatching in its own file. Use
12165         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12166         is disconnected.
12167
12168 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12169
12170         * dbus/dbus-internals.h:
12171         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12172
12173         * dbus/dbus-message.c: (dbus_message_get_sender):
12174         * dbus/dbus-message.h:
12175         Implement dbus_message_get_sender.
12176
12177         * dbus/dbus-protocol.h:
12178         Add message and service defines.
12179
12180 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12181
12182         * dbus/dbus-connection.c: (dbus_connection_send_message):
12183         * dbus/dbus-message-internal.h:
12184         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12185         (dbus_message_write_header):
12186         Remove _dbus_messag_unlock and don't set the client serial on a
12187         message if one already exists.
12188
12189 2003-01-24  Havoc Pennington  <hp@pobox.com>
12190
12191         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12192         list_pool
12193
12194         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12195         on OOM
12196
12197 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12198
12199         * dbus/dbus-list.c: (alloc_link), (free_link):
12200         Use a memory pool for the links.
12201
12202 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12203
12204         * bus/connection.c: (bus_connection_foreach):
12205         * bus/connection.h:
12206         Add new bus_connection_foreach function.
12207
12208         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12209         Add function that broadcasts a message to all clients.
12210
12211         (bus_driver_send_service_created), (bus_driver_handle_hello),
12212         (bus_driver_send_welcome_message),
12213         (bus_driver_handle_list_services), (bus_driver_message_handler):
12214         Implement functions that take care of listing services, and notifying
12215         clients when new services are created.
12216
12217         * bus/services.c: (bus_services_list):
12218         * bus/services.h:
12219         Add new function that returns an array of strings with the currently
12220         registered services.
12221
12222         * glib/dbus-glib.h:
12223         * glib/dbus-gmain.c:
12224         Update copyright year.
12225
12226 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12227
12228         * dbus/dbus-connection.c: (dbus_connection_send_message):
12229         Unlock the message in case it was sent earlier.
12230
12231         (dbus_connection_send_message_with_reply_and_block):
12232         Remove the reply message from the list.
12233
12234         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12235         Set array_len and new_pos correctly.
12236
12237         (_dbus_marshal_test):
12238         Remove debug output.
12239
12240         * dbus/dbus-message-internal.h:
12241         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12242         New function that returns the reply serial.
12243
12244         (_dbus_message_unlock):
12245         New function that unlocks a message and resets its header.
12246
12247         (dbus_message_append_string_array),
12248         (dbus_message_get_fields_valist),
12249         (dbus_message_iter_get_field_type),
12250         (dbus_message_iter_get_string_array),
12251         (dbus_message_get_fields),
12252         (dbus_message_append_fields_valist):
12253         Handle string arrays.
12254
12255         (dbus_message_set_sender):
12256         Make this function public since the bus daemon needs it.
12257
12258         (decode_header_data):
12259         Set the reply serial to -1 initially.
12260
12261         * dbus/dbus-message.h:
12262         Add dbus_message_set_sender.
12263
12264 2003-01-24  Havoc Pennington  <hp@pobox.com>
12265
12266         * doc/dbus-specification.sgml: add some stuff
12267
12268 2003-01-22  Havoc Pennington  <hp@pobox.com>
12269
12270         * doc/dbus-specification.sgml: Start to document the protocol.
12271
12272 2003-01-22  Havoc Pennington  <hp@pobox.com>
12273
12274         * dbus/dbus-connection.c
12275         (dbus_connection_send_message_with_reply_and_block): add some @todo
12276
12277         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12278
12279 2003-01-21  Havoc Pennington  <hp@pobox.com>
12280
12281         (patch untested because can't compile)
12282
12283         * bus/driver.c (create_unique_client_name): make this function
12284         never recycle client names. Also, caller should initialize
12285         the DBusString.
12286
12287         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12288
12289 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12290
12291         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12292         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12293         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12294         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12295         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12296         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12297         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12298         * dbus/dbus-marshal.h:
12299         * dbus/dbus-protocol.h:
12300         Add support for marshalling and demarshalling integer, double
12301         and string arrays.
12302
12303 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12304
12305         * bus/Makefile.am:
12306         Add driver.[ch]
12307
12308         * bus/connection.c: (connection_disconnect_handler):
12309         Remove the connection from the bus driver's list.
12310
12311         (connection_watch_callback): Dispatch messages.
12312
12313         (free_connection_data): Free connection name.
12314
12315         (bus_connection_setup): Add connection to the bus driver's list.
12316         (bus_connection_remove_owned_service):
12317         (bus_connection_set_name), (bus_connection_get_name):
12318         Add functions for setting and getting the connection's name.
12319
12320         * bus/connection.h:
12321         Add function headers.
12322
12323         * bus/driver.c: (create_unique_client_name),
12324         (bus_driver_handle_hello_message),
12325         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12326         (bus_driver_add_connection), (bus_driver_remove_connection):
12327         * bus/driver.h:
12328         * bus/main.c:
12329         * bus/services.c: (bus_service_free):
12330         * bus/services.h:
12331         New file that handles communication and registreation with the bus
12332         itself.
12333
12334 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12335
12336         * dbus/dbus-connection.c: (dbus_connection_send_message):
12337         Add a new client_serial parameter.
12338
12339         (dbus_connection_send_message_with_reply):
12340         Remove a @todo since we've implemented the blocking function.
12341
12342         (dbus_connection_send_message_with_reply_and_block):
12343         New function that sends a message and waits for a reply and
12344         then returns the reply.
12345
12346         * dbus/dbus-connection.h:
12347         Add new functions.
12348
12349         * dbus/dbus-errors.c: (dbus_result_to_string):
12350         * dbus/dbus-errors.h:
12351         Add new DBUS_RESULT.
12352
12353         * dbus/dbus-message-internal.h:
12354         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12355         (_dbus_message_set_sender), (dbus_message_write_header),
12356         (dbus_message_new_reply), (decode_header_data),
12357         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12358         * dbus/dbus-message.h:
12359         Add new functions that set the reply serial and sender.
12360         Also marshal and demarshal them correctly and add test.
12361
12362         * dbus/dbus-protocol.h:
12363         Add new DBUS_MESSAGE_TYPE_SENDER.
12364
12365         * glib/dbus-glib.h:
12366         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12367         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12368         (dbus_connection_hookup_with_g_main):
12369         * glib/test-dbus-glib.c: (main):
12370         Rewrite to use GIOChannel and remove the GSource crack.
12371
12372         * test/echo-client.c: (main):
12373         * test/watch.c: (check_messages):
12374         Update for changed APIs
12375
12376 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12377
12378         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12379
12380         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12381         Create a DBusTimeoutList.
12382         (dbus_connection_set_timeout_functions): Add new function to
12383         set timeout callbacks
12384
12385         * dbus/dbus-connection.h: Add public DBusTimeout API.
12386
12387         * dbus/dbus-message.c: (dbus_message_get_service):
12388         * dbus/dbus-message.h:  New function.
12389
12390         * dbus/dbus-server.c: Fix small doc typo.
12391
12392         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12393
12394 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12395
12396         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12397         of the string, just as long as specified.
12398
12399 2003-01-19  Havoc Pennington  <hp@pobox.com>
12400
12401         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12402         new function
12403
12404         * dbus/dbus-server.c (dbus_server_set_max_connections)
12405         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12406         keep track of current number of connections, and add API for
12407         setting a max (but haven't implemented enforcing the max yet)
12408
12409 2003-01-18  Havoc Pennington  <hp@pobox.com>
12410
12411         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12412         reading/writing if read_watch != NULL or write_watch != NULL.
12413
12414         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12415         the message loader code to actually load message->header and
12416         message->body into the newly-created message.
12417
12418         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12419         in OOM case
12420
12421         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12422         (dbus_connection_get_max_message_size)
12423         (dbus_connection_set_max_live_messages_size)
12424         (dbus_connection_get_max_live_messages_size): implement some
12425         resource limitation functions
12426
12427         * dbus/dbus-resources.c: new file implementing some of the
12428         resource limits stuff
12429
12430         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12431         missing docs, add @todo to handle OOM etc.
12432
12433         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12434         docs
12435
12436 2003-01-18  Havoc Pennington  <hp@pobox.com>
12437
12438         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12439         connection if it hasn't been already.
12440
12441         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12442         replace with DisconnectFunction.
12443
12444 2003-01-18  Havoc Pennington  <hp@pobox.com>
12445
12446         Building --disable-verbose-mode --disable-asserts --disable-tests
12447         cuts the library from 112K to 45K or so
12448
12449         * configure.in: check for varargs macro support,
12450         add --enable-verbose-mode, --enable-asserts.
12451
12452         * dbus/dbus-internals.h (_dbus_assert): support
12453         DBUS_DISABLE_ASSERT
12454         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12455
12456 2003-01-18  Havoc Pennington  <hp@pobox.com>
12457
12458         * dbus/dbus-test.c: include config.h so that tests actually run
12459
12460         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12461         so the failure mode when that assumption fails will be plenty
12462         obvious.
12463
12464 2003-01-18  Havoc Pennington  <hp@pobox.com>
12465
12466         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12467
12468         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12469         the distribution
12470
12471         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12472         since we don't want to use those in make check
12473
12474 2003-01-15  Havoc Pennington  <hp@redhat.com>
12475
12476         Release 0.2
12477
12478         * NEWS: update
12479
12480 2003-01-15  Havoc Pennington  <hp@redhat.com>
12481
12482         * test/Makefile.am: fix so that test source code ends up in the
12483         distribution on make distcheck
12484
12485 2003-01-15  Havoc Pennington  <hp@redhat.com>
12486
12487         Release 0.1.
12488
12489         * NEWS: update
12490
12491 2003-01-15  Havoc Pennington  <hp@redhat.com>
12492
12493         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12494         fix build when --disable-tests
12495
12496         * Makefile.am (EXTRA_DIST): put HACKING in here
12497
12498         * HACKING: document procedure for making a tarball release.
12499
12500 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12501
12502         * bus/connection.c: (connection_error_handler),
12503         (bus_connection_setup):
12504         * bus/main.c: (main):
12505         Make sure that the DBusConnectionData struct is NULLed
12506         out to prevent a segfault.
12507
12508         * dbus/dbus-errors.c: (dbus_result_to_string):
12509         * dbus/dbus-errors.h:
12510         * dbus/dbus-message.c: (dbus_message_get_fields),
12511         (dbus_message_get_fields_valist), (_dbus_message_test):
12512         * dbus/dbus-message.h:
12513         Make dbus_message_get_fields return a result code so we can
12514         track invalid fields as well as oom.
12515
12516 2003-01-11  Havoc Pennington  <hp@pobox.com>
12517
12518         * configure.in: change --enable-test/--enable-ansi action-if-given
12519         to enable_foo=$enableval instead of enable_foo=yes
12520
12521 2003-01-08  Havoc Pennington  <hp@pobox.com>
12522
12523         * dbus/dbus-string.c (_dbus_string_align_length): new function
12524
12525         * dbus/dbus-test-main.c: move main() for test app here
12526         * dbus/dbus-test.c
12527         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12528         symbol to run tests, because dbus-test isn't in the main
12529         library
12530
12531         Code review nitpicks.
12532
12533         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12534         for people with narrow emacs ;-). Assert client_serial was filled
12535         in. Assert message->name != NULL.
12536         (dbus_message_append_fields): have "first_field_type" arg separate
12537         from va list, needed for C++ binding that also uses varargs IIRC
12538         and helps with type safety
12539         (dbus_message_new): add @todo about using DBusString to store
12540         service/name internally
12541         (dbus_message_new): don't leak ->service and ->name on OOM later
12542         in the function
12543         (dbus_message_unref): free the service name
12544         (dbus_message_get_fields): same change to varargs
12545         i.e. first_field_type
12546         (_dbus_message_loader_return_buffer): assert that the message data
12547         is aligned (if not it's a bug in our code). Put in verbose griping
12548         about why we set corrupted = TRUE.
12549         (decode_header_data): add FIXME that char* is evil.  Was going to
12550         add FIXME about evil locale-specific string.h strncmp, but just
12551         switched to wacky string-as-uint32 optimization. Move check for
12552         "no room for field name" above get_const_data_len() to avoid
12553         assertion failure in get_const_data_len if we have trailing 2
12554         bytes or the like. Check for service and name fields being
12555         provided twice. Don't leak service/name on error. Require field
12556         names to be aligned to 4 bytes.
12557
12558         * dbus/dbus-marshal.c: move byte swap stuff to header
12559         (_dbus_pack_int32): uscore-prefix
12560         (_dbus_unpack_int32): uscore-prefix
12561         (_dbus_unpack_uint32): export
12562         (_dbus_demarshal_string): add @todo complaining about use of
12563         memcpy()
12564         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12565         handling allowing corrupt data to go unchecked
12566
12567 2003-01-08  Havoc Pennington  <hp@redhat.com>
12568
12569         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12570         to the select() as needed for authentication. (should be using
12571         _dbus_poll() not select, but for another day)
12572
12573         * dbus/dbus.h: include dbus/dbus-protocol.h
12574
12575 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12576
12577         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12578         dbus-connection.h
12579
12580 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12581
12582         * dbus/dbus-internals.c: (_dbus_type_to_string):
12583         New function that returns a string describing a type.
12584
12585         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12586         * dbus/dbus-marshal.h:
12587         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12588         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12589         (dbus_message_iter_get_byte_array):
12590         * dbus/dbus-message.h:
12591         Add new convenience functions for appending and getting message fields.
12592         Also add demarshalling routines for byte arrays.
12593
12594 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12595
12596         * dbus/dbus-connection-internal.h:
12597         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12598         (_dbus_connection_get_next_client_serial),
12599         (dbus_connection_send_message):
12600         * dbus/dbus-internals.h:
12601         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12602         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12603         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12604         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12605         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12606         (_dbus_verbose_bytes), (_dbus_marshal_test):
12607         * dbus/dbus-marshal.h:
12608         * dbus/dbus-message-internal.h:
12609         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12610         (dbus_message_write_header), (_dbus_message_lock),
12611         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12612         (dbus_message_get_name), (dbus_message_append_int32),
12613         (dbus_message_append_uint32), (dbus_message_append_double),
12614         (dbus_message_append_string), (dbus_message_append_byte_array),
12615         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12616         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12617         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12618         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12619         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12620         (decode_header_data), (_dbus_message_loader_return_buffer),
12621         (message_iter_test), (_dbus_message_test):
12622         * dbus/dbus-message.h:
12623         * dbus/dbus-protocol.h:
12624         * dbus/dbus-test.c: (main):
12625         * dbus/dbus-test.h:
12626         * glib/test-dbus-glib.c: (message_handler), (main):
12627         * test/echo-client.c: (main):
12628         * test/watch.c: (check_messages):
12629         Make messages sendable and receivable for real.
12630
12631 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12632
12633         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12634         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12635         * dbus/dbus-message.c: (dbus_message_append_int32),
12636         (dbus_message_append_uint32), (dbus_message_append_double),
12637         (dbus_message_append_string), (dbus_message_append_byte_array):
12638         Handle OOM restoration.
12639
12640 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12641
12642         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12643         (_dbus_demarshal_string), (_dbus_marshal_test):
12644         * dbus/dbus-marshal.h:
12645         * dbus/dbus-message.c: (dbus_message_get_name),
12646         Document these functions.
12647
12648         (dbus_message_append_int32), (dbus_message_append_uint32),
12649         (dbus_message_append_double), (dbus_message_append_string),
12650         (dbus_message_append_byte_array):
12651         * dbus/dbus-message.h:
12652         Add functions for adding message fields of different types.
12653
12654         * dbus/dbus-protocol.h:
12655         Add the different types.
12656
12657 2003-01-05  Havoc Pennington  <hp@pobox.com>
12658
12659         * bus/connection.c: implement routines for handling connections,
12660         first thing is keeping a list of owned services on each connection
12661         and setting up watches etc.
12662
12663         * bus/services.c: implement a mapping from service names to lists
12664         of connections
12665
12666         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12667
12668         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12669         to use static mutexes for global data
12670
12671         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12672         collection of functions to set/get application-specific data
12673         on the DBusConnection.
12674
12675 2003-01-04  Havoc Pennington  <hp@pobox.com>
12676
12677         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12678         (_dbus_poll): new function
12679
12680         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12681         copied from GLib
12682
12683         * bus/loop.c: initial code for the daemon main loop
12684
12685 2003-01-04  Havoc Pennington  <hp@pobox.com>
12686
12687         * test/watch.c (error_handler): make it safe if the error handler
12688         is called multiple times (if we s/error handler/disconnect
12689         handler/ we should just guarantee it's called only once)
12690
12691         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12692         error handler on disconnect (it's quite possible we should
12693         just change the error handler to a "disconnect handler," I'm
12694         not sure we have any other meaningful errors)
12695
12696         * configure.in: check for getpwnam_r
12697
12698         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12699         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12700         mechanism as in SASL spec, using socket credentials
12701
12702         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12703         (_dbus_send_credentials_unix_socket): new function
12704
12705         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12706         dbus_accept()
12707         (_dbus_write): only check errno if <0 returned
12708         (_dbus_write_two): ditto
12709
12710 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12711
12712         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12713         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12714         (_dbus_marshal_test):
12715         * dbus/dbus-marshal.h:
12716         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12717         to _dbus_marshal_utf8_string. Also fix some tests.
12718
12719 2002-12-28  Harri Porten  <porten@kde.org>
12720
12721         * configure.in: added check for C++ compiler and a very cheesy
12722         check for the Qt integration
12723
12724         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12725
12726         * qt/Makefile.am: added
12727
12728         * qt/.cvsignore: added
12729
12730         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12731         latter, added #ifdef QT_THREAD_SUPPORT guard.
12732
12733         * dbus/Makefile.am: added missing headers for make dist
12734
12735 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12736
12737         * dbus/Makefile.am: fixup export-symbols-regex.
12738
12739 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12740
12741         * acinclude.m4: Add this file and put the
12742         PKG_CHECK_MODULE macro in it.
12743
12744 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12745
12746         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12747         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12748         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12749         (_dbus_marshal_test):
12750         Make the demarshalling routines align the pos argument.
12751         Add string marshalling tests and fix the obvious bugs
12752         discovered.
12753
12754 2002-12-26  Havoc Pennington  <hp@pobox.com>
12755
12756         * dbus/dbus-auth.c: fixes fixes fixes
12757
12758         * dbus/dbus-transport-unix.c: wire up support for
12759         encoding/decoding data on the wire
12760
12761         * dbus/dbus-auth.c (_dbus_auth_encode_data)
12762         (_dbus_auth_decode_data): append to target string
12763         instead of nuking it.
12764
12765 2002-12-26  Havoc Pennington  <hp@pobox.com>
12766
12767         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12768         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12769         doh
12770
12771         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12772         avoid swap_bytes() overhead (ignoring possible assembly stuff for
12773         now). Main point is because I wanted unpack_uint32 to implement
12774         _dbus_verbose_bytes
12775         (_dbus_verbose_bytes): new function
12776
12777         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12778
12779         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12780         mechanism to handle a corrupt message stream
12781         (_dbus_message_loader_new): fix preallocation to only prealloc,
12782         not prelengthen
12783
12784         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12785         (_dbus_string_test): enhance tests for copy/move and fix the
12786         functions
12787
12788         * dbus/dbus-transport-unix.c: Hold references in more places to
12789         avoid reentrancy problems
12790
12791         * dbus/dbus-transport.c: ditto
12792
12793         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12794         leak reference count in no-message case
12795
12796         * test/watch.c (do_mainloop): handle adding/removing watches
12797         during iteration over the watches. Also, ref the connection/server
12798         stored on a watch, so we don't try to mangle a destroyed one.
12799
12800         * dbus/dbus-transport-unix.c (do_authentication): perform
12801         authentication
12802
12803         * dbus/dbus-auth.c (get_state): add a state
12804         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12805         (_dbus_auth_get_unused_bytes): append the unused bytes
12806         to the passed in string, rather than prepend
12807
12808         * dbus/dbus-transport.c (_dbus_transport_init_base): create
12809         the auth conversation DBusAuth
12810
12811         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12812         (_dbus_transport_new_for_domain_socket): when creating a
12813         transport, pass in whether it's a client-side or server-side
12814         transport so we know which DBusAuth to create
12815
12816 2002-12-03  Havoc Pennington  <hp@pobox.com>
12817
12818         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12819         _after_ finalizing the derived members
12820         (unix_connection_set): unref watch if we fail to add it
12821
12822         * dbus/dbus-connection.c (dbus_connection_unref): delete the
12823         transport first, so that the connection owned by the
12824         transport will be valid as the transport finalizes.
12825
12826         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12827         if necessary, and remove watches from the connection.
12828
12829         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12830
12831 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
12832
12833         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12834         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12835         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12836         (_dbus_marshal_test):
12837         * dbus/dbus-marshal.h:
12838         Add string marshal functions and have the demarshal functions
12839         return the new position.
12840
12841 2002-12-25  Havoc Pennington  <hp@pobox.com>
12842
12843         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12844         it is a simple protocol that just maps directly to SASL.
12845
12846         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12847         initial implementation, not actually used yet.
12848
12849         * dbus/dbus-string.c (_dbus_string_find): new function
12850         (_dbus_string_equal): new function
12851         (_dbus_string_base64_encode): new function
12852         (_dbus_string_base64_decode): new function
12853
12854 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
12855
12856         * dbus/Makefile.am:
12857         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12858         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12859         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12860         (_dbus_demarshal_uint32), (_dbus_marshal_test):
12861         * dbus/dbus-marshal.h:
12862         * dbus/dbus-protocol.h:
12863         * dbus/dbus-test.c: (main):
12864         * dbus/dbus-test.h:
12865         Add un-optimized marshalling/demarshalling routines.
12866
12867 2002-12-25  Harri Porten  <porten@kde.org>
12868
12869         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12870
12871 2002-12-24  Zack Rusin  <zack@kde.org>
12872
12873         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12874         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12875         main loop stuff
12876
12877 2002-12-24  Havoc Pennington  <hp@pobox.com>
12878
12879         * glib/dbus-gthread.c: fix include
12880
12881         * glib/dbus-glib.h: rename DBusMessageHandler for now.
12882         I think glib API needs to change, though, as you don't
12883         want to use DBusMessageFunction, you want to use the
12884         DBusMessageHandler object. Probably
12885         dbus_connection_open_with_g_main_loop()
12886         and dbus_connection_setup_g_main_loop() or something like that
12887         (but think of better names...) that just create a connection
12888         that has watch/timeout functions etc. already set up.
12889
12890         * dbus/dbus-connection.c
12891         (dbus_connection_send_message_with_reply): new function just to
12892         show how the message handler helps us deal with replies.
12893
12894         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12895
12896         * dbus/dbus-string.c (_dbus_string_test): free a string that
12897         wasn't
12898
12899         * dbus/dbus-hash.c: use memory pools for the hash entries
12900         (rebuild_table): be more paranoid about overflow, and
12901         shrink table when we can
12902         (_dbus_hash_test): reduce number of sprintfs and write
12903         valid C89. Add tests for case where we grow and then
12904         shrink the hash table.
12905
12906         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12907
12908         * dbus/dbus-connection.c (dbus_connection_register_handler)
12909         (dbus_connection_unregister_handler): new functions
12910
12911         * dbus/dbus-message.c (dbus_message_get_name): new
12912
12913         * dbus/dbus-list.c: fix docs typo
12914
12915         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12916         an object representing a handler for messages.
12917
12918 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12919
12920         * glib/dbus-glib.h:
12921         * glib/dbus-gthread.c: (dbus_gthread_init):
12922         Don't use the gdbus prefix for public functions.
12923
12924 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12925
12926         * Makefile.am:
12927         * configure.in:
12928         Add GLib checks and fixup .pc files
12929
12930         * glib/Makefile.am:
12931         * glib/dbus-glib.h:
12932         * glib/dbus-gmain.c: (gdbus_connection_prepare),
12933         (gdbus_connection_check), (gdbus_connection_dispatch),
12934         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12935         (dbus_connection_gsource_new):
12936         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12937         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12938         * glib/test-dbus-glib.c: (message_handler), (main):
12939         Add GLib support.
12940
12941 2002-12-15  Harri Porten  <porten@kde.org>
12942
12943         * autogen.sh: check for libtoolize before attempting to use it
12944
12945         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12946         struct.
12947
12948         * .cvsignore: ignore more stamp files
12949
12950         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12951
12952         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12953         without make install.
12954
12955 2002-12-15  Havoc Pennington  <hp@pobox.com>
12956
12957         * dbus/dbus-threads.c: add thread stubs that a higher library
12958         layer can fill in. e.g. the GLib wrapper might fill them in with
12959         GThread stuff. We still need to use this thread API to
12960         thread-safe-ize the library.
12961
12962 2002-12-12  Havoc Pennington  <hp@pobox.com>
12963
12964         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12965         below new interfaces and include fewer system headers.
12966
12967         * dbus/dbus-sysdeps.c (_dbus_read): new function
12968         (_dbus_write): new function
12969         (_dbus_write_two): new function
12970         (_dbus_connect_unix_socket): new function
12971         (_dbus_listen_unix_socket): new function
12972
12973         * dbus/dbus-message-internal.h: change interfaces to use
12974         DBusString
12975
12976 2002-12-11  Havoc Pennington  <hp@pobox.com>
12977
12978         * dbus/dbus-types.h: add dbus_unichar
12979
12980         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12981
12982         * dbus/dbus-connection.c (dbus_connection_send_message): return
12983         TRUE on success
12984
12985         * dbus/dbus-transport.c: include dbus-watch.h
12986
12987         * dbus/dbus-connection.c: include dbus-message-internal.h
12988
12989         * HACKING: add file with coding guidelines stuff.
12990
12991         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12992         handling here, for security purposes (as in vsftpd). Not actually
12993         using this class yet.
12994
12995         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12996         system/libc usage here, as in vsftpd, for ease of auditing (and
12997         should also simplify portability). Haven't actually moved all the
12998         system/libc usage into here yet.
12999
13000 2002-11-25  Havoc Pennington  <hp@pobox.com>
13001
13002         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13003         always print the first verbose message.
13004
13005 2002-11-24  Havoc Pennington  <hp@pobox.com>
13006
13007         * test/echo-client.c, test/echo-server.c: cheesy test
13008         clients.
13009
13010         * configure.in (AC_CHECK_FUNCS): check for writev
13011
13012         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13013         function
13014
13015         * dbus/dbus-list.c (_dbus_list_foreach): new function
13016
13017         * dbus/dbus-internals.c (_dbus_verbose): new function
13018
13019         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13020         representing a server that listens for connections.
13021
13022         * dbus/.cvsignore: create
13023
13024         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13025         public API for reporting errors
13026
13027         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13028         public object representing a connection that
13029         sends/receives messages. (Same object used for
13030         both client and server.)
13031
13032         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13033         Basic abstraction for different kinds of stream
13034         that we might read/write messages from.
13035
13036 2002-11-23  Havoc Pennington  <hp@pobox.com>
13037
13038         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13039         _DBUS_INT_MAX
13040
13041         * dbus/dbus-test.c (main): add list test, and include
13042         dbus-test.h as intended
13043
13044         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13045         (_dbus_hash_table_remove_int): return value indicates
13046         whether the entry existed to remove
13047
13048         * dbus/dbus-list.c: add linked list utility class,
13049         with docs and tests
13050
13051         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13052         array sometimes.
13053
13054 2002-11-23  Havoc Pennington  <hp@pobox.com>
13055
13056         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13057         DBUS_END_DECLS to nothing, that should fix this once and for all
13058
13059         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13060
13061         * dbus/dbus-message.c, dbus/dbus-hash.c:
13062         add some missing @brief
13063
13064 2002-11-23  Havoc Pennington  <hp@pobox.com>
13065
13066         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13067         to avoid confusing Doxygen
13068
13069         * dbus/dbus-hash.c: @} not }@
13070
13071         * dbus/dbus-message.c (struct DBusMessage): split out
13072         internals docs
13073
13074 2002-11-23  Havoc Pennington  <hp@pobox.com>
13075
13076         * configure.in: pile on more warning flags if using gcc
13077
13078         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13079         to document static functions
13080
13081         * configure.in: add summary to end of configure so it
13082         looks nice and attractive
13083
13084         * dbus/dbus-hash.c: finish implementation and write unit
13085         tests and docs
13086
13087         * configure.in: add --enable-tests to enable unit tests
13088
13089         * dbus/dbus-test.c: test program to run unit tests
13090         for all files in dbus/*, initially runs a test for
13091         dbus-hash.c
13092
13093         * dbus/dbus-internals.h: file to hold some internal utility stuff
13094
13095 2002-11-22  Havoc Pennington  <hp@redhat.com>
13096
13097         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13098         "ported" away from Tcl
13099
13100         * dbus/dbus-types.h: header for types such as dbus_bool_t
13101
13102 2002-11-22  Havoc Pennington  <hp@redhat.com>
13103
13104         * dbus/dbus.h: fixups for doc warnings
13105
13106         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13107         macros
13108         (QUIET): make it quiet so we can see warnings
13109
13110         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13111
13112 2002-11-22  Havoc Pennington  <hp@redhat.com>
13113
13114         * Makefile.am: include "Doxyfile" target in all-local
13115
13116         * configure.in: generate the Doxyfile
13117
13118         * Doxyfile.in: move Doxyfile here, so we can use
13119         configure to generate a Doxyfile with the right
13120         version number etc.
13121
13122 2002-11-22  Havoc Pennington  <hp@redhat.com>
13123
13124         * dbus/dbus-message.c: move inline docs into .c file
13125
13126         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13127         so all docs are under doc/
13128         (MAN_EXTENSION): generate man pages. Use extension
13129         ".3dbus" which matches ".3qt" on my system,
13130         I guess this is OK, I don't know really.
13131         (FILE_PATTERNS): look for .c files not .h, makes sense
13132         for plain C I think
13133
13134 2002-11-22  Havoc Pennington  <hp@pobox.com>
13135
13136         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13137         because any app can be a server, and any app can be a client,
13138         the bus is a special kind of server.
13139
13140 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13141
13142         * Doxyfile : adding. Still needs Makefile rules to be generated
13143         automatically (just run "doxygen" in the toplevel dir for now to
13144         generate docs)
13145
13146         * dbus/dbus-message.h : Adding sample docs (javadoc since
13147         resembles gtk-doc a little more)
13148
13149         * dbus/dbus.h : Adding sample docs
13150
13151 2002-11-21  Havoc Pennington  <hp@redhat.com>
13152
13153         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13154         so we can allow ourselves to include files directly,
13155         instead of having to use dbus.h
13156
13157         * dbus/dbus.h: fill in
13158
13159         * dbus/dbus-message.h: sketch out a sample header file.
13160         Include griping if you include it directly instead of
13161         via dbus.h
13162
13163         * dbus/dbus-macros.h: new file with macros for extern "C",
13164         TRUE/FALSE, NULL, etc.
13165
13166         * doc/file-boilerplate.c: put include guards in here
13167
13168 2002-11-21  Havoc Pennington  <hp@redhat.com>
13169
13170         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13171
13172         * COPYING: include the GPL as well, and license code
13173         under both AFL and GPL.
13174
13175 2002-11-21  Havoc Pennington  <hp@redhat.com>
13176
13177         * acconfig.h: get rid of this
13178
13179         * autogen.sh (run_configure): add --no-configure option
13180
13181         * configure.in: remove AC_ARG_PROGRAM to make
13182         autoconf complain less. add AC_PREREQ.
13183         add AC_DEFINE third arg.
13184
13185 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13186
13187         * doc/Makefile.am:
13188         Fix references so we can distcheck.
13189
13190 2002-11-21  Havoc Pennington  <hp@redhat.com>
13191
13192         * Initial module creation
13193