2006-02-16 Robert McQueen <robot101@debian.org>
[platform/upstream/dbus.git] / ChangeLog
1 2006-02-16  Robert McQueen  <robot101@debian.org>
2
3         * glib/dbus-gmain.c: Make the previous commit compile.
4
5         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
6         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
7         specify sender_keyword="foo", path_keyword="bar" when adding
8         a signal listener, so that you can bind to signals generically
9         but still do something useful in your callback.
10
11         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
12         chars so that they're not cast to chars and made negative. Thanks
13         to Jakub Stachowski for reporting this and testing the fix.
14
15 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
16
17         * dbus/dbus-glib.h:
18         * glib/dbus-gmain.h:
19         (dbus_g_connection_open): new method for openning
20         a connection to an arbitrary address in the glib bindings
21
22         * ChangeLog: checkin last entry which doesn't seem to be commited
23
24 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
25
26         * tools/dbus-launch.c: Fixed sh syntax output
27
28 2006-02-13  Robert McQueen  <robot101@debian.org>
29
30         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
31         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
32         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
33         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
34         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
35         missing piece of the glib bindings jigsaw puzzle. This modifies
36         the existing specialised types to have N type parameters (rather
37         than the current 1 or 2 for arrays and dictionaries respectively).
38         You can then use this to get a glib type to represent any arbitrary
39         D-Bus struct type using dbus_g_type_get_struct. The only
40         implementation of these types is with GValueArrays as before,
41         but it's now possible to store these in arrays, emit them in
42         signals, etc.
43
44 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
45
46         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
47         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
48         <thiago.macieira at trolltech.com>
49
50 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
51
52         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
53         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
54
55 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
56
57         * bus/connection.c (bus_connections_expect_reply): Make
58         pending reply limit not common to all connections (Bug #5416)
59         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
60
61 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
62
63         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
64
65 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
66
67         * gcj/Makefile.am: point to correct jar command (Bug #4529)
68         patch from Doug Goldstein <cardoe at gentoo.org>
69
70 2006-02-09  Joe Shaw  <joeshaw@novell.com>
71
72         * mono/Arguments.cs: Fix a magic number in the mono bindings
73         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
74
75 2006-01-27  Robert McQueen  <robot101@debian.org>
76
77         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
78         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
79         when generating the client-side methods, instead of overloading
80         CSymbol which broke everything horribly. My apologies.
81
82 2006-01-27  Robert McQueen  <robot101@debian.org>
83
84         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
85         by me and Rob Taylor to add a simple_free function to D-Bus map
86         and collection types, which allows those types which can be freed
87         with a GDestroyNotify (such as GHashTables and GArrays, but not
88         GPtrArrays) to be stored as the values in hashtables.
89
90         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
91         Patch by Rob Taylor to add nested dicts to the glib tests to check
92         the above code works, and appears not to leak when called repeatedly.
93
94 2006-01-27  Robert McQueen  <robot101@debian.org>
95
96         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
97         to free a D-Bus allocated string with dbus_free () instead of
98         g_free ().
99
100 2006-01-27  Iain Holmes  <iain@openedhand.com>
101
102         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
103         method from being called multiple times.
104
105 2006-01-19  Robert McQueen  <robot101@debian.org>
106
107         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
108         <rob.taylor@collabora.co.uk> to add support for generating bindings
109         to arrays that are represented as GPtrArrays rather than GArrays (ie
110         size-variable things, such as strings, objects, structs, etc).
111
112 2006-01-05  Robert McQueen  <robot101@debian.org>
113
114         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
115         <ricardo.kekki@movial.fi> to make it possible to inherit from
116         DBusGProxy, by splitting the DBusGProxy struct into a public part and
117         a private part, and moving the setting of the DBusGProxyManager into a
118         connection property, allowing proper GObject construction.
119
120 2006-01-05  Robert McQueen  <robot101@debian.org>
121
122         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
123         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
124         annotations when generating glib client bindings.
125
126 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
127
128         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
129
130         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
131
132 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
133
134         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
135
136 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
137
138         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
139
140 2005-12-19  Ross Burton  <ross@openedhand.com>
141
142         * doc/dbus-tutorial.xml:
143         Document the Glib client-side bindings, and list all possible annotations.
144
145 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
146
147         * dbus/bus.c (dbus_bus_release_name): Add documentation
148
149 2005-12-06  Robert McQueen  <robot101@debian.org>
150
151         * python/service.py: s/sucessful/successful/ so we're allocating to
152         and reading from the same variable. Oops.
153
154 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
155
156         * Released 0.60
157
158 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
159
160         * test/qt/Makefile.am: build from srcdir
161
162         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
163         Note - this code is wrong and needs to be fixed by the Qt binding
164         developers.  The flags should be treated as bitfields and not enums.
165
166         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
167
168 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
169
170         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
171           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
172           in production code
173
174 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
175
176         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
177         method for getting messages off the bus in the absence of a
178         mainloop.  This method is much like 
179         dbus_connection_read_write_dispatch except it does not dispatch
180         the messages to a registered filter function.  Instead it
181         allows a developer to process messages by directly popping
182         them off the bus.
183
184 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
185
186         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
187         the parser to continue instead of returning error
188         (bus_desktop_file_load): Do not free parser data when
189         parse_section_start or parse_key_value fails because it was 
190         already freed by parser_free (patch from Carlos Garcia Campos  
191         <carlosgc at gnome.org>)
192
193 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
194
195         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
196         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
197         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
198         test/test-segfault.c, test/test-utils.c,
199         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
200         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
201         Various cleanup of dead code and compiler warnings (patch from
202         Kjartan Maraas <kmaraas at gnome.org>) 
203
204 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
205
206         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
207         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
208
209 2005-11-27  Robert McQueen  <robot101@debian.org>
210
211         * python/dbus_bindings.pyx: Repair my previous commit which reverted
212         part of the preceding one. Oops. Merge patch by Johan Hedberg
213         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
214         on big-endian platforms.
215
216         * test/python/test-client.py: Add some 16-bit integers to the test
217         values.
218
219 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
220
221         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
222         method return message for property getters
223
224 2005-11-27  Robert McQueen  <robot101@debian.org>
225
226         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
227         with type v of an instance of dbus.Variant(foo, type='x') caused
228         it to be boxed twice before sending over the bus.
229
230         * python/dbus_bindings.pyx, python/service.py,
231         test/python/test-client.py: Update the constants for the new
232         request_name flags, and update comments/test cases now that queueing
233         is the default action.
234
235 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
236
237         * configure.in:
238         - Change version to 0.60 for impending release
239         - upped the sonames because of ABI and API breakage
240
241 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
242
243         * configure.in: Add test/name-test/Makefile to the generated
244         Makefile list
245
246         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
247         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
248         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
249         not to queue an ower if it can't be the primary owner
250
251         * bus/bus.h: Add new internal BusOwner struct
252
253         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
254         to bus_registry_ensure and don't set the prohibit_replacement flag
255         since they are now set per BusOwner and not per name.
256         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
257         that returns the list of connections in a name's connection queue
258         
259         * bus/services.c (struct BusService): remove prohibit_replacement field
260         (struct BusOwner): new struct for keeping track of queued connections
261         and their associated flags for the queue
262         (struct BusRegistry): add a BusOwner memory pool
263         (bus_registry_new): initialize the BusOwner memory pool
264         (bus_registry_unref): free the BusOwner memory pool
265         (_bus_service_find_owner_link): new internal method for
266         searching the queue for a specific connection
267         (bus_owner_set_flags): new method for adding setting the flags on a
268         bus owner
269         (bus_owner_new): new method that creates a BusOwner object from the
270         pool and sets its flags
271         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
272         (bus_registry_ensure): Add the flags parameter
273         (bus_registry_acquire_service): Switch from using raw connections to
274         using the BusOwner struct
275         Add new state machine for dealing with the new set of flags
276         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
277         cancel_ownership, free_ownership_cancel_data, 
278         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
279         restore_ownership, free_ownership_restore_data, 
280         add_restore_ownership_to_transaction): Switch to using BusOwner 
281         instead of raw connections
282         (bus_service_add_owner): Add flags parameter
283         Switch to using BusOwner instead of raw connections
284         Add state machine for dealing with the new set of flags
285         (bus_service_swap_owner): Swaps the first and second owners in the
286         queue.  Used to make sure proper signals are sent when a service looses 
287         or gains primary ownership.  We never insert an owner at the top of the
288         queue.  Instead we insert it in the second position and then swap.
289         (bus_service_remove_owner): Remove the owner from the queue sending
290         out the NameLost and NameOwnerChanged signals if the we were the 
291         primary owner
292         (bus_service_get_primary_owners_connection): New method that extracts
293         the connection from the primary owner
294         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
295         connection
296         (bus_service_get_allow_replacement): Changed from the old 
297         bus_service_get_prohibit_replacement method.  Checks the flags of the 
298         primary owner and returns if it can be replaced or not
299         (bus_service_set_prohibit_replacement): removed
300         (bus_service_has_owner): returns TRUE if and owner with
301         the specified connection exists in the queue
302         
303         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
304         method that only compiles if tests are enabled.  Allows us to get the 
305         unique name of a connection so we can check it against the queue when
306         doing regression tests
307
308         * bus/activation.c (bus_activation_send_pending_auto_activate),
309         bus/dispatch.c (bus_dispatch),  
310         bus/driver.c (bus_driver_handle_get_service_owner, 
311         bus_driver_handle_get_connection_unix_user, 
312         bus_driver_handle_get_connection_unix_process_id,
313         bus_driver_handle_get_connection_selinux_security_context),
314         bus/signals.c (connection_is_primary_owner): 
315         use bus_service_get_primary_owners_connection instead of
316         bus_service_get_primary_owner
317
318         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
319         _dbus_listen_unix_socket): Calculate the length of the socket
320         path and use that instead of using a fixed length which was
321         causing socket names to contain many trailing Nul bytes.
322
323         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
324         (dbus_g_method_get_sender): New method for extracting the sender 
325         from a DBusGMethodInvocation
326         (dbus_g_method_return_get_reply): changed name to 
327         dbus_g_method_get_reply
328         (dbus_g_method_return_send_reply): changed name to
329         dbus_g_method_send reply
330
331         * doc/dbus-specification.xml: New docs that describe how the new
332         queueing system works and talks about the changes to the how
333         we specify socket names
334
335         * glib/examples/example-service.c, 
336         glib/examples/example-signal-emitter.c,
337         glib/examples/statemachine/statemachine-server.c:
338         Changed the RequestName flags to the new system
339
340         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
341         regression test suite for testing various states of the new
342         queueing system
343         
344 2005-11-15  Robert McQueen  <robot101@debian.org>
345
346         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
347         Taylor to add two methods, dbus_g_method_return_get_reply and
348         dbus_g_method_return_send_reply, to allow you to get the reply
349         message from a DBusGMethodInvocation, append arbitrary stuff to it,
350         and send it. The GLib bindings can't marshal a return value of
351         something like a(s) if the array is empty - ultimately they should be
352         made to heed the signature of the out arguments as the Python bindings
353         now can, but this is a workable interim solution which might have
354         other applications.
355
356 2005-11-15  Robert McQueen  <robot101@debian.org>
357
358         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
359         method to org.freedesktop.DBus to release a bus name or give up
360         waiting in the queue for it.
361
362         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
363         dbus_bus_release_name method to send the ReleaseName method calls.
364         Add constants for the return values to dbus/dbus-shared.h.
365
366         * doc/dbus-specification.xml: Document the new ReleaseName method
367         in the specification.
368
369         * python/dbus_bindings.pyx: Add a low-level python binding for the
370         release name method.
371
372         * python/exceptions.py, python/service.py: Make freeing BusName
373         objects release the name. Add a NameExistsException, and fix a
374         bug with creating UnknownMethodException.
375
376         * test/python/test-client.py: Add tests for freeing BusName
377         objects causing names to be released.
378
379 2005-11-14  Robert McQueen  <robot101@debian.org>
380
381         * python/service.py: Include the traceback in the error reply when we
382         send an exception over the bus. _BEST_ _PATCH_ _EVER_
383
384 2005-11-14  David Zeuthen  <davidz@redhat.com>
385
386         Patch from Timo Hoenig <thoenig@suse.de>.
387
388         * bus/bus.c: I've recently investigated why the automatic reload
389         of configuration files does not work as expected.
390
391         Currently, reloading configuration files does only work when
392         running dbus-daemon with --nodaemon.  If we are running as daemon
393         we're hitting a dnotify bug once we fork the process.
394
395         We're initializing the dnotify fds before calling fork().  Once
396         the child process forked it does still have the fds (and they
397         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
398         getting SIGIO as changes are made to the configuration files.
399
400         The attached patch moves the initialization of the dnotify fds to
401         process_config_postinit().  This is safe for all current code
402         paths and solves the dnotify disfunction.  If we're running
403         dbus-daemon as daemon the fds for dnotify are now being
404         initialized after fork() for the child process.
405
406         * configure.in: The current configure.in check for dnotify probes
407         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
408         match for 'xlinux', too. Additionally I have adapted the configure
409         option's style to match with the others.
410
411 2005-11-14  Robert McQueen  <robot101@debian.org>
412
413         * python/decorators.py, python/service.py: Add a new argument to the
414         dbus.service.method decorator called sender_keyword, which if set,
415         specifies the name of an argument which will be provided the bus
416         name of the method caller.
417
418         * test/python/test-client.py, test/python/test-service.py: Add a
419         method and test to check the sender_keyword functionality.
420
421 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
422
423         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
424         empty reply so blocking calls don't block forever (Patch from Sjoerd 
425         Simons <sjoerd at luon.net>)
426
427         * AUTHORS: Add Robert McQueen for his work on the Python
428         Bindings and other parts of D-Bus
429
430 2005-11-07  Robert McQueen  <robot101@debian.org>
431
432         * python/decorators.py: Change emit_signal function to use the
433         signature annotation of the signal when marhsalling the arguments from
434         the service. Fix a bug where the code checking signature length
435         against argument length referenced the wrong variable.
436
437         * python/introspect_parser.py: Avoid adding the type signature of
438         signal arguments to any methods which occur after them in the
439         introspection data (!) by making the parser a little more careful
440         about its current state.
441
442         * python/service.py: Remove debug prints from last commit (again :D).
443
444         * test/python/test-client.py, test/python/test-service.py: Add test
445         signals with signature decorators to test the strict marshalling code
446         gives errors at the right time. Could do with checking the signals
447         actually get emitted too, given that the test does nothing with
448         signals at the moment...
449
450 2005-11-07  Robert McQueen  <robot101@debian.org>
451
452         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
453         instances to stop madness of creating new instances representing
454         the same bus connection all the time, rendering any tracking of
455         match rules and bus names quite meaningless. Caught a bug where
456         the private argument to SessionBus() and friends was being passed
457         in as use_default_mainloop by mistake. Still some problems with
458         multiple dbus_binding.Connection instances representing the same
459         low-level connection (eg when you use both SessionBus() and
460         StarterBus() in same process), but it's a lot better now than it
461         was.
462
463         * python/dbus_bindings.pyx: Add constants with the return values
464         for bus_request_name().
465
466         * python/service.py: Store bus name instances in a per-dbus.Bus cache
467         and retrieve the same instances for the same name, so deletion can be
468         done with refcounting. Also now throws some kind of error if you
469         don't actually get the name you requested, unlike previously...
470
471         * test/python/test-client.py: Add tests for instance caching of buses
472         and bus name objects.
473
474 2005-11-04  Robert McQueen  <robot101@debian.org>
475
476         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
477         marshalling of boolean values. Add some booleans to the values in
478         the test client.
479
480         * python/decorators.py, python/service.py: Add an 'async_callbacks'
481         argument to the dbus.service.method decorator, which allows you to
482         name arguments to take two callback functions for replying with
483         return values or an exception.
484
485         * test/python/test-client.py, test/python/test-service.py: Add test
486         case using asynchronous method reply functions, both return values and
487         errors, and from within both the function itself and from a mainloop
488         callback.
489
490         * python/decorators.py, python/service.py: Perform checking that the
491         number of method/signal arguments matches the number of types in the
492         signature at class loading time, not when you first introspect the
493         class.
494
495         * python/service.py: Remove debug print left by the last commit.
496
497 2005-11-03  Robert McQueen  <robot101@debian.org>
498
499         * python/service.py: Heavy refactoring of method invocation, with
500         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
501         in favour of a new _message_cb that uses seperate functions for
502         looking up the method to call, marshalling the return values, and
503         sending exceptions as errors, and is easier to follow as a
504         consequence.  Fixes some corner cases about returning things that
505         don't match your declared out_signature, allows exceptions to define
506         _dbus_error_name and have it be sent over the bus as the error name,
507         and paves the way for cool stuff like heeding the message no reply
508         flag, asynchronous method implementations, informing the method of the
509         sender, and including backtraces in the error messages.
510
511         * test/python/test-client.py: Catch and print exceptions thrown in the
512         async callback tests, rather than passing them to the low-level
513         bindings to be ignored in a noisy and frustrating manner.
514
515 2005-11-03  Robert McQueen  <robot101@debian.org>
516
517         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
518         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
519         tweak others to be consistent.
520
521         * test/python/test-client.py: Tweak output of testInheritance.
522
523 2005-10-29  Robert McQueen  <robot101@debian.org>
524
525         * python/service.py: Major changes to allow multiple inheritance
526         from classes that define D-Bus interfaces:
527         
528          1. Create a new Interface class which is the parent class of
529             Object, and make the ObjectType metaclass into InterfaceType.
530         
531          2. Patch written with Rob Taylor to replace use of method_vtable
532             with code that walks the class's __MRO__ (method resolution order)
533             to behave like Python does when invoking methods and allow
534             overriding as you'd expect. Code is quite tricky because
535             we have to find two methods, the one to invoke which has the
536             right name and isn't decorated with the /wrong/ interface,
537             and the one to pick up the signatures from which is decorated
538             with the right interface.
539         
540             The same caveats apply as to normal multiple inheritance -
541             this has undefined behaviour if you try and inherit from two
542             classes that define a method with the same name but are
543             decorated with different interfaces. You should decorate
544             your overriding method with the interface you want.
545         
546          3. Replace grungy introspection XML generation code in the metaclass
547             with dictionaries that cope correctly with multiple inheritance
548             and the overriding of methods. This also uses the signature
549             decorations to provide correct introspection data, including
550             the debut appearance of the types of your return values. :D
551
552         * test/python/test-client.py, test/python/test-service.py: Add a test
553         case to try invoking an method that overrides one inherited from a
554         D-Bus interface class.
555
556 2005-10-29  Robert McQueen  <robot101@debian.org>
557
558         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
559         Add checking for the end of struct character when marshalling a
560         struct in MessageIter.append_strict.
561
562         * python/examples/example-service.py,
563         python/examples/gconf-proxy-service.py,
564         python/examples/gconf-proxy-service2.py: Update to use gobject
565         mainloop directly rather than appearing to depend on gtk.
566
567         * python/test/test-client.py, python/test/test-server.py: Remove
568         obsolete and broken test scripts for old bindings. We have up to date
569         and working tests in test/python/.
570
571 2005-10-29  Robert McQueen  <robot101@debian.org>
572
573         * python/decorators.py: Add optional arguments to the method and
574         signal decorators to allow you to specify the signature of arguments
575         and return values. Preserve the doc strings of signal functions in the
576         decorated version, for pydoc and friends.
577
578         * python/dbus_bindings.pyx, python/proxies.py: Replace the
579         parse_signature_block function with an iterable dbus.Signature()
580         type. Fix a bug in MessageIter.append_strict where you could append
581         anything by claiming it was a string.
582
583         * python/service.py: Use the out_signature decoration on methods to
584         marshal return values, meaning you no longer require dbus.Array()
585         or dbus.Dictionary() to indicate the type when returning empty
586         arrays or dictionaries. Fix a bug where exceptions which are defined
587         in __main__ are not turned into error replies.
588
589         * test/python/test-client.py, test/python/test-service.py: Add test
590         for correct marshalling of return values according to out_signature.
591         Fix a bug in the async call test where the error_handler is missing a
592         self argument.
593
594 2005-10-29  Robert McQueen  <robot101@debian.org>
595
596         * glib/Makefile.am, glib/examples/Makefile.am,
597         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
598         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
599
600         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
601
602         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
603         from Ubuntu by Daniel Silverstone to allow specifying match rules on
604         the command line.
605
606 2005-10-27  Ross Burton  <ross@openedhand.com>
607
608         * dbus/dbus-marshal-header.c:
609         Remove dead code.
610
611         * glib/dbus-gobject.c:
612         Stop compiler warning.
613
614 2005-10-25  Ross Burton  <ross@openedhand.com>
615
616         * dbus/dbus-auth.c:
617         * dbus/dbus-server-unix.c:
618         * dbus/dbus-transport-unix.c:
619         * glib/dbus-gmain.c:
620         * glib/dbus-gobject.c:
621         Add some const keywords.
622
623 2005-10-25  Ross Burton  <ross@openedhand.com>
624
625         * doc/dbus-specification.xml:
626         Document the NoReply annotation.
627
628         * glib/dbus-binding-tool-glib.h:
629         * glib/dbus-binding-tool-glib.c:
630         Respect the NoReply annotation.
631
632 2005-10-24  Robert McQueen <robot101@debian.org>
633
634         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
635         derive from unicode instead of str, and encode/decode UTF-8 when
636         marshalling/unmarshalling bus messages
637
638         * python/introspect_parser.py: encode introspection data as UTF-8
639         before passing the buffer into libxml2
640
641         * test/python/test-client.py: add unicode test strings
642
643         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
644         ignore generated python test files
645
646 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
647
648         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
649         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
650         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
651
652         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
653         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
654         when constructing struct signatures
655
656         * python/_dbus.py (Bus): handle private connections using the
657         private keyword in the constructor. defaults to private=False
658         (Bus::close): new method to close a connection to the bus
659
660         * python/dbus_bindings.pyx (Connection::close): renamed method
661         was previously called disconnect
662         (bus_get): now supports getting a private connection
663
664         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
665         keyword is set to True.  if it is, execute the method without waiting
666         for a reply
667         (ProxyObject::_introspect_execute_queue): new method for executing
668         all the pending methods that were waiting for the introspect to
669         finish.  this is called when introspect either succeeds or fails
670         (ProxyObject::_introspect_error_handler): call queued methods
671
672 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
673
674         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
675         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
676
677         * python/service.py (Object::_message_cb): handle exceptions correctly
678         by sending them over the wire to the calling app.  This makes sure
679         the client returns immediately instead of waiting the 15 seconds to
680         timeout.
681
682         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
683         Add a test to benchmark how long it takes to introspect a service and 
684         call a method which returns a large element (pretty fast)
685
686         * test/python/test-service.py (TestObject::GetComplexArray): new test 
687         method which pushes a lot of data
688
689 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
690
691         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
692         reclaim memory outside of the loop and use del istead of just setting
693         the key to None
694
695 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
696
697         * python/service.py (ObjectType::_reflect_on_signal): Always close
698         signal tag even when there are no arguments
699
700 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
701
702         * configure.in: Set mono, mono-docs and Qt3 to default
703         to no instead of auto when building.  These bindings do not
704         have full time maintainers and will not be supported for the
705         1.0 release.
706
707 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
708
709         patches from Michael Krivoruchko <misha at sun.com>: 
710         
711         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
712         _dbus_connection_message_sent, 
713         _dbus_connection_send_preallocated_unlocked_no_update, 
714         _dbus_connection_pop_message_link_unlocked): handle the case when path 
715         is NULL when calling _dbus_verbose
716
717         * configure.in: check for functions getpeerucred and getpeereid
718
719         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
720         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
721         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
722         Patch was only tested on Solaris 10 x86 so it might be issues
723         with other platforms (i.e. BSDs and MacOSX)
724         
725
726 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
727
728         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
729         instead of marshal basic so we can handle recursive types in a variant
730
731         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
732         in variants
733
734         * test/glib/test-service-glib.c, test-service-glib.xml
735         (my_object_echo_variant [EchoVariant], 
736         my_object_process_variant_of_array_of_ints123
737         [ProcessVariantOfArrayOfInts123]): 
738         Add two test methods
739
740         * python/introspect_parser.py: New module for parsing introspect
741         data.
742
743         * python/dbus_bindings.pyx:
744         (various places): when throwing errors fix to use errormsg instead 
745         of message local variable because Pyrex can get confused with other 
746         message variables (initial patch by Robert McQueen 
747         <robert.mcqueen at collabora.co.uk>)
748         (MessageIter::parse_signature_block): new method for getting the next
749         block in a signiture.
750         (MessageIter::append_strict): new method for appending values strictly
751         using the passed in signature instead of guessing at the type
752         (MessageItter:: append_dict, append_struct, append_array): use 
753         signatures to marshal children if the signature is available
754         
755         * python/exceptions.py (IntrospectionParserException): new exception
756
757         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
758         introspected signatures if available, else we fall back to the
759         old way of doing things.
760         (ProxyObject::_introspect_reply_handler ): parse introspection data
761         
762         * python/service.py (ObjectType::_reflect_on_method): Properly
763         terminate <method> if there are no args in the reflection data
764
765         * test/python/test-client.py: add tests for talking with the GLib
766         test server.  This gives us better coverage for introspection since
767         python to python will always generate arguments as variants.  It also
768         allows us to test the robustness of the GLib bindings and interlanguage
769         communications.
770
771         
772 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
773
774         * bus/driver.c (bus_driver_handle_introspect): Add signals
775         to the introspect data. (patch from Daniel P. Berrange 
776         <dan at berrange.com>)
777
778         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
779         
780         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
781         _dbus_connection_run_builtin_filters): Changed these to
782         be unlock_no_update functions and call 
783         _dbus_connection_send_unlocked_no_update instead of
784         dbus_connection_send to avoid locking errors.
785         
786         * doc/TODO: Removed the make Ping test TODO
787         
788 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
789
790         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
791         We now copy the message from a DBusError and then free 
792         the error object befor throwing the error
793
794         * glib/dbus-glib-tool.c: removed extra comma at the end of the
795         DBusBindingOutputMode enum which was causing a warning.
796         #include <time.h> so using time_t is explicitly defined
797
798 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
799
800         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
801         - dbus/dbus-bus.c
802         (internal_bus_get): new method that take over the heavy lifting
803         of dbus_bus_get and adds the ability to get a private connection
804         to the bus
805         (dbus_bus_get): wrapper to internal_bus_get that provides the same
806         interface as in previous versions
807         (dbus_bus_get_private): new method that is a wrapper to 
808         internal_bus_get to get a private connection to the bus
809
810         - dbus/dbus-bus.h
811         (dbus_bus_get_private): add as a public libdbus interface
812
813         - dbus-1.pc.in: output system_bus_default_address and 
814         sysconfdir variables so apps can use them when compiling
815
816 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
817         * dbus/qt: New Qt bindings
818
819 2005-09-12  Waldo Bastian  <bastian@kde.org>
820
821         * dbus/dbus-marshal-validate.c,
822         doc/dbus-specification.xml, test/Makefile.am,
823         test/test-names.c: allow hyphens in bus names.
824
825 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
826
827         * test/data/auth/fallback.auth-script: we don't
828         retry the EXTERNAL method when we know its going
829         to fail anymore.
830
831 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
832
833         * dbus/dbus-connection-internal.h: rename
834         (add|remove|toggle)_(watch|timeout) to unlocked()
835         
836         * dbus/dbus-connection.c: ditto.
837         
838         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
839         Update some callers for the renaming.
840
841 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
842
843         * dbus/dbus-auth.c: (record_mechanisms): don't
844         retry the first auth mechanism because we know
845         we're just going to get rejected again.
846         
847         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
848         Fix thinko ... and what a nasty little bugger to
849         track down you were ...
850
851         * dbus/dbus-connection.c:
852         (_dbus_connection_add_watch),
853         (_dbus_connection_remove_watch): add note about
854         these needing the connection to be locked.
855         (_dbus_connection_get_dispatch_status_unlocked):
856         set status to DATA_REMAINS when we queue the
857         disconnected message.
858         
859         * bus/dispatch.c:
860         (bus_dispatch): fix warning.
861         (check_existent_service_no_auto_start):
862         Expect ChildSignaled error too.
863         (check_existent_hello_from_self): fix another
864         couple of warnings.
865         
866 2005-09-08  Joe Shaw  <joeshaw@novell.com>
867
868         Patches from James Willcox <snorp@snorp.net>
869
870         * mono/Makefile.am: Add Int16.cs and UInt16.cs
871
872         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
873         support array "out" parameters.
874
875         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
876         for 16-bit int support.
877
878 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
879
880         * Released 0.50
881
882         * Patch from Steve Grubb:
883         - bus/activation.c (bus_activation_service_reload_test): clean up
884         some indentation
885         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
886         - dbus/dbus-message-factory.c (generate_special): fix a couple of
887         buffer overflows in the test suite.  This is non critical because
888         it can not be exploited and this code is only run when doing a 
889         make check.
890
891         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
892         - configure.in: Don't check and link against kdecore, only qt headers
893         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
894         - gcj/org/freedesktop/dbus/Makefile.am:
895         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
896         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
897         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
898         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
899         - tools/Makefile.am: Add platform extentions to binaries 
900         (i.e. .exe on windows)
901
902         * configure.in: 
903         - Make it so if no suitable version of python is found we only 
904         disable building python instead of exiting the configure script
905         - Require version 2.4 of glib for glib bindings
906         - Up version to 0.50
907
908         * python/__init__.py: Sync version with libdbus to (0,50,0)
909         
910 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
911
912         * dbus/dbus-object-tree.c (find_subtree_recurse):
913         a couple of optimizations (bug #710):
914         - do a binary search in the tree
915         - insert a new child at the right place directly, no need for
916           qsort anymore
917         - do the "double alloc" thing when allocating children
918
919 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
920
921         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
922
923         * python/dbus_bindings.pyx: Memory management foo
924         (global): remove hacky _user_data_references global list
925         (GIL_safe_cunregister_function_handler): userdata now stuffed into
926         tuples. Unref user_data
927         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
928         (Connection::__del__): Remove and replace with __dealloc__ method
929         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
930         to keep tuple from being deallocated instead of the global var hack
931         (Connection::register_object_path): Stuff user_data into a tuple.
932         Use Py_INCREF to keep tuple from being deallocated instead of the 
933         global var hack
934         (Connection::register_fallback): Stuff user_data into a tuple.
935         Use Py_INCREF to keep tuple from being deallocated instead of the 
936         global var hack
937         (GIL_safe_pending_call_notification): Don't unref the message
938         because it gets unreffed when going out of scope.  Py_XDECREF
939         the user_data
940         (PendingCall::__del__): Remove and replace with __dealloc__ method
941         (PendingCall::set_notify): ref the pending call because we will
942         need it to stick around for when the notify callback gets called
943         (Message::__del__): Remove and replace with __dealloc__ method
944
945         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
946         gthreads_init to match up with the dbus call
947
948         * python/glib.py (init_threads): Changed to threads_init to match
949         up with gobject.threads_init().  init_threads is kept for backwards
950         compat but will most likely be deprecated in the future
951
952         * test/python/test-client.py: 
953         - revamp to use Python's unittest functionality
954         - add async call tests
955         - setup threads in glib and dbus so we make sure locks are working
956         
957 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
958
959         * python/dbus_bindings.pyx 
960         (_pending_call_notification, cunregister_function_handler, 
961         cmessage_function_handler): All callback functions have been rearranged 
962         to workaround a bug in Pyrex when working with the GIL which is Python's 
963         global lock when dealing with threads.  They have been split into
964         a wrapper function (which assumes the name of the old function) and
965         a _GIL_safe_<function name> function which contains the functionality
966         of the old function.  This ensures that Pyrex does not write code
967         the lock is released.
968         
969
970 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
971
972         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
973         GIL global lock when calling back into Python
974
975 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
976
977         * Release 0.36.2
978
979         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
980
981         * bus/policy.c (bus_policy_allow_user): change default "user is
982         allowed" to be "user has same uid as the bus itself"; any
983         allow/deny rules will override.
984
985         * bus/session.conf.in: don't allow all users, since now by default
986         the user that ran the bus can connect.
987
988 2005-08-26  Colin Walters  <walters@verbum.org>
989
990         * tools/dbus-print-message.c (print_message): Flush stdout
991         after printing a message, so that redirecting to a file, then
992         hitting Ctrl-C works.
993
994 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
995
996         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
997         (EmptyMessage): new class that subclasses Message.  This is a workaround
998         to a Pyrex bug that fails to call __del__ when the Message object goes out
999         of scope.  For some reason subclassing Message fixes this bug
1000         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1001         - s/Message(_create=0)/EmptyMessage everywhere else
1002         
1003         * test/python/test-{server|client}.py: add the python/.libs directory
1004         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1005         get picked up from the system
1006
1007 2005-08-25  Colin Walters  <walters@verbum.org>
1008
1009         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1010         to Ryan Lortie for the suggestion.
1011
1012 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1013
1014         * test/python: Add python regression test
1015
1016         * configure.in: Add test/python/Makefile
1017
1018         * test/Makefile.am: Add the python directory to SUBDIRS
1019
1020 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1021
1022         * Release 0.36.1
1023
1024         * python/_dbus.py: 
1025         (Interface::connect_to_signal): propigate keywords for match on args
1026         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1027
1028         * python/proxies.py (ProxyObject::connect_to_signal):
1029         propigate keywords for match on args
1030
1031         * Makefile.am: point everything to pyexecdir since python borks
1032         on multilib
1033
1034 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1035
1036         * Release 0.36
1037
1038 2005-08-23  Colin Walters  <walters@verbum.org>
1039
1040         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1041
1042 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1043
1044         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1045         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1046         of defining DBusConnection ourselves.
1047
1048 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1049
1050         * python/dbus.pth: New path file to fix up problems when installing
1051         c libraries to lib64 and python files to lib.
1052
1053         * python/Makefile.am: install dbus.pth in the correct spot
1054
1055 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1056         * ChangeLog: clean up my last entry a bit
1057
1058         * doc/introspect.xsl: New stylesheet for converting introspection data
1059         into browser renderable xhtml. Contributed by Lennart Poettering.
1060
1061         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1062         Poettering.
1063
1064         * doc/dbus-tutorial.xml: 
1065         - Add Colin Walter to the Authors section for authoring the GLib
1066         section
1067         - Add descriptions of the new signature and type functionality
1068         in the Python complex type mapping section
1069         - Add a sidenote on the new args matching functionality in 
1070         the Python bindings
1071         - Fixed up some of the examples to use the gobject.MainLoop
1072         instead of gtk.main
1073         
1074         * python/_dbus.py:
1075         (Bus::_create_args_dict): New. Converts a hash of arg matches
1076         to a more useable format
1077         (Bus::add_signal_receiver): add a **keywords parameter for catching
1078         arg match parameters
1079         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1080         arg match parameters
1081         
1082         * python/matchrules.py:
1083         (MatchTree::exec_matches): Check for arg matches
1084         (SignalMatchRule::add_args_match): New method
1085         (SignalMatchRule::execute): Added args_list parameter as an optimization
1086         so we don't have to marshal the args more than once
1087         (SignalMatchRule::match_args_from_list): New method that checks to see
1088         if the rule's arg matches match an argument list.  Only arguments
1089         set in the rule are checked.
1090         (SignalMatchRule::match_args_from_rule): New method that checks to see
1091         if the rule's arg matches match another rule's.  All args have to match
1092         in order for this method to return true.  If either rule has more args
1093         then it is not a match.
1094         (SignalMatchRule::is_match): Add args match
1095         (SignalMatchRule::repr): Add args to the final output if they exist
1096
1097 2005-08-17  Ross Burton  <ross@burtonini.com>
1098
1099         * glib/dbus-gproxy.c:
1100         (dbus_g_proxy_call_no_reply): unref the message once sent.
1101         (dbus_g_proxy_call): protect against NULL proxy.
1102
1103 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1104
1105         * python/__init__.py: Version updated (0, 43, 0)
1106         
1107         * python/dbus_bindings.pyx: 
1108         - Fixed type objects to have self passed into __init__
1109         - Added the Variant type
1110         - Add the ability to specify types or signatures for Array, Variant 
1111         and Dictionary
1112         (Connection::send_with_reply_handlers): return a PendingCall object
1113         (_pending_call_notification): handle the case when an error is returned 
1114         without an error message in the body
1115         (MessageIter::get_boolean): return True or False instead of an integer
1116         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1117         and add checks for objects with embeded signatures or types (Array, 
1118         Variant and Dictionary)
1119         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1120         (MessageIter::append_dict): handle embeded types or signatures
1121         (MessageIter::append_array): handle embeded types or signatures
1122         (MessageIter::append_variant): new method
1123         
1124         * python/proxies.py:
1125         (DeferedMethod): New. Dummy executable object used when queuing calls 
1126         blocking on introspection data
1127         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1128         or shorter timeouts for method calls
1129         (ProxyObject): Add first pass at an introspection state machine
1130         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1131         introspection. 
1132         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1133         the usual mechanisms for sending messages.  This is to avoid a deadlock
1134         where the Intospect call would be queued waiting for the Introspect 
1135         call to finish ;-)
1136         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1137         when introspection returns with no error
1138         (ProxyObject::_introspect_error_handler): New.  This method is called 
1139         when introspection encounters an error
1140         (ProxyObject::__getattr__): Code to handle different introspection 
1141         states.  Queue async calls or block blocking calls if we are 
1142         introspecting.  Pass through as normal if we are not or are done with 
1143         introspecting.
1144         
1145         * python/service.py: Import signal and method from decorators.py
1146
1147         * python/types.py: Add Variant type
1148
1149 2005-08-16  Colin Walters  <walters@verbum.org>
1150
1151         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1152         DBusError message is NULL.
1153
1154 2005-08-09  Havoc Pennington  <hp@redhat.com>
1155
1156         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1157         malloc'd copy of the name parameter
1158
1159 2005-08-09  Havoc Pennington  <hp@redhat.com>
1160
1161         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1162         warning if the reply serial is set to 0
1163
1164 2005-08-04  Colin Walters  <walters@verbum.org>
1165
1166         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1167         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1168         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1169         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1170         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1171         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1172         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1173         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1174         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1175         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1176         
1177         Prefix name with _ to ensure they're not exported.  All callers
1178         updated.
1179
1180         * glib/dbus-gvalue.c (typecode_to_gtype)
1181         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1182         (signature_iter_to_g_type_dict)
1183         (signature_iter_to_g_type_array)
1184         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1185         (dbus_gtypes_from_arg_signature):
1186         Move to dbus-gsignature.c.
1187
1188         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1189         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1190         (dbus_binding_tool_output_glib_client): Ditto.
1191
1192         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1193         and dbus-gsignature.h
1194
1195         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1196         unused variable.
1197
1198 2005-08-03  Colin Walters  <walters@verbum.org>
1199
1200         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1201         catch any incompatible changes accidentally made.
1202
1203 2005-08-03  Havoc Pennington  <hp@redhat.com>
1204
1205         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1206         typo, from Julien Puydt
1207
1208         * bus/connection.c (bus_connection_disconnected): we were always
1209         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1210
1211 2005-08-01  Colin Walters  <walters@verbum.org>
1212
1213         Patch from Joe Markus Clarke:   
1214         
1215         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1216         use-after-free.
1217
1218 2005-08-01  Colin Walters  <walters@verbum.org>
1219         
1220         Patch from Joe Markus Clarke:   
1221         
1222         * tools/dbus-send.c (main): 
1223         
1224         Don't use C99 style initializers (bug #3933).
1225         
1226 2005-08-01  Colin Walters  <walters@verbum.org>
1227
1228         Patch from Joe Markus Clarke:   
1229
1230         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1231         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1232         * glib/dbus-gobject.c (write_interface):
1233
1234         Don't use C99 style initializers (bug #3933).
1235
1236 2005-07-31  Havoc Pennington  <hp@redhat.com>
1237
1238         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1239         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1240
1241 2005-07-30  Havoc Pennington  <hp@redhat.com>
1242
1243         * fix a bunch of Doxygen warnings and mistakes
1244
1245 2005-07-30  Havoc Pennington  <hp@redhat.com>
1246
1247         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1248         DBUS_BUILD_TESTS since it's now used in production code
1249
1250 2005-07-29  Havoc Pennington  <hp@redhat.com>
1251
1252         * test/glib/test-profile.c (write_junk): initialize the junk
1253         buffer so valgrind doesn't have a breakdown
1254
1255 2005-07-29  Havoc Pennington  <hp@redhat.com>
1256
1257         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1258         (match_rule_matches): remove unused arg
1259         (test_matching): add tests for match_rule_matches()
1260
1261         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1262         do arg0='foo' arg5='bar' in the match rules
1263         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1264
1265         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1266
1267 2005-07-29  Ross Burton  <ross@openedhand.com>
1268
1269         * dbus/dbus-connection.c:
1270         Don't create a DBusCondVar which is never used.
1271
1272 2005-07-27  Ross Burton  <ross@openedhand.com>
1273
1274         * dbus/dbus-message.c:
1275         Reduce the size of the maximum cached message to 10K.
1276
1277 2005-07-25  Ross Burton  <ross@openedhand.com>
1278
1279         * glib/dbus-gproxy.c:
1280         Remove matches when all proxies are unregistered.
1281
1282 2005-07-24  Colin Walters  <walters@verbum.org>
1283
1284         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1285         typedata; recursive arrays won't have it.
1286
1287         * test/glib/test-dbus-glib.c:
1288         * test/glib/test-service-glib.c:
1289         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1290         
1291 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1292
1293         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1294         proxies.py, service.py: Cleanup of code after running it through the
1295         pyflakes code checker mostly dealing with undefined names.  
1296         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1297
1298 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1299
1300         * NEWS: Update to 0.35.2
1301
1302 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1303
1304         * python/_dbus.py: Remove import of the dbus.services
1305         module as it no longer exists (patch from Dimitur Kirov)
1306
1307         * python/service.py (Object::__init__): Fixed typo
1308         s/name/bus_name (patch from Dimitur Kirov)
1309
1310         * python/examples/example-signal-emitter.py: import dbus.glib
1311         to get the main loop and use glib mainloop instead of gtk so
1312         X doesn't have to be running.
1313
1314         * python/examples/example-signal-recipient.py: import dbus.glib
1315         to get the main loop and use glib mainloop instead of gtk so
1316         X doesn't have to be running. Import the decorators module
1317         directly.
1318
1319         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1320         didn't pick up on but are needed to build
1321
1322         * configure.in: upped version to 0.35.2
1323
1324         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1325         added Colin Walters' SELinux API rename patch from head 
1326         s/unix sercurity context/selinux security context/
1327
1328 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1329
1330         * python/Makefile.am: dbus_binding.pxd.in should be included 
1331         in EXTRA_DIST not dbus_binding.pxd
1332         fix up $(srcdir) hopefully for the last time
1333
1334         * NEWS: Update to 0.35.1
1335
1336 2005-07-16  Colin Walters  <walters@verbum.org>
1337
1338         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1339         from bus_driver_handle_get_connection_unix_security_context.  Update for
1340         error usage.
1341         (message_handlers): Update for renames.
1342
1343         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1344         _dbus_string_init failure correctly.
1345         (bus_selinux_append_context): Convert SID to context.  Append it
1346         as a byte array.
1347         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1348         hasn't been called.
1349
1350         * bus/selinux.h: Update prototype.
1351
1352         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1353         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1354
1355 2005-07-15  Colin Walters  <walters@verbum.org>
1356
1357         * doc/TODO: Add note about convenience wrappers.
1358
1359 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1360
1361         * NEWS: Update to 0.35
1362
1363 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1364
1365         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1366         so distcheck doesn't fail
1367
1368         * glib/examples/Makefile.am: Add example-service.xml and 
1369         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1370
1371         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1372         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1373
1374         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1375         compiler looks in the right places during distcheck
1376
1377 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1378
1379         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1380         to fail
1381
1382 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1383
1384         * python/examples/example-service.py,
1385         python/examples/example-signal-emitter.py: Fixed up examples
1386         for API changes
1387
1388 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1389
1390         * python/__init__.py: Upped to version (0,42,0) because of
1391         the API change
1392
1393 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1394
1395         * ChangeLog: fix date in last entry
1396
1397         * configure.in, bus/system.conf.in: add the ability to configure 
1398         the system bus user at compiletime with the --with-dbus-user flag
1399         (patch from Kristof Vansant)
1400
1401 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1402
1403         * bus/dispatch.c, test/test-service.c: Add testcase
1404         for sending messages to oneself (TODO item).
1405
1406         * python/service.py (class Object): Swap ordering of bus_name 
1407         and object_path parameters to better support inheritance.
1408
1409         * doc/dbus-tutorial.xml: change Python docs to reflect change
1410         in parameter ordering and fix the inheritance section.
1411
1412         * doc/TODO: remove sending message to oneself TODO item
1413
1414 2005-07-15  Ross Burton  <ross@openedhand.com>
1415
1416         * glib/dbus-gproxy.c:
1417         Fix a leak when calling methods via the proxy.
1418
1419 2005-07-15  Colin Walters  <walters@verbum.org>
1420
1421         * bus/selinux.c (bus_selinux_append_context): Wrap in
1422         HAVE_SELINUX.
1423
1424 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1425
1426         * python/_dbus.py (Bus::remove_signal_receiver):
1427         don't add a callback to the match if none has been passed in
1428         
1429         * python/matchrules.py (SignalMatchTree::remove): if the rule
1430         being matched does not have a callback treat it as a wildcard
1431         fix matching logic
1432
1433         * doc/dbus-tutorial.xml: Add Python tutorial
1434
1435 2005-07-14  Colin Walters  <walters@verbum.org>
1436
1437         * bus/driver.c
1438         (bus_driver_handle_get_connection_unix_security_context): New function.
1439         (message_handlers): Add.
1440
1441         * bus/selinux.c (bus_selinux_append_context): New function; appends
1442         security context to message.
1443
1444         * bus/selinux.h: Prototype.
1445
1446         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1447
1448 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1449
1450         * bus/activation.c: clean up all tabs to be 8 spaces 
1451         (bus_activation_activate_service): make sure we clean up
1452         if activation fails
1453
1454         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1455         (check_shell_fail_service_auto_start): New function
1456         tests to make sure we get fail properly when trying to auto start a service
1457         with a faulty command line
1458         (check_shell_service_success_auto_start): New function tests to make sure
1459         auto started services get the arguments on the command line
1460
1461         * test/test-shell-service.c: Added service for testing auto-starting with 
1462         command line arguments
1463
1464         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1465         test/data/valid-service-files/debug-shell-echo-success.service.in:
1466         Added service files for testing auto-starting with command line arguments
1467
1468         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1469
1470 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1471
1472         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1473         
1474         * dbus/Makefile.am: added new files to build.
1475
1476         * bus/activation.c (bus_activation_activate_service): support
1477         activation commands with parameters.
1478
1479         * test/shell-test.c: added test program for the shell parsing
1480         code.
1481
1482 2005-07-13  David Zeuthen  <davidz@redhat.com>
1483
1484         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1485         64 bit signed and unsigned parameters
1486
1487 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1488
1489         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1490
1491         * python/service.py (class Name): renamed BusName to make it clearer
1492         what the object is for (a name on the bus)
1493
1494         * python/examples/example-service.py,
1495         python/examples/example-signal-emitter.py: change the Name object to
1496         BusName
1497
1498 2005-07-12  Colin Walters  <walters@verbum.org>
1499
1500         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1501
1502         * tools/dbus-launch.c: Include sys/select.h.
1503
1504 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1505         * python/dbus_bindings.pyx.in: removed
1506
1507         * python/dbus_bindings.pyx: Added.
1508         - Fixed some memleaks (patch from 
1509         Sean Meiners <sean.meiners@linspireinc.com>)
1510         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1511         own pxd file (Pyrex definition)
1512         - Broke out glib dependancies into its own pyx module
1513         
1514         * python/dbus_bindings.pdx: Added.
1515         - Defines C class Connection for exporting to other modules
1516
1517         * python/dbus_glib_bindings.pyx: Added.
1518         - New module to handle lowlevel dbus-glib mainloop integration
1519
1520         * python/glib.py: Added.
1521         - Registers the glib mainloop when you import this module
1522
1523         * python/services.py: Removed (renamed to service.py)
1524         
1525         * python/service.py: Added.
1526         - (class Server): renamed Name
1527
1528         * python/__init__.py: Bump ro version (0,41,0)
1529         -don't import the decorators or service module
1530         by default.  These now reside in the dbus.service namespace
1531
1532         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1533         setup function on creation 
1534
1535         * python/examples/example-service.py,
1536         python/examples/example-signal-emitter.py: update examples
1537
1538         * python/examples/gconf-proxy-service.py,
1539         python/examples/gconf-proxy-service2.py: TODO fix these up
1540
1541         * doc/TODO: Addition
1542         - Added a Python Bindings 1.0 section
1543         - added "Add match on args or match on details to match rules"
1544
1545
1546 2005-07-12  Colin Walters  <walters@verbum.org>
1547
1548         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1549         (statemachine-glue.h): 
1550         * glib/examples/Makefile.am (example-service-glue.h) 
1551         (example-signal-emitter-glue.h): 
1552         * glib/Makefile.am (dbus-glib-error-switch.h): 
1553         Add libtool --mode=execute so we use the built library instead
1554         of any installed one.
1555
1556 2005-07-11  Colin Walters  <walters@verbum.org>
1557
1558         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1559         (dbus_g_value_types_init): Remove assertion.
1560         (dbus_g_value_get_g_type, dbus_g_value_open)
1561         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1562         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1563         functions related to DBusGValue.  Now we marshal/demarshal
1564         structures as GValueArray.
1565         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1566         structures.
1567         (signature_iter_to_g_type_array): Don't call
1568         signature_iter_to_g_type_struct.
1569         (signature_iter_to_g_type_struct): Delete.
1570         (dbus_gvalue_to_signature): Delete.
1571         (dbus_gvalue_to_signature): New function with same name as other
1572         one; we can convert structures to signatures.
1573         (demarshal_valuearray): New function.
1574         (get_type_demarshaller): Use it.
1575         (demarshal_recurse): Delete.
1576         (marshal_proxy): New function.
1577         (marshal_map): Warn if we can't determine signature from type.
1578         (marshal_collection_ptrarray): Ditto.
1579         (marshal_collection_array): Ditto.
1580         (get_type_marshaller): Use marshal_valuearray.
1581         (marshal_recurse): Delete.
1582         (_dbus_gvalue_test): Add some tests.
1583
1584         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
1585         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1586         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1587         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1588         (dbus_g_value_free): Remove prototypes.
1589
1590         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1591         G_TYPE_VALUE_ARRAY.
1592
1593         * glib/examples/example-service.c:
1594         * glib/examples/example-client.c: Implement GetTuple.
1595
1596         * test/glib/test-dbus-glib.c:
1597         * test/glib/test-service-glib.c:
1598         * test/glib/test-service-glib.xml: Add structure tests.
1599
1600 2005-07-10  Colin Walters  <walters@verbum.org>
1601
1602         * doc/TODO: Knock off some GLib items with this patch.
1603
1604         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
1605         (_dbus_gvalue_signals_error): New functions.
1606
1607         * glib/dbus-gvalue-utils.h: Prototype them.
1608
1609         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1610         and change to not output const/retval flags for input args.  All
1611         callers updated.
1612         (invoke_object_method): Refactor to handle return values.  Add
1613         some more comments in various places.  Remove debug g_print.
1614
1615         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1616
1617         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1618         Handle G_TYPE_NONE.
1619         (compute_gsignature): New function; refactored from code from
1620         compute_marshaller and compute_marshaller_name.  Enhance to
1621         handle return values and async ops more cleanly.  Update for
1622         async ops returning NONE instead of BOOLEAN.
1623         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1624         and output appropriate string.
1625         (generate_glue): Handle return value annotation.  Also don't dump
1626         constness flag for input arguments.
1627
1628         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1629         files shared between installed library and utilities.
1630         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1631         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1632         binding tool can access gtype utility functions.
1633
1634         * test/glib/test-service-glib.c: 
1635         * test/glib/test-service-glib.xml: 
1636         * test/glib/test-dbus-glib.c: Add some tests for return values.
1637
1638 2005-07-09  Colin Walters  <walters@verbum.org>
1639
1640         * glib/dbus-gparser.c (parse_annotation): Add annotations to
1641         argument if available, not method.
1642
1643         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1644         (invoke_object_method): First, remove some redundant
1645         GValues (object_value, error_value) in favor of working on
1646         array directly.  Second, rework constness to be less buggy.
1647         Now we iterate directly over the argument metadata instead
1648         of parallel iterating over output signature and metadata.
1649
1650         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1651
1652         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1653         annotation on input args.
1654         
1655 2005-07-09  Colin Walters  <walters@verbum.org>
1656
1657         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1658         Define.
1659
1660         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1661         annotation.
1662
1663         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1664         (method_dir_signature_from_object_info): Handle arg_iterate change.
1665         (write_interface): Ditto.
1666         (lookup_object_info): Don't barf if format_version is > 0.
1667         (invoke_object_method): Handle arg constness.
1668
1669         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1670         (arg_info_new): Create.
1671         (arg_info_unref): Destroy.
1672         (arg_info_get_annotations, arg_info_get_annotation) 
1673         (arg_info_add_annotation): New functions.
1674
1675         * glib/dbus-gidl.h: Prototype them.
1676
1677         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1678         args, disallow them in properties.
1679         (parse_annotation): Handle arg annotations.
1680
1681         * test/glib/test-service-glib.xml: 
1682         * test/glib/test-service-glib.c: Update to make some methods
1683         const.
1684
1685 2005-07-08  Colin Walters  <walters@verbum.org>
1686
1687         * test/glib/test-service-glib.xml: 
1688         * test/glib/test-service-glib.c:
1689         * test/glib/test-dbus-glib.c: Test a{sv}.
1690
1691         * glib/examples/statemachine/statemachine.c:
1692         * glib/examples/statemachine/statemachine-server.c:
1693         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1694         add progress bar, etc.
1695
1696         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1697         needed anymore due to generic array/map marshalling.
1698         (dbus_g_value_types_init): Don't register basic arrays or the
1699         string/string hash.
1700         (dbus_gtype_from_signature_iter): Don't try to recurse into
1701         variants.
1702         (dbus_gtype_to_signature): Check collection/map before type
1703         metadata.
1704         (demarshal_garray_basic): Renamed to demarshal_collection_array.
1705         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1706         generic map creation/append functions instead of hash table
1707         specifically.
1708         (get_type_demarshaller): Handle maps.
1709         (demarshal_collection): Dispatch on collection type to either
1710         demarshal_collection_ptrarray or demarshal_collection_array.
1711         (get_type_marshaller): Handle maps.
1712         (marshal_collection): Dispatch collection type to either
1713         marshal_collection_ptrarray or marshal_collection_array.
1714         (_dbus_gvalue_test): New test.
1715
1716         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1717         (hash_free_from_gtype): Use it to free GValues.
1718         (hashtable_append): New function.
1719         (ptrarray_append): Fix prototype.
1720         (slist_append): Ditto.
1721         (_dbus_gvalue_utils_test): Extend tests.
1722
1723         * glib/dbus-gtype-specialized.c
1724         (dbus_g_type_specialized_init_append): Renamed from
1725         dbus_g_type_specialized_collection_init_append.  Remove const from
1726         value, since we steal it.
1727         (dbus_g_type_specialized_map_append): New function.
1728
1729         * glib/dbus-gtype-specialized.h: Update prototypes.
1730         Add DBusGTypeSpecializedMapAppendFunc.
1731
1732         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1733         _dbus_gvalue_test.
1734         
1735         * glib/dbus-gtest.h: Prototype it.
1736
1737 2005-07-08  Ross Burton  <ross@openedhand.com>
1738
1739         * dbus/dbus-glib.h:
1740         Add DBysGAsyncData for the async bindings.
1741
1742         * glib/dbus-binding-tool-glib.c:
1743         Re-enable the async bindings.
1744
1745         * test/glib/test-dbus-glib.c:
1746         Add a test for the generated async bindings.
1747
1748 2005-07-08  Colin Walters  <walters@verbum.org>
1749
1750         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1751         connection concept.
1752         
1753 2005-07-08  Colin Walters  <walters@verbum.org>
1754         
1755         * tools/Makefile.am: Kill of print-introspect in favor of using
1756         dbus-send --print-reply=literal.
1757
1758         * test/glib/test-service-glib.xml: 
1759         * test/glib/test-service-glib.c (my_object_get_objs): New test
1760         for "ao".
1761
1762         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1763         (main): Test GetObjs.
1764
1765         * glib/examples/statemachine/Makefile.am:
1766         * glib/examples/statemachine/sm-marshal.list:
1767         * glib/examples/statemachine/statemachine-client.c:
1768         * glib/examples/statemachine/statemachine-server.c:
1769         * glib/examples/statemachine/statemachine-server.xml:
1770         * glib/examples/statemachine/statemachine.c:
1771         * glib/examples/statemachine/statemachine.h:
1772         * glib/examples/statemachine/statemachine.xml:
1773
1774         New example.
1775
1776         * glib/examples/example-service.c (main): Move invocation
1777         of dbus_g_object_type_install_info earlier, to emphasize it
1778         should only be done once.
1779
1780         * glib/examples/example-signal-emitter.c (main): Ditto.
1781
1782         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1783
1784         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1785         (dbus_gvalue_marshal): Update prototypes.
1786
1787         * glib/dbus-gvalue.c: Update all marshalling functions to take
1788         const GValue instead of GValue.
1789         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1790         types.
1791         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1792         change.
1793         (dbus_gtype_to_signature): Handle generic collecitons and maps.
1794         Return a newly-allocated string.
1795         (demarshal_proxy, demarshal_object_path, demarshal_object)
1796         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1797         we get the wrong types from message.
1798         (get_type_demarshaller): New function, extracted from
1799         dbus_gvalue_demarshal.
1800         (demarshal_collection): New function, demarshals generic
1801         collection.
1802         (dbus_gvalue_demarshal): Just invoke result of
1803         get_type_demarshaller.  Throw error if we don't have one.
1804         (marshal_garray_basic): Abort on OOM.
1805         (get_type_marshaller): New function, extracted from
1806         dbus_gvalue_marshal.
1807         (collection_marshal_iterator, marshal_collection): New functions;
1808         implements generic marshalling for an iteratable specialized
1809         collection.
1810         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1811
1812         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1813         G_TYPE_STRING.
1814         (ptrarray_value_from_gvalue): Ditto.
1815         (ptrarray_append, ptrarray_free): New functions.
1816         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
1817         (slist_append, slist_end_append, slist_free): New functions.
1818         (dbus_g_type_specialized_builtins_init): Add append fuctions
1819         for GPtrArray and GSList.  Register GSList.
1820         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1821
1822         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1823         New.
1824         (dbus_g_type_specialized_collection_init_append)
1825         (dbus_g_type_specialized_collection_append)
1826         (dbus_g_type_specialized_collection_end_append): Prototype.
1827         (DBusGTypeSpecializedCollectionVtable): Add append_func and
1828         end_append_func.
1829
1830         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
1831         (dbus_g_type_specialized_collection_append) 
1832         (dbus_g_type_specialized_collection_end_append): New functions.
1833         (dbus_g_type_map_value_iterate): Take const GValue.
1834         (dbus_g_type_collection_value_iterate): Ditto.
1835
1836         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1837         _dbus_gvalue_utils_test.
1838         
1839         * glib/dbus-gtest.h: Prototype it.
1840
1841         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1842         using uninitialized owner_list.
1843         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1844         public API.
1845         (dbus_g_proxy_end_call_internal): Update to use error set
1846         from dbus_gvalue_demarshal instead of setting it here.
1847         (dbus_g_proxy_begin_call): Move return_if_fail here.
1848
1849         * glib/dbus-gobject.c (write_interface): Update for
1850         dbus_gtype_to_signature returning new string.
1851
1852         * configure.in: Add glib/examples/statemachine.
1853
1854 2005-07-08  Joe Shaw  <joeshaw@novell.com>
1855
1856         * configure.in: Add a configure option, --with-console-auth-dir
1857         
1858         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1859         new setting.  Patch from Kay Sievers.
1860
1861 2005-07-06  Colin Walters  <walters@verbum.org>
1862
1863         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1864         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1865         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1866         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1867         Delete in favor of dbus_g_proxy_begin_call and
1868         dbus_g_proxy_cancel_call.
1869         (DBusGProxyCall, DBusGProxyCallNotify): New.
1870         (dbus_g_proxy_begin_call): Change prototype to take callback, user
1871         data, and destroy function.  This replaces
1872         dbus_g_pending_call_set_notify.
1873         (dbus_g_proxy_cancel_call): Prototype.
1874         (DBusGAsyncData): Delete, shouldn't be needed anymore.
1875
1876         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1877         pending_calls map.
1878         (struct _DBusGProxyManager): Add bus_proxy member, which is an
1879         internal proxy for calls to the bus. Remove
1880         pending_nameowner_calls, now the internal proxy keeps track.
1881         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1882         pending_nameowner_calls.
1883         (got_name_owner_cb): Update prototype, and use
1884         dbus_g_proxy_end_call.
1885         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1886         (dbus_g_proxy_manager_register): Delete directly libdbus code in
1887         favor of using internal proxy.
1888         (dbus_g_proxy_manager_unregister): Update to use
1889         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1890         (dbus_g_proxy_init): Initialize pending calls map.
1891         (dbus_g_proxy_constructor): New.
1892         (dbus_g_proxy_class_init): Add get/set property functions,
1893         constructor, and add NAME, PATH, and INTERFACE properties.
1894         (cancel_pending_call): New function.
1895         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
1896         cancel them.
1897         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
1898         (GPendingNotifyClosure): New structure.
1899         (d_pending_call_notify, d_pending_call_free): Moved here from
1900         dbus-glib.c.
1901         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
1902         ordering.
1903         (manager_begin_bus_call): New internal function for talking to
1904         internal bus proxy.
1905         (dbus_g_proxy_new): Construct object using GObjet properties.
1906         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
1907         Create closure of same, and insert call into map of pending calls.
1908         (dbus_g_proxy_end_call_internal): Take call id instead of pending
1909         call.  Look up pending call in current set.  Remove it when we've
1910         completed.
1911         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
1912         (dbus_g_proxy_begin_call): Change API to take callback, user data,
1913         and destroy function directly.
1914         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
1915         (dbus_g_proxy_call): Invoke with NULL callback.
1916         (dbus_g_proxy_cancel_call): New function, replaces
1917         dbus_g_pending_call_cancel.
1918
1919         * glib/dbus-gparser.c (validate_signature): Fix call to
1920         dbus_set_g_error.
1921
1922         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
1923         New quark for attaching metadata to GType.
1924         (info_hash): Delete.
1925         (lookup_object_info): Look up using quark.
1926         (dbus_g_object_type_install_info): Check that a type is classed,
1927         not that it's an object.  Also just install type data using quark
1928         instead of using global hash.
1929
1930         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
1931         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
1932         (GPendingNotifyClosure): Delete.
1933         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
1934         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
1935
1936         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
1937         client method generation until we can fix it...
1938         
1939         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
1940         (load_from_service_thread_func): Ditto.
1941
1942         * tools/dbus-names-model.c (struct NamesModel): Hold
1943         DBusGProxyCall.
1944         (have_names_notify): Update prototype, use
1945         dbus_g_proxy_cancel_call.
1946         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
1947
1948         * tools/dbus-monitor.c (filter_func): Update for print_message
1949         API change.
1950
1951         * test/glib/test-dbus-glib.c: Add more tests for async
1952         invocations.  Update many begin_call/end_call pairs to just use
1953         dbus_g_proxy_call.
1954
1955         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
1956         allows us to dump print-introspect.c.
1957
1958         * tools/dbus-print-message.h (print_message): Add literal argument
1959         to print_message which is intended to allow printing arguments without
1960         metadata like "string=".
1961
1962         * tools/dbus-print-message.c (print_iter): Add literal argument.
1963         (print_message): Allow printing string messages literally.
1964
1965 2005-07-05  Colin Walters  <walters@verbum.org>
1966
1967         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1968         Remove value refcount leak, original patch from Jorn Baayen
1969         <jorn@openedhand.com>.  Also remove useless extra value in favor
1970         of prepending to value array directly.
1971
1972 2005-07-02  Colin Walters  <walters@verbum.org>
1973
1974         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
1975
1976 2005-07-01  Colin Walters  <walters@verbum.org>
1977
1978         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1979         
1980         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
1981         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
1982         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
1983         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
1984
1985 2005-06-30  Colin Walters  <walters@verbum.org>
1986
1987         * test/glib/test-dbus-glib.c:
1988         * test/glib/test-service-glib.c:
1989         * test/glib/test-service-glib.xml: Update tests for new error
1990         setting bits, also add async tests (patch from Ross Burton).
1991
1992         * test/glib/Makefile.am (test_service_glib_LDADD): Add
1993         DBUS_GLIB_THREADS_LIBS.
1994
1995         * glib/dbus-gproxy.c (get_name_owner)
1996         (dbus_g_pending_call_end_valist): Ditto.
1997
1998         * glib/dbus-gobject.c (error_metadata): New mapping from GError
1999         domain (GQuark) to DBusGErrorInfo.  
2000         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2001         quark in error_metadata.  Take message interface as default
2002         error message interface.
2003         (gerror_to_dbus_error_message): Pass message interface.
2004         (dbus_set_g_error): Resurrected.
2005         (dbus_g_error_info_free): New function.
2006         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2007         of _peek to actually create the object class if it hasn't been
2008         created yet.
2009         (dbus_g_error_domain_register): New function.
2010
2011         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2012
2013         * glib/dbus-gparser.c (validate_signature): Ditto.
2014
2015         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2016         (dbus_g_error_domain_register): Prototype.
2017
2018         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2019         Update tests.
2020
2021 2005-06-29  Colin Walters  <walters@verbum.org>
2022
2023         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2024         DBUS_TYPE_G_OBJECT_PATH.
2025
2026         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2027         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2028         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2029         (dbus_g_object_path_get_g_type): New function.
2030         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2031         to DBUS_TYPE_G_OBJECT_PATH by default.
2032         (demarshal_proxy): Remove unused name variable.
2033         (demarshal_object_path, marshal_object_path): New functions.
2034         (demarshal_proxy_array, marshal_proxy_array): Delete.
2035         
2036         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2037         DBUS_TYPE_G_OBJECT_PATH to char *.
2038         (dbus_g_type_get_lookup_function): Map builtin
2039         DBUS_TYPE_G_OBJECT_PATH.
2040
2041         * test/glib/test-dbus-glib.c
2042         * test/glib/test-service-glib.c (my_object_objpath): 
2043         Adapt tests to new object path marshalling.
2044
2045 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2046
2047         * configure.in: force check for Python >= 2.4
2048
2049 2005-06-29  Colin Walters  <walters@verbum.org>
2050         
2051         Patch from Ross Burton <ross@openedhand.com>
2052         
2053         * glib/dbus-gobject.c (invoke_object_method): Unset object
2054         value in all cases, not only in async case.
2055
2056 2005-06-29  Colin Walters  <walters@verbum.org>
2057
2058         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2059         name_call for keeping track of any outgoing GetNameOwner call.
2060         Also add for_owner and associated.
2061         (struct _DBusGProxyManager): Add owner_names, which is hash table
2062         that maps a base name to a list of names it owns (that we're
2063         interested in).  Add pending_nameowner_calls which is a list of
2064         all outstanding GetNameOwner; avoids us having to iterate over
2065         every proxy.  Add unassociated_proxies which keeps track of name
2066         proxies with no associated name owner.
2067         (dbus_g_proxy_manager_unref): Destroy owner_names.
2068         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2069         name refcounts.
2070         (find_name_in_info, name_owner_foreach)
2071         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2072         (dbus_g_proxy_manager_monitor_name_owner)
2073         (dbus_g_proxy_manager_unmonitor_name_owner)
2074         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2075         New functions; they manipulate the owner_names mapping.
2076         (got_name_owner_cb): New function.
2077         (get_name_owner): New function, extracted from
2078         dbus_g_proxy_new_for_name_owner.
2079         (dbus_g_proxy_manager_register): For now we need to keep track of
2080         all NameOwnerChanged.  Also if the proxy is for a name, if we
2081         don't already know the name owner, queue a new GetNameOwner
2082         request and add it to our list of unassociated proxies.  Otherwise
2083         inc the refcount.
2084         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2085         cancel any pending GetNameOwner call, etc.
2086         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2087         the owner_names mapping to look up the current names for the
2088         signal source, and dispatch to any proxies for that name.
2089         (dbus_g_proxy_new): Initialize new members.
2090         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2091         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2092         (dbus_g_pending_call_end_valist): New function, extracted from
2093         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2094         but want to use the GLib infrastructure.  Also note how many
2095         arguments in reply were over.
2096         (dbus_g_pending_call_end): New function, just call
2097         dbus_g_pending_call_end_valist.
2098         (dbus_g_proxy_end_call_internal): Just call
2099         dbus_g_pending_call_end_valist.
2100
2101         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2102         of builtin marshaller for STRING_STRING_STRING.
2103
2104         * test/glib/test-dbus-glib.c: 
2105         * test/glib/test-service-glib.c:
2106         * test/glib/test-service-glib.xml:
2107         Extend tests to cover name proxies, destruction of owner proxies,
2108         etc.
2109         
2110         * glib/examples/example-signal-recipient.c
2111         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2112         
2113         * tools/dbus-send.c (main): Print D-BUS error name in addition
2114         to message.
2115
2116 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2117
2118         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2119         cmessage_function_handler): Patch from 
2120         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2121         by using the Py_GILState_Ensure/Release to synchronize with the
2122         python runtime.
2123         
2124 2005-06-28  Ray Strode  <rstrode@redhat.com>
2125
2126         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2127         babysitter helper process on last unref, bug #2813.
2128
2129 2005-06-27  Colin Walters  <walters@verbum.org>
2130
2131         * test/glib/test-dbus-glib.c: 
2132         * test/glib/test-service-glib.c:
2133         * test/glib/test-service-glib.xml:
2134         Test hash table signal emitting.
2135
2136         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2137         types to their fundamental basis types, since this is what
2138         marshallers operate on.  Also add an entry for VOID__BOXED.
2139         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2140
2141 2005-06-26  Havoc Pennington  <hp@redhat.com>
2142
2143         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2144         from Don Park
2145
2146 2005-06-26  Colin Walters  <walters@verbum.org>
2147
2148         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2149         (dbus_g_error_set): New public function from its ashes; used by
2150         both service-side method implementation and GLib bindings
2151         internals.
2152         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2153         (_dbus_glib_test): Add some tests.
2154
2155         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2156
2157         * test/glib/test-service-glib.c (my_object_throw_error): Use
2158         dbus_g_error_set.
2159
2160         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2161         errors thrown by dbus_g_error_set.
2162
2163         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2164
2165         * glib/dbus-gparser.c (validate_signature): Ditto.
2166
2167         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2168         (dbus_g_proxy_end_call_internal): Ditto.
2169
2170         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2171         converts DBUS_ERROR_x to DBUS_GERROR_x.
2172         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2173
2174         * doc/TODO: Remove error TODO.
2175
2176         * doc/dbus-tutorial.xml: Update with documentation about error
2177         handling.
2178
2179         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2180         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2181         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2182
2183 2005-06-22  Colin Walters  <walters@verbum.org>
2184         
2185         Patch from Ross Burton <ross@openedhand.com>
2186
2187         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2188
2189 2005-06-20  Colin Walters  <walters@verbum.org>
2190
2191         * configure.in: Add glib/examples.
2192
2193         * glib/Makefile.am: Add examples/
2194
2195         * glib/examples/.cvsignore
2196         * glib/examples/Makefile.am
2197         * glib/examples/example-client.c
2198         * glib/examples/example-service.c
2199         * glib/examples/example-service.xml
2200         * glib/examples/example-signal-emitter.c
2201         * glib/examples/example-signal-emitter.xml
2202         * glib/examples/example-signal-recipient.c:
2203         New files; GLib binding examples, ported from
2204         python/examples.
2205
2206 2005-06-20  Colin Walters  <walters@verbum.org>
2207
2208         * dbus/dbus-glib.h: 
2209         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2210         dbus_g_proxy_call.
2211
2212         * glib/dbus-binding-tool-glib.c: 
2213         * doc/dbus-tutorial.xml: 
2214         * test/glib/test-dbus-glib.c: Update for rename.
2215         
2216 2005-06-20  Colin Walters  <walters@verbum.org>
2217
2218         Patch suggested by Ross Burton <ross@openedhand.com>
2219
2220         * glib/dbus-gobject.c (export_signals): Free signal name.
2221         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2222         memory leak.  Add a bit of documentation.
2223         (dbus_g_method_return_error): Free context, and note we do
2224         so.
2225
2226 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2227
2228         * dbus/dbus-glib.h:
2229         * glib/dbus-gobject.c:
2230         * glib/dbus-gproxy.c:
2231         * glib/dbus-gvalue.c: Predeclare structs as 
2232         typedef struct _Something Something instead of 
2233         typedef struct Something Something, so we can 
2234         redeclare the prototypes. Other GNOME libraries 
2235         do this already.
2236
2237 2005-06-17  Colin Walters  <walters@verbum.org>
2238
2239         * tools/dbus-names-model.c (have_names_notify): Fix call
2240         to dbus_g_proxy_end_call.
2241         
2242 2005-06-17  Colin Walters  <walters@verbum.org>
2243
2244         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2245         spew warnings if we get malformed remote signals.
2246
2247         * glib/dbus-gobject.c (propsig_iterate): New function.
2248         (lookup_object_info): New function, extracted from
2249         lookup_object_and_method.
2250         (introspect_properties, introspect_signals): Delete; these
2251         are merged into write_interface.
2252         (write_interface): Write out signals and properties here;
2253         dump the org.gtk.object stuff and use the interface given
2254         in the introspection data blob.  Also fix up property XML.
2255         (lookup_values): New function.
2256         (introspect_interfaces): Gather a mapping from interface to a
2257         list of its methods, signals, and properties, then write out
2258         each interface.
2259         (lookup_object_and_method): Use lookup_object_info.
2260         (struct DBusGSignalClosure): Add interface.
2261         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2262         we can just use the constant data.
2263         (dbus_g_signal_closure_finalize): Don't free signal name.
2264         (signal_emitter_marshaller): Use interface from signal closure.
2265         (export_signals): Only export signals mentioned in introspection
2266         blob.
2267         (dbus_g_connection_register_g_object): Warn if we have no
2268         introspection data for an object.
2269         (funcsig_equal): Remove unused variable.
2270         (dbus_g_object_register_marshaller): Take varargs instead of
2271         list.
2272         (dbus_g_object_register_marshaller_array): New function,
2273         extracted from old dbus_g_object_register_marshaller.
2274
2275         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2276         signals and property data.
2277         (write_quoted_string): New function, extracted from generate_glue.
2278         (generate_glue): Write signals and properties to introspection
2279         blob.
2280
2281         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2282         exported_signals and exported_properties.
2283         (dbus_g_object_register_marshaller): Update prototype.
2284         (dbus_g_object_register_marshaller_array): Prototype.
2285         
2286         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2287
2288         * test/glib/test-service-glib.c: Add new test signals and method
2289         to emit them.
2290
2291         * test/glib/test-service-glib.xml: Add some test signals.
2292
2293         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2294         and my-object-marshal.h
2295         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2296         my-object-marshal.c.
2297         (my-object-marshal.c, my-object-marshal.h): Implement.
2298
2299         * test/glib/.cvsignore: Update.
2300
2301         * doc/TODO: Remove two GLib TODO items fixed by this
2302         patch.
2303
2304 2005-06-16  Colin Walters  <walters@verbum.org>
2305
2306         * doc/TODO: Update for GLib bindings.
2307         
2308 2005-06-16  Colin Walters  <walters@verbum.org>
2309
2310         * glib/dbus-binding-tool-glib.c:
2311         * glib/dbus-gobject.c:
2312         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2313         from Ross Burton, for his GLib bindings work.
2314
2315 2005-06-16  Colin Walters  <walters@verbum.org>
2316
2317         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2318         to iterate instead of walking to G_TYPE_INVALID.
2319
2320         Patch based on a patch from Ryan Gammon.
2321
2322 2005-06-16  Colin Walters  <walters@verbum.org>
2323
2324         * bus/bus.c (bus_context_new): Set parser to NULL
2325         after we unref it (Patch from Chris Boscolo, #2174).
2326         
2327 2005-06-16  Colin Walters  <walters@verbum.org>
2328
2329         * python/dbus_bindings.pyx.in: Import size_t,
2330         __int64_t, __uint64_t, and __signed.
2331
2332         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2333         Define cmsg struct, output it.
2334         (_dbus_read_credentials_unix_socket):
2335         Use cmsg struct.
2336         
2337         Patch from Joe Markus Clarke for FreeBSD support.
2338         
2339 2005-06-16  Colin Walters  <walters@verbum.org>
2340
2341         * tools/dbus-send.c (append_array): Use strtok.
2342         (append_dict): New function.
2343         (type_from_name): New function, extracted from main.
2344         (main): Handle sending dicts.
2345
2346         * tools/dbus-print-message.c (print_iter): Print dict
2347         entries.
2348         
2349 2005-06-16  Colin Walters  <walters@verbum.org>
2350
2351         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2352         values as the empty string (#2948).
2353         
2354 2005-06-16  Colin Walters  <walters@verbum.org>
2355
2356         * dbus/Makefile.am:
2357         * mono/doc/Makefile.am:
2358         * test/glib/Makefile.am:
2359
2360         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2361
2362 2005-06-16  Colin Walters  <walters@verbum.org>
2363
2364         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2365         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2366
2367         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2368         Increment pointer after swapping fixed array.  Add assertion
2369         for array length.
2370                 
2371 2005-06-15  Colin Walters  <walters@verbum.org>
2372
2373         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2374         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2375         
2376 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2377
2378         * NEWS: Update to 0.34
2379
2380 2005-06-15  David Zeuthen  <davidz@redhat.com>
2381
2382         * configure.in (LT_CURRENT): Revert back to 1 as the library
2383         hasn't changed and we've certainly not committed to protocol
2384         stability yet.  All this does is to break ABI. See commit note
2385         from hp@redhat.com 2005-05-05 for details.
2386         
2387 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2388
2389         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2390         (_dbus_connection_run_builtin_filters): New method
2391         (dbus_connection_dispatch): Run the builtin filters which in turn
2392         runs the peer filter which handles Ping messages.
2393
2394         * doc/TODO: 
2395          - Ping isn't handled: This patch fixes it
2396          
2397          - Add a test case for the Ping message: added TODO item
2398
2399 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2400
2401         * dbus/dbus-message.c:
2402         (dbus_message_has_path): New method
2403         (dbus_message_has_interface): New method
2404         (dbus_message_has_member): New method
2405
2406         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2407         New method
2408
2409         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2410         the keyring directory is private to the user
2411
2412         * doc/TODO:
2413          - The convenience functions in dbus-bus.h should perhaps have
2414          the signatures that they would have if they were autogenerated
2415          stubs. e.g. the acquire service function. We should also evaluate
2416          which of these functions to include, in light of the fact that
2417          GLib/Qt native stubs will probably also exist.: Punted
2418
2419          - add dbus_message_has_path(), maybe has_member/interface:
2420          fixed in this patch
2421
2422          - in dbus-keyring.c, enforce that the keyring dir is not
2423          world readable/writable: Fixed in this patch
2424
2425 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2426
2427         * dbus/dbus-marshal-validate.h: Added a new validation
2428         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2429         out of memory errors when validating signitures
2430
2431         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2432         in places where we previously used DBUS_VALID and a FALSE return 
2433         value to indicate OOM
2434         
2435         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2436         Use a stack to track the number of elements inside containers.  The 
2437         stack values are then used to validate that dict entries have only two
2438         elements within them.
2439         (validate_body_helper): check the reason for failure when validating
2440         varients
2441         
2442         * dbus/dbus-message.c (load_message): use 
2443         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2444         DBUS_VALID and a FALSE return value to indicate OOM
2445
2446         * doc/TODO: remove "- validate dict entry number of fields" as this
2447         patch fixes it
2448
2449 2005-06-14  David Zeuthen  <davidz@redhat.com>
2450
2451         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2452         watches (if applicable) and add new watches
2453
2454         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2455         (main): Setup SIGIO signal handler if using D_NOTIFY
2456
2457         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2458
2459         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2460         (merge_included): Also merge conf_dirs list
2461         (bus_config_parser_unref): Clear conf_dirs list
2462         (include_dir): Add directory to conf_dirs list
2463         (bus_config_parser_get_conf_dirs): New function
2464
2465         * bus/dir-watch.[ch]: New files
2466
2467         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2468
2469         * configure.in: Add checks for D_NOTIFY on Linux
2470
2471 2005-06-14  Colin Walters  <walters@verbum.org>
2472
2473         * glib/dbus-binding-tool-glib.c:
2474         * glib/dbus-gobject.c:
2475         * glib/dbus-gvalue.c: Fix indentation and brace style.
2476         
2477 2005-06-14  Ross Burton <ross@openedhand.com>.
2478
2479         * glib/dbus-glib.h: Make DBusGMethodInvocation
2480         a private structure.  Rearrange prototypes a bit.
2481         
2482         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2483         documentation for first_arg_type.
2484         
2485         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2486         here, add documentation.  Move dbus_g_method_return
2487         and dbus_g_method_return_error into public API
2488         section.
2489
2490 2005-06-14  Colin Walters  <walters@verbum.org>
2491
2492         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2493         Add missing return statements, noticed by Ross Burton.
2494         
2495 2005-06-13  Ross Burton <ross@openedhand.com>.
2496
2497         * glib/dbus-gobject.c: Handle errors on message
2498         demarshalling by sending error message back.
2499         * glib/dbus-gvalue.c: Initialize return variables.
2500
2501 2005-06-13  Colin Walters  <walters@verbum.org>
2502
2503         * glib/Makefile.am: Fix thinko in last patch.
2504
2505 2005-06-13  Colin Walters  <walters@verbum.org>
2506
2507         * glib/Makefile.am: Move dbus-gtype-specialized.c
2508         and dbus-gtype-specialized.h into a _HEADERS variable,
2509         install them.
2510
2511 2005-06-12  Colin Walters  <walters@verbum.org>
2512
2513         Async signals and various bugfixes and testing by
2514         Ross Burton <ross@openedhand.com>.
2515
2516         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2517         (dbus_gvalue_genmarshal_name_from_type)
2518         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2519         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2520         (dbus_g_value_types_init, dbus_gtype_from_signature)
2521         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2522         (dbus_gtypes_from_arg_signature): New function prototypes.
2523         (dbus_gvalue_demarshal): Take context and error arguments.
2524         (dbus_gvalue_demarshal_variant): New function.
2525         (dbus_gvalue_demarshal_message): New function.
2526         (dbus_gvalue_store): Delete.
2527
2528         * glib/dbus-gvalue.c:
2529
2530         File has been almost entirely rewritten; now we special-case
2531         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2532         hash tables correctly, etc.  Full support for recursive values
2533         is not yet complete.
2534
2535         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2536         argument of signal to G_TYPE_POINTER since we now pass a
2537         structure.
2538         (lookup_g_marshaller): Delete in favor of
2539         _dbus_gobject_lookup_marshaller.
2540         (marshal_dbus_message_to_g_marshaller): Use
2541         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2542         to handle remote signal callbacks.
2543         (dbus_g_proxy_new_from_proxy): New function; creates a new
2544         DBusGProxy by copying an existing one.
2545         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2546         (dbus_g_proxy_get_path): New functions.
2547         (dbus_g_proxy_marshal_args_to_message): New function;
2548         factored out of existing code.
2549         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2550         from a varargs array.
2551         (dbus_g_proxy_begin_call_internal): New function.
2552         (dbus_g_proxy_end_call_internal): New function.
2553         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2554         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2555         after collecting args into value array.
2556         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2557         invoke dbus_g_proxy_end_call_internal.
2558         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2559         end_call_internal.
2560         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2561         types.
2562         (array_free_all): New function.
2563         (dbus_g_proxy_add_signal): Take GTypes.
2564
2565         * glib/dbus-gobject.h:
2566         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2567         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2568         Prototype.
2569
2570         * glib/dbus-gobject.c: Add a global marshal_table hash which
2571         stores mappings from type signatures to marshallers.  Change lots
2572         of invocations of dbus_gtype_to_dbus_type to
2573         dbus_gtype_to_signature.
2574         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2575         (introspect_signals): Fix test for query.return_type.
2576         (set_object_property): Update invocation of dbus_gvalue_demarshal.
2577         (invoke_object_method): Many changes.  Handle asynchronous
2578         invocations.  Convert arguments with
2579         dbus_gvalue_demarshal_message.  Handle errors.  Use
2580         DBusSignatureIter instead of strlen on args. Handle all arguments
2581         generically.  Special-case variants.
2582         (dbus_g_method_return, dbus_g_method_return_error): New function.
2583         (DBusGSignalClosure): New structure, closes over signal
2584         information.
2585         (dbus_g_signal_closure_new): New function.
2586         (dbus_g_signal_closure_finalize): New function.
2587         (signal_emitter_marshaller): New function; is special marshaller
2588         which emits signals on bus.
2589         (export_signals): New function; introspects object signals and
2590         connects to them.
2591         (dbus_g_object_type_install_info): Take GType instead of
2592         GObjectClass.
2593         (dbus_g_connection_register_g_object): Invoke export_signals.
2594         (dbus_g_connection_lookup_g_object): New function.
2595         (DBusGFuncSignature) New structure; used for mapping type
2596         signatures to marshallers.
2597         (funcsig_hash): New function; hashes DBusGFuncSignature.
2598         (funcsig_equal): New function; compares DBusGFuncSignature.
2599         (_dbus_gobject_lookup_marshaller): New function.
2600         (dbus_g_object_register_marshaller): New function; used to
2601         register a marshaller at runtime for a particular signature.
2602
2603         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2604
2605         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2606         which notes a server method implementation should be
2607         asynchronous.
2608
2609         * glib/dbus-binding-tool-glib.c
2610         (dbus_binding_tool_output_glib_server): Call
2611         dbus_g_value_types_init.
2612         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
2613         variants specially.
2614         (dbus_g_type_get_lookup_function): Turn GType into an invocation
2615         of a lookup function.
2616         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2617         (write_untyped_out_args): New method; write output arguments.
2618         (write_formal_declarations_for_direction): Function for
2619         writing prototypes.
2620         (write_formal_parameters_for_direction): Function for
2621         writing implementations.
2622         (write_typed_args_for_direction): Function for writing
2623         arguments prefixed with GTypes.
2624         (write_async_method_client): Write out async version
2625         of method.
2626
2627         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2628         (dbus_g_type_get_marshal_name): Move mapping from GType
2629         to marshal name into here.
2630         (dbus_g_type_get_c_name): Move into here.
2631         (compute_marshaller): Convert signature to type with
2632         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2633         (compute_marshaller_name): Ditto.
2634         (compute_marshaller): Handle async signal annotations.
2635         (gather_marshallers): Return if we don't have a known
2636         prefix.
2637         (generate_glue): Collect introspection blob here, and
2638         write all of the blob at the end.  This allows an object
2639         with multiple interfaces to work.
2640         Mark async methods in introspection blob.
2641
2642         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2643         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2644         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2645
2646         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2647         avoids people accidentally using DBUS_TYPE_* which should
2648         not be necessary anymore.
2649         Do include dbus-gtype-specialized.h, which are utilities
2650         for GLib container types.
2651         Add various #defines for types such as
2652         DBUS_TYPE_G_BOOLEAN_ARRAY.
2653         (DBusGValueIterator, DBusGValue): Define, not fully used
2654         yet.
2655         (dbus_g_value_get_g_type): Type for recursive value.
2656         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2657         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2658         (dbus_g_value_free): Prototypes.
2659         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2660         (dbus_g_proxy_set_interface): Prototype.
2661         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2662         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2663         types.
2664         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2665         Accessors.
2666         (DBusGAsyncData, DBusGMethodInvocation): Structures for
2667         doing async invocations.
2668         (dbus_g_method_return, dbus_g_method_return_error):
2669         Prototypes.
2670         * doc/dbus-tutorial.xml: Update GLib section.
2671         
2672         * tools/dbus-viewer.c (load_child_nodes): Update
2673         for new invocation type of dbus_g_proxy_end_call.
2674         (load_from_service_thread_func): Ditto.
2675
2676         * tools/print-introspect.c (main): Ditto.
2677
2678         * tools/dbus-names-model.c (have_names_notify)
2679         (names_model_reload, names_model_set_connection)
2680         Use GTypes.
2681
2682         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2683         needed since Python bindings use GLib bindings.
2684
2685         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2686         Add --prefix argument.
2687
2688         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
2689         unneeded --ignore-unsupported arg.
2690         
2691         * test/glib/test-service-glib.c: 
2692         * test/glib/test-service-glib.xml:
2693         * test/glib/test-dbus-glib.c: Add many more tests.
2694
2695 2005-06-06  David Zeuthen  <davidz@redhat.com>
2696
2697         * doc/TODO: Add item about need to remove deprecated functions.
2698
2699         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2700
2701         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2702         to repair the ABI which was broken with the last commit.
2703
2704 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
2705
2706         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2707         (dbus_connection_disconnect): renamed to dbus_connection_close 
2708         for API symmetry with dbus_connection_open
2709         (_dbus_connection_open_internal): 
2710         s/dbus_connection_disconnect/dbus_connection_close
2711
2712         * dbus/dbus-bus.c (dbus_bus_get):
2713         s/dbus_connection_disconnect/dbus_connection_close
2714
2715         * bus/connection.c (bus_connections_unref, 
2716         bus_connections_setup_connection, bus_connections_expire_incomplete):
2717         s/dbus_connection_disconnect/dbus_connection_close
2718
2719         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2720         kill_client_connection_unchecked, check_hello_connection):
2721         s/dbus_connection_disconnect/dbus_connection_close
2722
2723         * bus/bus.c (new_connection_callback):
2724         s/dbus_connection_disconnect/dbus_connection_close
2725
2726         * tools/dbus-send.c (main):
2727         s/dbus_connection_disconnect/dbus_connection_close
2728
2729         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2730         s/dbus_connection_disconnect/dbus_connection_close
2731         
2732         * test/test-service.c (path_message_func, filter_func):
2733         s/dbus_connection_disconnect/dbus_connection_close
2734         
2735         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
2736         
2737 2005-05-25  Colin Walters  <walters@verbum.org>
2738
2739         * dbus/dbus-protocol.h: Move various bus service #defines such
2740           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2741           dbus/dbus-shared.h.
2742         * dbus/dbus-shared.h: Various defines moved here.
2743         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2744
2745 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
2746
2747         * python/__init__.py: Python bindings deserve a minor version
2748         update.  Upped to (0, 40, 2)
2749
2750 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
2751
2752         * python/decorators.py: add explicitly_pass_message decorator
2753         for passing in the dbus message as keyword for edge case signal
2754         handling
2755
2756         * python/matchrules.py (SignalMatchRule.__repr__): fix output
2757         to conform with what dbus expects for match rules
2758         (SignalMatchRule.execute): add the dbus message as a keyword
2759         if the signal handler has requested it
2760
2761         * python/examples/example/signal-recipient.py: added some more
2762         examples on how to hook up to signals
2763
2764 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
2765
2766         * python/decorators.py: import dbus_bindings
2767
2768         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
2769         SignalMatchNode): new classes that implement wildcard signal
2770         callback matching using a tree lookup. Heavily modified from a
2771         patch sent by Celso Pinto (fd.o bug #3241)
2772
2773         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2774         use new match classes to handle signals.
2775
2776 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
2777         
2778         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2779
2780 2005-05-18  Havoc Pennington  <hp@redhat.com>
2781
2782         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2783         gettext. Not really worth requiring yet perhaps, but any
2784         production quality 1.0 would require it so we should go ahead and
2785         get things set up. We do have a couple token calls to
2786         bindtextdomain in the code already.
2787
2788 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
2789
2790         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2791         when using recursive g_main_loops
2792
2793         * python/_dbus.py (class Bus): add the ProxyObjectClass
2794         alias for ProxyObject to make it easier for the Twisted 
2795         networking framework to integrate dbus.
2796
2797         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2798         alias for ProxyMethod to make it easier for the Twisted 
2799         networking framework to integrate dbus. 
2800
2801 2005-05-11  Ross Burton  <ross@openedhand.com>
2802
2803         * glib/dbus-glib-tool.c: Add --prefix argument.
2804         * glib/dbus-binding-tool-glib.h: Add prefix argument.
2805         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2806         Add prefix argument.
2807         (generate_glue): Pass prefix argument down.
2808         (dbus_binding_tool_output_glib_server): Pass prefix to
2809         glib-genmarshal.
2810         
2811 2005-05-11  Colin Walters  <walters@verbum.org>
2812
2813         * tools/dbus-send.c (append_array): New function.
2814         (append_arg): Broken out from main.
2815         (main): Add cheesy hack to send arrays and variants.
2816         (usage): Update.
2817         * tools/dbus-print-message.c (print_iter): Broken out
2818         from main.
2819
2820 2005-05-11  Colin Walters  <walters@verbum.org>
2821
2822         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2823         New function, returns signature string for signature iter.
2824         * dbus/dbus-signature.h: Prototype it.
2825         * dbus/dbus-message.c (dbus_message_iter_get_signature):
2826         New function, returns signature string for message iter.
2827         (dbus_message_iter_get_array_len): New function, returns
2828         length of array.
2829         (dbus_message_iter_get_fixed_array): Fix assertion; this
2830         function should be used when the iter is pointing to the
2831         contents of an array
2832         * dbus/dbus-message.h: Prototypes.
2833         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2834         New function; returns length of an array.
2835         * dbus/dbus-marshal-recursive.h: Prototype it.
2836         
2837 2005-05-11  Colin Walters  <walters@verbum.org>
2838
2839         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2840         compilation error.
2841         
2842 2005-05-08  Havoc Pennington  <hp@redhat.com>
2843
2844         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2845         daemon's pid, not the parent's pid, to the file descriptor.
2846         Reported by Taj Morton.
2847
2848 2005-05-05  Havoc Pennington  <hp@redhat.com>
2849
2850         * configure.in (LT_*): add notes on how the libtool versioning
2851         works to save thinking. Increment soname to indicate protocol
2852         breakage (though really the library interface hasn't changed I
2853         guess)
2854
2855         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2856         verify the GUID received from server matches what we were
2857         expecting, if we had an expectation
2858
2859         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2860         (_dbus_auth_get_guid_from_server): new function
2861         (send_begin): parse the OK args
2862
2863         * doc/dbus-specification.xml: add GUID to the auth protocol
2864
2865 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
2866
2867         * Fix my name in previous changelog ;)
2868
2869         * python/proxies.py (ProxyObject.__getattr__): add further patch
2870         from Anthony Baxter to throw an AttributeError when python 
2871         __special__ functions are called instead of marshling them over 
2872         the bus (Bug#1685 comment 3).
2873
2874 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
2875
2876         * python/Makefile.am: changed to use pyexecdir for the binding
2877         shared libraries (Bug#2494)
2878
2879         * python/exceptions.py: bring exceptions over from the bindings
2880         so they can be used in applications (Bug#2036)
2881         Make all exceptions derive from DBusException
2882
2883         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2884         of classes so that print obj doesn't throw an exception (Bug #1685)
2885
2886 2005-05-03  Ross Burton  <ross@openedhand.com>
2887
2888         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2889         Return if we get an error during registration.  Set up a
2890         weak reference on object to unregister if object is destroyed.
2891         (unregister_gobject): New function.
2892         
2893 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
2894
2895         * python/dbus_bindings.pyx.in: 
2896         - added new type classes for hinting to the marashaler what type 
2897         to send over the wire
2898         - added int16 and uint16 marshalers
2899         - Fixed a bug in the type constants that caused int32 to go out
2900         as uint16 over the wire
2901         * python/dbus.py: split up into different files and renamed _dbus.py
2902         * python/__init__.py, python/_util.py, python/decorators.py, 
2903         python/exceptions.py, python/proxies.py, python/services.py,
2904         python/types.py: new files split off from dbus.py
2905         * python/Makefile.am: Add new files, remove dbus.py and 
2906         install all python files to <python module dir>/dbus
2907         * python/examples/*: Added #!/usr/bin/env python to the top of
2908         every example.  Patch provided by Tatavarty Kalyan
2909
2910 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2911
2912         * NEWS: Update to 0.33
2913
2914 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2915
2916         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
2917         method for doing async calls
2918         (_pending_call_notification): New C function for handling pendning call
2919         callbacks
2920         (set_notify): New method for setting pending call notification
2921         
2922         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
2923         Async capabilities added to remote method calls
2924         (Sender): class removed
2925         (RemoteService): class removed
2926         (ObjectTree): class removed for now
2927         (RemoteObject): Renamed to ProxyObject
2928         (RemoteMethod): Renamed to ProxyMethod
2929         (method): Decorator added for decorating python methods as dbus methods
2930         (signal): Decorator added for decorating python methods as signal emitters
2931         (ObjectType): Metaclass added for generating introspection data and the
2932         method callback vtable
2933         (Interface): Wrapper class added to wrap objects in a dbus interface
2934         (Object): Uses ObjectType as its metaclass and exports Introspect
2935         of the org.freedesktop.DBus.Introspectable interface
2936         (ValidationException, UnknownMethodException): new exceptions
2937
2938         * python/examples/*: Modified to fit with the new bindings
2939
2940 2005-04-23  Havoc Pennington  <hp@redhat.com>
2941
2942         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
2943         reported by Tony Houghton
2944
2945         * test/test-service.c (main): test
2946         dbus_connection_get_object_path_data()
2947
2948         * dbus/dbus-object-tree.c (find_handler): be sure we always init
2949         the exact_match
2950         (_dbus_object_tree_get_user_data_unlocked): new function used by
2951         dbus_connection_get_object_path_data()
2952         (do_register): add assertion test for get_user_data_unlocked
2953         (object_tree_test_iteration): more tests
2954
2955         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
2956         new function from Dan Reed to let you get the user data from 
2957         dbus_connection_register_object_path()
2958
2959 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
2960
2961         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
2962         in numerous places that did not account for the NULL terminator
2963         (signature_from_seed): changed the manual string copy loop to 
2964         just use strcpy instead
2965         make check should now pass
2966
2967 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
2968
2969         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
2970         so that it allows messages that are not signals to pass in 
2971         NULL as the interface.
2972
2973 2005-04-18  David Zeuthen  <davidz@redhat.com>
2974
2975         * glib/dbus-gmain.c (io_handler_destroy_source): 
2976         (timeout_handler_destroy_source, connection_setup_free): 
2977         Also unref the source to avoid memory leaks.
2978
2979 2005-04-13  David Zeuthen  <davidz@redhat.com>
2980
2981         * bus/config-parser.c (bus_config_parser_new): Bump this to a
2982         more reasonable, yet still totally arbitrary, value :-). 
2983
2984 2005-04-13  David Zeuthen  <davidz@redhat.com>
2985
2986         * doc/TODO: Added an "important for 1.0" item about selinux
2987         allow/deny messages
2988
2989 2005-04-13  David Zeuthen  <davidz@redhat.com>
2990
2991         * bus/selinux.c: Add c-file-style to top of file
2992         (log_audit_callback): Don't free the data here anymore
2993         (bus_selinux_check): Don't take spid and tpid since appending
2994         that to auxdata may OOM.
2995         (bus_selinux_allows_acquire_service): Handle OOM and signal back
2996         to the caller if we are OOM by taking an error object.
2997         (bus_selinux_allows_send): -do-
2998
2999         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3000         and bus_selinux_allows_send
3001
3002         * bus/bus.c (bus_context_check_security_policy): Pass error and
3003         pass on OOM thrown by bus_selinux_allows_send()
3004
3005         * bus/services.c (bus_registry_acquire_service): Pass error and
3006         pass on OOM thrown by bus_selinux_allows_acquire_service()
3007
3008 2005-04-13  Havoc Pennington  <hp@redhat.com>
3009
3010         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3011         message at a time to avoid monopolizing the main loop, bug 
3012         #2953 from Benjamin Otte
3013
3014 2005-04-09  Havoc Pennington  <hp@redhat.com>
3015
3016         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3017         possible overlap, fix from Daniel Reed
3018         (fixup_alignment): fix signedness warnings
3019         (_dbus_string_append_unichar): ditto
3020
3021 2005-04-09  Havoc Pennington  <hp@redhat.com>
3022
3023         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3024
3025         * glib/dbus-glib-tool.c (main): fix warning
3026
3027         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3028
3029         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3030         add a new function that can be used in simple applications that
3031         don't have a main loop and are willing to block
3032
3033 2005-04-05  David Zeuthen  <davidz@redhat.com>
3034
3035         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3036
3037         * glib/dbus-gmain.c:
3038         (io_handler_destroy_source): Remove from list of IO handlers
3039         of the ConnectionSetup object
3040         (timeout_handler_destroy_source): -do- for timeout handlers
3041         (io_handler_source_finalized): Don't remove from list since
3042         we now do that in io_handler_destroy_source(). Renamed from
3043         io_handler_source_destroyed
3044         (timeout_handler_source_destroyed): -do- for timeout handlers
3045         (connection_setup_free): It is now safe to iterate over all
3046         IO and timeout handlers as the _destroy_source removes them
3047         from the list synchronously
3048
3049 2005-03-30  Havoc Pennington  <hp@redhat.com>
3050
3051         * configure.in: change check to gtk 2.4
3052
3053         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3054         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3055         to 2.4
3056
3057 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3058
3059         * News: Update 0.32
3060
3061         * HACKING: Fixed realease instructions.  configure.in should be updated to
3062           the next release by the person who made the last release.
3063
3064 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3065
3066         * python/lvalue_cast_post_process.py - removed.  Patch has been
3067           submitted to Pyrex maintainers that fixes gcc4.0 errors
3068
3069         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3070
3071 2005-03-24  Daniel Reed  <n@ml.org>
3072
3073         * tools/Makefile.am: Make print-introspect and
3074         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3075
3076 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3077
3078         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3079
3080         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3081           had in Red Hat packages for a while but for some reason never 
3082           got merged upstream
3083           (_dbus_is_a_number): New checks if a string
3084           can be converted to a number and does the conversion if it can
3085           (_dbus_user_database_lookup): Add check to see if the given username
3086           is a udi.  This allows udi's to be used instead of usernames in the
3087           config file.
3088           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3089           is a gdi.  This allows gdi's to be used instead of groupnames in the
3090           config file.
3091
3092 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3093
3094         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3095           code so that it compiles with gcc4.0
3096
3097         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3098           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3099           results back to dbus_binding.c
3100
3101 2005-03-20  Colin Walters  <walters@verbum.org>
3102
3103         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3104
3105         * configure.in: Require GTK+ 2.6.
3106         
3107 2005-03-20  Colin Walters  <walters@verbum.org>
3108
3109         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3110
3111 2005-03-17  Tom Parker  <palfrey@tevp.net>
3112
3113         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3114         print DBUS_UID_UNSET; instead print passed username.  Also
3115         be sure to actually use gid looked up in cache.
3116         
3117         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3118         for DBUS_GID_UNSET and groupname.
3119
3120 2005-03-17  Colin Walters  <walters@verbum.org>
3121
3122         * bus/print-introspect.c: Move to tools/.
3123         * bus/run-with-tmp-session-bus.sh: Ditto.
3124         
3125         * glib/Makefile.am (dbus-glib-bindings.h): Move
3126         generation to tools/Makefile.am.
3127
3128         * test/glib/run-test.sh: Update to handle move
3129         of run-with-tmp-session-bus.sh.
3130
3131         * test/glib/test-service-glib.c: Update to handle
3132         move of dbus-glib-bindings.h.
3133
3134         * tools/print-introspect.c: Moved here
3135         from bus/, and ported to GLib bindings.
3136
3137         * tools/run-with-tmp-session-bus.sh: Moved here
3138         from bus/.
3139
3140         * tools/Makefile.am: Generate dbus-glib-bindings.h
3141         and dbus-bus-introspect.xml here.
3142
3143         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3144         Update.
3145
3146 2005-03-17  Colin Walters  <walters@verbum.org>
3147
3148         * bus/driver.c (write_args_for_direction): Use
3149         _dbus_string_get_const_data to retrieve string;
3150         _dbus_string_get_const_data_len doesn't actually return
3151         a NULL-terminated substring.
3152
3153         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3154         (main): Change to use org_freedesktop_DBus_request_name
3155         instead of using g_proxy_begin_call/end_call.
3156
3157 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3158
3159         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3160         generating the finalizer.  Fixes from Ben Maurer.
3161
3162 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3163
3164         * mono/BusDriver.cs: Update method names: ListServices
3165         becomes ListNames; GetOwner becomes GetNameOwner.
3166
3167         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3168         onto the eval stack when removing the delegate.
3169
3170 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3171
3172         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3173         LT_CURRENT.  Set it to the autoconf variable.
3174                                                                                 
3175         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3176         classes that disconnects the signal handler delegate from the
3177         service object.  Fixes a big leak of proxy objects on the
3178         client side of things.  Patch from Ben Maurer
3179         <bmaurer@ximian.com>
3180
3181 2005-03-12  Colin Walters  <walters@verbum.org>
3182
3183         * bus/driver.c (write_args_for_direction): New function,
3184         parses a type signature into arguments and outputs to
3185         XML.
3186         (bus_driver_handle_introspect): Use it instead of
3187         hardcoding XML for certain signatures.
3188         
3189         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3190         dependency on dbus-daemon.
3191
3192         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3193         argument, pass it to dbus_binding_tool_output_glib_client.
3194
3195         * glib/dbus-binding-tool-glib.c
3196         (generate_client_glue): Protect against multiple inclusion.
3197         (dbus_binding_tool_output_glib_client): Add
3198         G_BEGIN_DECLS/G_END_DECLS.
3199
3200         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3201         Change to just take iface prefix directly.
3202         (write_formal_parameters): Clarify error message.
3203         (check_supported_parameters): New function; checks to see type
3204         signatures of method parameters are supported.
3205         (generate_client_glue): Handle ignore_unsupported flag.
3206         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3207         parameter.
3208
3209         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3210         --ignore-unsupported by default until glib bindings
3211         support arrays.
3212
3213 2005-03-11  Colin Walters  <walters@verbum.org>
3214
3215         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3216         install it.
3217
3218         * bus/print-introspect.c: New file; prints introspection
3219         data for a given name and object path.
3220
3221         * bus/run-with-tmp-session-bus.sh: New file, refactored
3222         from test/glib/run-test.sh.  Creates a temporary session
3223         bus and runs another program.
3224
3225         * test/glib/run-test.sh: Refactor to invoke
3226         run-with-tmp-session-bus.sh.
3227
3228         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3229         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3230         macros instead of hardcoding.
3231
3232         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3233
3234 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3235
3236         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3237         this unref; it doesn't match up evenly in some codepaths.
3238         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3239         this evenly matches with the ref near the top of this function.
3240
3241 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3242
3243         * dbus/dbus-object-tree.c
3244         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3245         and we try to unregister a path that's not registered, still go
3246         through the process of unlocking and don't just return.
3247
3248 2005-03-09  Colin Walters  <walters@verbum.org>
3249
3250         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3251         to this are generated for client-side wrappers.  Invokes a
3252         D-BUS method and returns reply values.  
3253
3254         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3255         function; writes signature string for argument direction.
3256         (write_args_for_direction): Change to pass input values directly
3257         instead of via address, and fix indentation.
3258         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3259         make generated wrappers inlineable.
3260
3261         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3262         note about using dbus_type_is_fixed.
3263
3264         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3265         dbus/dbus-signature.c as dbus_type_is_fixed.
3266
3267         All callers updated.
3268
3269         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3270         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3271
3272         * dbus/dbus-signature.h: Prototype.
3273
3274         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3275         error printf code.
3276
3277         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3278         appropriate instead of just freeing it.
3279         (main): Free returned strings using g_free.
3280
3281         * test/glib/Makefile.am (test-service-glib-glue.h)
3282         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3283
3284         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3285         simply maps a simple D-BUS type to GType.
3286         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3287         GType.
3288         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3289         initialize the value with it.
3290         (dbus_gvalue_binding_type_from_type): Unused, delete.
3291         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3292         various types instead of unmarshalling to value data directly.
3293         Remove can_convert boolean.
3294         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3295         returning directly instead of using can_convert boolean.
3296         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3297         Stores a GValue in a pointer to a value of its corresponding C
3298         type.
3299
3300         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3301         add dbus_gvalue_store.
3302
3303 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3304
3305         Fix a bunch of lifecycle and memory management problems
3306         in the mono bindings.
3307
3308         * mono/Arguments.cs (Arguments): Implement IDisposable
3309
3310         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3311         strictly a static class.
3312
3313         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3314         delegates into this file.
3315         (Connection): Implement IDisposable.
3316         (Dispose): Disconnect the connection and set the raw connection
3317         pointer to IntPtr.Zero.
3318         (~Connection): Call Dispose().
3319         (RegisterObjectPath): Added.  Manages the registration of object
3320         paths so we can cleanly disconnect them at dispose/finalize time.
3321         (UnregisterObjectPath): Ditto.
3322         (set_RawConnection): Unregister all of the object paths when
3323         changing the underlying DBusConnection.  Add them back onto the
3324         new connection, if any.
3325
3326         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3327         more unmanaged resources anymore, so it's not necessary.  Move all
3328         the DBusObjectPathVTable stuff out of here.
3329         (Handler): Save references to our delegates so that they don't get
3330         finalized.  Call Connection.RegisterObjectPath() instead of
3331         dbus_connection_register_object_path() directly.
3332         (Message_Called): Dispose the message after we're finished with
3333         it.
3334
3335         * mono/Message.cs (Message): Implement IDisposable.
3336         (Dispose): Dispose the Arguments, and set the RawMessage to
3337         IntPtr.Zero.
3338         (SendWithReplyAndBlock): We own the ref to the reply that comes
3339         back from dbus_connection_send_with_reply_and_block() so add a
3340         comment about that and unref it after we've constructed a managed
3341         MethodReturn class around it.  Fixes a big, big leak.
3342
3343         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3344         method.
3345         (BuildSignalHandler): After we've sent the Signal message, dispose
3346         of it.
3347         (BuildMethod): Dispose of the method call and reply messages after
3348         we've sent the message and extracted the data we want from the
3349         reply.
3350
3351         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3352         anymore.
3353         (Service_FilterCalled): Dispose of the message after we're
3354         finished with it.
3355
3356 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3357
3358         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3359         After we attach our pending call to the connection, unref
3360         it.  Fixes a leak.
3361  
3362         * mono/Connection.cs (set_RawConnection): Disconnect our
3363         filter and match callbacks from the old connection and
3364         reconnect them to the new connection, if any.
3365
3366         * mono/DBusType/Array.cs: "Code" is a static member, so
3367         don't use "this" to refer to it.  Fix for stricter checking
3368         in Mono 1.1.4.
3369  
3370         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3371         object path that we pass into unmanaged code.
3372  
3373         * mono/DBusType/String.cs (Append): Don't leak the string
3374         that we pass into unmanged code.
3375
3376 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3377         * NEWS: Update for 0.31
3378
3379         * configure.in: Release 0.31
3380         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3381
3382         * qt/Makefile.am: fixed build
3383
3384         * dbus/Makefile.am: soname bump for libdbus
3385
3386         * glib/Makefile.am: soname bump for libdbus-glib
3387
3388 2005-03-05  Havoc Pennington  <hp@redhat.com>
3389
3390         * dbus/dbus-sysdeps.c:
3391         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3392         value
3393         (_dbus_generate_random_bytes_buffer): fix return value
3394
3395         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3396         checks actually work, from Tom Parker <fdo@tevp.net>
3397
3398 2005-03-01  Colin Walters  <walters@verbum.org>
3399
3400         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3401         functions copied from dbus-glib-tool.c.
3402         (main): Convert lots of error code to use them.
3403         Also add some testing for introspection bits.
3404
3405 2005-03-01  Colin Walters  <walters@verbum.org>
3406         
3407         * doc/TODO: Remove introspection signature TODO.
3408
3409 2005-02-27  Colin Walters  <walters@verbum.org>
3410
3411         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3412         Change return value to const char * instead of int so we can do
3413         full signatures.
3414         (struct PropertyInfo, struct ArgInfo): Store char *.
3415         (property_info_new, arg_info_new): Update parameters, strdup.
3416         (property_info_unref, arg_info_unref): Free.
3417
3418         * glib/dbus-gidl.h: Update prototypes.
3419
3420         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3421         (validate_signature): New function, just validates signature and
3422         sets GError.
3423         (parse_property, parse_arg): Invoke validate_signature.  Store
3424         signature instead of just type code.
3425
3426         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3427         function to return a primary type for a signature, dropping
3428         information about types in container types.
3429         (dbus_gvalue_genmarshal_name_from_type)
3430         (dbus_gvalue_binding_type_from_type)
3431         (dbus_gvalue_ctype_from_type): Update to take full signature
3432          instead of type code.
3433         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3434
3435         * glib/dbus-gvalue.h: Update prototypes for above.
3436
3437         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3438         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3439         (introspect_properties, introspect_signals, write_interface):
3440         Update to handle signatures, and remove usage of
3441         _dbus_gutils_type_to_string.
3442         (handle_introspect): Print out type codes instead of e.g. "string"
3443         in hardcoded introspection XML; also use x_AS_STRING constants
3444         instead of hardcoding in string.
3445
3446         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3447         to string.  Remove usage of _dbus_gutils_type_to_string.
3448
3449         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3450
3451         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3452         deletion.
3453         
3454         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3455         (compute_marshaller_name, generate_glue): Handle signature change
3456         to string.
3457         (write_formal_parameters, write_args_for_direction): Ditto, and
3458         remove FIXME.
3459
3460         * tools/dbus-tree-view.c (type_to_string): Delete.
3461         (info_set_func_text): Update to print full signatures.
3462
3463         * test/glib/test-service-glib.xml: Change types to new
3464         introspection format.
3465
3466 2005-02-26  Havoc Pennington  <hp@redhat.com>
3467
3468         * doc/TODO: remove the "guid" item
3469
3470         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3471         (with_bus_thread_func): use open_private
3472
3473         * dbus/dbus-connection.c (dbus_connection_open_private): new
3474         function that works like the old dbus_connection_open()
3475         (dbus_connection_open): now returns an existing connection if
3476         possible
3477
3478         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3479         through the GUID to the transport
3480
3481         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3482         GUID in hex-encoded form.
3483
3484         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3485         pass GUID argument in to the transport
3486
3487         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3488         guid argument
3489
3490         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3491
3492         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3493
3494 2005-02-25  Havoc Pennington  <hp@redhat.com>
3495
3496         * doc/dbus-specification.xml: document the GUID thing
3497
3498         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3499         globally unique ID for the server, and put a "guid=hexencoded"
3500         field in the address
3501
3502         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3503
3504         * dbus/dbus-message.c: ditto
3505
3506         * dbus/dbus-dataslot.c: ditto
3507
3508         * dbus/dbus-list.c: ditto
3509
3510         * dbus/dbus-internals.h: wait, just include
3511         dbus-threads-internal.h here
3512         
3513         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3514         use in main library
3515
3516         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3517
3518 2005-02-24  Colin Walters  <walters@verbum.org>
3519
3520         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3521
3522 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3523
3524         * glib/Makefile.am: added dbus-gobject.h to sources list
3525         so distcheck doesn't fail
3526         
3527 2005-02-24  Havoc Pennington  <hp@redhat.com>
3528
3529         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3530         you must disconnect before unref, since locking and other things
3531         are screwed up otherwise. Fix assorted other locking stuff.
3532
3533         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3534         fix compilation
3535
3536         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3537         into a private header and don't export from the library
3538
3539         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3540
3541 2005-02-24  Colin Walters  <walters@verbum.org>
3542         
3543         * dbus/dbus-signature.c: New file; implements various functions
3544         related to type signatures.  Includes an interator for parsing,
3545         validation functions.
3546         (dbus_type_is_basic): Moved here from
3547         dbus-marshal-basic.c:_dbus_type_is_basic.
3548         (dbus_type_is_container): Moved here from
3549         dbus-marshal-basic.c:_dbus_type_is_container.
3550
3551         All callers of _dbus_type_is_container and _dbus_type_is_basic
3552         updated, and include dbus-signature.h.
3553
3554         * dbus/dbus-signature.h: New file; prototypes for the above.
3555
3556         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3557         dbus-signature.h.
3558
3559         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3560         function factored out of _dbus_first_type_in_signature.
3561         (_dbus_first_type_in_signature_c_str): New function; returns first
3562         type code for a type signature character.
3563
3564         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3565         handle function moves.
3566
3567         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3568
3569         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3570         function; skips to next complete type in type signature.
3571         Implemented using previous skip_one_complete_type.  Now
3572         skip_one_complete_type just delegates to
3573         _dbus_type_signature_next.
3574
3575         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3576         to dbus-signature.c
3577         (_dbus_type_is_container): Ditto.
3578
3579         * doc/dbus-specification.xml: Update introspection sample to
3580         use real type signatures.
3581
3582         * dbus/dbus-test.h: Prototype signature test.
3583
3584         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3585         signature tests.
3586
3587         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3588
3589 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
3590
3591         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3592         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3593
3594 2005-02-21  Colin Walters  <walters@verbum.org>
3595
3596         * dbus/dbus-test-main.c (main): Take optional specific test
3597         argument.
3598
3599         * dbus/dbus-test.c (run_test): New function, runs a test function
3600         with no data directory.
3601         (run_data_test): Like above, but takes data directory.
3602         (dbus_internal_do_not_use_run_tests): Take
3603         specific test argument.  Replace lots of cut n' paste code
3604         with run_test and run_data_test.
3605
3606         * dbus/dbus-test.h: Update prototype for
3607         dbus_internal_do_not_use_run_tests.
3608
3609 2005-02-20  Havoc Pennington  <hp@redhat.com>
3610
3611         Fix bugs reported by Daniel P. Berrange
3612         
3613         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3614         (protected_change_watch): new function
3615         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3616         (_dbus_server_add_watch): change to work like the
3617         dbus-connection.c equivalents; like those, probably kind of
3618         busted, but should at least mostly work for now
3619         (dbus_server_disconnect): drop the lock if we were already
3620         disconnected, patch from Daniel P. Berrange
3621
3622         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
3623         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3624         same stuff
3625
3626         * doc/TODO: todo about unscrewing this mess
3627
3628 2005-02-19  Colin Walters  <walters@verbum.org>
3629
3630         * glib/dbus-binding-tool-glib.c
3631         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3632
3633         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3634         as errno.h and sys/stat.h.
3635         (lose): New function, prints error with
3636         newline and exits.
3637         (lose_gerror): Similar, but takes GError for message.
3638         (main): Add --output argument to specify output file to write to,
3639         instead of always printing to stdout.  In this mode, determine
3640         timestamps on source files to see whether any are newer than the
3641         target file.  If not, exit.  Also convert a number of error
3642         messages to use lose (since it's shorter), and switch to using
3643         g_io_channel_shutdown.
3644
3645 2005-02-19  Havoc Pennington  <hp@redhat.com>
3646
3647         * glib/dbus-gobject.c
3648         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3649
3650         * glib/dbus-glib.c: fix doxygen warnings
3651
3652         * glib/dbus-gparser.c (parse_annotation): error if an annotation
3653         is found on an <arg>
3654
3655 2005-02-17  Colin Walters  <walters@verbum.org>
3656
3657         * glib/dbus-gobject.h: Don't export
3658         _dbus_glib_marshal_dbus_message_to_gvalue_array.
3659         
3660         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3661         (invoke_object_method): Handle it.
3662
3663         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3664         Handle rename.
3665         
3666 2005-02-17  Colin Walters  <walters@verbum.org>
3667
3668         * bus/.cvsignore, doc/.cvsignore
3669         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3670         Update.
3671
3672 2005-02-17  Colin Walters  <walters@verbum.org>
3673         
3674         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3675         Rename to DBUS_SERVICE_DBUS.
3676         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3677         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3678         Change the value from "org.freedesktop.Local"
3679         to "org.freedesktop.DBus.Local".
3680         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3681         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3682         DBUS_INTERFACE_INTROSPECTABLE.
3683         Change the value from "org.freedesktop.Introspectable"
3684         to "org.freedesktop.DBus.Introspectable".
3685         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3686         DBUS_INTERFACE_PROPERTIES.
3687         Change the value from "org.freedesktop.Properties"
3688         to "org.freedesktop.DBus.Properties".
3689         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3690         DBUS_INTERFACE_PEER.
3691         Change the value from "org.freedesktop.Peer"
3692         to "org.freedesktop.DBus.Peer".
3693         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
3694         DBUS_INTERFACE_LOCAL.
3695         Change the value from "org.freedesktop.Local"
3696         to "org.freedesktop.DBus.Local".
3697
3698         All other users of those constants have been changed.
3699
3700         * bus/driver.c (bus_driver_handle_introspect): Use constants.
3701
3702         * glib/dbus-gobject.c (handle_introspect): Use constants.
3703
3704         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3705
3706 2005-02-17  Colin Walters  <walters@verbum.org>
3707
3708         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3709         (parse_node, parse_interface, parse_method, parse_signal)
3710         (parse_property, parse_annotation): Lose if we're currently in an
3711         annotation.
3712         (parse_annotation): New function.
3713         (parser_start_element, parser_end_element): Handle annotation.
3714         (parse_method, parse_interface): Remove support for c_name attribute,
3715         switch to annotations.
3716
3717         * glib/dbus-gidl.h (interface_info_get_binding_names)
3718         (method_info_get_binding_names)
3719         (interface_info_get_binding_name, method_info_get_binding_name)
3720         (interface_info_set_binding_name, method_info_set_binding_name):
3721         Remove.
3722         (interface_info_get_annotations, method_info_get_annotations)
3723         (interface_info_get_annotation, method_info_get_annotation)
3724         (interface_info_add_annotation, method_info_add_annotation):
3725         Prototype.
3726
3727         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3728         for "bindings".
3729         (struct MethodInfo): Ditto.
3730         Straightfoward conversion of binding methods into annotation methods
3731         as prototyped.
3732
3733         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3734
3735         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3736
3737         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3738         Use new annotation API.
3739
3740         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
3741         annotation element.
3742         
3743         * doc/dbus-specification.xml: Discuss introspection annotations,
3744         include list of well-known annotations.
3745
3746         * test/glib/test-service-glib.xml: Make validate against new DTD.
3747
3748 2005-02-17  Colin Walters  <walters@verbum.org>
3749
3750         This patch is based on initial work from
3751         Paul Kuliniewicz <kuliniew@purdue.edu>.
3752
3753         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3754         initialization of GValue from dbus type to here.
3755         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3756         for the "glib-genmarshal" program from a DBus type.
3757         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3758         into the C name for it we use in the glib bindings.
3759         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3760         glib C type (not GValue).
3761         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3762
3763         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3764         from dbus-gobject.c.
3765
3766         * glib/dbus-gutils.h: Prototype it.
3767
3768         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3769         (marshal_dbus_message_to_g_marshaller): Use new shared function
3770         dbus_glib_marshal_dbus_message_to_gvalue_array.
3771
3772         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3773         Will be changed once we have annotations.
3774
3775         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3776         GStaticRWLock.  Callers updated.
3777         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
3778         (string_table_next): New function for iterating over zero-terminated
3779         string value array.
3780         (string_table_lookup): New function; retrieves specific entry in
3781         array.
3782         (get_method_data): New function; look up method data in object data chunk.
3783         (object_error_domain_prefix_from_object_info)
3784         (object_error_code_from_object_info): New functions, but not implemented yet.
3785         (method_interface_from_object_info): New function; retrieve interface name.
3786         (method_name_from_object_info): New function; retrieve method name.
3787         (method_arg_info_from_object_info): New function; retrieve argument data.
3788         (arg_iterate): New function; iterates over serialized argument data.
3789         (method_dir_signature_from_object_info): New function; returns a
3790         GString holding type signature for arguments for just one
3791         direction (input or output).
3792         (method_input_signature_from_object_info)
3793         (method_output_signature_from_object_info): New functions.
3794         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3795         converts dbus message arguments into a GValue array.  Used for both
3796         signal handling and method invocation.
3797         (struct DBusGlibWriteIterfaceData): New utility structure.
3798         (write_interface): New function; generate introspection XML for
3799         an interface.
3800         (introspect_interfaces): New function; gathers all interface->methods,
3801         generates introspection XML for them.
3802         (handle_introspect): Invoke introspect_interfaces.
3803         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3804         (lookup_object_and_method): New function; examines an incoming message
3805         and attempts to match it up (via interface, method name, and argument
3806         signature) with a known object and method.
3807         (gerror_domaincode_to_dbus_error_name): New function; converts a
3808         GError domain and code into a DBus error name.  Needs GError data
3809         added to object introspection to work well.
3810         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3811         GError.
3812         (invoke_object_method): New function to invoke an object method
3813         looked up via lookup_object_and_method.  Parses the incoming
3814         message, turns it into a GValue array, then invokes the marshaller
3815         specified in the DBusGMethodInfo.  Creates a new message with
3816         either return values or error message as appropriate.
3817         (gobject_message_function): Invoke lookup_object_and_method and
3818         invoke_object_method.
3819
3820         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3821         (enum DBusBindingOutputMode): New enum for binding output modes.
3822         (pretty_print): Print binding names.
3823         (dbus_binding_tool_error_quark): GError bits.
3824         (version): Fix typo.
3825         (main): Create GIOChannel for output.  Parse new --mode argument,
3826         possible values are "pretty-print", "glib-server", "glib-client".
3827         Use mode to invoke appropriate function.
3828         
3829         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3830
3831         * glib/dbus-glib-tool.h: New header, just includes GError bits
3832         for now.
3833
3834         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3835         maps binding style to name.
3836         (struct MethodInfo): Ditto.
3837         (get_hash_keys, get_hash_key): Utility function, returns keys for
3838         a GHashTable.
3839         (interface_info_new, method_info_new): Initialize bindings.
3840         (interface_info_unref, method_info_unref): Destroy bindings.
3841         (method_info_get_binding_names, method_info_get_binding_name)
3842         (interface_info_get_binding_names, interface_info_get_binding_name):
3843         Functions for retrieving binding names.
3844         (method_info_set_binding_name, interface_info_set_binding_name):
3845         Functions for setting binding names.
3846
3847         * glib/dbus-binding-tool-glib.h: New file, has prototypes
3848         for glib binding generation.
3849
3850         * glib/dbus-binding-tool-glib.c: New file, implements server-side
3851         and client-side glib glue generation.
3852
3853         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3854         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3855         dbus-glib-tool.h.
3856
3857         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3858         of using GClosureMarshal directly.
3859         (struct DBusGObjectInfo): Add n_infos member.
3860
3861         * test/glib/test-service-glib.xml: New file; contains introspection data
3862         for MyTestObject used in test-service-glib.c.
3863
3864         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3865         (my_object_do_nothing, my_object_increment, my_object_throw_error)
3866         (my_object_uppercase, my_object_many_args): New test methods.
3867         (main): Use dbus_g_object_class_install_info to include generated object
3868         info.
3869
3870         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3871         as well as client-side bindings.
3872
3873         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3874         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3875         using both the dbus_gproxy stuff directly as well as the generated bindings.
3876
3877 2005-02-15  Havoc Pennington  <hp@redhat.com>
3878
3879         * dbus/dbus-connection.c (dbus_connection_dispatch): always
3880         complete a pending call, don't run filters first.
3881
3882         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3883         dbus_pending_call_steal_reply
3884
3885         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3886         _dbus_connection_block_pending_call
3887         (dbus_pending_call_get_reply): change to steal_reply and return a
3888         ref
3889
3890         * dbus/dbus-connection.c
3891         (dbus_connection_send_with_reply_and_block): port to work in terms
3892         of DBusPendingCall
3893         (_dbus_connection_block_pending_call): replace block_for_reply
3894         with this
3895
3896 2005-02-14  Havoc Pennington  <hp@redhat.com>
3897
3898         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
3899         properly handle looking up group information by name; fix 
3900         from j@bootlab.org
3901
3902 2005-02-13  Havoc Pennington  <hp@redhat.com>
3903
3904         * dbus/dbus-connection.c (dbus_connection_return_message) 
3905         (dbus_connection_borrow_message): hold dispatch lock while message
3906         is outstanding
3907         (_dbus_connection_block_for_reply): hold dispatch lock while we
3908         block for the reply, so nobody steals our reply
3909         (dbus_connection_pop_message): hold the dispatch lock while we
3910         pluck the message
3911
3912 2005-02-13  Havoc Pennington  <hp@redhat.com>
3913
3914         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
3915         (_dbus_connection_release_dispatch)
3916         (_dbus_connection_acquire_io_path)
3917         (_dbus_connection_release_io_path): make the mutex and condvar
3918         control access to the "acquired" flag. Drop the connection lock
3919         while waiting on the condvar. Hopefully these are baby steps in
3920         roughly the right direction.
3921
3922 2005-02-13  Havoc Pennington  <hp@redhat.com>
3923
3924         * dbus/dbus-connection.c: use separate mutexes for the condition
3925         variables; this is some kind of baseline for sanity, but the
3926         condition variables still aren't used correctly afaict
3927
3928 2005-02-13  Havoc Pennington  <hp@redhat.com>
3929
3930         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3931         fix a double-unlock
3932
3933         * dbus/dbus-connection.c
3934         (_dbus_connection_detach_pending_call_unlocked): add this
3935
3936         Initial semi-correct pass through to fix thread locking; there are
3937         still some issues with the condition variable paths I'm pretty
3938         sure
3939         
3940         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
3941         lock/unlock calls
3942
3943         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
3944         rename to add _unlocked
3945         (struct DBusConnection): move "dispatch_acquired" and
3946         "io_path_acquired" to use only one bit each.
3947         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
3948         (dbus_connection_set_watch_functions): hacky fix to reentrancy
3949         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
3950         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
3951         (_dbus_connection_remove_timeout) 
3952         (_dbus_connection_toggle_timeout): drop lock when calling out to
3953         user functions; done in a hacky/bad way.
3954         (_dbus_connection_send_and_unlock): add a missing unlock
3955         (_dbus_connection_block_for_reply): add a missing unlock
3956
3957         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3958         drop lock in a hacky probably unsafe way to call out to user
3959         function
3960
3961 2005-02-12  Havoc Pennington  <hp@redhat.com>
3962
3963         * tools/dbus-tree-view.c (info_set_func_text): display more
3964         details on args
3965
3966         * bus/driver.c (bus_driver_handle_list_services): list the bus
3967         driver
3968
3969         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
3970
3971         * glib/dbus-gidl.c (signal_info_get_n_args): new function
3972         (method_info_get_n_args): new function
3973
3974 2005-02-12  Havoc Pennington  <hp@redhat.com>
3975
3976         * bus/driver.c (bus_driver_handle_introspect): add introspection
3977         for bus driver
3978
3979 2005-02-12  Havoc Pennington  <hp@redhat.com>
3980
3981         * bus/driver.c: put the signature of each bus driver method in the
3982         table of handlers and check it on incoming calls; this isn't
3983         really useful, but going to add introspect support in a minute.
3984
3985 2005-02-11  Joe Shaw  <joeshaw@novell.com>
3986
3987         * mono/Connection.cs: The unpredictability of finalizers in mono
3988         prevents us from deterministically disconnecting the filters from
3989         the Service class's finalizer, so move tracking of filters and
3990         matches here.  Add API for that.
3991
3992         * mono/Service.cs: Remove the code, add code which calls the
3993         methods now on the Connection class.
3994
3995 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
3996
3997         * python/dbus.py (class Sender): added to support dbus signals better
3998         (Bus::add_signal_receiver): added expand_args parameter which defaults
3999         to True.  When expand args is True the signal handler will pass the 
4000         message arguments as parameters to the signal handler.  If False
4001         revert to previous behavior where the signal handler must get the
4002         argument list from the message.  This is to help port applications
4003         like HAL that have a tendancy to send variable length argument lists.
4004         self._match_rule_to_receivers is now a dict of dicts.
4005         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4006         removing it from a list
4007         (Bus::_signal_func): change signal handlers so that interface,
4008         signal_name, service, path and message are packed into a Sender
4009         object and that is passed to the handler.  If expand_args is True
4010         extract the args list from the message and append it to the parameter
4011         list
4012         
4013         * python/dbus_bindings.pyx.in (class Signature): added to support 
4014         signiature types
4015         (MessageIter::__init__): changed iteration limit to match D-BUS
4016         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4017         STRUCT and VARIENT type support
4018         (MessageIter::python_value_to_dbus_sig): made recursive to support
4019         recursive types
4020         (MessageIter::append*): added Signature, dict, tuple 
4021         support
4022
4023         * python/examples/example-client.py: added examples of getting tuples
4024         and dicts
4025
4026         * python/examples/example-service.py: added examples of sending tuples
4027         and dicts
4028
4029         * python/examples/example-signal-recipient.py: Fixed to handle new
4030         signal callback format
4031
4032 2005-02-10  Havoc Pennington  <hp@redhat.com>
4033
4034         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4035         (call dbus_g_proxy_add_signal)
4036
4037         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4038         escape the hostname
4039         (_dbus_server_new_for_domain_socket): escape the path
4040
4041         * dbus/dbus-address.c (dbus_address_escape_value): new
4042         (dbus_address_unescape_value): new
4043         (dbus_parse_address): unescape values
4044
4045         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4046
4047         * doc/dbus-specification.xml: explain how to escape values in
4048         addresses
4049
4050 2005-02-10  Havoc Pennington  <hp@redhat.com>
4051
4052         * dbus/dbus-message-factory.c (generate_special): modify test to
4053         avoid using a non-basic dict key
4054
4055         * dbus/dbus-marshal-validate-util.c: add test for the below
4056
4057         * doc/dbus-specification.xml: require that dict keys are a basic
4058         type
4059
4060         * dbus/dbus-marshal-validate.c
4061         (_dbus_validate_signature_with_reason): require that dict key is a
4062         basic type
4063
4064 2005-02-10  Havoc Pennington  <hp@redhat.com>
4065
4066         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4067         change to be _and_unlock instead of _unlocked
4068
4069         * dbus/dbus-connection.c
4070         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4071         have no_update so we can find this bug quickly in future
4072
4073 2005-02-10  Havoc Pennington  <hp@redhat.com>
4074
4075         * dbus/dbus-message-util.c (verify_test_message): tests for string
4076         array
4077
4078         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4079         support for arrays of string/signature/path
4080
4081 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4082
4083         * dbus/dbus-connection.c
4084         (_dbus_connection_queue_received_message_link,
4085         _dbus_connection_message_sent): Add the path to
4086         the verbose output.
4087         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4088         _dbus_connection_send_preallocated_unlocked(), updated the
4089         dispatch status, and unlocks.  Fixes a bug where certain
4090         situations (like a broken pipe) could cause a Disconnect message
4091         to not be sent, tricking the bus into thinking a service was still
4092         there when the process had quit.
4093         (_dbus_connection_send_preallocated): Call
4094         _dbus_connection_send_preallocated_and_unlock().
4095         (_dbus_connection_send_and_unlock): Added.  Calls
4096         _dbus_connection_send_preallocated_and_unlock().
4097         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4098         (dbus_connection_send_with_reply): Update the dispatch status and
4099         unlock.
4100
4101         * mono/Service.cs (~Service): Added.  Removes the filter so that
4102         we don't get unmanaged code calling back into a GCed delegate.
4103         (RemoveFilter); Added.
4104
4105 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4106
4107         * dbus/dbus-message.c (dbus_message_iter_open_container):
4108         - Removed check for iterator type being an array because
4109         get_arg_type does not work with writer iterators
4110         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4111
4112 2005-02-07  Havoc Pennington  <hp@redhat.com>
4113
4114         * doc/dbus-specification.xml: some more language cleanups; add
4115         stuff about how to deal with invalid protocol and extension
4116         points; add _ to allowed chars in auth commands; add EXTENSION_
4117         auth command prefix
4118
4119 2005-02-06  Havoc Pennington  <hp@redhat.com>
4120
4121         * s/expected/required/ in a couple places for clarity
4122
4123 2005-02-07  Colin Walters  <walters@verbum.org>
4124
4125         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4126         sender or proposed_recipient.
4127
4128 2005-02-06  Havoc Pennington  <hp@redhat.com>
4129
4130         * dbus/dbus-message-factory.c (generate_special): more tests
4131
4132         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4133         array length that exceeds the maximum
4134
4135 2005-02-05  Havoc Pennington  <hp@redhat.com>
4136
4137         * dbus/dbus-message-factory.c (generate_special): more test cases,
4138         increasing coverage
4139
4140         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4141         reason why a signature was invalid
4142
4143         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4144         skip the length of the string before we look at it in validation
4145
4146         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4147         equal_substring
4148
4149         * dbus/dbus-message.c (_dbus_message_loader_new): default
4150         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4151
4152 2005-02-05  Havoc Pennington  <hp@redhat.com>
4153
4154         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4155         if the signature of a variant was empty
4156         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4157         struct with no element type)
4158
4159         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4160         mangled messages to break things
4161
4162 2005-02-04  Havoc Pennington  <hp@redhat.com>
4163
4164         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4165         g_quark_try_string() so it actually can return 0
4166         (dbus_g_proxy_connect_signal): ditto
4167
4168 2005-02-04  Havoc Pennington  <hp@redhat.com>
4169
4170         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4171         bogus warning
4172         (tristring_from_message): assert cleanly on null path/interface
4173         (should not be possible though I decided later)
4174         (dbus_g_proxy_dispose): move proxy manager unregistration here
4175         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4176         g_return_if_fail() checks
4177
4178 2005-02-04  Havoc Pennington  <hp@redhat.com>
4179
4180         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4181
4182         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4183         (with some minor changes)
4184
4185         * doc/dbus-specification.xml: add deprecated attribute to
4186         introspection format
4187
4188 2005-01-31  Havoc Pennington  <hp@redhat.com>
4189
4190         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4191         think it's sort of right
4192
4193 2005-01-30  Havoc Pennington  <hp@redhat.com>
4194
4195         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4196
4197 2005-01-30  Havoc Pennington  <hp@redhat.com>
4198
4199         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4200
4201         * autogen.sh: change to autotools 1.9
4202
4203         * glib/dbus-gproxy.c: completely change how signals work
4204         (dbus_g_proxy_add_signal): new function to specify signature of a
4205         signal
4206         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4207         and g_warning if the incoming message has the wrong signature.
4208
4209 2005-01-30  Havoc Pennington  <hp@redhat.com>
4210
4211         * tools/dbus-names-model.c (have_names_notify): fix this
4212
4213         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4214         up the string array handling a bit 
4215
4216 2005-01-30  Havoc Pennington  <hp@redhat.com>
4217
4218         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4219         (dbus_g_pending_call_cancel): new function
4220
4221         * dbus/dbus-glib.h: move GType decls for connection/message here;
4222         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4223         here, just kind of rationalizing how we handle all that
4224
4225         * tools/dbus-names-model.c: new file for a tree model listing the
4226         services on a bus
4227
4228         * tools/dbus-tree-view.c (model_new): use proper typing on the
4229         model rows
4230
4231 2005-01-30  Havoc Pennington  <hp@redhat.com>
4232
4233         * glib/dbus-gmain.c: add a custom GSource back that just checks
4234         whether the message queue has anything in it; otherwise, there are 
4235         cases where we won't see messages in the queue since there was no 
4236         IO visible to the glib main loop
4237
4238         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4239         increase default message timeout to 25 seconds
4240
4241 2005-01-30  Havoc Pennington  <hp@redhat.com>
4242
4243         * test/glib/test-profile.c (no_bus_stop_server): remove the
4244         warning about the g_warning that I just fixed
4245
4246         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4247         custom source, seems to be a lot easier to understand and work
4248         better.
4249
4250 2005-01-30  Havoc Pennington  <hp@redhat.com>
4251
4252         I think this main loop thing is conceptually broken, but here are 
4253         some band aids. I'll maybe rewrite it in a minute.
4254         
4255         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4256         custom GSource, so don't pass it in; confusing
4257         (gsource_server_finalize, gsource_connection_finalize): add
4258         finalize handlers that remove all the watches.  
4259
4260 2005-01-30  Havoc Pennington  <hp@redhat.com>
4261
4262         * glib/dbus-gobject.c (introspect_properties): fix the XML
4263         generated
4264
4265         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4266         which effectively detects the use of freed messages
4267
4268         * glib/dbus-gobject.c (handle_introspect): modify and return the
4269         reply message instead of the incoming message
4270
4271         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4272         gee, maybe it should SEND THE XML instead of just making a string
4273         and freeing it again ;-)
4274
4275         * tools/dbus-print-message.c (print_message): improve printing of
4276         messages
4277
4278         * configure.in: add debug-glib.service to the output
4279
4280 2005-01-30  Havoc Pennington  <hp@redhat.com>
4281
4282         dbus-viewer introspected and displayed the bus driver
4283         
4284         * dbus/dbus-object-tree.c 
4285         (object_tree_test_iteration): add tests for a handler registered on "/"
4286
4287         * dbus/dbus-object-tree.c
4288         (_dbus_decompose_path): fix to handle path "/" properly
4289         (run_decompose_tests): add tests for path decomposition
4290         
4291         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4292         properly
4293
4294         * glib/dbus-gobject.c (handle_introspect): fix quotes
4295
4296         * test/glib/run-test.sh: support launching the bus, then running
4297         dbus-viewer
4298
4299         * test/glib/test-service-glib.c (main): put in a trivial gobject
4300         subclass and register it on the connection
4301
4302         * bus/driver.c (bus_driver_handle_introspect): implement
4303         introspection of the bus driver service
4304
4305         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4306         identifiers, doctype decl
4307
4308         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4309         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4310         returning the service unchanged.
4311         (bus_driver_handle_message): remove old check for reply_serial in
4312         method calls, now the message type deals with that
4313         (bus_driver_handle_message): handle NULL interface
4314
4315         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4316
4317         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4318         -1 for len
4319
4320         * tools/dbus-viewer.c: add support for introspecting a service on
4321         a bus
4322
4323         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4324         (dbus_g_pending_call_unref): add
4325
4326 2005-01-29  Havoc Pennington  <hp@redhat.com>
4327
4328         * tools/dbus-tree-view.c: add support for displaying properties.
4329         (run dbus-viewer with an introspect xml file as arg, then resize
4330         the window so the tree elements show up, not sure what that is)
4331
4332         * glib/dbus-gobject.c (handle_introspect): return
4333         org.freedesktop.Properties and org.freedesktop.Introspectable
4334         interfaces when we are introspected.
4335
4336         * doc/dbus-specification.xml: allow empty interface name when 
4337         Get/Set a property
4338
4339 2005-01-29  Havoc Pennington  <hp@redhat.com>
4340
4341         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4342         though it uses glib, it could be extended for any binding in
4343         principle
4344
4345         * glib/dbus-gobject.c (gobject_message_function): change to the
4346         new way properties work
4347
4348         * dbus/dbus-protocol.h: add the new interfaces
4349
4350         * doc/dbus-specification.xml: document the introspection format,
4351         Introspectable interface, and add an org.freedesktop.Properties
4352         interface.
4353
4354         * glib/dbus-gparser.c: add support for a <property> element
4355
4356         * glib/dbus-gidl.c: add PropertyInfo
4357
4358         * glib/dbus-gobject.c (handle_introspect): put the outermost
4359         <node> outside the signal and property descriptions.
4360         (introspect_properties): export properties as <property> rather
4361         than as method calls
4362
4363 2005-01-28  Havoc Pennington  <hp@redhat.com>
4364
4365         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4366         related to authentication protocol
4367
4368 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4369
4370         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4371                 - BUS_ACTIVATION -> BUS_STARTER
4372                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4373                 - class MessageIter (__init__): Added recursion checking 
4374                 so we throw a nice error instead of just disconnecting from the
4375                 bus.
4376                 (get): Added arg_type parameter for recursion.
4377                 Removed the nil type
4378                 Added signiture type placeholder (not implemented)
4379                 Added struct type placeholder (not implemented)
4380                 Added varient type placeholder (not implemented)
4381                 Commented out dict type for now     
4382                 (get_element_type): renamed from get_array_type
4383                 (get_*): changed to use the dbus_message_iter_get_basic API
4384                 (get_*_array): removed in favor of recursive get_array method
4385                 (get_array): new recursive method which calls get to marshal
4386                 the elements of the array
4387                 (value_to_dbus_sig): New method returns the corrasponding
4388                 dbus signiture to a python value
4389                 (append): Comment out dict handling for now
4390                 Handle lists with the new recursive API
4391                 Comment out None handling for now
4392                 (append_nil): removed
4393                 (append_*): changed to use dbus_message_iter_append_basic API
4394                 (append_*_array): removed in favor of recursive append_array 
4395                 method
4396                 (__str__): Make it easier to print out recursive iterators
4397                 for debugging
4398                 - class Message (__str__): moved type inspection to the
4399                 MessageIter class' __str__ method
4400                 (get_iter): Added an append parameter wich defaults to False
4401                 If True use the new API's to create an append iterator
4402
4403         * python/dbus.py: Update to use new bindings API
4404                 - TYPE_ACTIVATION -> TYPE_STARTER
4405                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4406                 - class ActivationBus -> class StarterBus
4407                 - class RemoteObject (__call__): get an append iterator
4408                 - (_dispatch_dbus_method_call): get an append iterator
4409                 - class Object (emit_signal): get an append iterator
4410
4411         * python/examples/: Fixed up the examples to work with the new API
4412                 
4413 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4414
4415         * configure.in: Bump version up to 0.30.
4416
4417         * HACKING: Add a release item to bump the version number up after 
4418         a release.
4419
4420 2005-01-28  Havoc Pennington  <hp@redhat.com>
4421
4422         * doc/dbus-specification.xml: update to describe 16-bit types and
4423         dict entries
4424
4425         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4426         assertion
4427
4428         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4429         type
4430
4431         * dbus/dbus-marshal-recursive.c: implement
4432
4433 2005-01-27  Havoc Pennington  <hp@redhat.com>
4434
4435         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4436
4437         * configure.in: find the right type for 16 and 32 bit ints as well
4438         as 64
4439
4440         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4441         the 16-bit types so people don't have to stuff them in 32-bit or
4442         byte arrays.
4443
4444 2005-01-27  Havoc Pennington  <hp@redhat.com>
4445
4446         * dbus/dbus-message.c: byteswap the message if you init an
4447         iterator to read/write from it
4448         
4449         * dbus/dbus-marshal-byteswap.c: new file implementing 
4450         _dbus_marshal_byteswap()
4451
4452         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4453
4454 2005-01-26  Havoc Pennington  <hp@redhat.com>
4455         
4456         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4457         build, apparently - nobody noticed?)
4458         
4459 2005-01-26  Havoc Pennington  <hp@redhat.com>
4460
4461         * dbus/dbus-marshal-recursive.h: remove todo comment
4462
4463 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4464
4465         * Land the mono binding changes to conform to the new APIs.
4466
4467         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4468         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4469
4470         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4471         type code as a string.
4472         (InitAppending): Rename dbus_message_append_iter_init() to
4473         dbus_message_iter_init_append().
4474
4475         * mono/BusDriver.cs: Rename ServiceEventHandler to
4476         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4477         Rename ServiceOwnerChanged to NameOwnerChanged.
4478
4479         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4480         underlying C call.
4481
4482         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4483
4484         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4485         dbus_bus_acquire_service() to dbus_bus_request_name().
4486
4487         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4488         of Type.UnderlyingSystemType to get the correct element type for
4489         the array.
4490         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4491         dbus_message_get_{element|arg}_type() instead of
4492         dbus_message_iter_init_array_iterator().
4493         (Append): Replace dbus_message_iter_append_array() with
4494         dbus_message_iter_open_container() and
4495         dbus_message_iter_close_container().
4496
4497         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4498         types have been removed.
4499         
4500         * mono/DBusType/*.cs: Replace calls of
4501         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4502         but specify the type in the DllImport extern declaration.  Ditto
4503         for dbus_message_iter_append_[type]() ->
4504         dbus_message_iter_append_basic().
4505
4506         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4507         NameOwnerChangedHandler.
4508
4509 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4510
4511         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4512                 - get_base_service -> get_unique_name
4513                 - bus_get_base_service -> bus_get_unique_name
4514                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4515                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4516                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4517                 - bus_activate_service -> bus_start_service_by_name
4518                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4519                 - bus_acquire_service -> bus_request_name
4520                 - dbus_bus_acquire_service -> dbus_bus_request_name
4521                 - bus_service_exists -> bus_name_has_owner
4522                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4523
4524         * python/dbus.py: Rename of methods
4525                 - activate_service -> start_service_by_name
4526                 - bus_acquire_service -> bus_request_name
4527                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4528                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4529
4530         
4531 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4532
4533         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4534         signature for the method that can't be found.
4535
4536         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4537         the message has any arguments, we need to call
4538         _dbus_type_reader_get_current_type(), not
4539         _dbus_type_reader_has_next().
4540
4541 2005-01-24  Havoc Pennington  <hp@redhat.com>
4542
4543         * dbus/dbus-message-factory.c: more testing of message validation
4544
4545         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4546         header
4547
4548 2005-01-23  Havoc Pennington  <hp@redhat.com>
4549
4550         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4551         get this all working, not many tests in the framework yet though
4552
4553 2005-01-22  Havoc Pennington  <hp@redhat.com>
4554
4555         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4556         tutorial, based on work from David Wheeler.
4557
4558 2005-01-21  Havoc Pennington  <hp@redhat.com>
4559
4560         * dbus/dbus-bus.c: add more return_if_fail checks
4561
4562         * dbus/dbus-message.c (load_message): have the "no validation"
4563         mode (have to edit the code to toggle the mode for now though)
4564
4565         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4566         skips all validation; I want to use this at least for benchmark
4567         baseline, I'm not sure if it should be a publicly-available switch.
4568
4569 2005-01-21  Havoc Pennington  <hp@redhat.com>
4570
4571         * glib/dbus-gmain.c: don't put the GLib bindings in the same
4572         toplevel doxygen group as the low-level API stuff
4573
4574         * dbus/dbus.h: note that libdbus is the low-level API
4575
4576 2005-01-20  Havoc Pennington  <hp@redhat.com>
4577
4578         * update-dbus-docs.sh: script to update docs on the web site, only
4579         works for me though. neener.
4580
4581 2005-01-20  Havoc Pennington  <hp@redhat.com>
4582
4583         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4584         code can reveal bugs in it
4585
4586 2005-01-20  Havoc Pennington  <hp@redhat.com>
4587
4588         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4589         select() version, patches from Tor Lillqvist
4590
4591 2005-01-20  Havoc Pennington  <hp@redhat.com>
4592
4593         * doc/dbus-tutorial.xml: replace > with &gt;
4594
4595         * bus/services.c (bus_registry_acquire_service): validate the name
4596         and return a better error if it's no good.
4597
4598         * doc/dbus-specification.xml: note NO_AUTO_START change
4599
4600         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4601         from AUTO_START, we're toggling the default
4602
4603         * bus/dispatch.c: adapt the tests to change of auto-start default
4604
4605 2005-01-18  Havoc Pennington  <hp@redhat.com>
4606
4607         * rename dbus-daemon-1 to dbus-daemon throughout
4608
4609 2005-01-18  Havoc Pennington  <hp@redhat.com>
4610
4611         * Throughout, grand renaming to strip out the use of "service",
4612         just say "name" instead (or "bus name" when ambiguous).  Did not
4613         change the internal code of the message bus itself, only the
4614         programmer-facing API and messages.
4615         
4616         * doc/dbus-specification.xml: further update the message bus section
4617         
4618         * bus/config-parser.c (all_are_equiv): fix bug using freed string
4619         in error case
4620
4621 2005-01-17  Havoc Pennington  <hp@redhat.com>
4622
4623         * dbus/dbus-types.h: remove 16-bit types since we don't use them
4624         ever
4625
4626         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4627         "invalid name character" not only non-ASCII
4628
4629         * doc/dbus-specification.xml: further update spec, message bus 
4630         parts are still out-of-date but the marshaling etc. stuff is now
4631         accurate-ish
4632
4633 2005-01-17  Havoc Pennington  <hp@redhat.com>
4634
4635         * doc/dbus-specification.xml: partially update spec
4636
4637 2005-01-17  Havoc Pennington  <hp@redhat.com>
4638
4639         * Throughout, align variant bodies according to the contained
4640         type, rather than always to 8. Should save a fair bit of space in
4641         message headers.
4642         
4643         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4644         fix handling of case where p == end
4645
4646         * doc/TODO: remove the dbus_bool_t item and variant alignment items
4647
4648 2005-01-17  Havoc Pennington  <hp@redhat.com>
4649
4650         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4651
4652         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4653         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
4654         are marshaling/unmarshaling a boolean.
4655
4656 2005-01-16  Havoc Pennington  <hp@redhat.com>
4657
4658         This is about it on what can be disabled/deleted from libdbus
4659         easily, back below 150K anyhow. Deeper cuts are more work than 
4660         just turning the code off as I've done here.
4661         
4662         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4663         signed int convenience funcs
4664
4665         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4666         verbose mode
4667
4668         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4669         things out of libdbus
4670
4671         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4672         
4673         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4674         tests-enabled-only, though it should probably be deleted)
4675
4676         * dbus/dbus-message-util.c: same stuff
4677
4678         * dbus/dbus-auth-util.c: same stuff
4679
4680 2005-01-16  Havoc Pennington  <hp@redhat.com>
4681
4682         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4683
4684         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4685         way for stripping down dbus-userdb.c stuff included in libdbus.
4686         Rename _dbus_parse_uid for consistency.
4687
4688 2005-01-16  Havoc Pennington  <hp@redhat.com>
4689
4690         * dbus/dbus-internals.c (_dbus_real_assert): print the function
4691         name the assertion failed in
4692
4693         * dbus/dbus-internals.h (_dbus_return_if_fail) 
4694         (_dbus_return_val_if_fail): assert that the name of the function
4695         containing the check doesn't start with '_', since we only want to 
4696         use checks on public functions
4697         
4698         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4699         checks to assertions
4700
4701         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4702         change checks to asserts for private function
4703
4704         * dbus/dbus-message.c (_dbus_message_set_serial): checks
4705         to asserts for private function
4706
4707         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4708         broken assertion that was breaking make check
4709         (_dbus_type_reader_array_is_empty): remove this rather than fix
4710         it, was only used in assertions
4711
4712 2005-01-16  Havoc Pennington  <hp@redhat.com>
4713
4714         * test/unused-code-gc.py: hacky script to find code that's used
4715         only by the bus (not libdbus) or used only by tests or not used at
4716         all. It has some false alarms, but looks like we can clean up a
4717         lot of size from libdbus.
4718
4719         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4720         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4721         
4722 2005-01-16  Havoc Pennington  <hp@redhat.com>
4723
4724         * Add and fix docs according to Doxygen warnings throughout
4725         source.
4726         
4727         * dbus/dbus-marshal-recursive.c
4728         (_dbus_type_reader_array_is_empty): change this to just call
4729         array_reader_get_array_len() and make it static
4730
4731         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4732         from get_array_type
4733         (dbus_message_iter_init_append): rename from append_iter_init
4734
4735         * dbus/dbus-marshal-recursive.c
4736         (_dbus_type_reader_get_element_type): rename from
4737         _dbus_type_reader_get_array_type
4738
4739 2005-01-15  Havoc Pennington  <hp@redhat.com>
4740
4741         * test/glib/test-profile.c (with_bus_server_filter): fix crash
4742
4743         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4744         when DBUS_DISABLE_ASSERT
4745         (_dbus_marshal_set_basic): be sure we align for the string length
4746
4747         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4748         this look faster
4749
4750         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4751         inline macro version
4752         (_dbus_string_set_byte): provide inline macro version
4753
4754 2005-01-15  Havoc Pennington  <hp@redhat.com>
4755
4756         * Land the new message args API and type system.
4757
4758         This patch is huge, but the public API change is not 
4759         really large. The set of D-BUS types has changed somewhat, 
4760         and the arg "getters" are more geared toward language bindings;
4761         they don't make a copy, etc.
4762
4763         There are also some known issues. See these emails for details
4764         on this huge patch:
4765         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4766         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4767         
4768         * dbus/dbus-marshal-*: all the new stuff
4769
4770         * dbus/dbus-message.c: basically rewritten
4771
4772         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4773         freed blocks to be all non-nul bytes so using freed memory is less
4774         likely to work right
4775
4776         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4777         DBUS_FAIL_MALLOC=N environment variable, so you can do
4778         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4779         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4780         thorough.
4781
4782         * qt/message.cpp: port to the new message args API
4783         (operator<<): use str.utf8() rather than str.unicode()
4784         (pretty sure this is right from the Qt docs?)
4785
4786         * glib/dbus-gvalue.c: port to the new message args API
4787
4788         * bus/dispatch.c, bus/driver.c: port to the new message args API
4789
4790         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4791         "locked" flag to TRUE and align_offset to 0; I guess we never
4792         looked at these anyhow, but seems cleaner.
4793
4794         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4795         move allocation padding macro to this header; use it to implement
4796         (_DBUS_STRING_STATIC): ability to declare a static string.
4797
4798         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4799         change to return TRUE if the interface is not set.
4800
4801         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4802         to dbus-marshal-validate.[hc]
4803
4804         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4805         dbus-internals.c
4806
4807         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4808         to dbus-marshal-*.[hc]
4809
4810         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4811         function here from dbus-marshal.c
4812
4813 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4814
4815         * NEWS: Update for 0.23.
4816
4817         * configure.in: Release 0.23.
4818
4819 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4820
4821         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
4822         dbus DLL with --debug.  Clean up after the .mdb files this leaves
4823         behind.
4824
4825         * mono/doc/Makefile.am: Need to uninstall the docs on "make
4826         uninstall"
4827
4828         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4829         is an enum, get the enum's underlying type.  Another mono
4830         1.1.3 fix.
4831
4832 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4833
4834         Patch from Sjoerd Simons <sjoerd@luon.net>
4835
4836         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4837         DESTDIR.  It breaks stuff.
4838
4839 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4840
4841         Patch from Tambet Ingo <tambet@ximian.com>
4842
4843         * mono/DBusType/Array.cs (Get): Get the underlying element type by
4844         calling type.GetElementType().  The code previously depended on
4845         broken Mono behavior, which was fixed in Mono 1.1.3.
4846
4847         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4848         Activator.CreateInstance() so that the class's constructor is
4849         called with the right parameters.
4850
4851 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4852
4853         Patch from Timo Teräs <ext-timo.teras@nokia.com>
4854
4855         * dbus/dbus-connection.c
4856         (_dbus_connection_queue_received_message_link): Call
4857         _dbus_connection_remove_timeout() instead of the _locked()
4858         variant, since it's always called from
4859         _dbus_connection_handle_watch(), which handles the locking.
4860         Removed the _locked() variant since it's no longer used.
4861
4862 2005-01-03  Havoc Pennington  <hp@redhat.com>
4863
4864         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4865         return
4866         
4867 2004-12-26  Havoc Pennington  <hp@redhat.com>
4868
4869         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4870
4871 2005-01-03  Havoc Pennington  <hp@redhat.com>
4872
4873         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4874         floating point
4875
4876         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4877
4878 2005-01-02  Havoc Pennington  <hp@redhat.com>
4879
4880         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4881
4882 2005-01-01  Havoc Pennington  <hp@redhat.com>
4883
4884         * configure.in: add -Wfloat-equal
4885
4886 2005-01-01  Havoc Pennington  <hp@redhat.com>
4887
4888         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
4889         for a variety of reasons '==' doesn't do this.
4890
4891 2004-12-31  Havoc Pennington  <hp@redhat.com>
4892
4893         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4894         I keep wishing I had
4895
4896 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4897
4898         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
4899
4900 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4901
4902         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
4903         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
4904         dbus-protocol.h.  Because they are defines and not enums they are not
4905         autogenerated.
4906
4907 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
4908
4909         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
4910         dbus_bus_activate_service
4911
4912         * python/dbus.py (Bus.activate_service): activate a service on the
4913         bus.
4914
4915 2004-12-24  Havoc Pennington  <hp@redhat.com>
4916
4917         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
4918         file format has also changed and I haven't adapted to that yet
4919         
4920         * Makefile.am: load .gcno files from latest gcc
4921
4922 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
4923         * Patch from Rob Taylor <robtaylor@fastmail.fm>
4924
4925         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
4926         lowlevel binding
4927
4928         * python/dbus.py (get_unix_user): Added binding to 
4929         call dbus_bindings.bus_get_unix_user
4930
4931         * python/extract.py: Modified the proto_pat regex to
4932         handle unsigned long
4933
4934 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4935
4936         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
4937         better POSIX compliance.
4938
4939 2004-12-19  Havoc Pennington  <hp@redhat.com>
4940
4941         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
4942         (_dbus_string_insert_8_aligned): new functions
4943
4944         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
4945
4946 2004-12-18  Havoc Pennington  <hp@redhat.com>
4947
4948         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
4949         macro
4950
4951         * dbus/dbus-message.c: fix a comment, and add a still-unused
4952         not-implemented function
4953
4954         * dbus/dbus-marshal.h: fix comment
4955
4956         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
4957
4958 2004-12-17  Joe Shaw  <joeshaw@novell.com>
4959
4960         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
4961         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
4962         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
4963         Type.UnderlyingSystemType to get the actual system type
4964         underneath.  This code previously depended on the broken Mono
4965         behavior, which was fixed in 1.1.3.
4966
4967 2004-11-27  Havoc Pennington  <hp@redhat.com>
4968
4969         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
4970         are disabled
4971         (_dbus_string_get_const_data): inline when asserts are disabled
4972
4973         * dbus/dbus-message.c: record the _dbus_current_generation of
4974         creation so we can complain if dbus_shutdown() is used improperly.
4975         Do this only if checks are enabled.
4976
4977         * dbus/dbus-connection.c: ditto
4978         
4979 2004-11-26  Havoc Pennington  <hp@redhat.com>
4980
4981         * test/glib/test-profile.c: add with_bus mode to profile echoes
4982         that go through the bus.
4983
4984         * test/glib/run-test.sh: add ability to run test-profile
4985
4986         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
4987         config file reload.
4988
4989 2004-11-26  Havoc Pennington  <hp@redhat.com>
4990
4991         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
4992         thing was implemented
4993
4994 2004-11-26  Havoc Pennington  <hp@redhat.com>
4995
4996         * test/glib/test-profile.c: tweak a bit, add support for some
4997         made-up minimal malloc overhead with plain sockets, since in 
4998         real life some sort of buffers are unavoidable thus we could 
4999         count them in the theoretical best case
5000
5001 2004-11-26  Havoc Pennington  <hp@redhat.com>
5002
5003         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5004         where I was trying to cache one too many messages
5005
5006 2004-11-26  Havoc Pennington  <hp@redhat.com>
5007
5008         * dbus/dbus-message.c: reimplement message cache as an array which 
5009         makes the cache about twice as fast and saves maybe 1.5% overall
5010
5011 2004-11-26  Havoc Pennington  <hp@redhat.com>
5012
5013         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5014         message cache lock here
5015
5016 2004-11-26  Havoc Pennington  <hp@redhat.com>
5017
5018         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5019         the "char byte_order" next to each other to save 4 bytes
5020         (dbus_message_new_empty_header): reduce preallocation, since the
5021         message cache should achieve a similar effect
5022         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5023         message cache that keeps a few DBusMessage around in a pool,
5024         another 8% speedup or so.
5025
5026         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5027
5028 2004-11-25  Havoc Pennington  <hp@redhat.com>
5029
5030         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5031         to write, without reading or blocking, try it before the poll()
5032         and skip the poll() if nothing remains to write. This is about a
5033         3% speedup in the echo client/server
5034
5035 2004-11-25  Havoc Pennington  <hp@redhat.com>
5036
5037         The primary change here is to always write() once before adding
5038         the write watch, which gives us about a 10% performance increase.
5039         
5040         * dbus/dbus-transport-unix.c: a number of modifications to cope
5041         with removing messages_pending
5042         (check_write_watch): properly handle
5043         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5044         messages_pending stuff
5045         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5046         AUTHENTICATED cases
5047         (unix_handle_watch): after writing, see if the write watch can be
5048         removed
5049         (unix_do_iteration): assert that write_watch/read_watch are
5050         non-NULL rather than testing that they aren't, since they 
5051         aren't allowed to be NULL. check_write_watch() at the end so 
5052         we add the watch if we did not finish writing (e.g. got EAGAIN)
5053
5054         * dbus/dbus-transport-protected.h: remove messages_pending call,
5055         since it resulted in too much inefficient watch adding/removing; 
5056         instead we now require that the transport user does an iteration 
5057         after queueing outgoing messages, and after trying the first
5058         write() we add a write watch if we got EAGAIN or exceeded our 
5059         max bytes to write per iteration setting
5060
5061         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5062         function
5063
5064         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5065         freed and then accessed, valgrind flagged this bug, fix it
5066
5067         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5068         as the last valid field plus 1, where really it is equal to the
5069         last valid field. Corrects some message corruption issues.
5070
5071         * dbus/dbus-mainloop.c: verbosity changes
5072
5073         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5074         instead of aborting in one of the test codepaths
5075
5076         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5077         caused not printing the pid ever again if a verbose was missing
5078         the newline at the end
5079         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5080
5081         * dbus/dbus-connection.c: verbosity changes; 
5082         (dbus_connection_has_messages_to_send): new function
5083         (_dbus_connection_message_sent): no longer call transport->messages_pending
5084         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5085         try to write() immediately, so we can avoid the write watch. This
5086         is the core purpose of this patchset
5087         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5088         dump the outgoing message queue, so nobody will get confused
5089         trying to send them or thinking stuff is pending to be sent
5090
5091         * bus/test.c: verbosity changes
5092
5093         * bus/driver.c: verbosity/assertion changes
5094
5095         * bus/dispatch.c: a bunch of little tweaks to get it working again
5096         because this patchset changes when/where you need to block.
5097
5098 2004-11-23  Havoc Pennington  <hp@redhat.com>
5099
5100         * test/glib/test-profile.c: modify to accept a plain_sockets
5101         argument in which case it will bench plain sockets instead of
5102         libdbus, for comparison purposes.
5103
5104 2004-11-22  Havoc Pennington  <hp@redhat.com>
5105
5106         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5107         threads for more time, so sysprof can get a grip on it.
5108
5109         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5110         pointless variable
5111
5112 2004-11-13  Havoc Pennington  <hp@redhat.com>
5113
5114         * test/glib/test-profile.c: fix this thing up a bit
5115
5116         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5117         preallocation sizes by a fair bit; not sure if this will be an
5118         overall performance win or not, but it does reduce reallocs.
5119
5120         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5121         the test hack that forced constant realloc if asserts are
5122         disabled, so we can profile sanely. Sprinkle in some
5123         _DBUS_UNLIKELY() which are probably pointless, but before I
5124         noticed the real performance problem I put them in.
5125         (_dbus_string_validate_utf8): micro-optimize this thing a little
5126         bit, though callgrind says it didn't help; then special-case
5127         ascii, which did help a lot; then be sure we detect nul bytes as
5128         invalid, which is a bugfix.
5129         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5130         superstition; use memset to nul the padding instead of a manual
5131         loop.
5132         (_dbus_string_get_length): inline this as a
5133         macro; it showed up in the profile because it's used for loop
5134         tests and so forth
5135
5136 2004-11-10  Colin Walters  <walters@verbum.org>
5137
5138         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5139         for extra paranoia.
5140
5141 2004-11-09  Colin Walters  <walters@verbum.org>
5142
5143         * dbus/dbus-string.c (_dbus_string_get_length): New
5144         function, writes DBusString to C buffer.
5145
5146         * dbus/dbus-string.h: Prototype it.
5147
5148         * dbus/dbus-message.c (dbus_message_type_to_string): New
5149         function, converts message type into C string.
5150
5151         * dbus/dbus-message.h: Prototype it.
5152
5153         * bus/selinux.c (bus_selinux_check): Take source pid,
5154         target pid, and audit data.  Pass audit data to
5155         avc_has_perm.
5156         (log_audit_callback): New function, appends extra
5157         audit information.
5158         (bus_selinux_allows_acquire_service): Also take
5159         service name, add it to audit data.
5160         (bus_selinux_allows_send): Also take message
5161         type, interface, method member, error name,
5162         and destination, and add them to audit data.
5163         (log_cb): Initialize func_audit.
5164         
5165         * bus/selinux.h (bus_selinux_allows_acquire_service)
5166         (bus_selinux_allows_send): Update prototypes 
5167
5168         * bus/services.c (bus_registry_acquire_service): Pass
5169         service name to bus_selinux_allows_acquire_service.
5170
5171         * bus/bus.c (bus_context_check_security_policy): Pass
5172         additional audit data.  Move assignment of dest
5173         to its own line.
5174
5175 2004-11-07  Colin Walters  <walters@verbum.org>
5176
5177         * dbus/dbus-transport-unix.c (do_authentication): Always
5178         initialize auth_completed.
5179         
5180 2004-11-07  Colin Walters  <walters@verbum.org>
5181
5182         * bus/bus.c (load_config): Break into three
5183         separate functions: process_config_first_time_only,
5184         process_config_every_time, and process_config_postinit.
5185         (process_config_every_time): Move call of
5186         bus_registry_set_service_context_table into
5187         process_config_postinit.
5188         (process_config_postinit): New function, does
5189         any processing that needs to happen late
5190         in initialization (and also on reload).
5191         (bus_context_new): Instead of calling load_config,
5192         open config parser here and call process_config_first_time_only
5193         and process_config_every_time directly.  Later, after
5194         we have forked but before changing UID,
5195         invoke bus_selinux_full_init, and then call
5196         process_config_postinit.
5197         (bus_context_reload_config): As in bus_context_new,
5198         load parse file inside here, and call process_config_every_time
5199         and process_config_postinit.
5200
5201         * bus/services.h, bus/services.c
5202         (bus_registry_set_service_context_table): Rename
5203         from bus_registry_set_sid_table.  Take string hash from config
5204         parser, and convert them here into SIDs.
5205
5206         * bus/config-parser.c (struct BusConfigParser): Have
5207         config parser only store a mapping of service->context
5208         string.
5209         (merge_service_context_hash): New function.
5210         (merge_included): Merge context string hashes instead
5211         of using bus_selinux_id_table_union.
5212         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5213         simply create a new string hash.
5214         (bus_config_parser_unref): Unref it.
5215         (start_selinux_child): Simply insert strings into hash,
5216         don't call bus_selinux_id_table_copy_over.
5217
5218         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5219         (bus_selinux_id_table_copy_over): Delete.
5220
5221 2004-11-03  Colin Walters  <walters@verbum.org>
5222
5223         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5224         variables.
5225         
5226 2004-11-03  Colin Walters  <walters@verbum.org>
5227
5228         * bus/test-main.c (test_pre_hook): Fix test logic,
5229         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5230
5231 2004-11-02  Colin Walters  <walters@redhat.com>
5232
5233         * bus/selinux.c (bus_selinux_init): Split into two functions,
5234         bus_selinux_pre_init and bus_selinux_post_init.
5235         (bus_selinux_pre_init): Just determine whether SELinux is
5236         enabled.
5237         (bus_selinux_post_init): Do everything else.
5238
5239         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5240         config file, and bus_selinux_post_init after.  This ensures that
5241         we don't lose the policyreload notification thread that
5242         bus_selinux_init created before forking previously.
5243         
5244         * bus/test-main.c (test_pre_hook): Update for split.
5245
5246 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5247
5248         Patch from Johan Fischer <linux@fischaz.com>
5249         
5250         * mono/doc/Makefile.am (install-data-local): Added directory
5251         install for DESTDIR
5252
5253 2004-10-29  Colin Walters  <walters@redhat.com>
5254
5255         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5256         parameter for fd to write pid to.       
5257
5258         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5259         
5260         * bus/bus.c (bus_context_new): Pass print_pid_fd
5261         to _dbus_become_daemon (bug #1720)
5262
5263 2004-10-29  Colin Walters  <walters@redhat.com>
5264
5265         Patch from Ed Catmur <ed@catmur.co.uk>
5266
5267         * mono/doc/Makefile.am (install-data-local): Handle
5268         DESTDIR.
5269
5270 2004-10-29  Colin Walters  <walters@redhat.com>
5271
5272         * bus/.cvsignore, qt/.cvsignore: Update.
5273
5274 2004-10-29  Colin Walters  <walters@redhat.com>
5275
5276         Patch from Kristof Vansant <de_lupus@pandora.be>
5277
5278         * configure.in: Detect Slackware.
5279         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5280         * bus/rc.messagebus.in: New file.
5281
5282 2004-10-29  Colin Walters  <walters@redhat.com>
5283
5284         * tools/dbus-monitor.c (filter_func): Return
5285         DBUS_HANDLER_RESULT_HANDLED in filter function
5286         for now.  See:
5287         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5288
5289 2004-10-29  Colin Walters  <walters@redhat.com>
5290
5291         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5292
5293         * bus/services.c (bus_registry_acquire_service): 
5294         Correctly retrieve service name from DBusString
5295         for printing.
5296
5297 2004-10-29  Colin Walters  <walters@redhat.com>
5298
5299         * dbus/dbus-glib.h: Update documentation to not
5300         refer to internal APIs.
5301
5302 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5303
5304         * mono/Arguments.cs (GetDBusTypeConstructor):
5305         type.UnderlyingSystemType will return "System.Byte" if you do it
5306         on "byte[]", which is not what we want.  So check the type.IsArray
5307         property and use System.Array instead.
5308
5309 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5310
5311         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5312         the DBusUserInfo structure since this is passed into the function.
5313         This would cause a double free when the function that allocated
5314         the structure would try to free it when an error occured.
5315
5316         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5317         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5318         for service activation to avoid 32bit/64bit parallel install issues
5319
5320 2004-10-21  Colin Walters  <walters@verbum.org>
5321
5322         * AUTHORS: Fix my email address, the @gnu.org one
5323         has been bouncing for some time.  Also add J5.
5324         
5325 2004-10-21  Colin Walters  <walters@verbum.org>
5326
5327         * dbus/dbus-transport-unix.c (do_authentication): Return
5328         authentication status to callers.
5329         (unix_handle_watch): If we completed authentication this round,
5330         don't do another read.  Instead wait until the next iteration,
5331         after we've read any pending data in the auth buffer.
5332         (unix_do_iteration): Ditto.
5333         (unix_handle_watch): Updated for new do_authentication prototype.
5334
5335 2004-10-18  Colin Walters  <walters@verbum.org>
5336
5337         * bus/selinux.c (bus_selinux_enabled): Handle
5338         --disable-selinux case.
5339         
5340 2004-10-18  Colin Walters  <walters@verbum.org>
5341
5342         * bus/selinux.h: Add bus_selinux_enabled.
5343         
5344         * bus/selinux.c (bus_selinux_enabled): Implement it.
5345         
5346         * bus/config-parser.c (struct include): Add
5347         if_selinux_enabled member.
5348         (start_busconfig_child): Parse if_selinux_enabled
5349         attribute for include.
5350         (bus_config_parser_content): Handle it.
5351
5352         * bus/session.conf.in, bus/system.conf.in: Add
5353         inclusion of context mapping to default config files;
5354         conditional on SELinux being enabled.
5355         
5356         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5357         
5358         * test/data/invalid-config-files/badselinux-1.conf, 
5359         test/data/invalid-config-files/badselinux-2.conf:
5360         Test files for bad syntax.
5361         
5362 2004-10-17  Colin Walters  <walters@verbum.org>
5363
5364         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5365         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5366         format specifier mismatches.
5367
5368 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5369
5370         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5371         format string.
5372
5373         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5374         pointer (bug #1540, Leonardo Boiko).
5375
5376 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5377
5378         * mono/BusDriver.cs: Changed BusDriver struct to remove
5379         the ServiceCreated and ServiceDeleted events and replace them
5380         with the new ServiceOwnerChanged event.
5381
5382         * mono/example/BusListener.cs: Added a new example program,
5383         which listens for and reports any ServiceOwnerChanged events
5384         on the bus driver.
5385
5386         * mono/example/Makefile.am (DESTDIR): Build changes for the
5387         new BusListener.cs example.
5388
5389 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5390
5391         * bus/signals.c (bus_match_rule_parse): validate the components of
5392         match rules (bug #1439).
5393
5394         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5395
5396 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5397
5398         * doc/dbus-specification.xml: document ServiceOwnerChanged
5399         signal.
5400         
5401         * bus/driver.c, bus/driver.h, bus/services.c: Use
5402         ServiceOwnerChanged signal instead of ServiceCreated and
5403         ServiceDeleted.
5404         
5405         * bus/dispatch.c: update testcase for the new signal.
5406
5407 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5408
5409         Patch from Nat Friedman <nat@novell.com>
5410
5411         * mono/Makefile.am: A number of small build fixes to allow "make
5412         distcheck" to succeed.
5413
5414         * mono/example/Makefile.am: "make distcheck" fixes.
5415
5416         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5417         key in @srcdir@.
5418
5419         * test/Makefile.am: "make distcheck" fixes.
5420
5421 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5422
5423         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5424
5425         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5426
5427         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5428         messages after the first one (bug #1389).
5429         
5430         * bus/dispatch.c (check_double_hello_message): add a test case for
5431         the double hello message bug.
5432         (check_existent_service_activation): fix check of spawning error.
5433         
5434 2004-09-16  David Zeuthen  <david@fubar.dk>
5435
5436         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5437
5438 2004-09-12  David Zeuthen  <david@fubar.dk>
5439
5440         Patch from Kay Sievers <kay.sievers@vrfy.org>
5441
5442         * bus/bus.c (bus_context_new):
5443         * bus/bus.h:
5444         * bus/main.c (usage)
5445         (main):
5446         Add commandline option --nofork to override configuration file
5447         setting.
5448
5449 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5450
5451         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5452         compilers don't like it (bug #974).
5453
5454 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5455
5456         * qt/connection.*: Applied patch by Jérôme Lodewyck
5457         <lodewyck@clipper.ens.fr> to integrate an existing
5458         connection into the Qt eventloop
5459
5460 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5461
5462         * mono/BusDriver.cs: Added.  This is a class for interacting with
5463         the org.freedesktop.DBus service.
5464
5465         * mono/Message.cs: Added a mechanism to expose the message that is
5466         currently being dispatched via the static Message.Current
5467         property.  Added Message.Sender and Message.Destination
5468         properties.
5469
5470         * mono/Handler.cs: Expose the dispatched message via
5471         Message.Current when handling method calls.
5472
5473         * mono/Service.cs: Expose the dispatched message via
5474         Message.Current when handling signal emissions.
5475         
5476         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5477         Connection.BaseService property.
5478
5479 2004-08-28  Havoc Pennington  <hp@redhat.com>
5480
5481         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5482
5483         More fixes from Steve Grubb
5484         
5485         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5486         (_dbus_listen_tcp_socket): fix fd leak
5487
5488         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5489         EINTR to a bit lower in the code
5490
5491 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5492
5493         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5494         TRUE if we are inquiring about the existence of the built-in
5495         org.freedesktop.DBus service.
5496
5497 2004-08-25  John Palmieri  <johnp@redhat.com>
5498         * bus/config-parser.c:
5499         (struct PolicyType): Add POLICY_CONSOLE
5500         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5501         (start_busconfig_child): Sets up console element when
5502         <policy at_console=""> is encountered in a policy file
5503         (append_rule_from_element): Convert console elements to console
5504         rules.
5505
5506         * bus/policy.c: 
5507         (bus_policy_create_client_policy): Add console rules to the client
5508         policy based on if the client is at the console
5509         (bus_policy_append_console_rule): New function for adding a
5510         console rule to a policy
5511         (bus_policy_merge): Handle console rule merging
5512
5513         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5514         where we check for console user files
5515         
5516         * dbus/dbus-sysdeps.c:
5517         (_dbus_file_exists): New function which checks if the given
5518         file exists
5519         (_dbus_user_at_console): New function which does the system
5520         specific process of checking if the user is at the console
5521
5522         * dbus/dbus-userdb.c:
5523         (_dbus_is_console_user): New function converts a UID to user name
5524         and then calls the system specific _dbus_user_at_console to 
5525         see if the user is at the console and therefor a console user
5526
5527 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5528
5529         * bus/config-parser.c (set_limit):
5530         * bus/dbus-daemon-1.1.in:
5531         * test/data/valid-config-files/many-rules.conf: set the
5532         max_match_rules_per_connection limt from the config file. 
5533
5534         * doc/busconfig.dtd: update the DTD.
5535
5536         * bus/driver.c: remove some unused variables.
5537
5538 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5539
5540         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5541         it's been replaced by dbus_g_bus_get
5542
5543 2004-08-23  Colin Walters  <walters@redhat.com>
5544
5545         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5546
5547         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5548
5549         * bus/selinux.c: Create a thread for policy reload notification.
5550         (bus_selinux_get_policy_root): Implement.
5551
5552         * bus/config-parser.c (start_busconfig_child)
5553         (bus_config_parser_content): Support SELinux-root relative
5554         inclusion.
5555
5556         * configure.in <HAVE_SELINUX>: Add -lpthread.
5557         
5558         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5559         (test_post_hook): Move memory checking into here.
5560         (test_pre_hook, test_post_hook): Move SELinux checks in
5561         here, but conditional on a DBUS_TEST_SELINUX environment
5562         variable.  Unfortunately we can't run the SELinux checks
5563         as a normal user, since they won't have any permissions
5564         for /selinux.  So this will have to be tested manually
5565         for now, until we have virtualization for most of
5566         libselinux.
5567         
5568 2004-08-23  Havoc Pennington  <hp@redhat.com>
5569
5570         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5571         drop supplementary groups, suggested by Steve Grubb
5572
5573 2004-08-20  Colin Walters  <walters@redhat.com>
5574
5575         * bus/config-parser.c (start_busconfig_child): Remove some unused
5576         variables.
5577         
5578         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5579         warning.
5580
5581 2004-08-17  Joe Shaw  <joeshaw@novell.com>
5582
5583         * configure.in: If --enable-mono is passed in, if we can't find
5584         mono error out.
5585
5586         * mono/Makefile.am: Use /gacutil to install assemblies into the
5587         GAC and not /root.
5588
5589 2004-08-12  Havoc Pennington  <hp@redhat.com>
5590
5591         * NEWS: update for 0.22
5592
5593         * configure.in: release 0.22
5594
5595 2004-08-11  Colin Walters  <walters@redhat.com>
5596
5597         * tools/dbus-send.c (main, usage): Add --reply-timeout
5598         argument.
5599
5600 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5601
5602         * bus/bus.c (process_config_first_time_only): get rid of an unused
5603         DBusError that was causing a memoy leak (bug #989).
5604
5605         * dbus/dbus-keyring.c, dbus/dbus-message.c:
5606         fix compilation on Solaris/Forte C (bug #974)
5607
5608         * bus/main.c (main): plug two minuscule memleaks.
5609
5610 2004-08-10  Havoc Pennington  <hp@redhat.com>
5611
5612         * doc/dbus-tutorial.xml: add some more info on GLib bindings
5613
5614 2004-08-09  Havoc Pennington  <hp@redhat.com>
5615
5616         * COPYING: switch to Academic Free License version 2.1 instead of
5617         2.0, to resolve complaints about patent termination clause.
5618
5619 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
5620
5621         * README: added documentation for the --enable-python 
5622         configure switch.
5623
5624 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5625
5626         * bus/config-parser.c (bus_config_parser_new): fix an invalid
5627         _unref in the SELinux support.
5628
5629         * doc/busconfig.dtd: update DTD for SELinux support.
5630
5631         * bus/config-loader-libxml.c: fix error handler and parser
5632         initialisation/cleanup. OOM test now works with libxml2 HEAD.
5633
5634         * configure.in: remove the warning about libxml2.
5635
5636         * dbus/dbus-bus.c: silence doxygen warning.
5637
5638 2004-07-31  Colin Walters  <walters@redhat.com>
5639
5640         * configure.in: Move #error in SELinux check to its own line.
5641
5642 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5643
5644         * dbus/dbus-internals.h (_DBUS_SET_OOM):
5645         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5646         dbus_error_set.
5647
5648         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5649         broken by the change in the _SET_OOM macros.
5650
5651 2004-07-31  Colin Walters  <walters@redhat.com>
5652
5653         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5654         BUS_SET_OOM.
5655
5656 2004-07-31  Colin Walters  <walters@redhat.com>
5657
5658         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5659         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
5660         AC_MSG_CHECKING.
5661
5662 2004-07-24  Havoc Pennington  <hp@redhat.com>
5663
5664         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5665
5666         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5667         functionality
5668
5669         * configure.in: add --enable-selinux
5670         
5671         * bus/policy.c (bus_policy_merge): add FIXME to a comment
5672
5673         * bus/main.c (main): initialize and shut down selinux
5674
5675         * bus/connection.c: store SELinux ID on each connection, to avoid 
5676         repeated getting of the string context and converting it into 
5677         an ID
5678
5679         * bus/bus.c (bus_context_get_policy): new accessor, though it
5680         isn't used
5681         (bus_context_check_security_policy): check whether the security
5682         context of sender connection can send to the security context of
5683         recipient connection
5684
5685         * bus/config-parser.c: add parsing for <selinux> and <associate>
5686         
5687         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5688         implement dbus_connection_get_unix_fd()
5689
5690         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5691         function, used by the selinux stuff
5692         
5693 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5694
5695         * bus/config-loader-libxml.c: complete the implementation of
5696         libxml backend for config file loader. Doesn't work with full OOM
5697         test yet. 
5698         
5699         * configure.in: change error when selecting libxml into a warning.
5700         
5701         * test/data/invalid-config-files: add two non-well-formed XML
5702         files. 
5703         
5704         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5705         
5706         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5707         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5708         be necessary to read all the buffer. (bug #894)
5709
5710         * bus/activation.c (bus_activation_activate_service): fix a
5711         potential assertion failure (bug #896). Small optimization in the
5712         case of auto-activation messages.
5713
5714         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5715         add test case for byte-through-vararg bug (#901). patch by Kimmo
5716         Hämäläinen. 
5717
5718 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5719
5720         * python/dbus.py:
5721         * python/dbus_bindings.pyx.in:
5722         Add dbus.init_gthreads (), allow emit_signal to pass
5723         arguments to the signal.
5724         
5725 2004-07-24  Havoc Pennington  <hp@redhat.com>
5726
5727         * AUTHORS: add some people, not really comprehensively, let me
5728         know if I missed you
5729
5730 2004-07-24  Havoc Pennington  <hp@redhat.com>
5731
5732         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5733         Owen
5734
5735         * test/Makefile.am (DIST_SUBDIRS): here also
5736
5737 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5738
5739         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5740         breaking build on Solaris, reported by Farhad Saberi on the ML.
5741
5742         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5743         va_arg invocation to account for integer promotion in the case of
5744         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5745
5746         * bus/services.c (bus_service_remove_owner): fix bug #902, use
5747         _dbus_list_get_first_link, not _dbus_list_get_first.
5748
5749         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5750
5751         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5752         handler functions so that the asserts in _dbus_object_subtree_unref
5753         do not fail.
5754
5755         * dbus/dbus-transport-unix.c (do_reading):
5756         _dbus_transport_queue_messages return value is of type
5757         dbus_bool_t, not DBusDispatchStatus.
5758         
5759 2004-07-19  David Zeuthen  <david@fubar.dk>
5760
5761         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5762
5763         * bus/dispatch.c:
5764         (check_get_connection_unix_user): Debug says GetProperty; but the
5765         method is called GetConnectionUnixUser
5766         (check_get_connection_unix_process_id): New function
5767         (bus_dispatch_test): Actually call check_get_connection_unix_user();
5768         also call check_get_connection_unix_process_id()
5769         
5770         * bus/driver.c:
5771         (bus_driver_handle_get_connection_unix_process_id): New function,
5772         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5773         interface
5774         
5775         * dbus/dbus-auth.c:
5776         (handle_server_data_external_mech): Set pid from the credentials
5777         obtained from the socket
5778         
5779         * dbus/dbus-connection.c:
5780         (dbus_connection_get_unix_process_id): New function
5781         
5782         * dbus/dbus-connection.h: 
5783         Add prototype for dbus_connection_get_unix_process_id
5784         
5785         * dbus/dbus-transport.c:
5786         (_dbus_transport_get_unix_process_id): New function
5787         
5788         * dbus/dbus-transport.h:
5789         Add prototype for _dbus_transport_get_unix_process_id
5790         
5791 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5792
5793         * dbus/dbus-message.c: Message counter fix, patch by Christian
5794         Hammond <chipx86@gnupdate.org>
5795
5796 2004-07-18  Seth Nickell  <seth@gnome.org>
5797
5798         * python/dbus.py:
5799         * python/dbus_bindings.pyx.in:
5800         * python/tests/test-client.py:
5801
5802         Add dbus.ByteArray and dbus_bindings.ByteArray
5803         types so that byte streams can be passed back.
5804
5805         Give jdahlin the heaps of credit that are so
5806         rightfully his.
5807         
5808 2004-07-12  Seth Nickell  <seth@gnome.org>
5809
5810         * python/dbus.py:
5811
5812         Add message argument to the default object_method_handler
5813         function.
5814         
5815         * python/dbus_bindings.pyx.in:
5816
5817         Automatically return NIL when passed an empty list
5818         (we can't pass back a list since lists are typed
5819         and we don't have any idea what type the the client
5820         intended the list to be... :-( )
5821         
5822 2004-07-10  Seth Nickell  <seth@gnome.org>
5823
5824         * python/examples/Makefile.am:
5825
5826         Fix distcheck breakage caused by new examples.
5827
5828 2004-07-10  Seth Nickell  <seth@gnome.org>
5829
5830         * python/dbus.py:
5831
5832         Add "message" argument to service-side dbus.Object
5833         methods. This will break existing services written
5834         using the python bindings, but will allow extraction
5835         of all the message information (e.g. who its from).
5836
5837         Add improved "object oriented" signal handling/emission.
5838         
5839         * python/examples/example-service.py:
5840
5841         Nix this example.
5842         
5843         * python/examples/example-signal-emitter.py:
5844         * python/examples/example-signal-recipient.py:
5845
5846         Two new examples that show how to emit and receive
5847         signals using the new APIs.
5848         
5849         * python/examples/example-signals.py:
5850         * python/examples/gconf-proxy-service.py:
5851         * python/examples/gconf-proxy-service2.py:
5852
5853         Add "message" argument to service methods.
5854
5855 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
5856
5857         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5858         * dbus/bus.c (dbus_bus_get_unix_user)
5859         * doc/dbus-specification.xml: implement GetConnectionUnixUser
5860         method of org.freedesktop.DBus interface.
5861
5862         * bus/dispatch.c: test case
5863
5864 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
5865
5866         * python/Makefile.am: switched include directory from glib/ to dbus/
5867         since dbus-glib.h moved
5868  
5869 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5870
5871         * configure.in: prevent building the gcj stuff and libxml loader
5872         since they are broken.
5873
5874 2004-06-20  Havoc Pennington  <hp@redhat.com>
5875
5876         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
5877         codes from the dbus error names
5878         
5879         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
5880         as dbus/dbus-glib.h and that breakage is now visible due to 
5881         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5882         
5883         * glib/dbus-glib.h: s/gproxy/g_proxy/
5884
5885         * dbus/dbus-shared.h: new header to hold stuff shared with
5886         binding APIs
5887         
5888         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5889         than dbus-errors.h
5890
5891         * glib/dbus-glib.h (dbus_set_g_error): move to
5892         dbus-glib-lowlevel.h
5893
5894         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5895         of stuff to enable this
5896
5897         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
5898
5899         * a bunch of other changes with the same basic "separate glib 
5900         bindings from dbus.h" theme
5901         
5902 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
5903
5904         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
5905
5906         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
5907
5908 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5909
5910         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
5911         the reply value of the ServiceExists message.
5912
5913 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
5914
5915         * python/dbus_bindings.pyx.in: No longer need to parse path
5916         elements and pass them as arrays of strings.  The C API now
5917         accepts plain path strings.
5918         (_build_parsed_path): removed 
5919
5920 2004-06-07  Havoc Pennington  <hp@redhat.com>
5921
5922         * doc/TODO: remove auto-activation item since it's done; sort
5923         items by importance/milestone
5924
5925 2004-06-07  Havoc Pennington  <hp@redhat.com>
5926
5927         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
5928         random signature when using REQUIRED_FIELDS (this hack won't work
5929         in the long term)
5930
5931         * dbus/dbus-message.c: change the signature to be a header field,
5932         instead of message->signature special-case string. Incremental
5933         step forward. Then we can fix up code to send the signature in the
5934         message, then fix up code to validate said signature, then fix up
5935         code to not put the typecodes inline, etc.
5936         (load_one_message): don't make up the signature after the fact
5937         (decode_header_data): require signature field for the known
5938         message types
5939
5940         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
5941
5942         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
5943
5944 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
5945
5946         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
5947
5948         * mono/Handler.cs: Updated to follow new path argument for
5949         (un-)registering objects.
5950
5951         * mono/example/Makefile.am:
5952         * mono/Makefile.am:
5953         * configure.in: Bumped required version for mono and use new -pkg
5954         syntax for deps
5955
5956 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5957
5958         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
5959         registration functions take the path argument as char* instead of
5960         char**.
5961
5962         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
5963         split off the path decompostion part of
5964         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
5965         warnings. 
5966
5967         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
5968         
5969 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5970  
5971         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
5972         machine approach.  A state is implemented as a function that
5973         handles incoming events as specified for that state.
5974         
5975         * doc/dbus-specification.xml: Update auth protocol state machine
5976         specification to match implementation.  Remove some leftover
5977         base64 examples.
5978
5979 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5980
5981         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
5982         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
5983         quiet doxygen.
5984
5985         * Doxyfile.in: remove deprecated options.
5986
5987         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
5988         glib/test-thread.h, glib/test-thread-client.c,
5989         glib/test-thread-server.c, glib/test-profile.c,
5990         glib/test-dbus-glib.c: remove these unused files.
5991
5992 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5993
5994         * dbus/dbus-object-tree.c
5995         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
5996         non-fallback handlers (bug #684).
5997         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
5998         (find_subtree_recurse): report wether the returned subtree is an
5999         exact match or a "fallback" match higher up in the tree.
6000         (object_tree_test_iteration): update test case.
6001
6002 2004-06-01  Seth Nickell  <seth@gnome.org>
6003
6004         * python/dbus_bindings.pyx.in:
6005         * python/tests/test-client.py:
6006
6007         Round off basic type support. Add dicts (yay!), and 
6008         remaining array types.
6009
6010         Make MessageIter more general so it works for dicts too.
6011
6012         Mark all loop variables as C integers.
6013         
6014 2004-05-31  Havoc Pennington  <hp@redhat.com>
6015
6016         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6017         "in" before "out"
6018
6019         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6020
6021         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6022         option that runs the tests, and start filling in some code
6023         including for starters just dumping the interfaces to stdout
6024
6025         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6026
6027         * test/data/valid-introspection-files/lots-of-types.xml: test of
6028         an example introspection file
6029
6030         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6031         "node" (I think...)
6032
6033 2004-05-31  Seth Nickell  <seth@gnome.org>
6034
6035         * python/dbus_bindings.pyx.in:
6036         * python/tests/test-client.py:
6037
6038         Test Suite: 1
6039         Python Bindings: 0
6040
6041         Fix string array memory trashing bug... oops...
6042
6043 2004-05-30  Seth Nickell  <seth@gnome.org>
6044
6045         * python/dbus.py:
6046
6047         Add a nicer-but-less-flexible alternate API for handling 
6048         calls to virtual objects in dbus.ObjectTree.
6049
6050         Screw up the argument order to the dbus.Object constructor
6051         for consistency with dbus.ObjectTree (and to make dbus_methods
6052         optional for future extension)
6053         
6054         * python/examples/Makefile.am:
6055         * python/examples/gconf-proxy-service.py:
6056         * python/examples/gconf-proxy-service2.py:
6057
6058         Alternate implementation of gconf-proxy-service using the
6059         nicer dbus.ObjectTree API.
6060         
6061         * python/examples/example-service.py:
6062         * python/tests/test-server.py
6063
6064         Reverse the argument order to deal with dbus.Object constructor
6065         changes.
6066         
6067 2004-05-30  Seth Nickell  <seth@gnome.org>
6068
6069         * python/examples/example-client.py:
6070         * python/examples/example-service.py:
6071
6072         Take it back. Lists seem to work but they're broken
6073         in the test suite. Make the base examples use
6074         lists (works fine).
6075
6076 2004-05-30  Seth Nickell  <seth@gnome.org>
6077
6078         * python/dbus_bindings.pyx.in:
6079         * python/tests/test-client.py:
6080
6081         Add some more tests and fix errors that crop up.
6082         Unfortunately, currently it seems like marshalling
6083         and unmarshalling of lists is completely broken :-(
6084
6085 2004-05-30  Seth Nickell  <seth@gnome.org>
6086
6087         * python/dbus_bindings.pyx.in:
6088
6089         Add support for ObjectPath type.
6090
6091         * python/dbus.py:
6092
6093         Refactor message handling code to a common function.
6094         
6095         * python/tests/test-client.py:
6096         * python/tests/test-server.py:
6097
6098         Add tests that check to make sure values of all types
6099         can be echoed from a service w/o mangling.
6100         
6101 2004-05-29  Seth Nickell  <seth@gnome.org>
6102
6103         * python/dbus.py:
6104
6105         Add ObjectTree class which allows implementation
6106         of trees of "virtual" objects. Basically the python
6107         wrapper for "register_fallback".
6108         
6109         * python/examples/Makefile.am
6110         * python/examples/gconf-proxy-client.py:
6111         * python/examples/gconf-proxy-service.py:
6112
6113         Implement a simple GConf proxy service that supports
6114         get/set on string and int GConf keys using the ObjectTree.
6115         
6116 2004-05-29  Seth Nickell  <seth@gnome.org>
6117
6118         * python/dbus.py:
6119         * python/examples/example-client.py:
6120         * python/examples/example-service.py:
6121         * python/examples/list-system-services.py:
6122
6123         Add SessionBus, SystemBus and ActivationBus classes
6124         so you don't need to know the special little BUS_TYPE
6125         flag.
6126         
6127 2004-05-29  Havoc Pennington  <hp@redhat.com>
6128
6129         * bus/config-parser.c (process_test_valid_subdir): temporarily
6130         stop testing config parser OOM handling, since expat has issues
6131         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6132
6133         * bus/dbus-daemon-1.1.in: change requested_reply to
6134         send_requested_reply/receive_requested_reply so we can send the
6135         replies, not just receive them.
6136
6137         * bus/config-parser.c: parse the new
6138         send_requested_reply/receive_requested_reply
6139
6140         * bus/policy.c (bus_client_policy_check_can_send): add
6141         requested_reply argument and use it
6142
6143         * bus/bus.c (bus_context_check_security_policy): pass through
6144         requested_reply status to message send check
6145
6146         * bus/system.conf.in: adapt to requested_reply change
6147         
6148 2004-05-28  Havoc Pennington  <hp@redhat.com>
6149
6150         * test/glib/test-service-glib.c (main): remove unused variable
6151
6152         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6153
6154         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6155         from the enum, no longer in use.
6156
6157         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6158         works right.
6159
6160         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6161         whether error_name passed in is a valid error name.
6162
6163 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6164
6165         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6166         OBJECT_PATH and OBJECT_PATH_ARRAY
6167
6168 2004-05-28  Seth Nickell  <seth@gnome.org>
6169
6170         * python/examples/Makefile.am:
6171
6172         Forget to add Makefile.am. Do not pass go.
6173
6174 2004-05-28  Michael Meeks  <michael@ximian.com>
6175
6176         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6177         fix no int64 case.
6178
6179         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6180
6181         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6182         (_dbus_message_iter_get_basic_type_array): impl.
6183         drastically simplify ~all relevant _get methods to use these.
6184         (_dbus_message_iter_append_basic_array),
6185         (dbus_message_iter_append_basic): impl
6186         drastically simplify ~all relevant _append methods to use these.
6187
6188         * dbus/dbus-message-builder.c (parse_basic_type) 
6189         (parse_basic_array, lookup_basic_type): impl.
6190         (_dbus_message_data_load): prune scads of duplicate /
6191         cut & paste coding.
6192
6193         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6194         (_dbus_demarshal_basic_type): implement,
6195         (demarshal_and_validate_len/arg): beef up debug.
6196         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6197
6198 2004-05-27  Seth Nickell  <seth@gnome.org>
6199
6200         * configure.in:
6201         * python/Makefile.am:
6202
6203         Include the example python apps in the tarball.
6204         
6205         * python/examples/list-system-services.py
6206
6207         Add a python new example that fetches the list of services
6208         from the system bus.
6209         
6210 2004-05-27  Seth Nickell  <seth@gnome.org>
6211
6212         * python/dbus.py:
6213         * python/dbus_bindings.pyx.in:
6214
6215         Fix failure to notify that a signal was not handled,
6216         resulted in hung functions.
6217         
6218 2004-05-25  Colin Walters  <walters@redhat.com>
6219
6220         * tools/dbus-monitor.c (main): Monitor all types of messages.
6221
6222 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6223
6224         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6225         which unregisters the object path and disposes the handler.
6226
6227 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6228  
6229         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6230          
6231         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6232         operands to && so we call dbus_message_iter_next () for the last
6233         argument also.
6234
6235 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6236
6237         * dbus/dbus-object-tree.c
6238         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6239         children even if the requested path isn't registered.
6240         (object_tree_test_iteration): test object_tree_list_registered.
6241
6242         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6243         it to 0.
6244         
6245 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6246
6247         * doc/TODO: Remove resolved items.
6248
6249         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6250         field.
6251         
6252         * bus/connection.c (bus_connections_expect_reply): Enforce the
6253         per-connection limit on pending replies.
6254         
6255         Patch from Jon Trowbridge <trow@ximian.com>:
6256  
6257         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6258         up a watch that triggers a config reload when one end of the pipe
6259         becomes readable.
6260         (signal_handler): Instead of doing the config reload in our SIGHUP
6261         handler, just write to the reload pipe and let the associated
6262         watch handle the reload when control returns to the main loop.
6263  
6264         * bus/driver.c (bus_driver_handle_reload_config): Added.
6265         Implements a ReloadConfig method for requesting a configuration
6266         file reload via the bus driver.
6267  
6268 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6269
6270         * HACKING: Updated release instructions concerning the wiki page.
6271
6272 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6273
6274         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6275         filter against auth->allowed_mechs; we only add allowed mechs in
6276         record_mechanisms().
6277  
6278         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6279         ALLOWED_MECHS to auth-script format so we can set the list of
6280         allowed mechanisms.
6281  
6282         * data/auth/client-out-of-mechanisms.auth-script: New test to
6283         check client disconnects when it is out of mechanisms to try.
6284  
6285         * dbus/dbus-auth.c (process_command): Remove check for lines
6286         longer that 1 MB; we only buffer up maximum 16 kB.
6287  
6288         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6289         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6290         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6291         assume there might be unused bytes.
6292  
6293         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6294         client-out-of-mechs, it is handled in process_reject(). Move check
6295         for max failures to send_rejected(), as it's a server-only thing.
6296
6297         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6298         send_auth(), send_data(), send_rejected(), send_error(),
6299         send_ok(), send_begin() and send_cancel().
6300
6301 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6302
6303         Remove base64 encoding, replace with hex encoding. Original patch
6304         from trow@ximian.com, added error handling.
6305
6306         * dbus/dbus-string.c (_dbus_string_base64_encode)
6307         (_dbus_string_base64_decode): Remove.
6308         (_dbus_string_hex_decode): Add end_return argument so we can
6309         distinguish between OOM and invalid hex encoding.
6310         (_dbus_string_test): Remove base64 tests and add test case for
6311         invalid hex.
6312
6313         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6314         Replace base64 with hex.
6315
6316         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6317         for invalid hex encoded data in auth protocol.
6318
6319 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6320
6321         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6322         leak.
6323
6324 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6325
6326         * mono/dbus-sharp.dll.config.in: Added for GAC
6327         * mono/dbus-sharp.snk: Added for GAC
6328         * mono/Assembly.cs.in: Added for GAC
6329         * mono/Makefile.am: Changes for GAC installation        
6330         * configure.in: Added refs for dbus-sharp.dll.config.in and
6331         Assembly.cs.in. More fixes for mono testing
6332         * mono/example/Makefile.am: Changed var to CSC
6333         * Makefile.am: Changed flag name to DBUS_USE_CSC
6334
6335 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6336
6337         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6338         * mono/doc/*: Added documentation framework
6339         * configure.in: Added monodoc check
6340         * README: Added description of mono configure flags
6341
6342 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6343
6344         * doc/dbus-specification.xml: Added a "Required" column to the 
6345         header fields table and changed the "zero or more" verbage in
6346         the above paragraph to read "The header must contain the required 
6347         named header fields and zero or more of the optional named header 
6348         fields".
6349         * test/data/invalid-messages/*.message: Added the required PATH 
6350         named header field to the tests so that they don't fail on 
6351         'Missing path field'
6352
6353 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6354
6355         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6356         the stack by implicitly defining variable and parameter types and
6357         removing the hack of defining C pointers as python objects and later
6358         casting them.
6359
6360 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6361
6362         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6363
6364 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6365
6366         * mono/DBusType/Dict.cs: Handle empty dicts
6367         * mono/DBusType/Array.cs: Handle empty arrays
6368         * mono/Arguments.cs: Handle empty arguments
6369
6370 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6371
6372         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6373         field
6374
6375 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6376
6377         * test/data/valid-messages/standard-*.message: Update message
6378         test scripts to new header field names.
6379
6380 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6381
6382         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6383         overflow to times_we_did_each_thing array which would chop off the
6384         first character of the failure_dir string. Increased the size of
6385         the array to 7 to reflect the number of random mutation functions
6386         we have.
6387
6388 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6389
6390         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6391         unix_server->watch here, it is unreffed in disconnect.
6392         (_dbus_server_new_for_tcp_socket): convert NULL host to
6393         "localhost" here so we don't append NULL to address.
6394         
6395         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6396         various addresses, including tcp with no explicit host.
6397
6398 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6399
6400         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6401         fix incorrect setting of .name_offset in the HeaderField (it was
6402         off by two bytes, positioned right after the name and typecode)
6403
6404         * bus/bus.c (bus_context_new, bus_context_unref): test before
6405         calling dbus_server_free_data_slot and _dbus_user_database_unref
6406         in case of an error.
6407
6408         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6409         by libdbus-gtool.
6410
6411 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6412
6413         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6414         _dbus_poll() instead of select().
6415
6416 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6417
6418         * bus/main.c (signal_handler): Reload the configuration files
6419         on SIGHUP.
6420         (main): Set up our SIGHUP handler.
6421
6422         * bus/bus.c (struct BusContext): Store the config file, user and
6423         fork flag in the BusContext.
6424         (process_config_first_time_only): Added.  Contains the code
6425         (previously in bus_context_new) for setting up the BusContext from
6426         the BusConfigParser that should only be run the first time the
6427         config files are read.
6428         (process_config_every_time): Added.  Contains the code (previously
6429         in bus_context_new) for setting up the BusContext from the
6430         BusConfigParser that should be run every time the config files are
6431         read.
6432         (load_config): Added.  Builds a BusConfigParser from the config
6433         files and passes the resulting structure off to
6434         process_config_first_time_only (assuming this is the first time)
6435         and process_config_every_time.
6436         (bus_context_new): All of the config-related code has been moved
6437         to process_config_first_time_only and process_config_every_time.
6438         Now this function just does the non-config-related initializations
6439         and calls load_config.
6440         (bus_context_reload_config): Added.
6441
6442 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6443
6444         * bus/driver.c (bus_driver_handle_get_service_owner):
6445         implement a GetServiceOwner method.
6446         * doc/dbus-specification.xml: document it.
6447         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6448         
6449         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6450         implement, using the bus GetServiceOwner method.
6451
6452         * test/glib/test-dbus-glib.c:
6453         use dbus_gproxy_new_for_service_owner so that we can receive the
6454         signal. 
6455
6456 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6457
6458         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6459         dbus/dbus-message.c, dbus/dbus-protocol.h
6460         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6461
6462         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6463         dbus/dbus-message.c, dbus/dbus-protocol.h
6464         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6465
6466         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6467         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6468         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6469
6470         * doc/dbus-specification.xml (Header Fields Table):
6471         s/SERVICE/DESTINATION
6472         s/SENDER_SERVICE/SENDER
6473
6474
6475 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6476
6477         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6478         a few seconds.
6479
6480 2004-04-13  Michael Meeks  <michael@ximian.com>
6481
6482         * glib/dbus-gobject.c (handle_introspect): split out
6483         (introspect_properties): this.
6484         (handle_introspect): implement this.
6485
6486         * test/glib/Makefile.am: use the absolute path so the bus
6487         daemon's chdir ("/") doesn't kill us dead.
6488
6489         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6490
6491 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6492
6493         * bus/config-parser.c (struct BusConfigParser): Added
6494         included_files field.
6495         (seen_include): Added.  Checks whether or not a file has already
6496         been included by any parent BusConfigParser.
6497         (bus_config_parser_new): Copy the parent's included_files.
6498         (include_file): Track which files have been included, and fail on
6499         circular inclusions.
6500         (process_test_valid_subdir): Changed printf to report if we are
6501         testing valid or invalid conf files.
6502         (all_are_equiv): Changed printf to be a bit clearer about
6503         what we are actually doing.
6504         (bus_config_parser_test): Test invalid configuration files.
6505
6506 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6507
6508         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6509         argument.  If non-null, the newly-constructed BusConfigParser will
6510         be initialized with the parent's BusLimits instead of the default
6511         values.
6512         (include_file): When including a config file, pass in
6513         the current parser as the parent and then copy the BusLimits
6514         from the included BusConfigParser pack to the current parser.
6515         (process_test_valid_subdir): Renamed from process_test_subdir.
6516         (process_test_equiv_subdir): Added.  Walks through a directory,
6517         descending into each subdirectory and loading the config files
6518         it finds there.  If any subdirectory contains two config files
6519         that don't produce identical BusConfigParser structs, fail.
6520         For now, the BusConfigParser's BusPolicies are not compared.
6521         (bus_config_parser_test): Call both process_test_valid_subdir and
6522         process_test_equiv_subdir.
6523
6524         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6525         argument and pass it along to the call to bus_config_parser_new.
6526         Also made a few small changes to allow this code to compile.
6527
6528         * bus/config-loader-expat.c (bus_config_load): Take a parent
6529         argument and pass it along to the call to bus_config_parser_new.
6530
6531         * bus/bus.c (bus_context_new): Load the config file
6532         with a NULL parent argument.
6533
6534 2004-03-29  Michael Meeks  <michael@ximian.com>
6535
6536         * glib/dbus-gobject.c (introspect_properties): split
6537         out, fix mangled 'while' flow control.
6538         (introspect_signals): implement.
6539         (handle_introspect): update.
6540
6541 2004-03-29  Michael Meeks  <michael@ximian.com>
6542
6543         * glib/dbus-gobject.c (set_object_property): split out / 
6544         re-work, use the property type, and not the message type(!)
6545         (get_object_property): ditto.
6546
6547         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6548         (dbus_gvalue_marshal): make this code re-usable, needed
6549         for signals too, also on both proxy and server side.
6550         Re-write for more efficiency / readability.
6551
6552 2004-03-29  Michael Meeks  <michael@ximian.com>
6553
6554         * dbus/dbus-message.c
6555         (dbus_message_new_error_printf): impl.
6556
6557         * dbus/dbus-connection.c
6558         (dbus_connection_unregister_object_path): fix warning.
6559
6560         * configure.in: fix no-mono-installed situation.
6561
6562 2004-03-27  Havoc Pennington  <hp@redhat.com>
6563
6564         Patch from Timo Teräs:
6565         
6566         * tools/dbus-send.c (main): if --print-reply, assume type is
6567         method call; support boolean type args
6568         
6569         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6570         bunch of memleak and logic bugs
6571         
6572 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6573
6574         * mono/Arguments.cs:
6575         * mono/Introspector.cs:
6576         * mono/Handler.cs:
6577         * mono/InterfaceProxy.cs:
6578         * mono/Message.cs
6579         * mono/ProxyBuilder.cs:
6580         * mono/Service.cs:
6581         Added InterfaceProxy class to avoid building proxies for every
6582         object.
6583
6584         * dbus-message.h:
6585         * dbus-message.c (dbus_message_append_args_valist)
6586         (dbus_message_iter_get_object_path)
6587         (dbus_message_iter_get_object_path_array)
6588         (dbus_message_iter_append_object_path)
6589         (dbus_message_iter_append_object_path_array):
6590         Added object_path iter functions to handle OBJECT_PATH arguments
6591         
6592 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6593
6594         First checkin of mono bindings.
6595         * configure.in:
6596         * Makefile.am:
6597         Build stuff for the bindings
6598         * dbus-sharp.pc.in: Added for pkgconfig
6599         
6600 2004-03-21  Havoc Pennington  <hp@redhat.com>
6601
6602         * test/test-service.c (main): remove debug spew
6603
6604 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6605
6606         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6607         arrays
6608
6609         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6610         (dbus_message_iter_init_array_iterator)
6611         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6612         indicate whether the iterator is empty
6613
6614         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6615         warnings
6616
6617 2004-03-19  Havoc Pennington  <hp@redhat.com>
6618
6619         * NEWS: 0.21 updates
6620
6621         * configure.in: 0.21
6622
6623         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6624         
6625         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6626         you don't need pyrex to make dist
6627
6628         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6629         sources; run moc
6630         
6631 2004-03-18  Richard Hult  <richard@imendio.com>
6632
6633         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
6634         (dbus_message_set_auto_activation): Add doxygen docs.
6635
6636 2004-03-16  Richard Hult  <richard@imendio.com>
6637
6638         * bus/activation.c: (bus_activation_service_created),
6639         (bus_activation_send_pending_auto_activation_messages),
6640         (bus_activation_activate_service):
6641         * bus/activation.h:
6642         * bus/dispatch.c: (bus_dispatch),
6643         (check_nonexistent_service_auto_activation),
6644         (check_service_auto_activated),
6645         (check_segfault_service_auto_activation),
6646         (check_existent_service_auto_activation), (bus_dispatch_test):
6647         * bus/driver.c: (bus_driver_handle_activate_service):
6648         * bus/services.c: (bus_registry_acquire_service):
6649         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6650         (dbus_message_get_auto_activation):
6651         * dbus/dbus-message.h:
6652         * dbus/dbus-protocol.h: Implement auto-activation.
6653         
6654         * doc/dbus-specification.xml: Add auto-activation to the spec.
6655
6656 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6657
6658         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6659         fix a bug with CUSTOM types.
6660
6661         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6662         a unit test for this bug (used to fail).
6663
6664 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6665
6666         * bus/activation.c:
6667         (babysitter_watch_callback): notify all pending activations waiting for
6668           the same exec that the activation failed.
6669         (bus_activation_activate_service): shortcut the activation if we 
6670           already waiting for the same executable to start up.
6671
6672 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6673
6674         * bus/activation.c: 
6675         - Added service file reloading. 
6676           Each service files directory is kept in an hash table in 
6677           BusActivation and each BusActivationEntry knows what .service-file it
6678           was read from. So when you try to activate a service the bus will 
6679           check if it's been updated, removed or if new .service-files has 
6680           been installed.
6681         - Test code at the bottom for the service file reloading.
6682         * bus/test-main.c: (main):
6683         * bus/test.h:
6684         - added service reloading test.
6685         * dbus/dbus-sysdeps.c: 
6686         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6687
6688 2004-03-08  Michael Meeks  <michael@ximian.com>
6689
6690         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
6691         bail immediately if disconnected, to avoid busy loop.
6692
6693         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6694         cleanup cut/paste/inefficiency.
6695
6696 2004-03-01  David Zeuthen  <david@fubar.dk>
6697
6698         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6699         bug where args were used twice. This bug resulted in a segfault
6700         on a Debian/PPC system when starting the messagebus daemon. Include
6701         dbus-sysdeps.h for DBUS_VA_COPY
6702
6703         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6704
6705         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6706         appropriate va_copy implementation. From GLib
6707         
6708 2004-02-24  Joe Shaw  <joe@ximian.com>
6709
6710         * bus/services.c (bus_registry_acquire_service): We need to pass
6711         in the service name to dbus_set_error() to prevent a crash.
6712
6713 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6714
6715         * AUTHORS: Reveal my True identity.
6716
6717 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6718
6719         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6720         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6721
6722 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6723
6724         * doc/TODO: Added not about better error check of configuration files.
6725
6726 2003-12-02  Richard Hult  <richard@imendio.com>
6727
6728         * Update AFL version to 2.0 throughout the source files to reflect
6729         the update that was done a while ago.
6730
6731 2003-12-02  Richard Hult  <richard@imendio.com>
6732
6733         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6734         wrote_dict_key to FALSE on the iter that the dict is appended to,
6735         just like when appending other types. Fixes a bug where a dict
6736         couldn't be put inside a dict.
6737         (dbus_message_iter_append_dict_key): Fix typo in warning message.
6738         (message_iter_test, _dbus_message_test): Add test case for dict
6739         inside dict.
6740
6741 2003-12-01  David Zeuthen  <david@fubar.dk>
6742
6743         * python/dbus.py: Add the actual message when calling the reciever
6744         of a signal such that parameters can be inspected. Add the method
6745         remove_signal_receiver
6746         
6747 2003-11-26  Mikael Hallendal  <micke@imendio.com>
6748
6749         * bus/*.[ch]:
6750         * dbus/*.[ch]:
6751         * glib/*.[ch]: Made ref functions return the pointer
6752
6753 2003-11-25  Zack Rusin  <zack@kde.org>
6754
6755         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6756
6757         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
6758         wrappers,
6759
6760         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
6761         the Integrator and to better fit with the server,
6762
6763 2003-11-24  Zack Rusin  <zack@kde.org>
6764
6765         * qt/connection.h, qt/connection.cpp: removing initDbus method since
6766         the integrator handles it now
6767
6768         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6769         since QTimer wasn't really meant to be used the way DBusTimeout is
6770
6771 2003-11-24  Zack Rusin  <zack@kde.org>
6772
6773         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
6774         Integrator class which integrates D-BUS with the Qt event loop,
6775
6776         * qt/connection.h, qt/connection.cpp: Move all the code which
6777         was dealing with D-BUS integration to the Integrator class,
6778         and start using Integrator,
6779
6780 2003-11-23  Zack Rusin  <zack@kde.org>
6781
6782         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
6783         wrapper
6784
6785         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6786         switching namespaces to DBusQt, reworking the class,
6787
6788         * Makefile.cvs: switching dependencies so that it matches KDE 
6789         schematics,
6790         
6791         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
6792         the library
6793
6794 2003-11-19  Havoc Pennington  <hp@redhat.com>
6795
6796         * NEWS: update
6797
6798         * configure.in: bump version to 0.20
6799
6800         * configure.in (have_qt): add yet another place to look for qt
6801         (someone hand trolltech a .pc file...)
6802
6803 2003-11-01  Havoc Pennington  <hp@redhat.com>
6804
6805         * doc/dbus-specification.xml: add state machine docs on the auth
6806         protocol; just a first draft, I'm sure it's wrong.      
6807
6808 2003-10-28  David Zeuthen  <david@fubar.dk>
6809
6810         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6811         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6812         
6813 2003-10-28  Havoc Pennington  <hp@redhat.com>
6814
6815         * dbus/dbus-message.c (get_next_field): delete unused function
6816
6817 2003-10-28  Havoc Pennington  <hp@redhat.com>
6818
6819         * bus/expirelist.c (do_expiration_with_current_time): detect
6820         failure of the expire_func due to OOM
6821
6822         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6823
6824         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6825         NoReply error that's now created by the bus when the service exits
6826
6827 2003-10-28  Havoc Pennington  <hp@redhat.com>
6828
6829         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6830         tests for set_path, set_interface, set_member, etc.
6831
6832         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6833
6834         * dbus/dbus-message.c (set_string_field): always just delete and
6835         re-append the field; accept NULL for deletion
6836         (re_align_fields_recurse): reimplement
6837         
6838 2003-10-26  Havoc Pennington  <hp@redhat.com>
6839
6840         * dbus/dbus-connection.c: fix docs to properly describe the
6841         disconnected message
6842         (_dbus_connection_notify_disconnected): remove this function; 
6843         we can't synchronously add the disconnected message, we have to 
6844         do it after we've queued any remaining real messages
6845         (_dbus_connection_get_dispatch_status_unlocked): queue the
6846         disconnect message only if the transport has finished queueing all
6847         its real messages and is disconnected.
6848         (dbus_connection_disconnect): update the dispatch status here
6849
6850 2003-10-22  Havoc Pennington  <hp@redhat.com>
6851
6852         * bus/bus.c (bus_context_check_security_policy): fix up assertion
6853
6854         * bus/connection.c (bus_transaction_send_from_driver): set the
6855         destination to the connection's base service
6856
6857 2003-10-20  Havoc Pennington  <hp@redhat.com>
6858
6859         hmm, make check is currently not passing.
6860         
6861         * doc/dbus-specification.xml: add requirement that custom type
6862         names follow the same rules as interface names.
6863
6864         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6865         duplication and allow 'c' to be 'custom'; dict is now 'm' for
6866         'map'
6867
6868         * doc/dbus-specification.xml: update type codes to match
6869         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6870         CUSTOM. Add type OBJECT_PATH to the spec.
6871
6872 2003-10-17  Havoc Pennington  <hp@redhat.com>
6873
6874         * bus/driver.c (create_unique_client_name): use "." as separator
6875         in base service names instead of '-'
6876
6877         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6878         byte at the end of the string
6879
6880         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6881         optimization macros since string validation seems to be a slow
6882         point.
6883         
6884         * doc/dbus-specification.xml: restrict valid
6885         service/interface/member/error names. Add test suite code for the
6886         name validation.
6887
6888         * dbus/dbus-string.c: limit service/interface/member/error names 
6889         to [0-9][A-Z][a-z]_
6890
6891         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6892         format arg to verbose spew
6893
6894         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6895         memory, return instead of g_error
6896
6897         * test/test-service.c (path_message_func): support emitting a
6898         signal on request
6899
6900         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
6901         activation bus type if DBUS_BUS_ACTIVATION was set; default to
6902         assuming the activation bus was the session bus so that services
6903         started manually will still register.
6904         (init_connections_unlocked): fix so that in OOM situation we get
6905         the same semantics when retrying the function
6906         
6907         * test/test-service.c (main): change to use path registration, to
6908         test those codepaths; register with DBUS_BUS_ACTIVATION rather
6909         than DBUS_BUS_SESSION
6910
6911 2003-10-16  Havoc Pennington  <hp@redhat.com>
6912
6913         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
6914
6915         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
6916         coverage of the tests
6917         (coverage-report.txt): don't move the .da and .bbg files around
6918
6919 2003-10-16  Havoc Pennington  <hp@redhat.com>
6920
6921         * bus/bus.c (struct BusContext): remove struct field I didn't mean
6922         to put there
6923
6924 2003-10-16  Havoc Pennington  <hp@redhat.com>
6925
6926         * bus/connection.c (bus_pending_reply_expired): either cancel or
6927         execute, not both
6928         (bus_connections_check_reply): use unlink, not remove_link, as we
6929         don't want to free the link; fixes double free mess
6930
6931         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
6932         where no reply was received
6933
6934         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
6935         fix a refcount leak
6936
6937         * bus/signals.c (match_rule_matches): add special cases for the
6938         bus driver, so you can match on sender/destination for it.
6939
6940         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
6941         DBUS_PRINT_BACKTRACE is set
6942
6943         * dbus/dbus-internals.c: add pid to assertion failure messages
6944
6945         * dbus/dbus-connection.c: add message type code to the debug spew
6946
6947         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
6948         sender=foo not service=foo
6949
6950         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
6951         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
6952         DBUS_ACTIVATION_ADDRESS instead
6953
6954         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
6955         DBUS_SYSTEM_BUS_ADDRESS if appropriate
6956
6957         * bus/bus.c (bus_context_new): handle OOM copying bus type into
6958         context struct
6959
6960         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
6961         (dbus_message_iter_get_object_path_array): new function (half
6962         finished, disabled for the moment)
6963         
6964         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
6965         DBUS_MESSAGE_TYPE_ERROR
6966
6967         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
6968         avoid redirecting stderr to /dev/null
6969         (babysit): close stdin if not doing the "exit_with_session" thing
6970
6971         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
6972         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
6973         stdout/stdin, so things don't get confused
6974         
6975         * bus/system.conf.in: fix to allow replies, I modified .conf
6976         instead of .conf.in again.
6977
6978 2003-10-14  David Zeuthen  <david@fubar.dk>
6979
6980         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
6981         argtype to arg_type when raising unknown arg type exception.
6982         Changed type list to reflect the changes in dbus-protocol.h so 
6983         the bindings actually work.
6984
6985 2003-10-14  Havoc Pennington  <hp@redhat.com>
6986
6987         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
6988         to have a bug keeping it from outputting the .da files sometimes
6989         (string_get_string): don't append garbage nul bytes to the string.
6990
6991 2003-10-15  Seth Nickell  <seth@gnome.org>
6992
6993         * python/Makefile.am:
6994
6995         Include dbus_h_wrapper.h in the dist tarball.
6996
6997 2003-10-14  Havoc Pennington  <hp@redhat.com>
6998
6999         * bus/bus.c (bus_context_check_security_policy): revamp this to
7000         work more sanely with new policy-based requested reply setup
7001
7002         * bus/connection.c (bus_transaction_send_from_driver): set bus
7003         driver messages as no reply
7004
7005         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7006         requested_reply attribute on allow/deny rules
7007
7008         * bus/system.conf: add <allow requested_reply="true"/>
7009
7010         * bus/driver.c (bus_driver_handle_message): fix check for replies
7011         sent to the bus driver, which was backward. How did this ever work
7012         at all though? I think I'm missing something.
7013
7014         * dbus/dbus-message.c (decode_header_data): require error and
7015         method return messages to have a reply serial field to be valid
7016         (_dbus_message_loader_queue_messages): break up this function;
7017         validate that reply serial and plain serial are nonzero; 
7018         clean up the OOM/error handling.
7019         (get_uint_field): don't return -1 from this
7020         (dbus_message_create_header): fix signed/unsigned bug
7021
7022         * bus/connection.c (bus_connections_expect_reply): save serial of
7023         the incoming message, not reply serial
7024
7025 2003-10-14  Havoc Pennington  <hp@redhat.com>
7026
7027         * bus/connection.c: implement pending reply tracking using
7028         BusExpireList
7029
7030         * bus/bus.c (bus_context_check_security_policy): verify that a
7031         reply is pending in order to allow a reply to be sent. Deny 
7032         messages of unknown type.
7033
7034         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7035
7036         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7037         (bus_context_get_reply_timeout): new
7038
7039 2003-10-13  Seth Nickell  <seth@gnome.org>
7040
7041         * python/Makefile.am:
7042
7043         Pass "make distcheck": remove a couple files from DIST_FILES
7044         that weren't included in the final version.
7045
7046 2003-10-12  Havoc Pennington  <hp@pobox.com>
7047
7048         Added test code that 1) starts an actual bus daemon and 2) uses
7049         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7050         more testing possible, but this is the basic framework.
7051         
7052         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7053         empty proxy lists from the proxy list hash
7054
7055         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7056         couple of return_if_fail checks
7057
7058         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7059         to allocate, so everything is cleared to NULL as it should be.
7060
7061         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7062         source as data to dbus_connection_set_timeout_functions() as the 
7063         timeout functions expected
7064
7065         * test/glib/run-test.sh: add a little script to start up a message
7066         bus and run tests using it
7067
7068         * tools/dbus-launch.1: updates
7069
7070         * tools/dbus-launch.c (main): add --config-file option
7071
7072         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7073         that could never be reached.
7074
7075         * dbus/dbus-message.c (dbus_message_new_method_return) 
7076         (dbus_message_new_error, dbus_message_new_signal): set the
7077         no-reply-expected flag on all these. Redundant, but may
7078         as well be consistent.
7079
7080 2003-10-11  Havoc Pennington  <hp@pobox.com>
7081
7082         * test/decode-gcov.c (function_solve_graph): make broken block
7083         graph a nonfatal error since it seems to be broken. Need to debug
7084         this.
7085
7086         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7087         can't just check type > INVALID < LAST anymore
7088
7089         * dbus/dbus-message.c (dbus_message_get_signature): new function
7090         (dbus_message_has_signature): new function
7091         (struct DBusMessage): add signature field (right now it isn't sent
7092         over the wire, just generated on the fly)
7093         (dbus_message_copy): copy the signature, and init strings to
7094         proper length to avoid some reallocs
7095         (dbus_message_iter_init_array_iterator): return void, since it
7096         can't fail
7097         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7098         (_dbus_message_loader_queue_messages): add silly temporary hack to
7099         fill in message->signature on load
7100
7101         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7102         characters, so they are relatively human-readable.
7103
7104 2003-10-11  Havoc Pennington  <hp@pobox.com>
7105
7106         * dbus/dbus-message.c (_dbus_message_test): add more test
7107         coverage, but #if 0 for now since they uncover a bug 
7108         not fixed yet; I think in re_align_field_recurse()
7109         (re_align_field_recurse): add FIXME about broken assertion
7110
7111         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7112
7113         * bus/connection.c: share a couple code bits with expirelist.c
7114
7115         * bus/expirelist.h, bus/expirelist.c: implement a generic
7116         expire-items-after-N-seconds facility, was going to share between
7117         expiring connections and replies, decided not to use for expiring
7118         connections for now.
7119
7120         * COPYING: include AFL 2.0 (still need to change all the file headers)
7121
7122 2003-10-09  Havoc Pennington  <hp@redhat.com>
7123
7124         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7125         gcc 3.3. Not that we do anything about it yet.
7126
7127         * bus/signals.c (bus_match_rule_parse): impose max length on the
7128         match rule text
7129
7130         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7131
7132 2003-10-09  Havoc Pennington  <hp@redhat.com>
7133
7134         Make matching rules theoretically work (add parser).
7135         
7136         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7137         the case where destination is explicitly specified as bus driver
7138         and someone else is eavesdropping.
7139         
7140         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7141         definition of eavesdropping and assertion
7142
7143         * tools/dbus-send.c (main): use dbus_message_type_from_string
7144
7145         * bus/signals.c (bus_match_rule_parse): implement
7146
7147         * dbus/dbus-message.c (dbus_message_type_from_string): new
7148
7149         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7150
7151 2003-10-02  Havoc Pennington  <hp@pobox.com>
7152
7153         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7154         dbus_gproxy_oneway_call
7155
7156         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7157         (dbus_server_setup_with_g_main): fix to allow calling them more
7158         than once on the same args
7159         (dbus_bus_get_with_g_main): new function
7160
7161 2003-10-02  Havoc Pennington  <hp@redhat.com>
7162
7163         * doc/dbus-tutorial.xml: write some stuff
7164
7165 2003-09-29  Havoc Pennington  <hp@pobox.com>
7166
7167         * configure.in: split checks for Doxygen from XML docs, check for
7168         xmlto
7169
7170         * doc/Makefile.am: XML-ify all the docs, and add a blank
7171         dbus-tutorial.xml
7172
7173 2003-09-29  Havoc Pennington  <hp@pobox.com>
7174
7175         * Merge dbus-object-names branch. To see the entire patch 
7176         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7177         it's huuuuge though.
7178         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7179         
7180 2003-09-28  Havoc Pennington  <hp@pobox.com>
7181
7182         * HACKING: update to reflect new server
7183
7184 2003-09-26  Seth Nickell  <seth@gnome.org>
7185
7186         * python/dbus.py:
7187         * python/examples/example-signals.py:
7188
7189         Start implementing some notions of signals. The API
7190         is really terrible, but they sort of work (with the
7191         exception of being able to filter by service, and to
7192         transmit signals *as* a particular service). Need to
7193         figure out how to make messages come from the service
7194         we registered :-(
7195         
7196         * python/dbus_bindings.pyx.in:
7197
7198         Removed duplicate message_handler callbacks.
7199         
7200 2003-09-25  Havoc Pennington  <hp@redhat.com>
7201
7202         * bus/session.conf.in: fix my mess
7203
7204 2003-09-25  Havoc Pennington  <hp@pobox.com>
7205
7206         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7207
7208 2003-09-25  Seth Nickell  <seth@gnome.org>
7209
7210         * python/examples/example-service.py:
7211
7212         Johan notices complete wrong code in example-service, but
7213         completely wrong in a way that works exactly the same (!).
7214         Johan is confused, how could this possibly work? Example
7215         code fails to serve purpose of making things clear.
7216         Seth fixes.
7217
7218 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7219
7220         * doc/dbus-specification.sgml: don't require header fields
7221         to be 4-byte aligned and specify that fields should be
7222         distinguished from padding by the fact that zero is not
7223         a valid field name.
7224         
7225         * doc/TODO: remove re-alignment item and add item to doc
7226         the OBJECT_PATH type.
7227         
7228         * dbus/dbus-message.c:
7229         (HeaderField): rename the original member to value_offset
7230         and introduce a name_offset member to keep track of where
7231         the field actually begins.
7232         (adjust_field_offsets): remove.
7233         (append_int_field), (append_uint_field),
7234         (append_string_field): don't align the start of the header
7235         field to a 4-byte boundary.
7236         (get_next_field): impl finding the next marhsalled field
7237         after a given field.
7238         (re_align_field_recurse): impl re-aligning a number of
7239         already marshalled fields.
7240         (delete_field): impl deleting a field of any type and
7241         re-aligning any following fields.
7242         (delete_int_or_uint_field), (delete_string_field): remove.
7243         (set_int_field), (set_uint_field): no need to re-check
7244         that we have the correct type for the field.
7245         (set_string_field): ditto and impl re-aligning any
7246         following fields.
7247         (decode_header_data): update to take into account that
7248         the fields aren't 4-byte aligned any more and the new
7249         way to distinguish padding from header fields. Also,
7250         don't exit when there is too much header padding.
7251         (process_test_subdir): print the directory.
7252         (_dbus_message_test): add test to make sure a following
7253         field is re-aligned correctly after field deletion.
7254         
7255         * dbus/dbus-string.[ch]:
7256         (_dbus_string_insert_bytes): rename from insert_byte and
7257         allow the insert of multiple bytes.
7258         (_dbus_string_test): test inserting multiple bytes.
7259
7260         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7261         warning note to docs about having to re-align any
7262         marshalled values following the string.
7263         
7264         * dbus/dbus-message-builder.c:
7265         (append_string_field), (_dbus_message_data_load):
7266         don't align the header field.
7267         
7268         * dbus/dbus-auth.c: (process_test_subdir): print the
7269         directory.
7270         
7271         * test/break-loader.c: (randomly_add_one_byte): upd. for
7272         insert_byte change.
7273         
7274         * test/data/invalid-messages/bad-header-field-alignment.message:
7275         new test case.
7276         
7277         * test/data/valid-messages/unknown-header-field.message: shove
7278         a dict in the unknown field.
7279
7280 2003-09-25  Seth Nickell  <seth@gnome.org>
7281
7282         * python/dbus.py:
7283         * python/dbus_bindings.pyx.in:
7284
7285         Handle return values.
7286         
7287         * python/examples/example-client.py:
7288         * python/examples/example-service.py:
7289
7290         Pass back return values from the service to the client.
7291         
7292 2003-09-24  Seth Nickell  <seth@gnome.org>
7293
7294         * python/dbus.py:
7295
7296         Connect Object methods (when you are sharing an object) up... pass
7297         in a list of methods to be shared. Sharing all the methods just
7298         worked out too weird. You can now create nice Services over the
7299         DBus in Python. :-)
7300         
7301         * python/dbus_bindings.pyx.in:
7302
7303         Keep references to user_data tuples passed into C functions so 
7304         Python doesn't garbage collect on us.
7305
7306         Implement MethodReturn and Error subclasses of Message for creating
7307         DBusMessage's of those types.
7308         
7309         * python/examples/example-client.py:
7310         * python/examples/example-service.py:
7311
7312         Simple example code showing both how create DBus services and objects,
7313         and how to use them.
7314
7315 2003-09-23  Havoc Pennington  <hp@pobox.com>
7316
7317         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7318
7319 2003-09-23  Havoc Pennington  <hp@redhat.com>
7320
7321         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7322         (dbus_gproxy_disconnect_signal): implement
7323         (dbus_gproxy_manager_remove_signal_match): implement
7324         (dbus_gproxy_manager_add_signal_match): implement
7325         (dbus_gproxy_oneway_call): implement
7326
7327 2003-09-23  Havoc Pennington  <hp@pobox.com>
7328
7329         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7330         subclass. This means dropping the transparent thread safety of the
7331         proxy; you now need a separate proxy per-thread, or your own
7332         locking on the proxy. Probably right anyway.
7333         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7334
7335 2003-09-22  Havoc Pennington  <hp@redhat.com>
7336
7337         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7338
7339 2003-09-21  Seth Nickell  <seth@gnome.org>
7340
7341         First checkin of the Python bindings.
7342         
7343         * python/.cvsignore:
7344         * python/Makefile.am:
7345         * python/dbus_bindings.pyx.in:
7346         * python/dbus_h_wrapper.h:
7347
7348         Pieces for Pyrex to operate on, building a dbus_bindings.so
7349         python module for low-level access to the DBus APIs.
7350         
7351         * python/dbus.py:
7352
7353         High-level Python module for accessing DBus objects.
7354
7355         * configure.in:
7356         * Makefile.am:
7357
7358         Build stuff for the python bindings.
7359
7360         * acinclude.m4:
7361
7362         Extra macro needed for finding the Python C header files.
7363
7364 2003-09-21  Havoc Pennington  <hp@pobox.com>
7365
7366         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7367         implementing the proxy manager, didn't get very far.
7368
7369         * dbus/dbus-bus.c (dbus_bus_add_match): new
7370         (dbus_bus_remove_match): new
7371
7372         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7373         path_name argument; adjust the other not-yet-implemented 
7374         gproxy constructors to be what I think they should be.
7375
7376 2003-09-21  Havoc Pennington  <hp@pobox.com>
7377
7378         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7379         by default for message bus connections.
7380
7381         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7382         exit_on_disconnect flag is set and we process the disconnected
7383         signal.
7384         (dbus_connection_set_exit_on_disconnect): new function
7385
7386 2003-09-21  Havoc Pennington  <hp@pobox.com>
7387
7388         Get matching rules mostly working in the bus; only actually
7389         parsing the rule text remains. However, the client side of
7390         "signal connections" hasn't been started, this patch is only the
7391         bus side.
7392         
7393         * dbus/dispatch.c: fix for the matching rules changes
7394         
7395         * bus/driver.c (bus_driver_handle_remove_match)
7396         (bus_driver_handle_add_match): send an ack reply from these
7397         method calls
7398
7399         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7400         arguments, reported by Seth Nickell
7401
7402         * bus/config-parser.c (append_rule_from_element): support
7403         eavesdrop=true|false attribute on policies so match rules 
7404         can be prevented from snooping on the system bus.
7405
7406         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7407         and "destination" in attribute names; fix some docs bugs; 
7408         add eavesdrop=true|false attribute
7409
7410         * bus/driver.c (bus_driver_handle_add_match)
7411         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7412         messages
7413
7414         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7415         rid of broadcast service concept, signals are just always broadcast
7416
7417         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7418         mostly implement matching rules stuff (currently only exposed as signal
7419         connections)
7420
7421 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7422
7423         * doc/dbus-specification.sgml: Change the header field name
7424         to be an enum and update the rest of the spec to reference
7425         the fields using the conventinal name.
7426
7427         * dbus/dbus-protocol.h: update to reflect the spec.
7428
7429         * doc/TODO: add item to remove the 4 byte alignment requirement.
7430         
7431         * dbus/dbus-message.c: Remove the code to generalise the
7432         header/body length and serial number header fields as named
7433         header fields so we can reference field names using the 
7434         protocol values.
7435         (append_int_field), (append_uint_field), (append_string_field):
7436         Append the field name as a byte rather than four chars.
7437         (delete_int_or_uint_field), (delete_string_field): reflect the
7438         fact that the field name and typecode now occupy 4 bytes instead
7439         of 8.
7440         (decode_string_field), (decode_header_data): update to reflect
7441         protocol changes and move the field specific encoding from
7442         decode_string_field() back into decode_header_data().
7443         
7444         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7445         Add utility to aid debugging.
7446         
7447         * dbus/dbus-message-builder.c:
7448         (append_string_field), (_dbus_message_data_load): Update to
7449         reflect protocol changes; Change the FIELD_NAME directive
7450         to HEADER_FIELD and allow it to take the field's conventional
7451         name rather than the actual value.
7452         
7453         * test/data/*/*.message: Update to use HEADER_FIELD instead
7454         of FIELD_NAME; Always align the header on an 8 byte boundary
7455         *before* updating the header length.
7456
7457 2003-09-15  Havoc Pennington  <hp@pobox.com>
7458
7459         * dbus/dbus-pending-call.c: add the get/set object data
7460         boilerplate as for DBusConnection, etc. Use generic object data
7461         for the notify callback.
7462
7463         * glib/dbus-gparser.c (parse_node): parse child nodes
7464
7465         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7466         
7467         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7468         contain functions shared between the convenience lib and the
7469         installed lib
7470
7471         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7472         -export-symbols-regex to the GLib library
7473
7474         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7475         fix the locking in here, and add a default handler for
7476         Introspect() that just returns sub-nodes.
7477
7478 2003-09-14  Havoc Pennington  <hp@pobox.com>
7479
7480         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7481         rather than gfoo consistent
7482
7483         * glib/dbus-gproxy.h: delete for now, move contents to
7484         dbus-glib.h, because the include files don't work right since we
7485         aren't in the dbus/ subdir.
7486         
7487         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7488         (dbus_gproxy_end_call): finish
7489         (dbus_gproxy_begin_call): finish
7490
7491         * glib/dbus-gmain.c (dbus_set_g_error): new
7492
7493         * glib/dbus-gobject.c (handle_introspect): include information
7494         about child nodes in the introspection
7495
7496         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7497         function to help in implementation of introspection
7498
7499         * dbus/dbus-object-tree.c
7500         (_dbus_object_tree_list_registered_and_unlock): new function
7501
7502 2003-09-12  Havoc Pennington  <hp@pobox.com>
7503
7504         * glib/dbus-gidl.h: add common base class for all the foo_info
7505         types
7506
7507         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7508         similar to kdcop
7509
7510         * test/Makefile.am: try test srcdir -ef . in addition to test
7511         srcdir = ., one of them should work (yeah lame)
7512         
7513         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7514         library
7515         
7516         * glib/dbus-gparser.h: make description_load routines return
7517         NodeInfo* not Parser*
7518
7519         * Makefile.am (SUBDIRS): build test dir after all library dirs
7520
7521         * configure.in: add GTK+ detection
7522
7523 2003-09-07  Havoc Pennington  <hp@pobox.com>
7524
7525         * Make Doxygen contented.
7526
7527 2003-09-07  Havoc Pennington  <hp@pobox.com>
7528
7529         * doc/dbus-specification.sgml: more updates
7530
7531 2003-09-06  Havoc Pennington  <hp@pobox.com>
7532
7533         * doc/dbus-specification.sgml: partial updates
7534
7535         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7536         zillionth time; hopefully I edited the right file this time.
7537
7538         * bus/config-parser.c (append_rule_from_element): support
7539         send_type, send_path, receive_type, receive_path
7540
7541         * bus/policy.c: add message type and path to the list of things
7542         that can be "firewalled"
7543
7544 2003-09-06  Havoc Pennington  <hp@pobox.com>
7545
7546         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7547         (dbus_connection_register_object_path): make this not handle
7548         messages to paths below the given path
7549
7550 2003-09-03  Havoc Pennington  <hp@pobox.com>
7551
7552         * test/glib/Makefile.am: add this with random glib-linked test
7553         programs
7554
7555         * glib/Makefile.am: remove the random test programs from here,
7556         leave only the unit tests
7557
7558         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7559         uscore/javacaps conversion, and fix     
7560         (get_object_property, set_object_property): change to .NET
7561         convention for mapping props to methods, set_FooBar/get_FooBar, 
7562         since one language has such a convention we may as well copy it. 
7563         Plus real methods in either getFooBar or get_foo_bar style won't 
7564         collide with this convention.
7565
7566 2003-09-01  Havoc Pennington  <hp@pobox.com>
7567
7568         * glib/dbus-gparser.c: implement
7569
7570         * glib/dbus-gobject.c: start implementing skeletons support
7571
7572         * configure.in: when disabling checks/assert, also define
7573         G_DISABLE_ASSERT and G_DISABLE_CHECKS
7574
7575 2003-09-01  Havoc Pennington  <hp@pobox.com>
7576
7577         * glib/Makefile.am: rearrange a bunch of files and get "make
7578         check" framework set up
7579
7580 2003-08-31  Havoc Pennington  <hp@pobox.com>
7581
7582         * fix build with --disable-tests
7583
7584 2003-08-30  Havoc Pennington  <hp@pobox.com>
7585
7586         * dbus/dbus-connection.c: purge DBusMessageHandler
7587
7588         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
7589         use callbacks everywhere
7590
7591 2003-08-30  Havoc Pennington  <hp@pobox.com>
7592
7593         * test/data/valid-config-files/system.d/test.conf: change to 
7594         root for the user so warnings don't get printed
7595
7596         * dbus/dbus-message.c: add dbus_message_get_path,
7597         dbus_message_set_path
7598         
7599         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7600         dispatching to a path
7601
7602         * dbus/dbus-string.c (_dbus_string_validate_path): add
7603
7604         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7605         (_dbus_marshal_object_path): implement
7606
7607         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
7608         to contain the path to the target object
7609         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7610         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7611
7612 2003-08-30  Havoc Pennington  <hp@pobox.com>
7613
7614         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7615
7616 2003-08-29  Havoc Pennington  <hp@pobox.com>
7617
7618         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7619         registered
7620         (struct DBusObjectSubtree): shrink this
7621         a lot, since we may have a lot of them
7622         (_dbus_object_tree_free_all_unlocked): implement
7623         (_dbus_object_tree_dispatch_and_unlock): implement
7624
7625 2003-08-29  Havoc Pennington  <hp@pobox.com>
7626
7627         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7628
7629 2003-08-28  Havoc Pennington  <hp@pobox.com>
7630
7631         purge DBusObjectID
7632         
7633         * dbus/dbus-connection.c: port to no ObjectID, create a
7634         DBusObjectTree, rename ObjectTree to ObjectPath in public API
7635
7636         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
7637         everything except UnregisterFunction and MessageFunction
7638         
7639         * dbus/dbus-marshal.c: port away from DBusObjectID, 
7640         add DBUS_TYPE_OBJECT_PATH
7641         
7642         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
7643         dbus/dbus-objectid.[hc]: remove these, we are moving to 
7644         path-based object IDs
7645
7646 2003-08-25  Havoc Pennington  <hp@pobox.com>
7647
7648         Just noticed that dbus_message_test is hosed, I wonder when I
7649         broke that. I thought make check was passing earlier...
7650         
7651         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
7652         container tree, will replace most of dbus-object-registry
7653
7654         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7655         screwup
7656
7657 2003-08-19  Havoc Pennington  <hp@pobox.com>
7658
7659         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7660         (dbus_message_is_error): fix this function
7661
7662         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7663         match
7664
7665         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7666         reflect clarified man page
7667         (bus_client_policy_check_can_send): ditto
7668         
7669         * bus/session.conf.in: fixup
7670
7671         * bus/system.conf.in: fixup
7672
7673 2003-08-18  Havoc Pennington  <hp@redhat.com>
7674
7675         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7676
7677         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7678         dumb bug created earlier (wrong order of args to
7679         decode_header_data())
7680         
7681         * tools/dbus-send.c: port
7682
7683         * tools/dbus-print-message.c (print_message): port
7684
7685         * test/data/*messages: port all messages over
7686         
7687         * dbus/dbus-message-builder.c: support including 
7688         message type
7689         
7690         * bus/driver.c: port over
7691         
7692         * bus/dispatch.c: port over to new stuff
7693
7694         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7695         rename disconnect signal to "Disconnected"
7696
7697 2003-08-17  Havoc Pennington  <hp@pobox.com>
7698
7699         This doesn't compile yet, but syncing up so I can hack on it from
7700         work. What are branches for if not broken code? ;-)
7701         
7702         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7703         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7704         DBUS_HEADER_FIELD_ERROR_NAME
7705         
7706         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7707         for the interface+member pairs
7708         (string_hash): change to use g_str_hash algorithm
7709         (find_direct_function, find_string_function): refactor these to
7710         share most code.
7711         
7712         * dbus/dbus-message.c: port all of this over to support 
7713         interface/member fields instead of name field
7714
7715         * dbus/dbus-object-registry.c: port over
7716         
7717         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7718         from _dbus_string_validate_name
7719
7720         * bus/dbus-daemon-1.1: change file format for the 
7721         <deny>/<allow> stuff to match new message naming scheme
7722
7723         * bus/policy.c: port over
7724
7725         * bus/config-parser.c: parse new format
7726         
7727 2003-08-16  Havoc Pennington  <hp@pobox.com>
7728
7729         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7730         broken assertion
7731
7732         * glib/dbus-gproxy.c: some hacking
7733
7734 2003-08-15  Havoc Pennington  <hp@redhat.com>
7735
7736         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7737
7738         * dbus/dbus-connection.c
7739         (dbus_connection_send_with_reply_and_block): factor out internals;
7740         change to convert any error replies to DBusError instead of 
7741         returning them as a message
7742
7743 2003-08-15  Havoc Pennington  <hp@pobox.com>
7744
7745         * dbus/dbus-connection.c, 
7746         dbus/dbus-pending-call.c: Finish the pending call stuff
7747
7748 2003-08-14  Havoc Pennington  <hp@redhat.com>
7749
7750         * dbus/dbus-pending-call.c: start on new object that will replace
7751         DBusMessageHandler and ReplyHandlerData for tracking outstanding
7752         replies
7753
7754         * dbus/dbus-gproxy.c: start on proxy object used to communicate
7755         with remote interfaces
7756
7757         * dbus/dbus-gidl.c: do the boring boilerplate in here
7758         
7759 2003-08-12  Havoc Pennington  <hp@pobox.com>
7760
7761         * bus/dispatch.c (bus_dispatch): make this return proper 
7762         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7763
7764         * dbus/dbus-errors.c (dbus_set_error): use
7765         _dbus_string_append_printf_valist
7766
7767         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7768         (_dbus_string_append_printf): new
7769
7770         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7771         UNKNOWN_METHOD
7772
7773         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7774         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7775         message is unhandled.
7776
7777 2003-08-11  Havoc Pennington  <hp@pobox.com>
7778
7779         * bus/test.c (client_disconnect_handler): change to return
7780         HANDLED (would have been REMOVE_MESSAGE)
7781
7782         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7783         HANDLED/NOT_YET_HANDLED instead of
7784         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
7785         should be used.
7786
7787 2003-08-10  Havoc Pennington  <hp@pobox.com>
7788
7789         * tools/dbus-send.c (main): add --type argument, for now
7790         supporting only method_call and signal types.
7791
7792         * tools/dbus-print-message.c: print message type
7793
7794         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7795         init connection->objects
7796
7797         * doc/dbus-specification.sgml: fix sgml
7798
7799         * bus/*.c: port over to object-instance API changes
7800
7801         * test/test-service.c: ditto
7802         
7803         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7804         name, we will have to fix up the rest of the code to also handle
7805         this
7806         (dbus_message_new): generic message-creation call
7807         (set_string_field): allow appending name field
7808
7809 2003-08-06  Havoc Pennington  <hp@pobox.com>
7810
7811         * dbus/dbus-object-registry.c: implement signal connection 
7812         and dispatch
7813
7814         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7815
7816         * dbus/dbus-internals.c (_dbus_memdup): new function
7817
7818 2003-08-02  Havoc Pennington  <hp@pobox.com>
7819
7820         * dbus/dbus-message.c (dbus_message_get_no_reply)
7821         (dbus_message_set_no_reply): add these and remove
7822         set_is_error/get_is_error
7823
7824         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
7825         remove the ERROR flag, since there's now an ERROR type
7826
7827 2003-08-01  Havoc Pennington  <hp@pobox.com>
7828
7829         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7830         implement
7831
7832         * dbus/dbus-message.c (dbus_message_get_type): new function
7833
7834         * doc/dbus-specification.sgml: add "type" byte to messages
7835
7836 2003-08-01  Havoc Pennington  <hp@pobox.com>
7837
7838         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7839         a message type enum to distinguish kinds of message
7840         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
7841         that need not be replied to
7842
7843 2003-08-01  Havoc Pennington  <hp@pobox.com>
7844
7845         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7846         (unpack_8_octets): fix no-64-bit-int bug
7847
7848         * dbus/dbus-object-registry.c (validate_id): validate the 
7849         connection ID bits, not just the instance ID.
7850
7851         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7852         the connection-global 33 bits of the object ID
7853
7854         * dbus/dbus-object-registry.c (info_from_entry): fill in 
7855         object ID in the new way
7856
7857         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
7858         define server/client/instance bits.
7859
7860 2003-07-30  Havoc Pennington  <hp@pobox.com>
7861
7862         * dbus/dbus-connection.c (dbus_connection_register_object): fix
7863         build
7864
7865 2003-07-13  Havoc Pennington  <hp@pobox.com>
7866
7867         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7868         fields to DBusObjectVTable and DBusObjectInfo
7869
7870 2003-07-12  Havoc Pennington  <hp@pobox.com>
7871
7872         * dbus/dbus-object-registry.c: implement unit test,
7873         fix bugs discovered in process
7874
7875         * dbus/dbus-connection.c: remove handler_table and
7876         register_handler(), add DBusObjectRegistry usage
7877
7878         * dbus/dbus-objectid.c (dbus_object_id_is_null)
7879         (dbus_object_id_set_null): new functions
7880
7881 2003-07-08  Havoc Pennington  <hp@pobox.com>
7882
7883         * dbus/dbus-object.c: implement some of this
7884
7885         * dbus/dbus-object-registry.c
7886         (_dbus_object_registry_add_and_unlock): fill in the object_id out
7887         param
7888         (_dbus_object_registry_new): handle OOM
7889
7890 2003-07-08  Havoc Pennington  <hp@pobox.com>
7891
7892         * dbus/dbus-object.h: sketch out an API for registering objects
7893         with a connection, that allows us to use as little as 24 bytes
7894         per object and lets application code represent an object in 
7895         any conceivable way.
7896
7897         * dbus/dbus-object-registry.c: implement the hard bits of the
7898         DBusConnection aspect of object API. Not yet wired up.
7899         
7900 2003-07-06  Havoc Pennington  <hp@pobox.com>
7901
7902         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
7903         (_dbus_marshal_object_id): new
7904         (_dbus_demarshal_object_id): new
7905         (_dbus_marshal_get_arg_end_pos): support object ID type, and
7906         consolidate identical switch cases. Don't conditionalize handling
7907         of DBUS_TYPE_UINT64, need to handle the type always.
7908         (_dbus_marshal_validate_arg): consolidate identical cases, and
7909         handle DBUS_TYPE_OBJECT_ID
7910
7911         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
7912
7913         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
7914
7915 2003-09-28  Havoc Pennington  <hp@pobox.com>
7916
7917         * real 0.13 release
7918
7919 2003-09-28  Havoc Pennington  <hp@pobox.com>
7920
7921         * doc/Makefile.am (dbus-specification.html): testing a funky hack
7922         to work with Debian db2html
7923
7924 2003-09-28  Havoc Pennington  <hp@pobox.com>
7925
7926         * configure.in: 0.13
7927
7928         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
7929         stylesheet-images for benefit of Debian
7930         
7931         Change back to using filesystem-linked sockets for the system
7932         bus, so only root can create the default system bus address.
7933         
7934         * bus/system.conf.in: change to use
7935         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7936
7937         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
7938         from here.
7939
7940         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7941         here, and AC_DEFINE DBUS_SYSTEM_PATH
7942
7943 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7944
7945         * doc/TODO:
7946         * doc/busconfig.dtd:
7947         Add busconfig DTD.
7948         
7949 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7950
7951         * doc/dbus-specification.sgml:
7952         Add activation reply values.
7953         
7954 2003-08-05  Havoc Pennington  <hp@redhat.com>
7955
7956         * configure.in: 0.12
7957
7958 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
7959
7960         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
7961         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
7962         (add_watch), (remove_watch), (create_source):
7963         Refcount fds, fixes some reentrancy issues.
7964         
7965 2003-07-30  Havoc Pennington  <hp@redhat.com>
7966
7967         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
7968         bus address to be abstract if we have abstract sockets
7969
7970         * NEWS: update
7971
7972 2003-07-28  Havoc Pennington  <hp@redhat.com>
7973
7974         * bus/messagebus.in: fix to avoid processname/servicename 
7975         confusion, from Michael Kearey
7976         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7977         
7978 2003-07-23  Havoc Pennington  <hp@pobox.com>
7979
7980         * dbus/dbus-message.c (dbus_message_iter_get_named): 
7981         fix from Andy Hanton to remove broken "+1"
7982
7983 2003-07-16  Havoc Pennington  <hp@pobox.com>
7984
7985         * tools/dbus-launch.c (babysit): close stdout/stderr in the
7986         babysitter process, as suggested by Thomas Leonard, so 
7987         an "eval `dbus-launch --exit-with-session`" will actually 
7988         return
7989
7990 2003-07-16  Havoc Pennington  <hp@pobox.com>
7991
7992         * configure.in: print out EXPANDED_* variables in the summary at
7993         the end; clean up the code that computes EXPANDED_ variables and
7994         get the ones using exec_prefix right. Should make things work
7995         when you build without --prefix
7996
7997 2003-06-29  Havoc Pennington  <hp@pobox.com>
7998
7999         * mono/Test.cs (class Test): fire up a main loop and run it
8000
8001         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8002         done once, the app has to do it
8003
8004 2003-06-26  Havoc Pennington  <hp@pobox.com>
8005
8006         * mono/Connection.cs: set up connection with the glib main loop
8007
8008 2003-07-01  Havoc Pennington  <hp@redhat.com>
8009
8010         * doc/dbus-specification.sgml: clarify the format of a type code,
8011         change suggested by Jim Blandy
8012
8013 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8014
8015         * doc/Makefile.am:
8016         * tools/Makefile.am: Don't assume srcdir == builddir.
8017
8018         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8019         the allocated block.
8020         (_dbus_memory_test): New function.
8021         * dbus/dbus-test.h: Add _dbus_memory_test ().
8022         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8023
8024         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8025         of %c%c%c%c.
8026         (dbus_message_new): Remove obsolete @todo.
8027
8028         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8029         (_dbus_marshal_set_uint64): Fix comment.
8030
8031         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8032         hardcode FIELD_REPLY_SERIAL.
8033
8034         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8035         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8036
8037         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8038         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8039
8040 2003-06-24  Havoc Pennington  <hp@pobox.com>
8041
8042         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8043
8044 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8045
8046         * configure.in:
8047         * gcj/.cvsignore:
8048         * gcj/Hello.java:
8049         * gcj/Makefile.am:
8050         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8051         * gcj/org/.cvsignore:
8052         * gcj/org/Makefile.am:
8053         * gcj/org/freedesktop/.cvsignore:
8054         * gcj/org/freedesktop/Makefile.am:
8055         * gcj/org/freedesktop/dbus/.cvsignore:
8056         * gcj/org/freedesktop/dbus/Makefile.am:
8057         * gcj/org/freedesktop/dbus/Message.java: (Message),
8058         (Message.Message):
8059         * gcj/org/freedesktop/dbus/natMessage.cc:
8060         Fix the build system.
8061
8062 2003-06-22  Havoc Pennington  <hp@pobox.com>
8063
8064         * mono/Connection.cs: add more bindings
8065
8066         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8067         more than once.
8068
8069 2003-06-22  Havoc Pennington  <hp@pobox.com>
8070
8071         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8072         Start wrapping more stuff.
8073
8074 2003-06-22  Havoc Pennington  <hp@pobox.com>
8075
8076         * mono/Message.cs: implement Message.Wrap() that ensures we only
8077         have a single C# wrapper per DBusMessage, assuming it works which
8078         it probably doesn't.
8079
8080         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8081         (dbus_message_free_data_slot): new
8082         (dbus_message_set_data): new
8083         (dbus_message_get_data): new
8084
8085 2003-06-22  Havoc Pennington  <hp@pobox.com>
8086
8087         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8088         (_dbus_data_slot_allocator_alloc): rework these to keep a
8089         reference count on each slot and automatically manage a global
8090         slot ID variable passed in by address
8091
8092         * bus/bus.c: convert to new dataslot API
8093
8094         * dbus/dbus-bus.c: convert to new dataslot API
8095
8096         * dbus/dbus-connection.c: convert to new dataslot API
8097
8098         * dbus/dbus-server.c: convert to new dataslot API
8099
8100         * glib/dbus-gmain.c: ditto
8101
8102         * bus/test.c: ditto
8103
8104         * bus/connection.c: ditto
8105
8106 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8107
8108         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8109         after the gcj checks so that the correct configuration tags
8110         will be added to libtool.
8111
8112         * dbus-glib-1.pc.in: No need to specify any includes since
8113         dbus-1.pc.in has those.
8114
8115 2003-06-22  Havoc Pennington  <hp@pobox.com>
8116
8117         * mono/*, gcj/*, configure.in, Makefile.am:
8118         Check in makefiles and subdirs for mono and gcj bindings.
8119         Neither binding actually exists, just trying to get through
8120         all the build and other boring bits.
8121
8122 2003-06-21  Philip Blundell  <philb@gnu.org>
8123
8124         * tools/dbus-monitor.1: Updated.
8125
8126         * tools/dbus-send.1: Likewise.
8127
8128 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8129
8130         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8131         for hangup and error after checking read so we won't discard
8132         pending data if both hangup and read are set.
8133
8134 2003-06-19  Philip Blundell  <philb@gnu.org>
8135
8136         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8137
8138         * tools/dbus-send.c: Accept both --system and --session.
8139
8140         * tools/dbus-monitor.c: Same here.
8141
8142 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8143
8144         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8145         from C++ (Patch by Miloslav Trmac).
8146
8147 2003-06-15  Joe Shaw  <joe@assbarn.com>
8148
8149         * configure.in: Check for socklen_t.
8150
8151         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8152
8153         * test/test-segfault.c: Add #include <sys/time.h>
8154
8155         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8156         dbus-launch needs it.
8157
8158 2003-06-09  Havoc Pennington  <hp@redhat.com>
8159
8160         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8161         SUN_LEN, it breaks abstract socket usage
8162
8163         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8164         starts of lines.
8165
8166 2003-06-04  Havoc Pennington  <hp@pobox.com>
8167
8168         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8169         using unix:abstract=/foo, and when listening in a tmpdir
8170         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8171
8172         * dbus/dbus-transport.c (_dbus_transport_open): support
8173         unix:abstract=/foo
8174
8175         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8176         support abstract sockets
8177
8178         * dbus/dbus-transport-unix.c
8179         (_dbus_transport_new_for_domain_socket): support abstract sockets
8180
8181         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8182         toggle as an argument, implement abstract namespace support
8183         (_dbus_listen_unix_socket): ditto
8184
8185         * configure.in: add --enable-abstract-sockets and implement
8186         a configure check for autodetection of the right value.
8187
8188 2003-06-01  Havoc Pennington  <hp@pobox.com>
8189
8190         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8191         in /tmp (though on Linux this will end up being useless,
8192         when we add abstract namespace support)
8193
8194         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8195         subst'ing it
8196
8197 2003-05-28  Colin Walters  <walters@verbum.org>
8198
8199         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8200
8201 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8202
8203         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8204
8205 2003-05-17  Colin Walters  <walters@gnu.org>
8206
8207         * tools/dbus-send.c: Don't exit with an error code if --help was
8208         passed.  Default to using the session bus instead of the system
8209         one.
8210
8211         * tools/dbus-launch.c: Ditto.
8212
8213         * tools/dbus-monitor.c: Ditto.
8214
8215         * tools/dbus-send.1: Update with new arguments.
8216
8217         * tools/dbus-launch.c: Emit code to export variables.  New
8218         arguments -s and -c to specify shell syntax, and a bit of code to
8219         autodetect syntax.  Also, allow specifying a program to run.
8220
8221         * tools/dbus-launch.1: Update with new arguments.
8222
8223         * tools/dbus-send.1: Ditto.
8224
8225         * tools/dbus-monitor.1: Ditto.
8226
8227 2003-05-17  Havoc Pennington  <hp@pobox.com>
8228
8229         * bus/config-parser.c (merge_included): merge in policies from
8230         child configuration file.
8231
8232         * bus/policy.c (bus_policy_merge): function to merge two policies
8233         together
8234
8235 2003-05-16  Havoc Pennington  <hp@redhat.com>
8236
8237         * dbus/dbus-connection.c: disable verbose lock spew
8238
8239         * tools/dbus-send.c: add --print-reply command line option
8240
8241         * tools/dbus-print-message.h (print_message): new util function
8242         shared by dbus-send and dbus-monitor
8243
8244         * tools/dbus-monitor.c (handler_func): exit on disconnect
8245
8246         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8247         disconnected, don't try to use the read_watch
8248
8249         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8250         so we can find this bug more easily
8251
8252 2003-05-16  Havoc Pennington  <hp@redhat.com>
8253
8254         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8255         NULL as DBusHashTable is annoyingly likely to do.
8256
8257 2003-05-16  Colin Walters  <walters@verbum.org>
8258
8259         * tools/dbus-monitor.c: Add --session argument and usage()
8260         function.
8261
8262         * tools/dbus-monitor.1: Update with new --session arg.
8263
8264         * bus/Makefile.am (install-data-hook): Create
8265         $(libdir)/dbus-1.0/services so that the session bus is happy.
8266
8267 2003-05-15  Havoc Pennington  <hp@redhat.com>
8268
8269         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8270         on non-x86. ifdef's are evil.
8271
8272 2003-05-15  Havoc Pennington  <hp@redhat.com>
8273
8274         * configure.in: 0.11
8275
8276         * NEWS: update
8277
8278         * bus/Makefile.am (initddir): apparently we are supposed to put
8279         init scripts in /etc/rc.d/init.d not /etc/init.d
8280
8281         * bus/Makefile.am: remove the "you must --enable-tests to make
8282         check" as it broke distcheck
8283
8284         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8285
8286 2003-05-13  James Willcox  <jwillcox@gnome.org>
8287
8288         * configure.in:
8289         * bus/activation.c: (bus_activation_service_created),
8290         (bus_activation_activate_service):
8291         * bus/driver.c: (bus_driver_send_service_deleted),
8292         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8293         (bus_driver_send_service_acquired),
8294         (bus_driver_send_welcome_message),
8295         (bus_driver_handle_list_services):
8296         * bus/session.conf.in:
8297         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8298         (dbus_bus_service_exists), (dbus_bus_activate_service):
8299         * dbus/dbus-bus.h:
8300
8301         Add some convenience API which lets you activate a service, and did a
8302         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8303         and dbus_message_get_args()
8304
8305 2003-05-11  Havoc Pennington  <hp@pobox.com>
8306
8307         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8308         calling _dbus_marshal_validate_arg() for every byte in a byte
8309         array, etc.
8310
8311         * dbus/dbus-message-handler.c: use atomic reference counting to
8312         reduce number of locks slightly; the global lock in here sucks
8313
8314         * dbus/dbus-connection.c
8315         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8316         update_dispatch_status that can be called with lock held; then use
8317         in a couple places to reduce locking/unlocking
8318         (dbus_connection_send): hold the lock over the whole function
8319         instead of acquiring it twice.
8320
8321         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8322
8323         * bus/connection.c (bus_connections_setup_connection): fix access
8324         to already-freed memory.
8325
8326         * dbus/dbus-connection.c: keep a little cache of linked list
8327         nodes, to avoid using the global linked list alloc lock in the
8328         normal send-message case. Instead we just use the connection lock
8329         that we already have to take.
8330
8331         * dbus/dbus-list.c (_dbus_list_find_last): new function
8332
8333         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8334         change to use a struct for the atomic type; fix docs,
8335         they return value before increment, not after increment.
8336
8337         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8338         (_dbus_string_append_8_aligned): new functions to try to
8339         microoptimize this operation.
8340         (reallocate_for_length): break this out of set_length(), to
8341         improve profile info, and also so we can consider inlining the
8342         set_length() part.
8343
8344         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8345         strings with some preallocation, cuts down on our calls to realloc
8346         a fair bit. Though if we can get the "move entire string to empty
8347         string" optimization below to kick in here, it would be better.
8348
8349         * dbus/dbus-string.c (_dbus_string_move): just call
8350         _dbus_string_move_len
8351         (_dbus_string_move_len): add a special case for moving
8352         an entire string into an empty string; we can just
8353         swap the string data instead of doing any reallocs.
8354         (_dbus_string_init_preallocated): new function
8355
8356 2003-05-11  Havoc Pennington  <hp@pobox.com>
8357
8358         Write a "test-profile" that does echo client-server with threads;
8359         profile reveals lock contention, memcpy/realloc of buffers, and
8360         UTF-8 validation as hot spots. 20% of lock contention eliminated
8361         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8362         contention is global mempool locks for GList and DBusList.
8363
8364         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8365         x86 implementation
8366
8367         * dbus/dbus-connection.c (struct DBusConnection): use
8368         dbus_atomic_t for the reference count
8369
8370         * dbus/dbus-message.c (struct DBusMessage): declare
8371         dbus_atomic_t values as volatile
8372
8373         * configure.in: code to detect ability to use atomic integer
8374         operations in assembly, from GLib patch
8375
8376         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8377         time, tired of it being wrong in threads and forked processes
8378
8379         * glib/test-profile.c: a little program to bounce messages back
8380         and forth between threads and eat CPU
8381
8382         * dbus/dbus-connection.c: add debug spew macros for debugging
8383         thread locks; include config.h at top; fix deadlock in
8384         dbus_connection_flush()
8385
8386 2003-05-08  Havoc Pennington  <hp@pobox.com>
8387
8388         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8389         data from getting written, and there wasn't a good reason to
8390         use _exit really.
8391
8392         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8393         dbus_verbose lines in test coverage
8394         (main): add list of functions sorted by # of untested blocks
8395         to the coverage report
8396
8397         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8398
8399         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8400
8401         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8402         extend test coverage
8403
8404         * test/data/auth/cancel.auth-script: test canceling an
8405         authentication
8406
8407         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8408         aren't used. in CVS history if we end up needing them.
8409
8410 2003-05-04  Havoc Pennington  <hp@pobox.com>
8411
8412         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8413         unit test
8414
8415         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8416         function, which assumed length was in # of strings, not bytes
8417
8418         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8419         missing coverage
8420
8421         * dbus/dbus-connection.c
8422         (_dbus_connection_queue_received_message): disable function for
8423         now, we are only using it in test mode
8424
8425         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8426         remove a mistaken FIXME
8427
8428 2003-05-04  Havoc Pennington  <hp@pobox.com>
8429
8430         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8431         unlock mutex on successful return, patch from Anders Gustafsson
8432
8433 2003-05-04  Havoc Pennington  <hp@pobox.com>
8434
8435         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8436         Anders Gustafsson
8437
8438 2003-05-04  Havoc Pennington  <hp@pobox.com>
8439
8440         * tools/dbus-launch.c: implement
8441
8442         * bus/main.c (main), bus/bus.c (bus_context_new):
8443         implement --print-pid and --fork
8444
8445 2003-05-03  Havoc Pennington  <hp@redhat.com>
8446
8447         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8448         the address had no value, and add to test suite. Fix and
8449         regression test from Miloslav Trmac
8450
8451 2003-05-03  Havoc Pennington  <hp@pobox.com>
8452
8453         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8454         watch is invalid when handled
8455
8456         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8457         dbus-launch utility to launch the bus from a shell script.  Didn't
8458         actually implement dbus-launch yet, it's just a placeholder still.
8459
8460 2003-05-03  Havoc Pennington  <hp@pobox.com>
8461
8462         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8463         daemon; also documents daemon config file, so replaces
8464         doc/config-file.txt. Corrected some stuff from config-file.txt in
8465         the process of moving it.
8466
8467 2003-05-03  Havoc Pennington  <hp@pobox.com>
8468
8469         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8470         add some man pages
8471
8472 2003-05-03  Colin Walters  <walters@verbum.org>
8473
8474         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8475         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8476
8477         * Makefile.am: Update to use new .pc versioning scheme.
8478
8479 2003-05-02  Havoc Pennington  <hp@redhat.com>
8480
8481         * bus/system.conf.in: allow send/receive to/from message bus
8482         service
8483
8484 2003-04-30  Havoc Pennington  <hp@redhat.com>
8485
8486         * configure.in: print a note when building with unit tests and
8487         without assertions
8488
8489 2003-04-30  Havoc Pennington  <hp@redhat.com>
8490
8491         * Makefile.am: add a check-local that complains if you didn't
8492         configure with --enable-tests
8493
8494 2003-04-29  Havoc Pennington  <hp@redhat.com>
8495
8496         * glib/dbus-gmain.c: docs cleanups
8497
8498         * dbus/dbus-types.h: add docs on int64 types
8499
8500         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8501         public API docs section
8502
8503 2003-04-29  Havoc Pennington  <hp@redhat.com>
8504
8505         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8506         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8507         parallel install API version, not with the D-BUS package version.
8508
8509         * HACKING: move some of README over here
8510
8511         * README: updates, and document API/ABI policy
8512
8513         * configure.in: reindentation
8514
8515 2003-04-29  Havoc Pennington  <hp@redhat.com>
8516
8517         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8518         to use this library" to be sure people have the right
8519         expectations.
8520
8521 2003-04-28  Havoc Pennington  <hp@redhat.com>
8522
8523         * configure.in: add --enable-docs which by default is auto yes if
8524         doxygen and db2html found, no otherwise; but can be forced on/off
8525
8526         * doc/Makefile.am: conditionalize whether to build docs on
8527         --enable-docs
8528
8529 2003-04-28  Havoc Pennington  <hp@redhat.com>
8530
8531         * configure.in: 0.10
8532
8533         * NEWS: update
8534
8535         * bus/system.conf.in: add <includedir>system.d</includedir>
8536
8537         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8538         username was provided but not uid
8539
8540         * bus/config-parser.c (struct BusConfigParser): keep track of
8541         whether the parser is toplevel or was included; change some
8542         of the error handling if it's included.
8543
8544 2003-04-27  Havoc Pennington  <hp@pobox.com>
8545
8546         Unbreak my code...
8547
8548         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8549         report correct status if we finish processing authentication
8550         inside this function.
8551
8552         * bus/activation.c (try_send_activation_failure): use
8553         bus_transaction_send_error_reply
8554
8555         * bus/connection.c (bus_connection_get_groups): return an error
8556         explaining the problem
8557
8558         * bus/bus.c (bus_context_check_security_policy): implement
8559         restriction here that inactive connections can only send the
8560         hello message. Also, allow bus driver to send anything to
8561         any recipient.
8562
8563         * bus/connection.c (bus_connection_complete): create the
8564         BusClientPolicy here instead of on-demand.
8565         (bus_connection_get_policy): don't return an error
8566
8567         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8568         sender field in message being replied to
8569
8570         * bus/bus.c (bus_context_check_security_policy): fix silly typo
8571         causing it to return FALSE always
8572
8573         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8574         we checked sender rather than destination
8575
8576 2003-04-25  Havoc Pennington  <hp@redhat.com>
8577
8578         test suite is slightly hosed at the moment, will fix soon
8579
8580         * bus/connection.c (bus_connections_expire_incomplete): fix to
8581         properly disable the timeout when required
8582         (bus_connection_set_name): check whether we can remove incomplete
8583         connections timeout after we complete each connection.
8584
8585         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8586         probably still broken.
8587
8588         * bus/services.c (bus_registry_acquire_service): implement max
8589         number of services owned, and honor allow/deny rules on which
8590         services a connection can own.
8591
8592         * bus/connection.c (bus_connection_get_policy): report errors here
8593
8594         * bus/activation.c: implement limit on number of pending
8595         activations
8596
8597 2003-04-25  Havoc Pennington  <hp@redhat.com>
8598
8599         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8600         where we used >= 0 instead of != DBUS_UID_UNSET.
8601
8602 2003-04-25  Havoc Pennington  <hp@redhat.com>
8603
8604         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8605         were toggled without add/remove, fix from Anders Gustafsson
8606
8607 2003-04-24  Havoc Pennington  <hp@redhat.com>
8608
8609         * test/data/valid-config-files/basic.conf: add <limit> tags to
8610         this test
8611
8612         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8613         <limit> tag in configuration file.
8614
8615 2003-04-24  Havoc Pennington  <hp@redhat.com>
8616
8617         * bus/dispatch.c: somehow missed some name_is
8618
8619         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8620         (_dbus_timeout_set_interval): new
8621
8622         * bus/connection.c (bus_connections_setup_connection): record time
8623         when each connection is first set up, and expire them after the
8624         auth timeout passes.
8625
8626 2003-04-24  Havoc Pennington  <hp@redhat.com>
8627
8628         * dbus/dbus-message.c (dbus_message_name_is): rename
8629         (dbus_message_service_is): rename
8630         (dbus_message_sender_is): rename
8631         (dbus_message_get_service): rename
8632
8633 2003-04-24  Havoc Pennington  <hp@redhat.com>
8634
8635         * configure.in: add --enable-checks
8636
8637         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8638
8639         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8640         to use thread locks.
8641         (_dbus_connection_handler_destroyed_locked): move some private
8642         functions into proper docs group
8643
8644         * dbus/dbus-internals.h: add _dbus_return_if_fail,
8645         _dbus_return_val_if_fail
8646
8647         Throughout: use dbus_return_if_fail
8648
8649 2003-04-23  James Willcox  <jwillcox@gnome.org>
8650
8651         * glib/dbus-glib.h:
8652         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8653         (dbus_connection_setup_with_g_main),
8654         (dbus_server_setup_with_g_main):
8655         * glib/test-dbus-glib.c: (main):
8656         * glib/test-thread-client.c: (main):
8657         * glib/test-thread-server.c: (new_connection_callback), (main):
8658         * tools/dbus-monitor.c: (main):
8659
8660         Added a GMainContext argument to dbus_connection_setup_with_g_main()
8661         and dbus_server_setup_with_g_main().
8662
8663 2003-04-20  Havoc Pennington  <hp@pobox.com>
8664
8665         * doc/dbus-specification.sgml: document the restrictions on
8666         message and service names
8667
8668 2003-04-22  Havoc Pennington  <hp@redhat.com>
8669
8670         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8671         support, and do some code cleanups to share more code and
8672         speed up array marshal/demarshal.
8673
8674         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8675
8676         * configure.in: generate dbus-arch-deps.h
8677
8678         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8679         64-bit typecodes
8680
8681 2003-04-22  Havoc Pennington  <hp@redhat.com>
8682
8683         * test/data/valid-messages/opposite-endian.message: fix test
8684         to use proper type for rply field
8685
8686         * test/data/invalid-messages: add tests for below validation
8687
8688         * dbus/dbus-message.c (decode_header_data): validate field types,
8689         and validate that named fields are valid names
8690         (decode_name_field): consider messages in the
8691         org.freedesktop.Local. namespace to be invalid.
8692
8693         * dbus/dbus-string.c (_dbus_string_validate_name): new
8694
8695 2003-04-19  Havoc Pennington  <hp@pobox.com>
8696
8697         * bus/driver.c (bus_driver_handle_hello): check limits and
8698         return an error if they are exceeded.
8699
8700         * bus/connection.c: maintain separate lists of active and inactive
8701         connections, and a count of each. Maintain count of completed
8702         connections per user. Implement code to check connection limits.
8703
8704         * dbus/dbus-list.c (_dbus_list_unlink): export
8705
8706         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8707         number of bytes in the message queue for a connection
8708
8709 2003-04-18  Havoc Pennington  <hp@pobox.com>
8710
8711         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8712
8713         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8714         memleaks
8715
8716         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8717         on realloc be sure to update the pointer in the keyring
8718
8719         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8720         offset to avoid writing to unallocated memory
8721
8722         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8723         try the next mechanism, so we properly handle OOM
8724
8725         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8726         on OOM.
8727         (_dbus_keyring_new): fix OOM bug
8728         (_dbus_keyring_new_homedir): always set error; impose a maximum
8729         number of keys we'll load from the file, mostly to speed up the
8730         test suite and make its OOM checks more useful, but also for
8731         general sanity.
8732
8733         * dbus/dbus-auth.c (process_error_server): reject authentication
8734         if we get an error from the client
8735         (process_cancel): on cancel, send REJECTED, per the spec
8736         (process_error_client): send CANCEL if we get an error from the
8737         server.
8738
8739 2003-04-18  Havoc Pennington  <hp@pobox.com>
8740
8741         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8742         debug spew
8743
8744         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8745         handling problem
8746
8747         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8748         about DBUS_TEST_HOMEDIR once
8749
8750         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8751         the environment
8752
8753         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8754         config file so we test the right thing
8755
8756         Throughout: assorted docs improvements
8757
8758 2003-04-18  Havoc Pennington  <hp@pobox.com>
8759
8760         * glib/dbus-gmain.c: adapt to watch changes
8761
8762         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8763
8764         * dbus/dbus-server.h: remove dbus_server_handle_watch
8765
8766         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8767
8768         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8769         like DBusTimeout, so we don't need dbus_connection_handle_watch
8770         etc.
8771
8772 2003-04-17  Havoc Pennington  <hp@redhat.com>
8773
8774         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8775         database usage so it all goes via the DBusUserDatabase cache.
8776
8777 2003-04-17  Havoc Pennington  <hp@redhat.com>
8778
8779         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8780         there was an OOM watch we skipped, we always return TRUE so we
8781         iterate again to have a look at it again. Fixes test suite hang.
8782         Code rearrangement also lets us lose some memset and only iterate
8783         over callbacks once.
8784
8785         * bus/driver.c (bus_driver_handle_message): sense of test for
8786         reply was backward
8787
8788 2003-04-16  Havoc Pennington  <hp@pobox.com>
8789
8790         * doc/dbus-specification.sgml: make spec say serials are unsigned
8791
8792         * dbus/dbus-message.h: change message serials to unsigned
8793
8794         * dbus/dbus-connection.c: adapt to message serials being unsigned
8795
8796 2003-04-15  Havoc Pennington  <hp@pobox.com>
8797
8798         * bus/bus.c: create and keep around a shared DBusUserDatabase
8799         object.
8800
8801         * bus/connection.c (bus_connection_get_groups): don't cache
8802         groups for user in the connection object, since user database
8803         object now does that.
8804
8805 2003-04-16  Havoc Pennington  <hp@redhat.com>
8806
8807         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8808         list of size counters
8809         (_dbus_message_loader_putback_message_link): put back a popped link
8810
8811         * dbus/dbus-connection.c
8812         (dbus_connection_set_max_live_messages_size): rename
8813         max_received_size
8814         (dbus_connection_get_outgoing_size): get size of outgoing
8815         queue
8816         (_dbus_connection_set_connection_counter): remove this cruft
8817
8818 2003-04-14  Havoc Pennington  <hp@redhat.com>
8819
8820         * dbus/dbus-userdb.c: user database abstraction, mostly to get
8821         caching, but at some point we might want to be able to use a
8822         different database.
8823
8824         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8825         SHA1 conf file to test the sha1 auth mechanism, since the regular
8826         test always uses EXTERNAL when available.
8827
8828         * configure.in,
8829         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8830         add conf file that requires use of sha1 auth
8831
8832 2003-04-13  Havoc Pennington  <hp@pobox.com>
8833
8834         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8835         from Philip Blundell to send messages and monitor them.
8836
8837 2003-04-13  Havoc Pennington  <hp@pobox.com>
8838
8839         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8840         callbacks
8841
8842         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8843         users
8844
8845         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8846         fix to only recover unused bytes if we're already authenticated
8847         (_dbus_transport_get_is_authenticated): fix to still mark us
8848         authenticated if there are unused bytes.
8849
8850         * bus/dispatch.c: implement security policy checking
8851
8852         * bus/connection.c (bus_transaction_send_from_driver): new
8853
8854         * bus/bus.c (bus_context_check_security_policy): new
8855
8856         * bus/dispatch.c (send_service_nonexistent_error): delete this,
8857         now we just set the DBusError and it gets converted to an error
8858         reply.
8859
8860         * bus/connection.c (allow_user_function): enable code using actual
8861         data from the config file
8862
8863         * bus/policy.c (list_allows_user): handle wildcard rules for
8864         user/group connection perms
8865
8866 2003-04-13  Havoc Pennington  <hp@pobox.com>
8867
8868         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8869
8870         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8871
8872         * bus/policy.c (bus_policy_append_mandatory_rule)
8873         (bus_policy_append_default_rule, bus_policy_append_user_rule)
8874         (bus_policy_append_group_rule): new functions
8875
8876 2003-04-12  Havoc Pennington  <hp@pobox.com>
8877
8878         * bus/config-parser.c (bus_config_parser_new): fix a memleak
8879
8880         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8881         the pid/gid/uid, just for paranoia.
8882
8883         * test/break-loader.c (randomly_do_n_things): find a byte
8884         containing a type code, and randomly change it to a different
8885         type code.
8886
8887 2003-04-12  Havoc Pennington  <hp@pobox.com>
8888
8889         * bus/policy.h: change BusPolicy to be the thing from the config
8890         file, and rename old BusPolicy to BusClientPolicy
8891
8892         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8893         match change in how policy works
8894
8895         * dbus/dbus-internals.h: mark assert_not_reached as
8896         __attribute((noreturn))__
8897
8898 2003-04-11  Havoc Pennington  <hp@redhat.com>
8899
8900         * doc/dbus-specification.sgml: fix a spot with the wrong name for
8901         the broadcast service. Use boolean return for ServiceExists.
8902
8903 2003-04-11  Havoc Pennington  <hp@redhat.com>
8904
8905         * configure.in: add another directory to look for qt in.
8906
8907 2003-04-11  Havoc Pennington  <hp@redhat.com>
8908
8909         * AUTHORS: add Colin Walters
8910
8911 2003-04-11  Havoc Pennington  <hp@redhat.com>
8912
8913         * NEWS: update
8914
8915         * configure.in: 0.9
8916
8917 2003-04-11  Havoc Pennington  <hp@redhat.com>
8918
8919         * bus/messagebus.in: remove pid file when stopping the
8920         message bus, since the bus won't have privileges to remove it
8921         itself.
8922
8923 2003-04-11  Havoc Pennington  <hp@redhat.com>
8924
8925         * bus/bus.c (bus_context_new): move credentials change after
8926         creating pidfile
8927
8928 2003-04-11  Havoc Pennington  <hp@pobox.com>
8929
8930         * test/decode-gcov.c: add "below average functions" to the
8931         coverage report, and change how some of the code works.
8932
8933         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
8934         not in the coverage stats.
8935
8936         * test/test-service.c (main): use _dbus_verbose not fprintf in a
8937         couple places so running the test suite doesn't result in megaspam.
8938
8939 2003-04-11  Havoc Pennington  <hp@pobox.com>
8940
8941         * bus/dispatch.c (check_existent_service_activation): accept a no
8942         memory error in a place we didn't before
8943
8944         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
8945         in case the first one failed," since the test suite is less
8946         broken now.
8947
8948 2003-04-10  Havoc Pennington  <hp@pobox.com>
8949
8950         * bus/dispatch.c (check_segfault_service_activation): add test
8951         for launching an executable that just crashes.
8952
8953         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
8954         don't leave a million cores. We'll see how portable this is.
8955
8956 2003-04-10  Havoc Pennington  <hp@pobox.com>
8957
8958         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
8959         the possible parent failures before we fork, so that we don't
8960         fail to create a babysitter after creating the child.
8961
8962         * bus/activation.c (bus_activation_activate_service): kill child
8963         if we don't successfully complete the activation.
8964
8965 2003-04-10  Havoc Pennington  <hp@redhat.com>
8966
8967         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
8968         the connection if it's disconnected
8969
8970         * bus/activation.c (bus_activation_service_created): use new
8971         transaction features to roll back removal of pending activation if
8972         we don't successfully create the service after all. Don't remove
8973         pending activation if the function fails.
8974
8975         * dbus/dbus-list.c (_dbus_list_insert_before_link)
8976         (_dbus_list_insert_after_link): new code to facilitate
8977         services.c fixes
8978
8979         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
8980         new functionality, so we can preallocate the ability to insert
8981         into a hash table.
8982
8983         * bus/connection.c (bus_transaction_add_cancel_hook): new function
8984         allowing us to put custom hooks in a transaction to be used for
8985         cancelling said transaction
8986
8987         * doc/dbus-specification.sgml: add some discussion of secondary
8988         service owners, and disallow zero-length service names
8989
8990         * bus/services.c (bus_registry_acquire_service): new function,
8991         splits out part of bus_driver_handle_acquire_service() and fixes
8992         a bug where we didn't remove the service doing the acquiring
8993         from the secondary queue if we failed to remove the current owner
8994         from the front of the queue.
8995
8996 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8997
8998         * doc/dbus-specification.sgml:
8999         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9000
9001 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9002
9003         * bus/.cvsignore:
9004         * glib/.cvsignore:
9005         * test/.cvsignore:
9006         Added files to cvsignore
9007
9008         * dbus/dbus-message.h:
9009         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9010         Make get_named() take two out argument and return a boolean.
9011         (dbus_message_iter_get_args_valist):
9012         Update usage of get_named().
9013         (dbus_message_iter_append_byte):
9014         Fix typo
9015         (dbus_message_iter_append_named)
9016         Fix typo
9017         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9018         More tests.
9019
9020 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9021
9022         * dbus/dbus-marshal.[ch]:
9023         Add array_type_pos argument to _dbus_marshal_validate_arg.
9024         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9025
9026         * dbus/dbus-message.[ch]:
9027         Multi-dimensional arrays have full type specification in the
9028         outermost array. Iter code re-arranged to handle this.
9029         Added some more iter tests.
9030
9031         * doc/dbus-specification.sgml:
9032         Add me to authors.
9033         Remove old FIXME.
9034         Update new array encoding description.
9035         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9036
9037         * test/data/invalid-messages/array-with-mixed-types.message:
9038         * test/data/valid-messages/array-of-array-of-uint32.message:
9039         Change to the new array format.
9040
9041         * test/data/invalid-messages/too-short-dict.message:
9042         Fix bug in test.
9043
9044         * test/data/valid-messages/recursive-types.message:
9045         Fix up and extend test.
9046
9047 2003-04-10  Havoc Pennington  <hp@pobox.com>
9048
9049         * bus/dispatch.c: lots of fixes
9050
9051         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9052         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9053         that was crack, broke the test service.
9054
9055         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9056         handling to avoid piling up errors if we get a failure on the
9057         first address.
9058
9059         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9060         pid in assertion failures.
9061
9062         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9063         to some fixed size of file descriptor array. Don't return TRUE
9064         anytime a timeout exists, that led to lots of busy loop silliness
9065         in the tests.
9066
9067 2003-04-09  Havoc Pennington  <hp@redhat.com>
9068
9069         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9070         I'd checked this in earlier but hadn't.
9071
9072 2003-04-09  Havoc Pennington  <hp@redhat.com>
9073
9074         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9075         the activation test (man this is getting old!)
9076
9077 2003-04-09  Havoc Pennington  <hp@redhat.com>
9078
9079         * test/test-utils.c: use dispatch status function to fix this up
9080
9081         * bus/connection.c (connection_watch_callback): don't dispatch
9082         from here
9083         (connection_timeout_callback): don't dispatch from here
9084         (bus_connections_setup_connection): set the dispatch status function
9085         (bus_connection_disconnected): unset it
9086
9087         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9088         used to add a connection to be dispatched
9089         (_dbus_loop_iterate): do the dispatching at the end of each
9090         iteration
9091
9092         * dbus/dbus-connection.c
9093         (dbus_connection_set_dispatch_status_function): new function
9094         allowing us to fix up main loop usage
9095         (_dbus_connection_last_unref): free all the various function
9096         user data
9097         (dbus_connection_dispatch): call the DispatchStatusFunction
9098         whenever this function returns
9099         (dbus_connection_handle_watch): call DispatchStatusFunction
9100         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9101         (reply_handler_timeout): call DispatchStatusFunction
9102         (dbus_connection_flush): call DispatchStatusFunction
9103
9104 2003-04-09  Havoc Pennington  <hp@redhat.com>
9105
9106         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9107         a memory leak
9108
9109         * bus/dispatch.c (check_service_activated): fix bug in test
9110
9111         * dbus/dbus-mainloop.c (check_timeout): fix this up
9112
9113         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9114         verbose output so we can sort out output from different processes,
9115         e.g. in the activation case.
9116
9117 2003-04-08  Colin Walters  <walters@gnu.org>
9118
9119         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9120         the pid file.
9121         (bus_context_new): Set it.
9122         (bus_context_unref): Use it to delete the pid file.
9123
9124 2003-04-08  Havoc Pennington  <hp@redhat.com>
9125
9126         * test/data/invalid-messages/array-with-mixed-types.message:
9127         regression test that fails for the moment
9128
9129         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9130         tests for convenience
9131
9132         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9133         array of nil, it broke things.
9134
9135         * test/data/invalid-messages/array-of-nil.message: regression test
9136
9137         * test/data/valid-messages/array-of-array-of-uint32.message:
9138         happened to write this so added it to suite
9139
9140 2003-04-08  Havoc Pennington  <hp@redhat.com>
9141
9142         * bus/driver.c (bus_driver_handle_acquire_service): init
9143         retval/reply before checking name
9144
9145         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9146         recursion depth argument
9147
9148         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9149         in the public struct for future extension
9150
9151         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9152         typo
9153
9154         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9155         message
9156
9157         * doc/dbus-specification.sgml: fix typo
9158
9159 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9160
9161         Implemented recursive types, named types and new-style iters
9162
9163         * bus/driver.c:
9164         * glib/test-thread-client.c: (thread_func):
9165         * glib/test-thread-server.c: (handle_test_message):
9166         * test/test-service.c: (handle_echo):
9167         Update to new api
9168
9169         * dbus/Makefile.am:
9170         * dbus/dbus-dict.c:
9171         * dbus/dbus-dict.h:
9172         * dbus/dbus.h
9173         Remove DBusDict
9174
9175         * dbus/dbus-internals.c: (_dbus_type_to_string):
9176         Update for new types.
9177
9178         * dbus/dbus-marshal.[ch]:
9179         Implement recursive types and the new marshalling format.
9180         Remove hardcoded dict marshalling.
9181         Marshal named types.
9182
9183         * dbus/dbus-message-builder.c:
9184         Add BYTE_ARRAY.
9185         Remove references to old types
9186
9187         * dbus/dbus-message.[ch]:
9188         New non-refcounted iter API that supports recursive iters.
9189         Use iters for appending, including support for recursive
9190         iters.
9191         Add byte and named type support.
9192         Update everything to new marshalling formats.
9193         Add tests for new API.
9194
9195         * dbus/dbus-protocol.h:
9196         Remove old array types.
9197         Add types: BYTE, ARRAY, DICT, NAMED
9198
9199         * dbus/dbus-string.c:
9200         * dbus/dbus-sysdeps.c:
9201         Make parse_double locale safe.
9202
9203         * dbus/dbus-test-main.c:
9204         Call setlocale.
9205
9206         * dbus/dbus-test.c:
9207         Kill dict test
9208
9209         * doc/dbus-specification.sgml:
9210         Update spec
9211
9212         * test/data/incomplete-messages/missing-body.message:
9213         * test/data/invalid-messages/bad-boolean.message:
9214         * test/data/invalid-messages/bad-boolean-array.message:
9215         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9216         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9217         * test/data/invalid-messages/too-short-dict.message:
9218         * test/data/valid-messages/dict-simple.message:
9219         * test/data/valid-messages/dict.message:
9220         * test/data/valid-messages/emptiness.message:
9221         * test/data/valid-messages/lots-of-arguments.message:
9222         * test/data/valid-messages/no-padding.message:
9223         * test/data/valid-messages/recursive-types.message:
9224         Add missing NAME fields
9225         Fix up dicts & arrays
9226
9227         * test/data/invalid-messages/dict-with-nil-value.message:
9228         Removed, this is not invalid anymore.
9229
9230         * test/data/valid-messages/recursive-types.message:
9231         Add new test for deeply recursive types.
9232
9233 2003-04-07  Havoc Pennington  <hp@pobox.com>
9234
9235         * bus/driver.c (bus_driver_handle_acquire_service): return an
9236         error if you try to acquire a service that starts with ':'
9237
9238 2003-04-07  Havoc Pennington  <hp@redhat.com>
9239
9240         * doc/dbus-specification.sgml: require that base service names
9241         start with ':' and that the base service is created/deleted
9242         as first and last things a connection does on the bus
9243
9244         * bus/dispatch.c (check_existent_service_activation): lots more
9245         work on the activation test; it doesn't fully pass yet...
9246
9247         * test/test-service.c (main): fix so we don't memleak the
9248         connection to the message bus
9249         (filter_func): accept a message asking us to exit
9250
9251 2003-04-06  Havoc Pennington  <hp@pobox.com>
9252
9253         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9254         from Colin Walters
9255
9256         * configure.in: fixes to Qt detection from Colin Walters
9257
9258         * doc/Makefile.am: Only remove generated docbook dirs if they
9259         exist, from Colin Walters
9260
9261         * dbus/dbus-bus.c: change how we set well-known connections to
9262         NULL, so that it works if a single connection is stored in
9263         two well-known array slots.
9264
9265         * test/Makefile.am: remove a lot of stuff that isn't immediately
9266         useful, it's in CVS history if we want it.
9267
9268         * test/test-service.c: use dbus-mainloop instead of that
9269         watch.[hc] crack
9270
9271 2003-04-06  Havoc Pennington  <hp@pobox.com>
9272
9273         * dbus/Makefile.am: split lists of sources into stuff that goes in
9274         the library, util functions that go in the lib and are also used
9275         elsewhere, and util functions that are used in tests/daemon but
9276         don't go in the lib.
9277
9278         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9279         here so it can be used in test binaries also
9280
9281 2003-04-06  Havoc Pennington  <hp@pobox.com>
9282
9283         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9284         here in the parent process, so we can return an error if it
9285         fails. Also, move some of the code into the child so the parent
9286         is less hosed if we fail midway through.
9287
9288         * bus/bus.c (bus_context_new): move pidfile detection further up
9289         in the function, before we start overwriting sockets and such.
9290
9291         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9292
9293         * configure.in: add --with-system-pid-file and --with-system-socket
9294
9295 2003-04-06  Colin Walters  <walters@verbum.org>
9296
9297         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9298
9299         * bus/system.conf.in: Declare a pidfile.
9300
9301         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9302         create one (if appropriate).
9303
9304         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9305         (struct BusConfigParser) [pidfile]: New.
9306         (element_type_to_name, merge_included, start_busconfig_child)
9307         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9308         (bus_config_parser_unref): Free it.
9309         (bus_config_parser_get_pidfile): New function.
9310
9311         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9312
9313         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9314
9315         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9316
9317         * dbus/dbus-sysdeps.h: Prototype it.
9318
9319 2003-04-06  Havoc Pennington  <hp@pobox.com>
9320
9321         * bus/bus.c (bus_context_new): print the address in here, rather
9322         than in main(), because we need to do it before forking the daemon
9323
9324         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9325         on the service nonexistent error
9326
9327         * bus/driver.c (bus_driver_handle_acquire_service): set the
9328         sender on the AcquireService reply
9329
9330         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9331         server also listen on a UNIX socket so services can connect to it.
9332
9333 2003-04-06  Havoc Pennington  <hp@pobox.com>
9334
9335         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9336         so it detects deadlocks and also we actually init threads when
9337         debugging.
9338
9339 2003-04-06  Havoc Pennington  <hp@pobox.com>
9340
9341         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9342         save the domain socket name, and unlink it when we disconnect the
9343         server. Means that at least when we exit normally, we won't leave
9344         a bunch of junk in /tmp
9345
9346         * dbus/dbus-transport-unix.c
9347         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9348         memory management). (I was making a real change here but then
9349         didn't)
9350
9351 2003-04-06  Havoc Pennington  <hp@pobox.com>
9352
9353         * bus/bus.c (bus_context_new): fix wrong handling of
9354         server_data_slot_unref() in the error case.
9355
9356         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9357         "(condition) != 0" to _dbus_real_assert so that
9358         "_dbus_assert (pointer)" doesn't cause a warning
9359
9360         * bus/main.c (main): accept --print-address option to print out
9361         the message bus address
9362
9363         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9364
9365         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9366         "tmpdir" option to unix: address on client side
9367
9368         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9369         to unix: address
9370
9371         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9372         we can use to create sockets in the test suite.
9373
9374         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9375         cleanly. To be used for testing.
9376
9377         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9378
9379         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9380
9381         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9382         handle trying to call this when there's no servers active
9383
9384 2003-04-05  Havoc Pennington  <hp@pobox.com>
9385
9386         * NEWS: update
9387
9388         * configure.in: 0.8
9389
9390 2003-04-05  Havoc Pennington  <hp@pobox.com>
9391
9392         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9393         crash on startup. Need to get "try starting the daemon"
9394         in the test suite I guess. ;-)
9395
9396         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9397         tracked the number of open connections; it's better done in
9398         application-specific code as you want it to span all servers etc.
9399
9400 2003-04-05  Havoc Pennington  <hp@pobox.com>
9401
9402         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9403         patch from Colin Walters
9404
9405 2003-04-05  Havoc Pennington  <hp@pobox.com>
9406
9407         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9408         reality; in fact multiple mechanisms are allowed.
9409
9410         * dbus/dbus-internals.c (_dbus_real_assert)
9411         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9412         _dbus_assert_not_reached() into functions, so that they don't show
9413         up in basic block counts for test coverage, and don't use up as
9414         much disk space. Does mean slower execution speed though, so
9415         assumes --disable-asserts is the normal production case.
9416
9417 2003-04-05  Havoc Pennington  <hp@pobox.com>
9418
9419         * test/Makefile.am (dist-hook): also dist *.in files
9420
9421         * NEWS: update
9422
9423         * configure.in: 0.7
9424
9425 2003-04-05  Havoc Pennington  <hp@pobox.com>
9426
9427         * dbus/dbus-string.c: docs warning
9428
9429         * dbus/dbus-spawn.c: missing docs
9430
9431         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9432
9433 2003-04-05  Havoc Pennington  <hp@pobox.com>
9434
9435         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9436         magic from GLib
9437
9438         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9439         to -1 once we've reaped the babysitter
9440         (_dbus_babysitter_handle_watch): do as much work as we can, not
9441         just one go of it
9442
9443         * bus/activation.c: add code using DBusBabysitter so that we
9444         handle it when a service fails to start up properly.
9445         (bus_activation_service_created): don't remove the activation
9446         entries as we go, just let them get removed when we free the pending
9447         activation. Unref reply messages after sending them.
9448
9449 2003-04-05  Havoc Pennington  <hp@pobox.com>
9450
9451         * test/decode-gcov.c (main): print per-directory stats in the report
9452
9453         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9454
9455 2003-04-05  Havoc Pennington  <hp@pobox.com>
9456
9457         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9458
9459         * test/decode-gcov.c: hack up a little program to suck data
9460         out of gcov files. Yes this is sort of silly.
9461
9462         * configure.in: define something in config.h and do an
9463         AM_CONDITIONAL when gcov is enabled
9464
9465 2003-04-04  Havoc Pennington  <hp@redhat.com>
9466
9467         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9468         return a "babysitter" object that is used to monitor the status of
9469         the spawned process and reap it when required.
9470
9471         * test/test-segfault.c, test/test-exit.c,
9472         test/test-sleep-forever.c: binaries that do various lame things,
9473         used in the test suite.
9474
9475         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9476
9477 2003-04-03  Havoc Pennington  <hp@pobox.com>
9478
9479         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9480         in preparation for modifying it, dbus-sysdeps is getting
9481         a bit unmanageable.
9482
9483 2003-04-03  Havoc Pennington  <hp@redhat.com>
9484
9485         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9486         have multiple ones
9487
9488         * bus/*.[hc]: adapt to mainloop change
9489
9490 2003-04-03  Havoc Pennington  <hp@redhat.com>
9491
9492         * bus/activation.c (load_directory): fix up memleaks
9493         (bus_activation_entry_free): free the entry
9494
9495         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9496         we get one from the message bus; fix memleaks.
9497
9498         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9499
9500 2003-04-03  Havoc Pennington  <hp@pobox.com>
9501
9502         * bus/config-parser.c (bus_config_parser_unref): free
9503         list of mechanisms, bug discovered by test suite enhancements
9504         (putting system.conf and session.conf into suite)
9505
9506         * test/Makefile.am, test/test-service.c: add placeholder for a
9507         test service that we'll activate as part of test suite. Doesn't
9508         do anything yet.
9509
9510         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9511         setting NULL value, and use system malloc not dbus_malloc()
9512         when we have unavoidable memleakage.
9513
9514         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9515         didn't work, and support DBUS_BUS_ACTIVATION.
9516
9517         * bus/activation.c (child_setup): pass our well-known bus type to
9518         the child
9519
9520         * bus/config-parser.c: support <type> to specify well-known type
9521
9522         * doc/dbus-specification.sgml: document the env variables to
9523         locate well-known buses and find service activator
9524
9525 2003-04-02  Havoc Pennington  <hp@redhat.com>
9526
9527         * test/Makefile.am (all-local): add a rule to copy tests to
9528         builddir, so we can have generated tests. Use this to remove the
9529         silly hack for testing system.conf and session.conf. Will use this
9530         shortly to generate .service files pointing to test binaries.
9531
9532 2003-04-02  Havoc Pennington  <hp@redhat.com>
9533
9534         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9535         current alloc and needed new length, not max of the doubled
9536         allocation and needed new length. Also, when building tests,
9537         don't do the double-allocation stuff, just realloc every time.
9538
9539 2003-04-02  Havoc Pennington  <hp@redhat.com>
9540
9541         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9542         in error messages
9543         (_dbus_string_get_dirname): new
9544         (_dbus_sysdeps_test): new
9545         (_dbus_directory_open): include dirnames in error messages
9546
9547         * bus/config-parser.c: interpret <include> and <includedir> and
9548         <servicedir> relative to config file location if the given
9549         filename is not absolute.
9550
9551         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9552
9553 2003-04-02  Havoc Pennington  <hp@redhat.com>
9554
9555         * bus/connection.c (bus_transaction_send_error_reply): set sender
9556         service for the error, and unref the reply on success
9557
9558         * bus/activation.c: convert to use BusTransaction so OOM can be
9559         handled correctly
9560         (bus_activation_service_created): set sender of the message
9561
9562 2003-04-01  Havoc Pennington  <hp@redhat.com>
9563
9564         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9565         <includedir> (at least mostly)
9566
9567         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9568         first, then the user ID
9569
9570 2003-04-01  Havoc Pennington  <hp@pobox.com>
9571
9572         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9573         function
9574
9575         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9576
9577         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9578
9579         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9580         socket 0777, and unlink any existing socket.
9581
9582         * bus/bus.c (bus_context_new): change our UID/GID and fork if
9583         the configuration file so specifies; set up auth mechanism
9584         restrictions
9585
9586         * bus/config-parser.c (bus_config_parser_content): add support
9587         for <fork> option and fill in code for <auth>
9588
9589         * bus/system.conf.in: add <fork/> to default configuration,
9590         and limit auth mechanisms to EXTERNAL
9591
9592         * doc/config-file.txt (Elements): add <fork>
9593
9594         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9595         (_dbus_change_identity): new function
9596
9597 2003-03-31  Havoc Pennington  <hp@redhat.com>
9598
9599         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9600         (_dbus_listen_unix_socket): fix off-by-one error in null
9601         termination spotted by Nalin
9602
9603 2003-03-31  Havoc Pennington  <hp@redhat.com>
9604
9605         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9606         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9607         having a real home directory available.
9608
9609 2003-03-31  Havoc Pennington  <hp@redhat.com>
9610
9611         * bus/Makefile.am (install-data-hook): create /var/run/dbus
9612
9613         * bus/messagebus.in: add init script for Red Hat /etc/init.d
9614
9615         * configure.in: add support for specifying a style of init script
9616         to install
9617
9618 2003-03-31  Havoc Pennington  <hp@redhat.com>
9619
9620         Fix some annoying DBusString API and fix all affected code.
9621
9622         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9623         max_length argument
9624         (_dbus_string_get_data): change to return string instead of using
9625         an out param
9626         (_dbus_string_get_const_data): ditto
9627         (_dbus_string_get_data_len): ditto
9628         (_dbus_string_get_const_data_len): ditto
9629
9630 2003-03-31  Havoc Pennington  <hp@redhat.com>
9631
9632         * bus/main.c (main): fix up the command line arguments to be nicer
9633
9634 2003-03-31  Havoc Pennington  <hp@redhat.com>
9635
9636         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9637         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9638         final location that lands in the config file
9639
9640         * bus/config-loader-expat.c (bus_config_load): fix type of
9641         XML_Parser variable
9642
9643         * doc/TODO: remove TODO item for dbus_bus_get()
9644
9645         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9646
9647 2003-03-31  Havoc Pennington  <hp@pobox.com>
9648
9649         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9650         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9651         argument since they are always client side
9652
9653         * dbus/dbus-server.c (dbus_server_get_address): new function
9654
9655         * bus/main.c (main): take the configuration file as an argument.
9656
9657         * test/data/valid-config-files/debug-allow-all.conf: new file to
9658         use with dispatch.c tests for example
9659
9660         * bus/test-main.c (main): require test data dir
9661
9662         * bus/bus.c (bus_context_new): change this to take a
9663         configuration file name as argument
9664
9665         * doc/config-file.txt (Elements): add <servicedir>
9666
9667         * bus/system.conf, bus/session.conf: new files
9668
9669         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9670         well-known socket if none set
9671
9672         * configure.in: create system.conf and session.conf
9673
9674 2003-03-30  Havoc Pennington  <hp@pobox.com>
9675
9676         * bus/config-parser.c: hacking
9677
9678         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9679         to shut down, since it could cause weirdness with the DBusList
9680         lock
9681
9682         * dbus/dbus-list.c (_dbus_list_test): add tests for the
9683         link-oriented stack routines
9684         (alloc_link): free the mempool if the first alloc from it fails
9685
9686         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9687
9688         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9689         from GLib
9690         (_dbus_string_skip_white): new
9691
9692         * doc/config-file.txt (Elements): add <includedir>
9693
9694 2003-03-28  Havoc Pennington  <hp@pobox.com>
9695
9696         * dbus/dbus-string.c (_dbus_string_copy_data_len)
9697         (_dbus_string_copy_data): new functions
9698
9699 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
9700
9701         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9702         * dbus/dbus-bus.h:
9703         Add dbus_bus_get.
9704
9705         * dbus/dbus-memory.c:
9706         Fix a doc comment.
9707
9708 2003-03-28  Havoc Pennington  <hp@pobox.com>
9709
9710         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9711         I think it may have just been superstition. Not sure.
9712
9713         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9714         failures that were not being handled.
9715
9716         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9717
9718         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9719         row that will fail on out-of-memory.
9720
9721         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9722         function for testing out-of-memory handling.
9723
9724         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9725         allocation functions, they do map exactly to the expat ones.
9726
9727 2003-03-27  Havoc Pennington  <hp@redhat.com>
9728
9729         * bus/config-loader-libxml.c (bus_config_load): add another error
9730         check
9731
9732 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9733
9734         * doc/TODO:
9735         Add note about automatic service activation.
9736
9737         * doc/dbus-specification.sgml:
9738         Rename the specification and clarify a few things.
9739
9740 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9741
9742         * Doxyfile.in:
9743         * dbus/dbus-address.c:
9744         * dbus/dbus-dict.c:
9745         * dbus/dbus-marshal.c:
9746         * dbus/dbus-server-debug-pipe.c:
9747         * dbus/dbus-transport-unix.c:
9748         Fix documentation warnings.
9749
9750 2003-03-26  Havoc Pennington  <hp@pobox.com>
9751
9752         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9753         after every test so it's quick and easy to see which leaked, and
9754         so we test multiple dbus_shutdown() calls
9755
9756         * configure.in: change configure.in XML stuff to also support
9757         expat
9758
9759         * config-loader-libxml.c: some hacking
9760
9761         * config-loader-expat.c: some hacking
9762
9763         * config-parser.c: some hacking, plus tests
9764
9765 2003-03-25  Havoc Pennington  <hp@redhat.com>
9766
9767         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9768
9769         * configure.in: add --with-xml option to specify XML library,
9770         right now only libxml is supported.
9771
9772         * bus/config-loader-libxml.c, config-parser.c: sync some minor
9773         nonworking code between home and work, still just stubs
9774
9775 2003-03-24  Havoc Pennington  <hp@redhat.com>
9776
9777         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9778         file
9779
9780         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9781         NULL argument for "message" if the error is a well-known one,
9782         fill in a generic message in this case.
9783
9784         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9785         favor of DBusError
9786
9787         * bus/test.c (bus_test_flush_bus): add
9788
9789         * bus/policy.c (bus_policy_test): test code stub
9790
9791 2003-03-24  Havoc Pennington  <hp@pobox.com>
9792
9793         * bus/connection.c (bus_connections_setup_connection): set up
9794         the "can this user connect" function, but it always returns
9795         TRUE until we have a config file parser so we can have a config
9796         file that allows connections.
9797
9798 2003-03-23  Havoc Pennington  <hp@pobox.com>
9799
9800         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9801         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9802         the mutex, so we can check for proper memory management
9803         and OOM handling.
9804
9805         * dbus/dbus-dataslot.c: remove the mutex from
9806         DBusDataSlotAllocator and lock it manually when using it,
9807         to simplify fitting it into the global slots framework.
9808
9809         * dbus/dbus-threads.c (init_static_locks): rework how we're
9810         handling global locks so they are easily shut down.
9811
9812         * bus/policy.c (bus_policy_append_rule): fix
9813
9814         * bus/test-main.c (main): check for memleaks
9815
9816         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9817         test suite check for memleaks
9818
9819         * dbus/dbus-memory.c: add support in test mode for tracking
9820         number of outstanding blocks
9821
9822 2003-03-23  Havoc Pennington  <hp@pobox.com>
9823
9824         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9825         policies code
9826
9827         * dbus/dbus-hash.h: add ULONG hash keys
9828
9829         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9830         (_dbus_get_group_id): new function
9831
9832 2003-03-20  Havoc Pennington  <hp@redhat.com>
9833
9834         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9835         new function
9836         (dbus_connection_get_unix_user): new function
9837
9838 2003-03-20  Havoc Pennington  <hp@pobox.com>
9839
9840         * bus/connection.c (bus_connection_send_oom_error): assert that
9841         message has a sender
9842         (connection_execute_transaction): ditto
9843         (bus_connection_preallocate_oom_error): fix to set the sender, and
9844         set recipient to the destination service, not the bus driver
9845
9846         * bus/policy.c: hacking
9847
9848         * dbus/dbus-message.c (dbus_message_service_is): new function
9849         (dbus_message_sender_is): new
9850
9851 2003-03-19  Havoc Pennington  <hp@redhat.com>
9852
9853         * bus/policy.c: start sketching code for policy restrictions on
9854         what connections can do.
9855
9856 2003-03-18  Havoc Pennington  <hp@redhat.com>
9857
9858         * doc/TODO: some notes on high-level todo items. Little nitpick
9859         stuff is all in @todo, so no need to add it here.
9860
9861         * doc/config-file.txt: some notes on how config file might look
9862
9863 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
9864
9865         * configure.in: 0.6
9866
9867         * NEWS: Update.
9868
9869 2003-03-17  Havoc Pennington  <hp@redhat.com>
9870
9871         * dbus/dbus-internals.h: add gcc attributes so that
9872         our printf-style functions warn on bad arguments to
9873         format
9874
9875         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9876         format bug
9877
9878         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9879         printf format bug
9880
9881 2003-03-17  Havoc Pennington  <hp@redhat.com>
9882
9883         * bus/test-main.c (main): make it print something as it runs
9884         so make check doesn't look stuck
9885
9886         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9887         from CVS, now obsolete
9888
9889 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9890
9891         * bus/dispatch.c: (bus_dispatch):
9892         Refetch the service name since it may have been reallocated
9893         when dbus_message_set_sender was called.
9894
9895         * dbus/dbus-sysdeps.c: (_dbus_accept):
9896         Add address and address length variables and use them to stop
9897         valgrind from complaining.
9898
9899 2003-03-17  Havoc Pennington  <hp@pobox.com>
9900
9901         All tests pass, no memleaks, no valgrind complaints.
9902
9903         * bus/test.c: refcount handler_slot
9904
9905         * bus/connection.c (bus_connections_new): refcount
9906         connection_data_slot
9907
9908         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
9909         bytes so that auth scripts pass.
9910
9911         * bus/dispatch.c: init message_handler_slot so it gets allocated
9912         properly
9913
9914         * bus/dispatch.c (message_handler_slot_ref): fix memleak
9915
9916         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
9917         dealloc server_pipe_hash when no longer used for benefit of
9918         leak checking
9919
9920         * dbus/dbus-auth.c (process_command): memleak fix
9921
9922         * bus/dispatch.c (check_hello_message): memleak fix
9923
9924 2003-03-16  Havoc Pennington  <hp@pobox.com>
9925
9926         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
9927
9928 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9929
9930         * bus/activation.c (bus_activation_activate_service): Append
9931         the pending activation entry to the list of pending activations.
9932
9933 2003-03-16  Havoc Pennington  <hp@pobox.com>
9934
9935         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
9936         connections
9937
9938         * dbus/dbus-address.c (create_entry): fix OOM handling when
9939         failing to alloc entry->method
9940
9941 2003-03-16  Havoc Pennington  <hp@pobox.com>
9942
9943         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
9944         the watch
9945
9946         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9947         add some missing dbus_set_result
9948
9949         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
9950         alloc the DBusMessageHandler
9951
9952         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
9953         the transport here, since we call this from the finalizer; it
9954         resulted in a double-finalize.
9955
9956         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
9957         where we tried to use transport->connection that was NULL,
9958         happened when transport was disconnected early on due to OOM
9959
9960         * bus/*.c: adapt to handle OOM for watches/timeouts
9961
9962         * dbus/dbus-transport-unix.c: port to handle OOM during
9963         watch handling
9964
9965         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
9966         reference to unused bytes instead of a copy
9967
9968         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
9969         out of memory
9970
9971         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
9972         FALSE on OOM
9973
9974         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
9975         of memory
9976
9977 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9978
9979         * doc/dbus-specification.sgml:
9980         Document reply message for ActivateService.
9981
9982 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9983
9984         * bus/activation.c: (bus_pending_activation_entry_free),
9985         (bus_pending_activation_free), (bus_activation_new),
9986         (bus_activation_unref), (bus_activation_service_created),
9987         (bus_activation_activate_service):
9988         * bus/activation.h:
9989         * bus/bus.c: (bus_context_new):
9990         * bus/desktop-file.c: (new_section):
9991         * bus/driver.c: (bus_driver_send_service_deleted),
9992         (bus_driver_handle_activate_service):
9993         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
9994         * bus/services.h:
9995         * dbus/dbus-connection.c:
9996         (dbus_connection_send_with_reply_and_block):
9997         * dbus/dbus-message.c: (dbus_message_append_args_valist):
9998         * dbus/dbus-protocol.h:
9999         Make activation work better. Now pending activations will be queued
10000         and the daemon won't try to activate services that are already registered.
10001
10002 2003-03-16  Havoc Pennington  <hp@pobox.com>
10003
10004         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10005         connection data
10006
10007         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10008         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10009
10010 2003-03-16  Havoc Pennington  <hp@pobox.com>
10011
10012         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10013         this. always run the test suite before commit...
10014
10015         * bus/*: adapt to DBusConnection API changes
10016
10017         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10018         requires renaming stuff to avoid dbus_connection_dispatch name
10019         conflict.
10020
10021         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10022         function
10023
10024         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10025         separate from _dbus_message_loader_return_buffer()
10026
10027         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10028         this, because it's now always broken to use; the number of
10029         messages in queue vs. the number still buffered by the message
10030         loader is undefined/meaningless. Should use
10031         dbus_connection_get_dispatch_state().
10032         (dbus_connection_dispatch): rename from
10033         dbus_connection_dispatch_message
10034
10035 2003-03-16  Havoc Pennington  <hp@pobox.com>
10036
10037         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10038         implementation
10039
10040 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10041
10042         * dbus/dbus-connection.c:
10043         (dbus_connection_send_with_reply_and_block):
10044         Decrease connection->n_incoming when removing an entry
10045         from the list.
10046         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10047         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10048         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10049         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10050         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10051         (dbus_dict_get_byte_array):
10052         Handle NULL arrays and strings. Also add support for byte arrays.
10053
10054         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10055         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10056         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10057         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10058         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10059         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10060         * dbus/dbus-marshal.h:
10061         Add support for marshalling and demarshalling empty arrays and strings.
10062
10063         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10064         (dbus_message_append_string_array),
10065         (dbus_message_iter_get_boolean),
10066         (dbus_message_iter_get_boolean_array),
10067         (dbus_message_iter_get_int32_array),
10068         (dbus_message_iter_get_uint32_array),
10069         (dbus_message_iter_get_double_array),
10070         (dbus_message_iter_get_byte_array),
10071         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10072         (check_message_handling):
10073         Add support for getting empty arrays and dicts.
10074
10075         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10076         Don't do any validation at all for now, that's better than just checking
10077         for ASCII.
10078
10079         * test/data/valid-messages/emptiness.message:
10080         New test message with lots of empty arrays.
10081
10082 2003-03-16  Havoc Pennington  <hp@pobox.com>
10083
10084         * dbus/dbus-connection.c
10085         (_dbus_connection_queue_received_message_link): new function that
10086         can't fail due to OOM
10087
10088         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10089         new function pops a message together with a list link
10090         containing it.
10091
10092         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10093         message queuing functions to avoid needing to alloc memory
10094
10095 2003-03-16  Havoc Pennington  <hp@pobox.com>
10096
10097         Oops - test code was only testing failure of around 30 of the
10098         mallocs in the test path, but it turns out there are 500+
10099         mallocs. I believe this was due to misguided linking setup such
10100         that there was one copy of dbus_malloc etc. in the daemon and one
10101         in the shared lib, and only daemon mallocs were tested. In any
10102         case, the test case now tests all 500+ mallocs, and doesn't pass
10103         yet, though there are lots of fixes in this patch.
10104
10105         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10106         this so that it doesn't need to allocate memory, since it
10107         has no way of indicating failure due to OOM (and would be
10108         annoying if it did).
10109
10110         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10111
10112         * bus/Makefile.am: rearrange to create two self-contained
10113         libraries, to avoid having libraries with overlapping symbols.
10114         that was resulting in weirdness, e.g. I'm pretty sure there
10115         were two copies of global static variables.
10116
10117         * dbus/dbus-internals.c: move the malloc debug stuff to
10118         dbus-memory.c
10119
10120         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10121         empty.
10122
10123         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10124
10125         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10126         on failure.
10127
10128         * bus/dispatch.c (bus_dispatch_add_connection): free
10129         message_handler_slot when no longer using it, so
10130         memory leak checkers are happy for the test suite.
10131
10132         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10133
10134         * bus/bus.c (new_connection_callback): disconnect in here if
10135         bus_connections_setup_connection fails.
10136
10137         * bus/connection.c (bus_connections_unref): fix to free the
10138         connections
10139         (bus_connections_setup_connection): if this fails, don't
10140         disconnect the connection, just be sure there are no side
10141         effects.
10142
10143         * dbus/dbus-string.c (undo_alignment): unbreak this
10144
10145         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10146         leaking
10147         (_dbus_auth_new): fix the order in which we free strings
10148         on OOM failure
10149
10150         * bus/connection.c (bus_connection_disconnected): fix to
10151         not send ServiceDeleted multiple times in case of memory
10152         allocation failure
10153
10154         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10155         get the base service name
10156         (dbus_bus_register_client): don't return base service name,
10157         instead store it on the DBusConnection and have an accessor
10158         function for it.
10159         (dbus_bus_register_client): rename dbus_bus_register()
10160
10161         * bus/dispatch.c (check_hello_message): verify that other
10162         connections on the bus also got the correct results, not
10163         just the one sending hello
10164
10165 2003-03-15  Havoc Pennington  <hp@pobox.com>
10166
10167         Make it pass the Hello handling test including all OOM codepaths.
10168         Now to do other messages...
10169
10170         * bus/services.c (bus_service_remove_owner): fix crash when
10171         removing owner from an empty list of owners
10172         (bus_registry_ensure): don't leave service in the list of
10173         a connection's owned services if we fail to put the service
10174         in the hash table.
10175
10176         * bus/connection.c (bus_connection_preallocate_oom_error): set
10177         error flag on the OOM error.
10178
10179         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10180         handle _dbus_transport_set_connection failure
10181
10182         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10183         to create watches up front and simply enable/disable them as
10184         needed.
10185         (unix_connection_set): this can now fail on OOM
10186
10187         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10188         of enabling/disabling a watch or timeout.
10189
10190         * bus/loop.c (bus_loop_iterate): don't touch disabled
10191         watches/timeouts
10192
10193         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10194
10195 2003-03-15  Havoc Pennington  <hp@pobox.com>
10196
10197         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10198         write useful test code, after all that futzing around ;-)
10199
10200         Test does not yet pass because we can't handle OOM in
10201         _dbus_transport_messages_pending (basically,
10202         dbus_connection_preallocate_send() does not prealloc the write
10203         watch). To fix this, I think we need to add new stuff to
10204         set_watch_functions, namely a SetEnabled function so we can alloc
10205         the watch earlier, then enable it later.
10206
10207         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10208         dbus-memory.c to the convenience lib
10209
10210         * bus/test.c: rename some static functions to keep them clearly
10211         distinct from stuff in connection.c. Handle client disconnection.
10212
10213 2003-03-14  Havoc Pennington  <hp@pobox.com>
10214
10215         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10216         transport, tests more of the real codepath. Set up clients
10217         with bus_setup_debug_client.
10218
10219         * bus/test.c (bus_setup_debug_client): function to set up debug
10220         "clients" on the main loop
10221
10222         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10223         support
10224
10225         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10226         server type
10227
10228         * dbus/dbus-server-debug.c: support a debug server based on pipes
10229
10230         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10231         (_dbus_close): new function
10232
10233         * configure.in: check for socketpair
10234
10235 2003-03-14  Havoc Pennington  <hp@redhat.com>
10236
10237         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10238         cheesy hack
10239
10240         * dbus/dbus-transport-debug.c: rework this a good bit to be
10241         less complicated. hopefully still works.
10242
10243         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10244         manually
10245
10246         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10247         after running it
10248
10249         * dbus/dbus-message.c (dbus_message_copy): rename from
10250         dbus_message_new_from_message, fix it up to copy
10251         all the message fields, add test case
10252
10253         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10254         not quite passing yet
10255
10256 2003-03-14  Havoc Pennington  <hp@pobox.com>
10257
10258         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10259         until no work remains" in test code. (the large diff here
10260         is just code movement, no actual changes)
10261
10262         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10263         1, no point waiting around for test code.
10264         (_dbus_server_debug_accept_transport): unref the timeout
10265         after adding it (right?)
10266
10267         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10268
10269 2003-03-13  Havoc Pennington  <hp@redhat.com>
10270
10271         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10272         out of memory
10273
10274         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10275         of memory
10276
10277         * dbus/dbus-connection.h: Make AddWatchFunction and
10278         AddTimeoutFunction return a bool so they can fail on out-of-memory
10279
10280         * bus/bus.c (bus_context_new): set up timeout handlers
10281
10282         * bus/connection.c (bus_connections_setup_connection): set up
10283         timeout handlers
10284
10285         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10286         can fail
10287
10288         * bus/bus.c (bus_context_new): adapt to changes
10289
10290         * bus/connection.c: adapt to changes
10291
10292         * test/watch.c: adapt to DBusWatch changes
10293
10294         * bus/dispatch.c (bus_dispatch_test): started adding this but
10295         didn't finish
10296
10297 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10298
10299         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10300
10301 2003-03-13  Havoc Pennington  <hp@pobox.com>
10302
10303         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10304         set up a test framework as for the library
10305
10306 2003-03-12  Havoc Pennington  <hp@pobox.com>
10307
10308         Throughout: purge global variables, introduce BusActivation,
10309         BusConnections, BusRegistry, etc. objects instead.
10310
10311         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10312         message bus object
10313
10314         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10315         going to redo this a bit differently I think
10316
10317 2003-03-12  Havoc Pennington  <hp@redhat.com>
10318
10319         Mega-patch that gets the message bus daemon initially handling
10320         out-of-memory. Work still needed. Also lots of random
10321         moving stuff to DBusError instead of ResultCode.
10322
10323         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10324
10325         * dbus/dbus-connection.c
10326         (dbus_connection_send_with_reply_and_block): use DBusError
10327
10328         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10329         DBusResultCode
10330
10331         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10332         code here, as the only failure possible is OOM.
10333
10334         * bus/connection.c (bus_connection_disconnect):
10335         rename bus_connection_disconnected as it's a notification only
10336
10337         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10338         "name" on get_args failure, should be done by get_args;
10339         don't disconnect client for bad args, just return an error.
10340         (bus_driver_handle_service_exists): ditto
10341
10342         * bus/services.c (bus_services_list): NULL-terminate returned array
10343
10344         * bus/driver.c (bus_driver_send_service_lost)
10345         (bus_driver_send_service_acquired): send messages from driver to a
10346         specific client to the client's unique name, not to the broadcast
10347         service.
10348
10349         * dbus/dbus-message.c (decode_header_data): reject messages that
10350         contain no name field
10351         (_dbus_message_get_client_serial): rename to
10352         dbus_message_get_serial and make public
10353         (_dbus_message_set_serial): rename from set_client_serial
10354         (_dbus_message_set_reply_serial): make public
10355         (_dbus_message_get_reply_serial): make public
10356
10357         * bus/connection.c (bus_connection_foreach): allow stopping
10358         iteration by returning FALSE from foreach function.
10359
10360         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10361         (dbus_connection_free_preallocated_send)
10362         (dbus_connection_preallocate_send): new API for sending a message
10363         without possibility of malloc failure.
10364         (dbus_connection_send_message): rename to just
10365         dbus_connection_send (and same for whole function family)
10366
10367         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10368
10369         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10370
10371         * bus/activation.c: handle/return errors
10372
10373         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10374
10375         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10376         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10377         (_dbus_result_from_errno): move to this file
10378
10379 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10380
10381         * dbus/dbus-marshal.c:
10382         (_dbus_marshal_set_string):
10383         Take a length argument so we can marshal the correct string
10384         length.
10385
10386         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10387         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10388         (_dbus_marshal_test):
10389         * dbus/dbus-marshal.h:
10390         Add support for marshalling and demarshalling dicts.
10391
10392         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10393         Add support for TYPE DICT.
10394
10395         * dbus/dbus-message.c: (set_string_field):
10396         Adjust header padding.
10397
10398         (dbus_message_append_args_valist), (dbus_message_append_dict),
10399         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10400         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10401         (check_message_handling), (check_have_valid_message):
10402         * dbus/dbus-message.h:
10403         Add functions for setting and getting dicts.
10404
10405         * dbus/dbus-protocol.h:
10406         Add DBUS_TYPE_DICT.
10407
10408         * dbus/dbus.h:
10409         Add dbus-dict.h
10410
10411         * doc/dbus-specification.sgml:
10412         Add information about how dicts are marshalled.
10413
10414         * test/data/invalid-messages/dict-with-nil-value.message:
10415         * test/data/invalid-messages/too-short-dict.message:
10416         * test/data/valid-messages/dict-simple.message:
10417         * test/data/valid-messages/dict.message:
10418         Add sample messages containing dicts.
10419
10420 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10421
10422         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10423
10424 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10425
10426         * dbus/Makefile.am:
10427         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10428         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10429         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10430         (dbus_dict_set_double), (dbus_dict_set_string),
10431         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10432         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10433         (dbus_dict_set_string_array), (_dbus_dict_test):
10434         * dbus/dbus-dict.h:
10435         Fix according to comments from Havoc.
10436
10437 2003-03-06  Michael Meeks  <michael@server.home>
10438
10439         * configure.in: if we don't have kde-config, disable have_qt.
10440
10441 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10442
10443         * dbus/Makefile.am:
10444         Add dbus-dict.[ch]
10445
10446         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10447         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10448         (dbus_dict_remove), (dbus_dict_get_value_type),
10449         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10450         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10451         (dbus_dict_put_double), (dbus_dict_put_string),
10452         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10453         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10454         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10455         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10456         (dbus_dict_get_double), (dbus_dict_get_string),
10457         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10458         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10459         (dbus_dict_get_string_array), (_dbus_dict_test):
10460         * dbus/dbus-dict.h:
10461         Add DBusDict implementation
10462
10463         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10464         * dbus/dbus-test.h:
10465         Add _dbus_dict_test
10466
10467 2003-03-04  Havoc Pennington  <hp@pobox.com>
10468
10469         * test/data/auth/*: adapt to changes
10470
10471         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10472         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10473         userid
10474
10475         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10476         more stuff from being in a context name, to make the protocol
10477         simpler to deal with
10478
10479         * dbus/dbus-errors.c (dbus_error_has_name): new function
10480         (dbus_error_is_set): new function
10481
10482         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10483         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10484
10485         * dbus/dbus-connection.c (dbus_connection_flush): also read
10486         messages during a flush operation
10487
10488         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10489
10490 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10491
10492         * configure.in: Check for gethostbyname on Solaris.
10493
10494         * dbus/dbus-transport.c: (_dbus_transport_open):
10495         Remove duplicate "tcp" entry.
10496
10497         * doc/dbus-specification.sgml:
10498         Clarify some things.
10499
10500 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10501
10502         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10503         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10504         (_dbus_keyring_test):
10505         * dbus/dbus-md5.c: (_dbus_md5_compute):
10506         * dbus/dbus-sha.c: (_dbus_sha_compute):
10507         Plug memory leaks.
10508
10509 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10510
10511         * README: Add some things.
10512
10513 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10514
10515         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10516         after case DBUS_TYPE_BOOELAN.
10517
10518 2003-03-02  Havoc Pennington  <hp@pobox.com>
10519
10520         * test/break-loader.c (randomly_set_extreme_ints): add test that
10521         sets really huge and small integers
10522
10523         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10524         that length of boolean array fits in the string, and that
10525         string has room for boolean value in single-bool case.
10526
10527         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10528         optional value to "ALIGN" command which is what to fill the
10529         alignment with.
10530
10531         * test/data/valid-messages/no-padding.message: add regression
10532         test for the message padding problem
10533
10534 2003-03-02  Havoc Pennington  <hp@pobox.com>
10535
10536         * dbus/dbus-message.c (decode_header_data): fix to always init
10537         message_padding, from Benjamin Dauvergne
10538
10539 2003-03-02  Havoc Pennington  <hp@pobox.com>
10540
10541         * configure.in: 0.5
10542
10543         * NEWS: Update.
10544
10545 2003-03-01  Joe Shaw  <joe@assbarn.com>
10546
10547         * configure.in: Check for "struct cmsgcred" and try to access its
10548         members for BSD-like unices.
10549
10550         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10551         _dbus_read_credentials_unix_socket().
10552         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10553         read() for reading the credential byte off the unix socket.  Use
10554         struct cmsgcred on systems that support it.
10555
10556 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10557
10558         * glib/Makefile.am:
10559         * configure.in:
10560         Make gthreads-2.0 dependency optional. Don't build thread test if
10561         its not found.
10562
10563 2003-02-27  Havoc Pennington  <hp@pobox.com>
10564
10565         * dbus/dbus-connection.c
10566         (dbus_connection_send_message_with_reply_and_block): fix doh!
10567         doh! doh! bug that resulted in never removing a reply from the
10568         queue, no wonder we called get_reply_serial so much ;-)
10569
10570         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10571         and client serial instead of demarshaling them every time
10572
10573 2003-02-27  Havoc Pennington  <hp@pobox.com>
10574
10575         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10576         more inlined, using dbus-string-private.h, speeds things up
10577         substantially
10578
10579         * dbus/dbus-string.c (_dbus_string_free): apply align offset
10580         when freeing the string
10581         (_dbus_string_steal_data): fix for align offset
10582         (undo_alignment): new function
10583
10584 2003-02-26  Havoc Pennington  <hp@redhat.com>
10585
10586         All kinds of audit fixes from Owen, plus initial attempt to
10587         handle unaligned memory returned from malloc.
10588
10589         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10590         leave room for align_offset and nul byte
10591         (fixup_alignment): function to track an align_offset and
10592         ensure real->str is aligned
10593         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10594         to allow a nul byte plus align offset
10595         (_dbus_string_lock): fix overflow issue
10596         (_dbus_string_init_const_len): add assertions on sanity of len,
10597         assign allocated to be ALLOCATION_PADDING larger than len
10598         (set_length): fixup the overflow handling
10599         (_dbus_string_get_data_len): fix overflow in assertion
10600         (open_gap): detect overflow in size of gap to be opened
10601         (_dbus_string_lengthen): add overflow check
10602         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10603         (_dbus_string_append): add overflow check
10604         (_dbus_string_append_unichar): overflow
10605         (_dbus_string_delete): fix overflow in assertion
10606         (_dbus_string_copy_len): overflow in assertion
10607         (_dbus_string_replace_len): overflows in assertions
10608         (_dbus_string_find): change to implement in terms of
10609         _dbus_string_find_to
10610         (_dbus_string_find_to): assorted fixage
10611         (_dbus_string_equal_c_str): assert c_str != NULL,
10612         fix logic so the function works
10613         (_dbus_string_ends_with_c_str): fix overflow thingy
10614         (_dbus_string_base64_encode): overflow fix
10615         (_dbus_string_validate_ascii): overflow
10616         (_dbus_string_validate_nul): overflow
10617
10618 2003-02-26  Havoc Pennington  <hp@redhat.com>
10619
10620         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10621
10622 2003-02-26  Alexander Larsson  <alexl@redhat.com>
10623
10624         * configure.in:
10625         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10626
10627         * dbus/dbus-connection.c:
10628         * dbus/dbus-connection.h:
10629         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10630         Add dbus_connection_set_wakeup_main_function and use it when queueing
10631         incoming and outgoing messages.
10632
10633
10634         * dbus/dbus-dataslot.c:
10635         Threadsafe usage of DBusDataSlotAllocator
10636
10637         * dbus/dbus-message.c: (dbus_message_get_args_iter):
10638         dbus_new can fail.
10639
10640         * dbus/dbus-server-unix.c:
10641         Add todo comment
10642
10643         * glib/dbus-gmain.c:
10644         Implement the new wakeup functions for glib.
10645
10646         * glib/Makefile.am:
10647         * glib/test-thread-client.c:
10648         * glib/test-thread-server.c:
10649         * glib/test-thread.h:
10650         Initial cut at some thread test code. Not really done yet.
10651
10652 2003-02-26  Havoc Pennington  <hp@pobox.com>
10653
10654         * dbus/dbus-connection.c
10655         (dbus_connection_send_message_with_reply_and_block): fix crash
10656         where we ref'd the outgoing message instead of the returned reply
10657
10658         * dbus/dbus-transport-unix.c (do_authentication): check read watch
10659         at the end of this function, so if we didn't need to read for
10660         authentication, we reinstall it for receiving messages
10661
10662         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10663         a NULL sender for peer-to-peer case
10664
10665         * dbus/dbus-transport-unix.c (check_read_watch): handle
10666         !authenticated case correctly
10667
10668         * glib/dbus-gmain.c: add support for DBusServer
10669
10670         * dbus/dbus-server.c: add data slot support
10671
10672         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10673         return values and handle errors
10674
10675         * dbus/dbus-dataslot.c: factor out the data slot stuff from
10676         DBusConnection
10677
10678         * Doxyfile.in (INPUT): add glib subdir
10679
10680         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10681         setup_with_g_main instead of hookup_with_g_main; write docs
10682
10683 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10684
10685         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10686         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10687         * dbus/dbus-message.c: (dbus_message_append_boolean),
10688         (dbus_message_append_boolean_array),
10689         (dbus_message_get_args_valist), (_dbus_message_test):
10690         * dbus/dbus-message.h:
10691         * doc/dbus-specification.sgml:
10692         Various fixes as pointed out by Havoc.
10693
10694         * test/data/invalid-messages/bad-boolean-array.message:
10695         * test/data/invalid-messages/bad-boolean.message:
10696         Add invalid boolean value test cases.
10697
10698 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10699
10700         * dbus/dbus-internals.c: (_dbus_type_to_string):
10701         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10702         (_dbus_marshal_validate_arg):
10703         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10704         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10705         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10706         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10707         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10708         (dbus_message_iter_get_double),
10709         (dbus_message_iter_get_boolean_array), (message_iter_test):
10710         * dbus/dbus-message.h:
10711         * dbus/dbus-protocol.h:
10712         * doc/dbus-specification.sgml:
10713         * test/data/valid-messages/lots-of-arguments.message:
10714         Add support for boolean and boolean array types.
10715
10716 2003-02-23  Havoc Pennington  <hp@pobox.com>
10717
10718         * dbus/dbus-keyring.c: finish most of this implementation and
10719         simple unit test
10720
10721         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10722         these barf if the error isn't cleared to NULL
10723
10724         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10725         (_dbus_create_directory): new function
10726
10727         * dbus/dbus-errors.c (dbus_set_error): fix warning
10728
10729         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10730         (_dbus_string_hex_decode): new function
10731         (test_hex_roundtrip): test code
10732
10733         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10734
10735         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10736
10737         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10738         the save-to-temp/rename trick to atomically write the new file
10739         (_dbus_string_parse_uint): new function
10740
10741 2003-02-22  Havoc Pennington  <hp@pobox.com>
10742
10743         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10744
10745 2003-02-22  Havoc Pennington  <hp@pobox.com>
10746
10747         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10748         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10749
10750         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10751
10752         * dbus/test/data/sha-1: add US government test suite for SHA-1
10753
10754 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10755
10756         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10757         Make string arrays NULL-terminated.
10758
10759         * dbus/dbus-memory.c: (dbus_free_string_array):
10760         * dbus/dbus-memory.h:
10761         New function for freeing NULL-terminated string arrays.
10762
10763         * dbus/dbus-message-builder.c: (append_quoted_string),
10764         (_dbus_message_data_load):
10765         Add support for array types.
10766
10767         * dbus/dbus-message.c: (check_message_handling):
10768         Add more types as test cases.
10769
10770         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10771         (_dbus_string_parse_double):
10772         Add the start offset to the end offset.
10773
10774         * test/data/valid-messages/lots-of-arguments.message:
10775         New test message with lots of arguments.
10776
10777 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10778
10779         * dbus/dbus-message.c: (dbus_message_append_nil),
10780         (dbus_message_append_int32), (dbus_message_append_uint32),
10781         (dbus_message_append_double), (dbus_message_append_string),
10782         (dbus_message_append_int32_array),
10783         (dbus_message_append_uint32_array),
10784         (dbus_message_append_double_array),
10785         (dbus_message_append_byte_array),
10786         (dbus_message_append_string_array):
10787         Fix all out-of-memory handling in these functions.
10788
10789 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10790
10791         * dbus/dbus-message.c: (dbus_message_append_nil):
10792         Fix a silly.
10793
10794 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10795
10796         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10797         (dbus_message_append_nil), (dbus_message_append_int32_array),
10798         (dbus_message_append_uint32_array),
10799         (dbus_message_append_double_array),
10800         (dbus_message_append_byte_array),
10801         (dbus_message_append_string_array), (dbus_message_get_args_valist),
10802         (dbus_message_iter_get_int32_array),
10803         (dbus_message_iter_get_uint32_array),
10804         (dbus_message_iter_get_double_array),
10805         (dbus_message_iter_get_byte_array),
10806         (dbus_message_iter_get_string_array):
10807
10808         * dbus/dbus-message.h:
10809         Add functions for appending and getting arrays.
10810
10811 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10812
10813         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10814         element size at least 8 bytes, fixes mempool tests on
10815         64-bit machines.
10816
10817 2003-02-20  Alexander Larsson  <alexl@redhat.com>
10818
10819         * dbus/dbus-transport-unix.c (unix_do_iteration):
10820         Unlock the connection mutex during a blocking select call.
10821         Add todo about how we need a way to wake up the select.
10822
10823         * dbus/dbus-connection-internal.h:
10824         * dbus/dbus-connection.c:
10825         Add _dbus_connection_lock and _dbus_connection_unlock.
10826
10827 2003-02-19  Havoc Pennington  <hp@pobox.com>
10828
10829         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10830         Doxyfile.in, not Doxyfile
10831
10832         * dbus/dbus-keyring.c: do some hacking on this
10833
10834         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10835
10836         * dbus/dbus-errors.c (dbus_set_error_const): do not call
10837         dbus_error_init
10838         (dbus_set_error): remove dbus_error_init, check for message ==
10839         NULL *before* we sprintf into it, and add @todo about including
10840         system headers in this file
10841
10842         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10843
10844         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10845
10846         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10847         get various bits of user information based on either username
10848         or user ID
10849         (_dbus_homedir_from_username): new function
10850
10851 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
10852
10853         * configure.in:
10854         Add check for nonposix getpwnam_r
10855
10856         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10857         Align the pool element size to a sizeof (void *) boundary.
10858
10859         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10860         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10861         General Solaris fixes.
10862
10863         * test/data/valid-messages/simplest-manual.message:
10864         Explicitly state that we want little-endian packing.
10865
10866 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
10867
10868         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10869
10870         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10871         Added to create a transport connecting using a tcp/ip socket.
10872
10873         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10874         to a tcp socket at given host and port.
10875         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10876         hostname and port.
10877
10878         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10879
10880         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10881         Added to create a server listening on a TCP/IP socket.
10882
10883 2003-02-19  Havoc Pennington  <hp@pobox.com>
10884
10885         Throughout: mop up all the Doxygen warnings and undocumented
10886         stuff.
10887
10888         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10889         to search any paths.
10890
10891         * dbus/dbus-threads.c: move global mutex initializers to
10892         dbus-internals.h, multiple prototypes was confusing doxygen
10893         besides being kind of ugly
10894
10895         * Doxyfile (PREDEFINED): have Doxygen define
10896         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
10897         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
10898         (do not abuse the feature! it's for stuff like the autogenerated
10899         macros in dbus-md5.c, not just for things you don't feel like
10900         documenting...)
10901
10902 2003-02-18  Havoc Pennington  <hp@pobox.com>
10903
10904         * dbus/dbus-string.c (_dbus_string_zero): new function
10905
10906         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
10907         wrap it in some dbus-friendly API
10908
10909         * dbus/dbus-types.h: add 16-bit types
10910
10911 2003-02-18  Joe Shaw  <joe@assbarn.com>
10912
10913         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
10914         credentials from our currently running process.
10915         (get_word): Fix a buglet where we were copying the entire length
10916         instead of relative to our position.
10917
10918         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
10919         keys on the stack... it's 640k of data.
10920
10921         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
10922         read the credentials byte off the socket, even if we don't have
10923         SO_PEERCRED.
10924         (_dbus_poll): Implement poll() using select() for systems which
10925         don't have it.
10926
10927         * glib/test-dbus-glib.c (main): Print out an error if no
10928         parameters are given.
10929
10930         * test/data/auth/fallback.auth-script: Added.  Tests that a client
10931         can fallback to a secondary auth mechanism if the first fails.
10932
10933 2003-02-18  Havoc Pennington  <hp@pobox.com>
10934
10935         * AUTHORS: add Alex
10936
10937 2003-02-17  Havoc Pennington  <hp@pobox.com>
10938
10939         * doc/dbus-specification.sgml: lots of cosmetic
10940         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
10941         env variable to DBUS_BUS_ADDRESS, s/client/application/,
10942         s/server/bus/ (except in authentication section). Add a section
10943         "Message Bus Message Routing"
10944
10945 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
10946
10947         Release 0.4
10948
10949         * NEWS: Update
10950
10951 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10952
10953         * doc/dbus-specification.sgml:
10954         Specification updates.
10955
10956 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10957
10958         * bus/activation.c: (bus_activation_init), (child_setup),
10959         (bus_activation_activate_service):
10960         * bus/activation.h:
10961         * bus/main.c: (main):
10962         Set DBUS_ADDRESS environment variable.
10963
10964         * dbus/dbus-errors.c: (dbus_set_error):
10965         Don't use va_copy since that's a C99 feature.
10966
10967         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
10968         (_dbus_spawn_async):
10969         * dbus/dbus-sysdeps.h:
10970         Add child_setup_func to _dbus_spawn_async.
10971
10972         * doc/dbus-specification.sgml:
10973         Update specification.
10974
10975         * test/spawn-test.c: (setup_func), (main):
10976         Fix test.
10977
10978 2003-02-17  Alexander Larsson  <alexl@redhat.com>
10979
10980         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
10981         Added todo.
10982
10983 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10984
10985         * doc/.cvsignore:
10986         * doc/Makefile.am:
10987         * doc/dbus-test-plan.sgml:
10988         Add test plan document.
10989
10990         * test/Makefile.am:
10991         Fix distcheck.
10992
10993 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10994
10995         * dbus/dbus-message.c: (decode_header_data),
10996         (_dbus_message_loader_return_buffer):
10997         Set the header padding amount when loading a message.
10998
10999 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11000
11001         * bus/dispatch.c: (send_one_message):
11002         Only send broadcast messages to registered connections.
11003
11004         * dbus/dbus-message.c: (dbus_message_name_is):
11005         * dbus/dbus-message.h:
11006         New convenience function.
11007
11008         * dbus/dbus-transport-debug.c: (do_reading):
11009         Only dispatch one message per run.
11010
11011         * test/Makefile.am:
11012         * test/bus-test.c: (new_connection_callback), (die),
11013         (test_hello_client1_handler), (test_hello_client2_handler),
11014         (test_hello_replies), (main):
11015
11016         * test/bus-test-loop.[ch]:
11017         Add these.
11018
11019 2003-02-16  Havoc Pennington  <hp@pobox.com>
11020
11021         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11022         backward conditional
11023
11024 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11025
11026         * dbus/dbus-connection.c:
11027         Implement sent_message_with_reply. (with_reply_and block is still
11028         busted).
11029         Made dispatch_message not lose message if OOM.
11030
11031         * dbus/dbus-errors.h:
11032         Add NoReply error (for reply timeouts).
11033
11034 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11035
11036         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11037         Actually free keys and values when destroying hashtable.
11038
11039 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11040
11041         * dbus/dbus-auth.c: (client_try_next_mechanism):
11042         Plug a leak.
11043
11044         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11045         Return TRUE if there's no thread implementation around.
11046
11047         * glib/dbus-gmain.c: (free_source),
11048         (dbus_connection_hookup_with_g_main):
11049         Make sure to remove the GSource when the connection is finalized.
11050
11051 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11052
11053         * bus/dispatch.c: (bus_dispatch_message_handler):
11054         * dbus/dbus-errors.h:
11055         Return an error if someone tries to send a message to a service
11056         that doesn't exist.
11057
11058 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11059
11060         * bus/activation.c: (load_directory), (bus_activation_init),
11061         (bus_activation_activate_service):
11062         * bus/activation.h:
11063         * bus/driver.c:
11064         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11065         More work on the activation handling.
11066
11067         * dbus/dbus-errors.h:
11068         Add some error messages
11069
11070         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11071         * dbus/dbus-message.h:
11072         New function that creates an error message.
11073
11074         * dbus/dbus-protocol.h:
11075         Add ACTIVATE_SERVER message.
11076
11077         * dbus/dbus-server-unix.c: (unix_handle_watch),
11078         (_dbus_server_new_for_domain_socket):
11079         Call _dbus_fd_set_close_on_exec.
11080
11081         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11082         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11083         (_dbus_fd_set_close_on_exec):
11084         * dbus/dbus-sysdeps.h:
11085         Add _dbus_fd_set_close_on exec function. Also add function that checks
11086         that all open fds are set to close-on-exec and warns otherwise.
11087
11088         * dbus/dbus-transport-unix.c:
11089         (_dbus_transport_new_for_domain_socket):
11090         Call _dbus_fd_set_close_on_exec.
11091
11092 2003-02-16  Havoc Pennington  <hp@pobox.com>
11093
11094         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11095         allow people to avoid setting SIGPIPE to SIG_IGN
11096         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11097         we've been asked not to
11098
11099 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11100
11101         * dbus/dbus-list.c: (_dbus_list_append_link),
11102         (_dbus_list_prepend_link):
11103         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11104         (dbus_realloc):
11105         Warning fixes.
11106
11107 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11108
11109         * bus/Makefile.am:
11110         * bus/activation.c: (bus_activation_entry_free),
11111         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11112         * bus/activation.h:
11113         * bus/main.c: (main):
11114         Add simple activation support, doesn't work yet though.
11115
11116 2003-02-15   Zack Rusin  <zack@kde.org>
11117
11118         * qt/dbus-qthread.cpp:  small casting fix
11119
11120 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11121
11122         * dbus/dbus-errors.c: (dbus_set_error):
11123         * dbus/dbus-errors.h:
11124         Add a few errors and make dbus_set_error void.
11125
11126         * dbus/dbus-sysdeps.c:
11127         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11128         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11129         * dbus/dbus-sysdeps.h:
11130         Add _dbus_spawn_async.
11131
11132         * test/spawn-test.c: (main):
11133         Test for _dbus_spawn_async.
11134
11135 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11136
11137         * dbus/dbus-internals.h:
11138         Fix build without tests.
11139
11140         * dbus/dbus-list.c: (alloc_link):
11141         Fix a segfault when a malloc fails.
11142
11143         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11144         (dbus_malloc0), (dbus_realloc):
11145         Add support for malloc debugging.
11146
11147 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11148
11149         * dbus/dbus-threads.c:
11150         * dbus/dbus-threads.h:
11151         Add condvars. Remove static mutext from API.
11152         Implement static mutexes by initializing them from threads_init.
11153
11154         * glib/dbus-gthread.c:
11155         * qt/dbus-qthread.cpp:
11156         Update with the thread api changes.
11157
11158
11159         * dbus/dbus-list.c:
11160         * dbus/dbus-list.h:
11161         Turn StaticMutex into normal mutex + init function.
11162         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11163         _dbus_list_append_link, _dbus_list_prepend_link
11164
11165
11166         * dbus/dbus-sysdeps.c:
11167         * dbus/dbus-sysdeps.h:
11168         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11169         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11170
11171         * dbus/dbus-protocol.h:
11172         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11173
11174         * dbus/dbus-message.c:
11175         Make ref/unref atomic.
11176         Fix some docs.
11177
11178         * dbus/dbus-connection-internal.h:
11179         * dbus/dbus-connection.c:
11180         * dbus/dbus-connection.h:
11181         Make threadsafe.
11182         Change _peek to _borrow,_return & _steal_borrowed.
11183         Change disconnect callback to event.
11184         Make dbus_connection_dispatch_messages reentrant.
11185
11186         * dbus/dbus-transport.c:
11187         Don't ref the connection on calls to the transport
11188         implementation.
11189
11190         * dbus/dbus-message-handler.c:
11191         Make threadsafe.
11192
11193         * glib/dbus-gmain.c:
11194         Don't use peek_message anymore
11195
11196         * test/Makefile.am:
11197         * test/debug-thread.c:
11198         * test/debug-thread.h:
11199         Simple thread implementation that asserts() on deadlocks in
11200         single-threaded code.
11201
11202         * test/bus-test.c:
11203         (main) Call debug_threads_init.
11204
11205         * test/watch.c:
11206         Use disconnect message instead of disconnect callback.
11207
11208         * bus/connection.c:
11209         * bus/connection.h:
11210         Don't call dbus_connection_set_disconnect_function. Instead export
11211         bus_connection_disconnect.
11212
11213         * bus/dispatch.c:
11214         Call bus_connection_disconnect when we get a disconnected message.
11215
11216 2003-02-15  Havoc Pennington  <hp@pobox.com>
11217
11218         * dbus/dbus-message.c (dbus_message_new): fool around with the
11219         docs
11220
11221 2003-02-14  Havoc Pennington  <hp@pobox.com>
11222
11223         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11224
11225         * dbus/dbus-memory.c: fail if the debug functions indicate we
11226         should
11227
11228         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11229         (_dbus_decrement_fail_alloc_counter): debug functions to
11230         simulate memory allocation failures
11231
11232 2003-02-14  Havoc Pennington  <hp@pobox.com>
11233
11234         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11235         to DBusError
11236
11237 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11238
11239         * bus/driver.c: (bus_driver_handle_hello):
11240         * bus/driver.h:
11241         * bus/services.c: (bus_service_lookup):
11242         Reorder message sending so we get a more sane order.
11243
11244         * test/bus-test.c: (message_handler):
11245         Fix tyop.
11246
11247 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11248
11249         * bus/driver.c: (bus_driver_send_service_deleted),
11250         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11251         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11252         (bus_driver_send_welcome_message),
11253         (bus_driver_handle_list_services),
11254         (bus_driver_handle_acquire_service),
11255         (bus_driver_handle_service_exists):
11256         * dbus/dbus-bus.c: (dbus_bus_register_client),
11257         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11258         * dbus/dbus-errors.c: (dbus_result_to_string):
11259         * dbus/dbus-errors.h:
11260         * dbus/dbus-message.c: (dbus_message_append_args),
11261         (dbus_message_append_args_valist), (dbus_message_get_args),
11262         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11263         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11264         (dbus_message_iter_get_byte_array),
11265         (dbus_message_iter_get_string_array), (message_iter_test),
11266         (check_message_handling), (_dbus_message_test):
11267         * dbus/dbus-message.h:
11268         * test/bus-test.c: (main):
11269         Change fields to arguments in messages, so that they won't be
11270         confused with header fields.
11271
11272         * glib/test-dbus-glib.c: (main):
11273         Remove append_fields from hello message.
11274
11275 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11276
11277         * dbus/dbus-errors.c:
11278         * dbus/dbus-message.c:
11279         * dbus/dbus-string.c:
11280         Documentation fixes.
11281
11282 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11283
11284         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11285         (remove_timeout):
11286         Implement support for timeouts in dbus-glib.
11287
11288 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11289
11290         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11291         * dbus/dbus-message.c: (process_test_subdir):
11292         * test/break-loader.c: (find_breaks_based_on):
11293         Plug some memory leaks.
11294
11295 2003-02-13  Richard Hult  <rhult@codefactory.se>
11296
11297         * bus/main.c: Fix build.
11298
11299         * dbus/dbus-errors.h:
11300         * dbus/dbus-errors.c: Fix copyright for Anders.
11301
11302 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11303
11304         * bus/Makefile.am:
11305         Add utils.[ch]
11306
11307         * bus/connection.c: (bus_connection_foreach):
11308         Fix a warning.
11309
11310         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11311         (unescape_string), (new_section), (parse_section_start),
11312         (parse_key_value), (report_error), (bus_desktop_file_load),
11313         (bus_desktop_file_get_string):
11314         * bus/desktop-file.h:
11315         Use DBusError for error reporting.
11316
11317         * bus/dispatch.c: (send_one_message),
11318         (bus_dispatch_message_handler):
11319         * bus/driver.c: (bus_driver_send_service_deleted),
11320         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11321         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11322         (bus_driver_send_welcome_message),
11323         (bus_driver_handle_list_services),
11324         (bus_driver_handle_acquire_service),
11325         (bus_driver_handle_service_exists):
11326         * bus/loop.c: (bus_loop_run):
11327         * bus/main.c:
11328         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11329
11330         * bus/utils.c: (bus_wait_for_memory):
11331         * bus/utils.h:
11332         New files with general utility functions.
11333
11334         * dbus/dbus-internals.h:
11335         Remove _DBUS_HANDLE_OOM.
11336
11337 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11338
11339         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11340         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11341         * dbus/dbus-errors.h:
11342         Add DBusError structure.
11343
11344 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11345
11346         * test/data/valid-messages/standard-acquire-service.message:
11347         * test/data/valid-messages/standard-hello.message:
11348         * test/data/valid-messages/standard-list-services.message:
11349         * test/data/valid-messages/standard-service-exists.message:
11350         Add some standard messages.
11351
11352 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11353
11354         * bus/driver.c: (bus_driver_send_welcome_message),
11355         (bus_driver_handle_list_services),
11356         (bus_driver_handle_acquire_service),
11357         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11358         Update for API changes in libdbus.
11359
11360         * dbus/dbus-message.c: (dbus_message_new_reply):
11361         * dbus/dbus-message.h:
11362         Remove the name argument. The spec states that replies shouldn't
11363         have a name.
11364
11365 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11366
11367         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11368         (report_error), (bus_desktop_file_load), (lookup_section),
11369         (lookup_line), (bus_desktop_file_get_raw),
11370         (bus_desktop_file_get_string):
11371         * bus/desktop-file.h:
11372         Some fixes, and new functions for getting a key value from a section.
11373
11374 2003-02-13  Havoc Pennington  <hp@pobox.com>
11375
11376         * test/data/auth/fail-after-n-attempts.auth-script: new test
11377
11378         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11379         reject the client.
11380
11381 2003-02-13  Havoc Pennington  <hp@pobox.com>
11382
11383         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11384         dbus_credentials_match were backward
11385
11386         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11387         NO_CREDENTIALS and ROOT_CREDENTIALS
11388
11389         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11390         into here. Never process more commands after we've reached an
11391         end state; store further data as unused bytes.
11392
11393         * test/data/auth/*: add more auth tests
11394
11395         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11396         command to match exact string and EXPECT_UNUSED to match unused
11397         bytes
11398
11399         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11400
11401 2003-02-12  Havoc Pennington  <hp@pobox.com>
11402
11403         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11404         \r off of popped lines
11405
11406         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11407         scripts
11408
11409         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11410         SEND, append \r\n
11411
11412 2003-02-12  Havoc Pennington  <hp@pobox.com>
11413
11414         * dbus/Makefile.am: remove break-loader from the build, since it
11415         moved.
11416
11417         * configure.in: add --enable-gcov to turn on coverage profiling
11418         flags and disable optimization
11419
11420 2003-02-10  Havoc Pennington  <hp@pobox.com>
11421
11422         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11423         initial cut at test framework for DBusAuth from laptop.
11424         Doesn't quite work yet but it compiles and I need to get
11425         it off the 266mhz laptop. ;-)
11426
11427         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11428         fix a memleak in error case
11429
11430 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11431
11432         * bus/Makefile.am:
11433         * bus/desktop-file.c:
11434         * bus/desktop-file.h:
11435         Add a desktop file parser.
11436
11437 2003-02-11  Zack Rusin  <zack@kde.org>
11438
11439         * qt/message.[h|cpp]: sample implementation
11440         of the KDE wrapper for DBusMessage
11441
11442 2003-02-09  Zack Rusin  <zack@kde.org>
11443
11444         * test/bus-test.c: make_it_compile
11445         * doc/dbus-specification.sgml: minimal semantic fix
11446
11447 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11448
11449         Release 0.3
11450
11451         * NEWS: Update
11452
11453 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11454
11455         * dbus/Makefile.am:
11456         * dbus/dbus-break-loader.c:
11457         * test/Makefile.am:
11458         * test/break-loader.c:
11459         Move dbus-break-loader to test/ and rename it to break-loader.
11460
11461 2003-02-02  Havoc Pennington  <hp@pobox.com>
11462
11463         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11464         for code to manage cookies in your home directory
11465
11466         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11467
11468         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11469         to authenticate, then disconnect the client.
11470
11471 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11472
11473         * dbus/dbus-message.c (dbus_message_append_fields):
11474         Correct docs.
11475
11476 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11477
11478         * doc/dbus-specification.sgml:
11479         Update address format section.
11480
11481 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11482
11483         * test/Makefile.am:
11484         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11485         (message_handler), (new_connection_callback), (loop_quit),
11486         (loop_run), (main):
11487         Add bus test.
11488
11489 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11490
11491         * bus/driver.c: (bus_driver_handle_service_exists):
11492         Simplify the code a bit.
11493
11494         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11495         Fix a silly.
11496
11497 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11498
11499         * bus/Makefile.am:
11500         Add libdbus-daemon.la and link to it.
11501
11502 2003-02-01  James Willcox  <jwillcox@gnome.org>
11503
11504         * bus/driver.c: (bus_driver_handle_own_service):
11505         Actually include the service reply code in the message.
11506
11507 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11508
11509         * bus/driver.c: (bus_driver_handle_service_exists):
11510         Don't unref the incoming message.
11511
11512 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11513
11514         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11515
11516 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11517
11518         * dbus/dbus-server.c: (dbus_server_listen):
11519         * dbus/dbus-transport.c: (_dbus_transport_open):
11520         ifdef out the calls to the debug transport and server.
11521
11522 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11523
11524         * dbus/dbus-watch.c (dbus_watch_get_flags):
11525         Add note in the docs that ERROR or HANGUP won't be returned
11526         and are assumed always on.
11527
11528         * glib/dbus-gmain.c (add_watch):
11529         Always add IO_ERR | IO_HUP
11530
11531         * dbus/dbus-message.h:
11532         Add semicolon after dbus_message_iter_get_string_array().
11533         Makes qt code build again
11534
11535 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11536
11537         * bus/driver.c: (create_unique_client_name),
11538         (bus_driver_handle_hello):
11539         Don't take a name, just use a numeric id to identify
11540         each client.
11541
11542         * dbus/Makefile.am:
11543         * dbus/dbus-bus.c: (dbus_bus_register_client),
11544         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11545         * dbus/dbus-bus.h:
11546         Add new convenience functions for communicating with the bus.
11547
11548         * dbus/dbus-message.h:
11549
11550         * dbus/dbus-protocol.h:
11551         Fix a typo.
11552
11553 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11554
11555         * dbus/dbus-message.c (dbus_message_append_fields):
11556         Add some more doc comments.
11557
11558 2003-02-01  Havoc Pennington  <hp@pobox.com>
11559
11560         * dbus/dbus-break-loader.c (randomly_modify_length): change
11561         a 4-byte value in the message as if it were a length
11562
11563         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11564         execute bit on saved files
11565
11566 2003-02-01  Havoc Pennington  <hp@pobox.com>
11567
11568         * dbus/dbus-break-loader.c (main): new program to find messages
11569         that break the loader.
11570
11571         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11572         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11573
11574         * dbus/dbus-string.c (_dbus_string_set_byte): new
11575
11576 2003-01-31  Havoc Pennington  <hp@pobox.com>
11577
11578         * dbus/dbus-message.c: refactor the test code to be more general,
11579         in preparation for writing a "randomly permute test cases to
11580         try to break the loader" program.
11581
11582 2003-01-31  Havoc Pennington  <hp@pobox.com>
11583
11584         * doc/dbus-specification.sgml: work on the specification
11585
11586         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11587         the protocol version of the message.
11588
11589         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11590         no longer specifies that.
11591         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11592         1/2/3/4)
11593
11594         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11595         "break" for DBUS_TYPE_NIL, remove @todo
11596
11597 2003-01-31  Havoc Pennington  <hp@pobox.com>
11598
11599         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11600         just set_is_error/get_is_error as this is a commonly-used
11601         function, and write docs.
11602
11603 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
11604
11605         * dbus/dbus-address.c: (dbus_address_entry_free):
11606         Free key and value lists.
11607
11608         * dbus/dbus-internals.c: (_dbus_type_to_string):
11609         Add the types we didn't have.
11610
11611         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11612         (_dbus_marshal_validate_arg):
11613         Add NIL types.
11614
11615         * dbus/dbus-message.c: (dbus_message_set_sender):
11616         Remove todo about being able to set sender to NULL.
11617
11618         (dbus_message_set_is_error_reply),
11619         (dbus_message_get_is_error_reply):
11620         * dbus/dbus-message.h:
11621         New functions.
11622
11623         * dbus/dbus-protocol.h:
11624         Add error reply flag.
11625
11626         * test/data/valid-messages/opposite-endian.message:
11627         Add NIL type to test.
11628
11629 2003-01-31  Havoc Pennington  <hp@pobox.com>
11630
11631         * doc/dbus-specification.sgml: fully specify the header.  Add
11632         flags and major protocol version, and change header/body len to
11633         unsigned.
11634
11635         * dbus/dbus-message-builder.c (append_saved_length): append length
11636         as uint32
11637
11638         * dbus/dbus-message.c (dbus_message_create_header): change header
11639         length and body length to unsigned. Add the new fields from the
11640         spec
11641         (_dbus_message_loader_return_buffer): unsigned header/body len
11642
11643 2003-01-30  Havoc Pennington  <hp@pobox.com>
11644
11645         * dbus/dbus-auth.c: rework to use only REJECTED, no
11646         MECHANISMS
11647
11648         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11649         use REJECTED, suggested by Mark McLoughlin
11650
11651 2003-01-30  Havoc Pennington  <hp@pobox.com>
11652
11653         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11654         a better way to report errors here. e.g.  "unix address lacks
11655         path" or something. also "no such file" when the path doesn't
11656         exist, etc.
11657
11658         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11659         leaking list nodes
11660         (dbus_parse_address): add @todo about documenting address format,
11661         and allowing , and ; to be escaped
11662
11663 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
11664
11665         * dbus/Makefile.am:
11666         Add dbus-address.[ch]
11667
11668         * dbus/dbus-address.c: (dbus_address_entry_free),
11669         (dbus_address_entries_free), (create_entry),
11670         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11671         (dbus_parse_address), (_dbus_address_test):
11672         * dbus/dbus-address.h:
11673         New files for dealing with address parsing.
11674
11675         * dbus/dbus-connection.c:
11676         Document timeout functions.
11677
11678         * dbus/dbus-message.c:
11679         Document dbus_message_new_from_message.
11680
11681         * dbus/dbus-server-debug.c:
11682         Document.
11683
11684         * dbus/dbus-server.c: (dbus_server_listen):
11685         Parse address and use correct server implementation.
11686
11687         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11688         * dbus/dbus-string.h:
11689         New function with test.
11690
11691         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11692         * dbus/dbus-test.h:
11693         Add address tests.
11694
11695         * dbus/dbus-transport-debug.c:
11696         Document.
11697
11698         * dbus/dbus-transport.c: (_dbus_transport_open):
11699         Parse address and use correct transport implementation.
11700
11701 2003-01-30  Havoc Pennington  <hp@pobox.com>
11702
11703         * dbus/dbus-message.c: use message->byte_order instead of
11704         DBUS_COMPILER_BYTE_ORDER throughout.
11705         (dbus_message_create_header): pad header to align the
11706         start of the body of the message to 8-byte boundary
11707
11708         * dbus/dbus-marshal.h: make all the demarshalers take const
11709         DBusString arguments.
11710
11711         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11712         validate message args here, so we don't have to do slow validation
11713         later, and so we catch bad messages as they are incoming. Also add
11714         better checks on header_len and body_len. Also fill in
11715         message->byte_order
11716
11717         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11718         implemented properly)
11719         (_dbus_string_validate_nul): new function to check all-nul
11720
11721         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11722         get_arg_end_pos and remove all validation
11723         (_dbus_marshal_validate_arg): actually do validation here.
11724
11725 2003-01-29  Havoc Pennington  <hp@pobox.com>
11726
11727         * dbus/dbus-message.c (check_message_handling): fix assertion
11728         failure on set_client_serial
11729
11730 2003-01-28  Havoc Pennington  <hp@pobox.com>
11731
11732         * dbus/dbus-server-debug.c: Add doc section comments
11733
11734         * dbus/dbus-transport-debug.c: add doc section comments
11735
11736 2003-01-28  Havoc Pennington  <hp@redhat.com>
11737
11738         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11739         the reverse order from how I had it
11740         (_dbus_string_base64_encode): reverse encoding order. I was
11741         basically byteswapping everything during encoding.
11742
11743 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
11744
11745         * dbus/dbus-connection-internal.h:
11746         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11747         (_dbus_connection_remove_timeout):
11748         Add functions for adding and removing timeouts.
11749
11750         * dbus/dbus-message.c: (dbus_message_new_from_message):
11751         Add new function that takes a message and creates an exact
11752         copy of it, but with the refcount set to 1.
11753         (check_message_handling):
11754         Fix build error.
11755
11756         * dbus/dbus-server-protected.h:
11757         * dbus/dbus-server.c: (_dbus_server_init_base),
11758         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11759         (dbus_server_set_timeout_functions):
11760         (_dbus_server_remove_timeout):
11761         New functions so that a server can add and remove timeouts.
11762
11763         (dbus_server_listen):
11764         Add commented out call to dbus_server_debug_new.
11765
11766         * dbus/dbus-timeout.c: (_dbus_timeout_new):
11767         Actually set the handler, doh.
11768
11769         * dbus/dbus-transport.c: (_dbus_transport_open):
11770         Add commented out call to dbus_transport_debug_client_new.
11771
11772         * dbus/Makefile.am:
11773         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11774
11775 2003-01-28  Havoc Pennington  <hp@pobox.com>
11776
11777         * dbus/dbus-message.c (check_message_handling): function to check
11778         on the loaded message, iterates over it etc.
11779
11780 2003-01-28  Havoc Pennington  <hp@pobox.com>
11781
11782         * test/Makefile.am (dist-hook): fix make distdir
11783
11784         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11785
11786 2003-01-27  Havoc Pennington  <hp@pobox.com>
11787
11788         * dbus/dbus-mempool.c (time_for_size): replace printf with
11789         _dbus_verbose
11790
11791         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11792         empty lines; fix the SAVE_LENGTH stuff to be
11793         START_LENGTH/END_LENGTH so it actually works; couple other
11794         bugfixes
11795
11796         * test/Makefile.am (dist-hook): add dist-hook for .message files
11797
11798         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11799         can be constant or locked.
11800         (_dbus_string_free): allow freeing a const string as
11801         documented/intended
11802
11803         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11804
11805         * dbus/dbus-test-main.c (main): take an argument which is the
11806         directory containing test data
11807
11808         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11809         argument to this and load all the messages in test/data/
11810         checking that they can be loaded or not loaded as appropriate.
11811
11812 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
11813
11814         * bus/dispatch.c: (bus_dispatch_message_handler):
11815         Dispatch messages sent to services.
11816
11817         * bus/driver.c: (bus_driver_send_service_deleted),
11818         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11819         (bus_driver_send_service_acquired):
11820         Add helper functions for sending service related messages.
11821
11822         (bus_driver_send_welcome_message):
11823         Send HELLO_REPLY instead of WELCOME.
11824
11825         (bus_driver_handle_list_services):
11826         Send LIST_SERVICES_REPLY instead of SERVICES.
11827
11828         (bus_driver_handle_own_service),
11829         (bus_driver_handle_service_exists):
11830         New message handlers.
11831
11832         (bus_driver_handle_message):
11833         Invoke new message handlers.
11834
11835         (bus_driver_remove_connection):
11836         Don't remove any services here since that's done automatically
11837         by bus_service_remove_owner now.
11838
11839         * bus/driver.h:
11840         New function signatures.
11841
11842         * bus/services.c: (bus_service_add_owner):
11843         Send ServiceAcquired message if we're the only primary owner.
11844
11845         (bus_service_remove_owner):
11846         Send ServiceAcquired/ServiceLost messages.
11847
11848         (bus_service_set_prohibit_replacement),
11849         (bus_service_get_prohibit_replacement):
11850         Functions for setting prohibit replacement.
11851
11852         (bus_service_has_owner):
11853         New function that checks if a connection is in the owner queue of
11854         a certain service.
11855
11856         * bus/services.h:
11857         Add new function signatures.
11858
11859         * dbus/dbus-list.c: (_dbus_list_test):
11860         Add tests for _dbus_list_remove_last and traversing the list backwards.
11861
11862         * dbus/dbus-list.h:
11863         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11864         go any further, so return NULL then.
11865
11866         * dbus/dbus-protocol.h:
11867         Add new messages, service flags and service replies.
11868
11869 2003-01-26  Havoc Pennington  <hp@pobox.com>
11870
11871         * dbus/dbus-message-builder.c: implement, completely untested.
11872
11873         * test/data/*: add data to be used in testing.
11874         ".message" files are our simple loadable text format.
11875         ".message-raw" will be binary dumps of messages.
11876
11877         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11878
11879 2003-01-26  Havoc Pennington  <hp@pobox.com>
11880
11881         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11882
11883         * dbus/dbus-errors.c (dbus_result_to_string): add
11884         file errors
11885
11886         * dbus/dbus-message-builder.c: new file, will contain code to load
11887         up messages from files. Not implemented yet.
11888
11889 2003-01-26  Havoc Pennington  <hp@pobox.com>
11890
11891         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11892         the sender by setting to NULL
11893
11894 2003-01-26  Havoc Pennington  <hp@pobox.com>
11895
11896         The unit tests pass, but otherwise untested.  If it breaks, the
11897         tests should have been better. ;-)
11898
11899         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
11900         the connection.
11901
11902         * dbus/dbus-message.c: redo everything so we maintain
11903         message->header as the only copy of the various fields.
11904         This avoids the possibility of out-of-memory in some cases,
11905         for example dbus_message_lock() can't run out of memory anymore,
11906         and avoids extra copying. Figured I may as well go ahead and do
11907         this since it was busted for dbus_message_lock to not return
11908         failure on OOM, and dbus_message_write_header was totally
11909         unchecked for OOM. Also fixed some random other bugs.
11910
11911         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
11912         that strings are nul-terminated. Also, end_pos can be equal
11913         to string length just not greater than, I think.
11914         (_dbus_marshal_set_int32): new function
11915         (_dbus_marshal_set_uint32): new function
11916         (_dbus_marshal_set_string): new function
11917
11918         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
11919         a warning, init timeout_list to NULL
11920         (dbus_connection_send_message): don't use uninitialized variable
11921         "serial"
11922
11923         * dbus/dbus-string.c (_dbus_string_replace_len): new function
11924
11925 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11926
11927         * bus/driver.c: (bus_driver_handle_hello),
11928         (bus_driver_send_welcome_message):
11929         Plug leaks
11930
11931 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11932
11933         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
11934         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11935         (dbus_connection_unref):
11936         * dbus/dbus-marshal.c: (_dbus_marshal_test):
11937         * dbus/dbus-message.c: (dbus_message_unref),
11938         Plug memory leaks.
11939
11940         (dbus_message_get_fields):
11941         Remove debugging printout.
11942
11943         (_dbus_message_loader_return_buffer):
11944         Don't store the header string.
11945
11946         (_dbus_message_test):
11947         Plug leaks.
11948
11949 2003-01-26  Richard Hult  <rhult@codefactory.se>
11950
11951         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
11952         the file descriptor list, since it can change under us.
11953
11954 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11955
11956         * glib/dbus-gmain.c: (dbus_connection_prepare),
11957         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
11958         (remove_watch), (dbus_connection_hookup_with_g_main):
11959         Rewrite the glib handling to use its own GSource instead of a
11960         GIOChannel so we can catch messages put in the queue while waiting
11961         for a reply.
11962
11963 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11964
11965         * bus/Makefile.am:
11966         * bus/connection.c: (connection_disconnect_handler),
11967         (connection_watch_callback), (bus_connection_setup):
11968         * bus/dispatch.c: (send_one_message),
11969         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
11970         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
11971         * bus/dispatch.h:
11972         * bus/driver.c: (bus_driver_send_service_deleted),
11973         (bus_driver_send_service_created), (bus_driver_handle_hello),
11974         (bus_driver_send_welcome_message),
11975         (bus_driver_handle_list_services), (bus_driver_remove_connection),
11976         (bus_driver_handle_message):
11977         * bus/driver.h:
11978         Refactor code, put the message dispatching in its own file. Use
11979         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
11980         is disconnected.
11981
11982 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11983
11984         * dbus/dbus-internals.h:
11985         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
11986
11987         * dbus/dbus-message.c: (dbus_message_get_sender):
11988         * dbus/dbus-message.h:
11989         Implement dbus_message_get_sender.
11990
11991         * dbus/dbus-protocol.h:
11992         Add message and service defines.
11993
11994 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11995
11996         * dbus/dbus-connection.c: (dbus_connection_send_message):
11997         * dbus/dbus-message-internal.h:
11998         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
11999         (dbus_message_write_header):
12000         Remove _dbus_messag_unlock and don't set the client serial on a
12001         message if one already exists.
12002
12003 2003-01-24  Havoc Pennington  <hp@pobox.com>
12004
12005         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12006         list_pool
12007
12008         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12009         on OOM
12010
12011 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12012
12013         * dbus/dbus-list.c: (alloc_link), (free_link):
12014         Use a memory pool for the links.
12015
12016 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12017
12018         * bus/connection.c: (bus_connection_foreach):
12019         * bus/connection.h:
12020         Add new bus_connection_foreach function.
12021
12022         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12023         Add function that broadcasts a message to all clients.
12024
12025         (bus_driver_send_service_created), (bus_driver_handle_hello),
12026         (bus_driver_send_welcome_message),
12027         (bus_driver_handle_list_services), (bus_driver_message_handler):
12028         Implement functions that take care of listing services, and notifying
12029         clients when new services are created.
12030
12031         * bus/services.c: (bus_services_list):
12032         * bus/services.h:
12033         Add new function that returns an array of strings with the currently
12034         registered services.
12035
12036         * glib/dbus-glib.h:
12037         * glib/dbus-gmain.c:
12038         Update copyright year.
12039
12040 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12041
12042         * dbus/dbus-connection.c: (dbus_connection_send_message):
12043         Unlock the message in case it was sent earlier.
12044
12045         (dbus_connection_send_message_with_reply_and_block):
12046         Remove the reply message from the list.
12047
12048         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12049         Set array_len and new_pos correctly.
12050
12051         (_dbus_marshal_test):
12052         Remove debug output.
12053
12054         * dbus/dbus-message-internal.h:
12055         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12056         New function that returns the reply serial.
12057
12058         (_dbus_message_unlock):
12059         New function that unlocks a message and resets its header.
12060
12061         (dbus_message_append_string_array),
12062         (dbus_message_get_fields_valist),
12063         (dbus_message_iter_get_field_type),
12064         (dbus_message_iter_get_string_array),
12065         (dbus_message_get_fields),
12066         (dbus_message_append_fields_valist):
12067         Handle string arrays.
12068
12069         (dbus_message_set_sender):
12070         Make this function public since the bus daemon needs it.
12071
12072         (decode_header_data):
12073         Set the reply serial to -1 initially.
12074
12075         * dbus/dbus-message.h:
12076         Add dbus_message_set_sender.
12077
12078 2003-01-24  Havoc Pennington  <hp@pobox.com>
12079
12080         * doc/dbus-specification.sgml: add some stuff
12081
12082 2003-01-22  Havoc Pennington  <hp@pobox.com>
12083
12084         * doc/dbus-specification.sgml: Start to document the protocol.
12085
12086 2003-01-22  Havoc Pennington  <hp@pobox.com>
12087
12088         * dbus/dbus-connection.c
12089         (dbus_connection_send_message_with_reply_and_block): add some @todo
12090
12091         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12092
12093 2003-01-21  Havoc Pennington  <hp@pobox.com>
12094
12095         (patch untested because can't compile)
12096
12097         * bus/driver.c (create_unique_client_name): make this function
12098         never recycle client names. Also, caller should initialize
12099         the DBusString.
12100
12101         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12102
12103 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12104
12105         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12106         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12107         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12108         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12109         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12110         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12111         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12112         * dbus/dbus-marshal.h:
12113         * dbus/dbus-protocol.h:
12114         Add support for marshalling and demarshalling integer, double
12115         and string arrays.
12116
12117 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12118
12119         * bus/Makefile.am:
12120         Add driver.[ch]
12121
12122         * bus/connection.c: (connection_disconnect_handler):
12123         Remove the connection from the bus driver's list.
12124
12125         (connection_watch_callback): Dispatch messages.
12126
12127         (free_connection_data): Free connection name.
12128
12129         (bus_connection_setup): Add connection to the bus driver's list.
12130         (bus_connection_remove_owned_service):
12131         (bus_connection_set_name), (bus_connection_get_name):
12132         Add functions for setting and getting the connection's name.
12133
12134         * bus/connection.h:
12135         Add function headers.
12136
12137         * bus/driver.c: (create_unique_client_name),
12138         (bus_driver_handle_hello_message),
12139         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12140         (bus_driver_add_connection), (bus_driver_remove_connection):
12141         * bus/driver.h:
12142         * bus/main.c:
12143         * bus/services.c: (bus_service_free):
12144         * bus/services.h:
12145         New file that handles communication and registreation with the bus
12146         itself.
12147
12148 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12149
12150         * dbus/dbus-connection.c: (dbus_connection_send_message):
12151         Add a new client_serial parameter.
12152
12153         (dbus_connection_send_message_with_reply):
12154         Remove a @todo since we've implemented the blocking function.
12155
12156         (dbus_connection_send_message_with_reply_and_block):
12157         New function that sends a message and waits for a reply and
12158         then returns the reply.
12159
12160         * dbus/dbus-connection.h:
12161         Add new functions.
12162
12163         * dbus/dbus-errors.c: (dbus_result_to_string):
12164         * dbus/dbus-errors.h:
12165         Add new DBUS_RESULT.
12166
12167         * dbus/dbus-message-internal.h:
12168         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12169         (_dbus_message_set_sender), (dbus_message_write_header),
12170         (dbus_message_new_reply), (decode_header_data),
12171         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12172         * dbus/dbus-message.h:
12173         Add new functions that set the reply serial and sender.
12174         Also marshal and demarshal them correctly and add test.
12175
12176         * dbus/dbus-protocol.h:
12177         Add new DBUS_MESSAGE_TYPE_SENDER.
12178
12179         * glib/dbus-glib.h:
12180         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12181         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12182         (dbus_connection_hookup_with_g_main):
12183         * glib/test-dbus-glib.c: (main):
12184         Rewrite to use GIOChannel and remove the GSource crack.
12185
12186         * test/echo-client.c: (main):
12187         * test/watch.c: (check_messages):
12188         Update for changed APIs
12189
12190 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12191
12192         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12193
12194         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12195         Create a DBusTimeoutList.
12196         (dbus_connection_set_timeout_functions): Add new function to
12197         set timeout callbacks
12198
12199         * dbus/dbus-connection.h: Add public DBusTimeout API.
12200
12201         * dbus/dbus-message.c: (dbus_message_get_service):
12202         * dbus/dbus-message.h:  New function.
12203
12204         * dbus/dbus-server.c: Fix small doc typo.
12205
12206         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12207
12208 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12209
12210         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12211         of the string, just as long as specified.
12212
12213 2003-01-19  Havoc Pennington  <hp@pobox.com>
12214
12215         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12216         new function
12217
12218         * dbus/dbus-server.c (dbus_server_set_max_connections)
12219         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12220         keep track of current number of connections, and add API for
12221         setting a max (but haven't implemented enforcing the max yet)
12222
12223 2003-01-18  Havoc Pennington  <hp@pobox.com>
12224
12225         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12226         reading/writing if read_watch != NULL or write_watch != NULL.
12227
12228         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12229         the message loader code to actually load message->header and
12230         message->body into the newly-created message.
12231
12232         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12233         in OOM case
12234
12235         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12236         (dbus_connection_get_max_message_size)
12237         (dbus_connection_set_max_live_messages_size)
12238         (dbus_connection_get_max_live_messages_size): implement some
12239         resource limitation functions
12240
12241         * dbus/dbus-resources.c: new file implementing some of the
12242         resource limits stuff
12243
12244         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12245         missing docs, add @todo to handle OOM etc.
12246
12247         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12248         docs
12249
12250 2003-01-18  Havoc Pennington  <hp@pobox.com>
12251
12252         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12253         connection if it hasn't been already.
12254
12255         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12256         replace with DisconnectFunction.
12257
12258 2003-01-18  Havoc Pennington  <hp@pobox.com>
12259
12260         Building --disable-verbose-mode --disable-asserts --disable-tests
12261         cuts the library from 112K to 45K or so
12262
12263         * configure.in: check for varargs macro support,
12264         add --enable-verbose-mode, --enable-asserts.
12265
12266         * dbus/dbus-internals.h (_dbus_assert): support
12267         DBUS_DISABLE_ASSERT
12268         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12269
12270 2003-01-18  Havoc Pennington  <hp@pobox.com>
12271
12272         * dbus/dbus-test.c: include config.h so that tests actually run
12273
12274         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12275         so the failure mode when that assumption fails will be plenty
12276         obvious.
12277
12278 2003-01-18  Havoc Pennington  <hp@pobox.com>
12279
12280         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12281
12282         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12283         the distribution
12284
12285         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12286         since we don't want to use those in make check
12287
12288 2003-01-15  Havoc Pennington  <hp@redhat.com>
12289
12290         Release 0.2
12291
12292         * NEWS: update
12293
12294 2003-01-15  Havoc Pennington  <hp@redhat.com>
12295
12296         * test/Makefile.am: fix so that test source code ends up in the
12297         distribution on make distcheck
12298
12299 2003-01-15  Havoc Pennington  <hp@redhat.com>
12300
12301         Release 0.1.
12302
12303         * NEWS: update
12304
12305 2003-01-15  Havoc Pennington  <hp@redhat.com>
12306
12307         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12308         fix build when --disable-tests
12309
12310         * Makefile.am (EXTRA_DIST): put HACKING in here
12311
12312         * HACKING: document procedure for making a tarball release.
12313
12314 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12315
12316         * bus/connection.c: (connection_error_handler),
12317         (bus_connection_setup):
12318         * bus/main.c: (main):
12319         Make sure that the DBusConnectionData struct is NULLed
12320         out to prevent a segfault.
12321
12322         * dbus/dbus-errors.c: (dbus_result_to_string):
12323         * dbus/dbus-errors.h:
12324         * dbus/dbus-message.c: (dbus_message_get_fields),
12325         (dbus_message_get_fields_valist), (_dbus_message_test):
12326         * dbus/dbus-message.h:
12327         Make dbus_message_get_fields return a result code so we can
12328         track invalid fields as well as oom.
12329
12330 2003-01-11  Havoc Pennington  <hp@pobox.com>
12331
12332         * configure.in: change --enable-test/--enable-ansi action-if-given
12333         to enable_foo=$enableval instead of enable_foo=yes
12334
12335 2003-01-08  Havoc Pennington  <hp@pobox.com>
12336
12337         * dbus/dbus-string.c (_dbus_string_align_length): new function
12338
12339         * dbus/dbus-test-main.c: move main() for test app here
12340         * dbus/dbus-test.c
12341         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12342         symbol to run tests, because dbus-test isn't in the main
12343         library
12344
12345         Code review nitpicks.
12346
12347         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12348         for people with narrow emacs ;-). Assert client_serial was filled
12349         in. Assert message->name != NULL.
12350         (dbus_message_append_fields): have "first_field_type" arg separate
12351         from va list, needed for C++ binding that also uses varargs IIRC
12352         and helps with type safety
12353         (dbus_message_new): add @todo about using DBusString to store
12354         service/name internally
12355         (dbus_message_new): don't leak ->service and ->name on OOM later
12356         in the function
12357         (dbus_message_unref): free the service name
12358         (dbus_message_get_fields): same change to varargs
12359         i.e. first_field_type
12360         (_dbus_message_loader_return_buffer): assert that the message data
12361         is aligned (if not it's a bug in our code). Put in verbose griping
12362         about why we set corrupted = TRUE.
12363         (decode_header_data): add FIXME that char* is evil.  Was going to
12364         add FIXME about evil locale-specific string.h strncmp, but just
12365         switched to wacky string-as-uint32 optimization. Move check for
12366         "no room for field name" above get_const_data_len() to avoid
12367         assertion failure in get_const_data_len if we have trailing 2
12368         bytes or the like. Check for service and name fields being
12369         provided twice. Don't leak service/name on error. Require field
12370         names to be aligned to 4 bytes.
12371
12372         * dbus/dbus-marshal.c: move byte swap stuff to header
12373         (_dbus_pack_int32): uscore-prefix
12374         (_dbus_unpack_int32): uscore-prefix
12375         (_dbus_unpack_uint32): export
12376         (_dbus_demarshal_string): add @todo complaining about use of
12377         memcpy()
12378         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12379         handling allowing corrupt data to go unchecked
12380
12381 2003-01-08  Havoc Pennington  <hp@redhat.com>
12382
12383         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12384         to the select() as needed for authentication. (should be using
12385         _dbus_poll() not select, but for another day)
12386
12387         * dbus/dbus.h: include dbus/dbus-protocol.h
12388
12389 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12390
12391         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12392         dbus-connection.h
12393
12394 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12395
12396         * dbus/dbus-internals.c: (_dbus_type_to_string):
12397         New function that returns a string describing a type.
12398
12399         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12400         * dbus/dbus-marshal.h:
12401         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12402         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12403         (dbus_message_iter_get_byte_array):
12404         * dbus/dbus-message.h:
12405         Add new convenience functions for appending and getting message fields.
12406         Also add demarshalling routines for byte arrays.
12407
12408 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12409
12410         * dbus/dbus-connection-internal.h:
12411         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12412         (_dbus_connection_get_next_client_serial),
12413         (dbus_connection_send_message):
12414         * dbus/dbus-internals.h:
12415         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12416         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12417         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12418         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12419         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12420         (_dbus_verbose_bytes), (_dbus_marshal_test):
12421         * dbus/dbus-marshal.h:
12422         * dbus/dbus-message-internal.h:
12423         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12424         (dbus_message_write_header), (_dbus_message_lock),
12425         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12426         (dbus_message_get_name), (dbus_message_append_int32),
12427         (dbus_message_append_uint32), (dbus_message_append_double),
12428         (dbus_message_append_string), (dbus_message_append_byte_array),
12429         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12430         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12431         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12432         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12433         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12434         (decode_header_data), (_dbus_message_loader_return_buffer),
12435         (message_iter_test), (_dbus_message_test):
12436         * dbus/dbus-message.h:
12437         * dbus/dbus-protocol.h:
12438         * dbus/dbus-test.c: (main):
12439         * dbus/dbus-test.h:
12440         * glib/test-dbus-glib.c: (message_handler), (main):
12441         * test/echo-client.c: (main):
12442         * test/watch.c: (check_messages):
12443         Make messages sendable and receivable for real.
12444
12445 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12446
12447         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12448         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12449         * dbus/dbus-message.c: (dbus_message_append_int32),
12450         (dbus_message_append_uint32), (dbus_message_append_double),
12451         (dbus_message_append_string), (dbus_message_append_byte_array):
12452         Handle OOM restoration.
12453
12454 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12455
12456         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12457         (_dbus_demarshal_string), (_dbus_marshal_test):
12458         * dbus/dbus-marshal.h:
12459         * dbus/dbus-message.c: (dbus_message_get_name),
12460         Document these functions.
12461
12462         (dbus_message_append_int32), (dbus_message_append_uint32),
12463         (dbus_message_append_double), (dbus_message_append_string),
12464         (dbus_message_append_byte_array):
12465         * dbus/dbus-message.h:
12466         Add functions for adding message fields of different types.
12467
12468         * dbus/dbus-protocol.h:
12469         Add the different types.
12470
12471 2003-01-05  Havoc Pennington  <hp@pobox.com>
12472
12473         * bus/connection.c: implement routines for handling connections,
12474         first thing is keeping a list of owned services on each connection
12475         and setting up watches etc.
12476
12477         * bus/services.c: implement a mapping from service names to lists
12478         of connections
12479
12480         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12481
12482         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12483         to use static mutexes for global data
12484
12485         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12486         collection of functions to set/get application-specific data
12487         on the DBusConnection.
12488
12489 2003-01-04  Havoc Pennington  <hp@pobox.com>
12490
12491         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12492         (_dbus_poll): new function
12493
12494         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12495         copied from GLib
12496
12497         * bus/loop.c: initial code for the daemon main loop
12498
12499 2003-01-04  Havoc Pennington  <hp@pobox.com>
12500
12501         * test/watch.c (error_handler): make it safe if the error handler
12502         is called multiple times (if we s/error handler/disconnect
12503         handler/ we should just guarantee it's called only once)
12504
12505         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12506         error handler on disconnect (it's quite possible we should
12507         just change the error handler to a "disconnect handler," I'm
12508         not sure we have any other meaningful errors)
12509
12510         * configure.in: check for getpwnam_r
12511
12512         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12513         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12514         mechanism as in SASL spec, using socket credentials
12515
12516         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12517         (_dbus_send_credentials_unix_socket): new function
12518
12519         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12520         dbus_accept()
12521         (_dbus_write): only check errno if <0 returned
12522         (_dbus_write_two): ditto
12523
12524 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12525
12526         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12527         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12528         (_dbus_marshal_test):
12529         * dbus/dbus-marshal.h:
12530         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12531         to _dbus_marshal_utf8_string. Also fix some tests.
12532
12533 2002-12-28  Harri Porten  <porten@kde.org>
12534
12535         * configure.in: added check for C++ compiler and a very cheesy
12536         check for the Qt integration
12537
12538         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12539
12540         * qt/Makefile.am: added
12541
12542         * qt/.cvsignore: added
12543
12544         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12545         latter, added #ifdef QT_THREAD_SUPPORT guard.
12546
12547         * dbus/Makefile.am: added missing headers for make dist
12548
12549 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12550
12551         * dbus/Makefile.am: fixup export-symbols-regex.
12552
12553 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12554
12555         * acinclude.m4: Add this file and put the
12556         PKG_CHECK_MODULE macro in it.
12557
12558 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12559
12560         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12561         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12562         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12563         (_dbus_marshal_test):
12564         Make the demarshalling routines align the pos argument.
12565         Add string marshalling tests and fix the obvious bugs
12566         discovered.
12567
12568 2002-12-26  Havoc Pennington  <hp@pobox.com>
12569
12570         * dbus/dbus-auth.c: fixes fixes fixes
12571
12572         * dbus/dbus-transport-unix.c: wire up support for
12573         encoding/decoding data on the wire
12574
12575         * dbus/dbus-auth.c (_dbus_auth_encode_data)
12576         (_dbus_auth_decode_data): append to target string
12577         instead of nuking it.
12578
12579 2002-12-26  Havoc Pennington  <hp@pobox.com>
12580
12581         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12582         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12583         doh
12584
12585         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12586         avoid swap_bytes() overhead (ignoring possible assembly stuff for
12587         now). Main point is because I wanted unpack_uint32 to implement
12588         _dbus_verbose_bytes
12589         (_dbus_verbose_bytes): new function
12590
12591         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12592
12593         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12594         mechanism to handle a corrupt message stream
12595         (_dbus_message_loader_new): fix preallocation to only prealloc,
12596         not prelengthen
12597
12598         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12599         (_dbus_string_test): enhance tests for copy/move and fix the
12600         functions
12601
12602         * dbus/dbus-transport-unix.c: Hold references in more places to
12603         avoid reentrancy problems
12604
12605         * dbus/dbus-transport.c: ditto
12606
12607         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12608         leak reference count in no-message case
12609
12610         * test/watch.c (do_mainloop): handle adding/removing watches
12611         during iteration over the watches. Also, ref the connection/server
12612         stored on a watch, so we don't try to mangle a destroyed one.
12613
12614         * dbus/dbus-transport-unix.c (do_authentication): perform
12615         authentication
12616
12617         * dbus/dbus-auth.c (get_state): add a state
12618         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12619         (_dbus_auth_get_unused_bytes): append the unused bytes
12620         to the passed in string, rather than prepend
12621
12622         * dbus/dbus-transport.c (_dbus_transport_init_base): create
12623         the auth conversation DBusAuth
12624
12625         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12626         (_dbus_transport_new_for_domain_socket): when creating a
12627         transport, pass in whether it's a client-side or server-side
12628         transport so we know which DBusAuth to create
12629
12630 2002-12-03  Havoc Pennington  <hp@pobox.com>
12631
12632         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12633         _after_ finalizing the derived members
12634         (unix_connection_set): unref watch if we fail to add it
12635
12636         * dbus/dbus-connection.c (dbus_connection_unref): delete the
12637         transport first, so that the connection owned by the
12638         transport will be valid as the transport finalizes.
12639
12640         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12641         if necessary, and remove watches from the connection.
12642
12643         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12644
12645 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
12646
12647         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12648         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12649         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12650         (_dbus_marshal_test):
12651         * dbus/dbus-marshal.h:
12652         Add string marshal functions and have the demarshal functions
12653         return the new position.
12654
12655 2002-12-25  Havoc Pennington  <hp@pobox.com>
12656
12657         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12658         it is a simple protocol that just maps directly to SASL.
12659
12660         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12661         initial implementation, not actually used yet.
12662
12663         * dbus/dbus-string.c (_dbus_string_find): new function
12664         (_dbus_string_equal): new function
12665         (_dbus_string_base64_encode): new function
12666         (_dbus_string_base64_decode): new function
12667
12668 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
12669
12670         * dbus/Makefile.am:
12671         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12672         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12673         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12674         (_dbus_demarshal_uint32), (_dbus_marshal_test):
12675         * dbus/dbus-marshal.h:
12676         * dbus/dbus-protocol.h:
12677         * dbus/dbus-test.c: (main):
12678         * dbus/dbus-test.h:
12679         Add un-optimized marshalling/demarshalling routines.
12680
12681 2002-12-25  Harri Porten  <porten@kde.org>
12682
12683         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12684
12685 2002-12-24  Zack Rusin  <zack@kde.org>
12686
12687         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12688         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12689         main loop stuff
12690
12691 2002-12-24  Havoc Pennington  <hp@pobox.com>
12692
12693         * glib/dbus-gthread.c: fix include
12694
12695         * glib/dbus-glib.h: rename DBusMessageHandler for now.
12696         I think glib API needs to change, though, as you don't
12697         want to use DBusMessageFunction, you want to use the
12698         DBusMessageHandler object. Probably
12699         dbus_connection_open_with_g_main_loop()
12700         and dbus_connection_setup_g_main_loop() or something like that
12701         (but think of better names...) that just create a connection
12702         that has watch/timeout functions etc. already set up.
12703
12704         * dbus/dbus-connection.c
12705         (dbus_connection_send_message_with_reply): new function just to
12706         show how the message handler helps us deal with replies.
12707
12708         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12709
12710         * dbus/dbus-string.c (_dbus_string_test): free a string that
12711         wasn't
12712
12713         * dbus/dbus-hash.c: use memory pools for the hash entries
12714         (rebuild_table): be more paranoid about overflow, and
12715         shrink table when we can
12716         (_dbus_hash_test): reduce number of sprintfs and write
12717         valid C89. Add tests for case where we grow and then
12718         shrink the hash table.
12719
12720         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12721
12722         * dbus/dbus-connection.c (dbus_connection_register_handler)
12723         (dbus_connection_unregister_handler): new functions
12724
12725         * dbus/dbus-message.c (dbus_message_get_name): new
12726
12727         * dbus/dbus-list.c: fix docs typo
12728
12729         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12730         an object representing a handler for messages.
12731
12732 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12733
12734         * glib/dbus-glib.h:
12735         * glib/dbus-gthread.c: (dbus_gthread_init):
12736         Don't use the gdbus prefix for public functions.
12737
12738 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12739
12740         * Makefile.am:
12741         * configure.in:
12742         Add GLib checks and fixup .pc files
12743
12744         * glib/Makefile.am:
12745         * glib/dbus-glib.h:
12746         * glib/dbus-gmain.c: (gdbus_connection_prepare),
12747         (gdbus_connection_check), (gdbus_connection_dispatch),
12748         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12749         (dbus_connection_gsource_new):
12750         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12751         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12752         * glib/test-dbus-glib.c: (message_handler), (main):
12753         Add GLib support.
12754
12755 2002-12-15  Harri Porten  <porten@kde.org>
12756
12757         * autogen.sh: check for libtoolize before attempting to use it
12758
12759         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12760         struct.
12761
12762         * .cvsignore: ignore more stamp files
12763
12764         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12765
12766         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12767         without make install.
12768
12769 2002-12-15  Havoc Pennington  <hp@pobox.com>
12770
12771         * dbus/dbus-threads.c: add thread stubs that a higher library
12772         layer can fill in. e.g. the GLib wrapper might fill them in with
12773         GThread stuff. We still need to use this thread API to
12774         thread-safe-ize the library.
12775
12776 2002-12-12  Havoc Pennington  <hp@pobox.com>
12777
12778         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12779         below new interfaces and include fewer system headers.
12780
12781         * dbus/dbus-sysdeps.c (_dbus_read): new function
12782         (_dbus_write): new function
12783         (_dbus_write_two): new function
12784         (_dbus_connect_unix_socket): new function
12785         (_dbus_listen_unix_socket): new function
12786
12787         * dbus/dbus-message-internal.h: change interfaces to use
12788         DBusString
12789
12790 2002-12-11  Havoc Pennington  <hp@pobox.com>
12791
12792         * dbus/dbus-types.h: add dbus_unichar
12793
12794         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12795
12796         * dbus/dbus-connection.c (dbus_connection_send_message): return
12797         TRUE on success
12798
12799         * dbus/dbus-transport.c: include dbus-watch.h
12800
12801         * dbus/dbus-connection.c: include dbus-message-internal.h
12802
12803         * HACKING: add file with coding guidelines stuff.
12804
12805         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12806         handling here, for security purposes (as in vsftpd). Not actually
12807         using this class yet.
12808
12809         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12810         system/libc usage here, as in vsftpd, for ease of auditing (and
12811         should also simplify portability). Haven't actually moved all the
12812         system/libc usage into here yet.
12813
12814 2002-11-25  Havoc Pennington  <hp@pobox.com>
12815
12816         * dbus/dbus-internals.c (_dbus_verbose): fix to not
12817         always print the first verbose message.
12818
12819 2002-11-24  Havoc Pennington  <hp@pobox.com>
12820
12821         * test/echo-client.c, test/echo-server.c: cheesy test
12822         clients.
12823
12824         * configure.in (AC_CHECK_FUNCS): check for writev
12825
12826         * dbus/dbus-message.c (_dbus_message_get_network_data): new
12827         function
12828
12829         * dbus/dbus-list.c (_dbus_list_foreach): new function
12830
12831         * dbus/dbus-internals.c (_dbus_verbose): new function
12832
12833         * dbus/dbus-server.c, dbus/dbus-server.h: public object
12834         representing a server that listens for connections.
12835
12836         * dbus/.cvsignore: create
12837
12838         * dbus/dbus-errors.h, dbus/dbus-errors.c:
12839         public API for reporting errors
12840
12841         * dbus/dbus-connection.h, dbus/dbus-connection.c:
12842         public object representing a connection that
12843         sends/receives messages. (Same object used for
12844         both client and server.)
12845
12846         * dbus/dbus-transport.h, dbus/dbus-transport.c:
12847         Basic abstraction for different kinds of stream
12848         that we might read/write messages from.
12849
12850 2002-11-23  Havoc Pennington  <hp@pobox.com>
12851
12852         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12853         _DBUS_INT_MAX
12854
12855         * dbus/dbus-test.c (main): add list test, and include
12856         dbus-test.h as intended
12857
12858         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12859         (_dbus_hash_table_remove_int): return value indicates
12860         whether the entry existed to remove
12861
12862         * dbus/dbus-list.c: add linked list utility class,
12863         with docs and tests
12864
12865         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12866         array sometimes.
12867
12868 2002-11-23  Havoc Pennington  <hp@pobox.com>
12869
12870         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12871         DBUS_END_DECLS to nothing, that should fix this once and for all
12872
12873         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12874
12875         * dbus/dbus-message.c, dbus/dbus-hash.c:
12876         add some missing @brief
12877
12878 2002-11-23  Havoc Pennington  <hp@pobox.com>
12879
12880         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12881         to avoid confusing Doxygen
12882
12883         * dbus/dbus-hash.c: @} not }@
12884
12885         * dbus/dbus-message.c (struct DBusMessage): split out
12886         internals docs
12887
12888 2002-11-23  Havoc Pennington  <hp@pobox.com>
12889
12890         * configure.in: pile on more warning flags if using gcc
12891
12892         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12893         to document static functions
12894
12895         * configure.in: add summary to end of configure so it
12896         looks nice and attractive
12897
12898         * dbus/dbus-hash.c: finish implementation and write unit
12899         tests and docs
12900
12901         * configure.in: add --enable-tests to enable unit tests
12902
12903         * dbus/dbus-test.c: test program to run unit tests
12904         for all files in dbus/*, initially runs a test for
12905         dbus-hash.c
12906
12907         * dbus/dbus-internals.h: file to hold some internal utility stuff
12908
12909 2002-11-22  Havoc Pennington  <hp@redhat.com>
12910
12911         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
12912         "ported" away from Tcl
12913
12914         * dbus/dbus-types.h: header for types such as dbus_bool_t
12915
12916 2002-11-22  Havoc Pennington  <hp@redhat.com>
12917
12918         * dbus/dbus.h: fixups for doc warnings
12919
12920         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
12921         macros
12922         (QUIET): make it quiet so we can see warnings
12923
12924         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
12925
12926 2002-11-22  Havoc Pennington  <hp@redhat.com>
12927
12928         * Makefile.am: include "Doxyfile" target in all-local
12929
12930         * configure.in: generate the Doxyfile
12931
12932         * Doxyfile.in: move Doxyfile here, so we can use
12933         configure to generate a Doxyfile with the right
12934         version number etc.
12935
12936 2002-11-22  Havoc Pennington  <hp@redhat.com>
12937
12938         * dbus/dbus-message.c: move inline docs into .c file
12939
12940         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
12941         so all docs are under doc/
12942         (MAN_EXTENSION): generate man pages. Use extension
12943         ".3dbus" which matches ".3qt" on my system,
12944         I guess this is OK, I don't know really.
12945         (FILE_PATTERNS): look for .c files not .h, makes sense
12946         for plain C I think
12947
12948 2002-11-22  Havoc Pennington  <hp@pobox.com>
12949
12950         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
12951         because any app can be a server, and any app can be a client,
12952         the bus is a special kind of server.
12953
12954 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
12955
12956         * Doxyfile : adding. Still needs Makefile rules to be generated
12957         automatically (just run "doxygen" in the toplevel dir for now to
12958         generate docs)
12959
12960         * dbus/dbus-message.h : Adding sample docs (javadoc since
12961         resembles gtk-doc a little more)
12962
12963         * dbus/dbus.h : Adding sample docs
12964
12965 2002-11-21  Havoc Pennington  <hp@redhat.com>
12966
12967         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
12968         so we can allow ourselves to include files directly,
12969         instead of having to use dbus.h
12970
12971         * dbus/dbus.h: fill in
12972
12973         * dbus/dbus-message.h: sketch out a sample header file.
12974         Include griping if you include it directly instead of
12975         via dbus.h
12976
12977         * dbus/dbus-macros.h: new file with macros for extern "C",
12978         TRUE/FALSE, NULL, etc.
12979
12980         * doc/file-boilerplate.c: put include guards in here
12981
12982 2002-11-21  Havoc Pennington  <hp@redhat.com>
12983
12984         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
12985
12986         * COPYING: include the GPL as well, and license code
12987         under both AFL and GPL.
12988
12989 2002-11-21  Havoc Pennington  <hp@redhat.com>
12990
12991         * acconfig.h: get rid of this
12992
12993         * autogen.sh (run_configure): add --no-configure option
12994
12995         * configure.in: remove AC_ARG_PROGRAM to make
12996         autoconf complain less. add AC_PREREQ.
12997         add AC_DEFINE third arg.
12998
12999 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13000
13001         * doc/Makefile.am:
13002         Fix references so we can distcheck.
13003
13004 2002-11-21  Havoc Pennington  <hp@redhat.com>
13005
13006         * Initial module creation
13007