2006-02-13 Robert McQueen <robot101@debian.org>
[platform/upstream/dbus.git] / ChangeLog
1 2006-02-13  Robert McQueen  <robot101@debian.org>
2
3         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
4         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
5         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
6         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
7         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
8         missing piece of the glib bindings jigsaw puzzle. This modifies
9         the existing specialised types to have N type parameters (rather
10         than the current 1 or 2 for arrays and dictionaries respectively).
11         You can then use this to get a glib type to represent any arbitrary
12         D-Bus struct type using dbus_g_type_get_struct. The only
13         implementation of these types is with GValueArrays as before,
14         but it's now possible to store these in arrays, emit them in
15         signals, etc.
16
17 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
18
19         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
20         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
21         <thiago.macieira at trolltech.com>
22
23 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
24
25         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
26         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
27
28 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
29
30         * bus/connection.c (bus_connections_expect_reply): Make
31         pending reply limit not common to all connections (Bug #5416)
32         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
33
34 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
35
36         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
37
38 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
39
40         * gcj/Makefile.am: point to correct jar command (Bug #4529)
41         patch from Doug Goldstein <cardoe at gentoo.org>
42
43 2006-02-09  Joe Shaw  <joeshaw@novell.com>
44
45         * mono/Arguments.cs: Fix a magic number in the mono bindings
46         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
47
48 2006-01-27  Robert McQueen  <robot101@debian.org>
49
50         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
51         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
52         when generating the client-side methods, instead of overloading
53         CSymbol which broke everything horribly. My apologies.
54
55 2006-01-27  Robert McQueen  <robot101@debian.org>
56
57         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
58         by me and Rob Taylor to add a simple_free function to D-Bus map
59         and collection types, which allows those types which can be freed
60         with a GDestroyNotify (such as GHashTables and GArrays, but not
61         GPtrArrays) to be stored as the values in hashtables.
62
63         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
64         Patch by Rob Taylor to add nested dicts to the glib tests to check
65         the above code works, and appears not to leak when called repeatedly.
66
67 2006-01-27  Robert McQueen  <robot101@debian.org>
68
69         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
70         to free a D-Bus allocated string with dbus_free () instead of
71         g_free ().
72
73 2006-01-27  Iain Holmes  <iain@openedhand.com>
74
75         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
76         method from being called multiple times.
77
78 2006-01-19  Robert McQueen  <robot101@debian.org>
79
80         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
81         <rob.taylor@collabora.co.uk> to add support for generating bindings
82         to arrays that are represented as GPtrArrays rather than GArrays (ie
83         size-variable things, such as strings, objects, structs, etc).
84
85 2006-01-05  Robert McQueen  <robot101@debian.org>
86
87         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
88         <ricardo.kekki@movial.fi> to make it possible to inherit from
89         DBusGProxy, by splitting the DBusGProxy struct into a public part and
90         a private part, and moving the setting of the DBusGProxyManager into a
91         connection property, allowing proper GObject construction.
92
93 2006-01-05  Robert McQueen  <robot101@debian.org>
94
95         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
96         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
97         annotations when generating glib client bindings.
98
99 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
100
101         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
102
103         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
104
105 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
106
107         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
108
109 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
110
111         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
112
113 2005-12-19  Ross Burton  <ross@openedhand.com>
114
115         * doc/dbus-tutorial.xml:
116         Document the Glib client-side bindings, and list all possible annotations.
117
118 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
119
120         * dbus/bus.c (dbus_bus_release_name): Add documentation
121
122 2005-12-06  Robert McQueen  <robot101@debian.org>
123
124         * python/service.py: s/sucessful/successful/ so we're allocating to
125         and reading from the same variable. Oops.
126
127 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
128
129         * Released 0.60
130
131 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
132
133         * test/qt/Makefile.am: build from srcdir
134
135         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
136         Note - this code is wrong and needs to be fixed by the Qt binding
137         developers.  The flags should be treated as bitfields and not enums.
138
139         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
140
141 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
142
143         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
144           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
145           in production code
146
147 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
148
149         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
150         method for getting messages off the bus in the absence of a
151         mainloop.  This method is much like 
152         dbus_connection_read_write_dispatch except it does not dispatch
153         the messages to a registered filter function.  Instead it
154         allows a developer to process messages by directly popping
155         them off the bus.
156
157 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
158
159         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
160         the parser to continue instead of returning error
161         (bus_desktop_file_load): Do not free parser data when
162         parse_section_start or parse_key_value fails because it was 
163         already freed by parser_free (patch from Carlos Garcia Campos  
164         <carlosgc at gnome.org>)
165
166 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
167
168         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
169         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
170         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
171         test/test-segfault.c, test/test-utils.c,
172         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
173         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
174         Various cleanup of dead code and compiler warnings (patch from
175         Kjartan Maraas <kmaraas at gnome.org>) 
176
177 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
178
179         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
180         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
181
182 2005-11-27  Robert McQueen  <robot101@debian.org>
183
184         * python/dbus_bindings.pyx: Repair my previous commit which reverted
185         part of the preceding one. Oops. Merge patch by Johan Hedberg
186         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
187         on big-endian platforms.
188
189         * test/python/test-client.py: Add some 16-bit integers to the test
190         values.
191
192 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
193
194         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
195         method return message for property getters
196
197 2005-11-27  Robert McQueen  <robot101@debian.org>
198
199         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
200         with type v of an instance of dbus.Variant(foo, type='x') caused
201         it to be boxed twice before sending over the bus.
202
203         * python/dbus_bindings.pyx, python/service.py,
204         test/python/test-client.py: Update the constants for the new
205         request_name flags, and update comments/test cases now that queueing
206         is the default action.
207
208 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
209
210         * configure.in:
211         - Change version to 0.60 for impending release
212         - upped the sonames because of ABI and API breakage
213
214 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
215
216         * configure.in: Add test/name-test/Makefile to the generated
217         Makefile list
218
219         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
220         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
221         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
222         not to queue an ower if it can't be the primary owner
223
224         * bus/bus.h: Add new internal BusOwner struct
225
226         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
227         to bus_registry_ensure and don't set the prohibit_replacement flag
228         since they are now set per BusOwner and not per name.
229         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
230         that returns the list of connections in a name's connection queue
231         
232         * bus/services.c (struct BusService): remove prohibit_replacement field
233         (struct BusOwner): new struct for keeping track of queued connections
234         and their associated flags for the queue
235         (struct BusRegistry): add a BusOwner memory pool
236         (bus_registry_new): initialize the BusOwner memory pool
237         (bus_registry_unref): free the BusOwner memory pool
238         (_bus_service_find_owner_link): new internal method for
239         searching the queue for a specific connection
240         (bus_owner_set_flags): new method for adding setting the flags on a
241         bus owner
242         (bus_owner_new): new method that creates a BusOwner object from the
243         pool and sets its flags
244         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
245         (bus_registry_ensure): Add the flags parameter
246         (bus_registry_acquire_service): Switch from using raw connections to
247         using the BusOwner struct
248         Add new state machine for dealing with the new set of flags
249         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
250         cancel_ownership, free_ownership_cancel_data, 
251         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
252         restore_ownership, free_ownership_restore_data, 
253         add_restore_ownership_to_transaction): Switch to using BusOwner 
254         instead of raw connections
255         (bus_service_add_owner): Add flags parameter
256         Switch to using BusOwner instead of raw connections
257         Add state machine for dealing with the new set of flags
258         (bus_service_swap_owner): Swaps the first and second owners in the
259         queue.  Used to make sure proper signals are sent when a service looses 
260         or gains primary ownership.  We never insert an owner at the top of the
261         queue.  Instead we insert it in the second position and then swap.
262         (bus_service_remove_owner): Remove the owner from the queue sending
263         out the NameLost and NameOwnerChanged signals if the we were the 
264         primary owner
265         (bus_service_get_primary_owners_connection): New method that extracts
266         the connection from the primary owner
267         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
268         connection
269         (bus_service_get_allow_replacement): Changed from the old 
270         bus_service_get_prohibit_replacement method.  Checks the flags of the 
271         primary owner and returns if it can be replaced or not
272         (bus_service_set_prohibit_replacement): removed
273         (bus_service_has_owner): returns TRUE if and owner with
274         the specified connection exists in the queue
275         
276         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
277         method that only compiles if tests are enabled.  Allows us to get the 
278         unique name of a connection so we can check it against the queue when
279         doing regression tests
280
281         * bus/activation.c (bus_activation_send_pending_auto_activate),
282         bus/dispatch.c (bus_dispatch),  
283         bus/driver.c (bus_driver_handle_get_service_owner, 
284         bus_driver_handle_get_connection_unix_user, 
285         bus_driver_handle_get_connection_unix_process_id,
286         bus_driver_handle_get_connection_selinux_security_context),
287         bus/signals.c (connection_is_primary_owner): 
288         use bus_service_get_primary_owners_connection instead of
289         bus_service_get_primary_owner
290
291         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
292         _dbus_listen_unix_socket): Calculate the length of the socket
293         path and use that instead of using a fixed length which was
294         causing socket names to contain many trailing Nul bytes.
295
296         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
297         (dbus_g_method_get_sender): New method for extracting the sender 
298         from a DBusGMethodInvocation
299         (dbus_g_method_return_get_reply): changed name to 
300         dbus_g_method_get_reply
301         (dbus_g_method_return_send_reply): changed name to
302         dbus_g_method_send reply
303
304         * doc/dbus-specification.xml: New docs that describe how the new
305         queueing system works and talks about the changes to the how
306         we specify socket names
307
308         * glib/examples/example-service.c, 
309         glib/examples/example-signal-emitter.c,
310         glib/examples/statemachine/statemachine-server.c:
311         Changed the RequestName flags to the new system
312
313         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
314         regression test suite for testing various states of the new
315         queueing system
316         
317 2005-11-15  Robert McQueen  <robot101@debian.org>
318
319         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
320         Taylor to add two methods, dbus_g_method_return_get_reply and
321         dbus_g_method_return_send_reply, to allow you to get the reply
322         message from a DBusGMethodInvocation, append arbitrary stuff to it,
323         and send it. The GLib bindings can't marshal a return value of
324         something like a(s) if the array is empty - ultimately they should be
325         made to heed the signature of the out arguments as the Python bindings
326         now can, but this is a workable interim solution which might have
327         other applications.
328
329 2005-11-15  Robert McQueen  <robot101@debian.org>
330
331         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
332         method to org.freedesktop.DBus to release a bus name or give up
333         waiting in the queue for it.
334
335         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
336         dbus_bus_release_name method to send the ReleaseName method calls.
337         Add constants for the return values to dbus/dbus-shared.h.
338
339         * doc/dbus-specification.xml: Document the new ReleaseName method
340         in the specification.
341
342         * python/dbus_bindings.pyx: Add a low-level python binding for the
343         release name method.
344
345         * python/exceptions.py, python/service.py: Make freeing BusName
346         objects release the name. Add a NameExistsException, and fix a
347         bug with creating UnknownMethodException.
348
349         * test/python/test-client.py: Add tests for freeing BusName
350         objects causing names to be released.
351
352 2005-11-14  Robert McQueen  <robot101@debian.org>
353
354         * python/service.py: Include the traceback in the error reply when we
355         send an exception over the bus. _BEST_ _PATCH_ _EVER_
356
357 2005-11-14  David Zeuthen  <davidz@redhat.com>
358
359         Patch from Timo Hoenig <thoenig@suse.de>.
360
361         * bus/bus.c: I've recently investigated why the automatic reload
362         of configuration files does not work as expected.
363
364         Currently, reloading configuration files does only work when
365         running dbus-daemon with --nodaemon.  If we are running as daemon
366         we're hitting a dnotify bug once we fork the process.
367
368         We're initializing the dnotify fds before calling fork().  Once
369         the child process forked it does still have the fds (and they
370         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
371         getting SIGIO as changes are made to the configuration files.
372
373         The attached patch moves the initialization of the dnotify fds to
374         process_config_postinit().  This is safe for all current code
375         paths and solves the dnotify disfunction.  If we're running
376         dbus-daemon as daemon the fds for dnotify are now being
377         initialized after fork() for the child process.
378
379         * configure.in: The current configure.in check for dnotify probes
380         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
381         match for 'xlinux', too. Additionally I have adapted the configure
382         option's style to match with the others.
383
384 2005-11-14  Robert McQueen  <robot101@debian.org>
385
386         * python/decorators.py, python/service.py: Add a new argument to the
387         dbus.service.method decorator called sender_keyword, which if set,
388         specifies the name of an argument which will be provided the bus
389         name of the method caller.
390
391         * test/python/test-client.py, test/python/test-service.py: Add a
392         method and test to check the sender_keyword functionality.
393
394 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
395
396         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
397         empty reply so blocking calls don't block forever (Patch from Sjoerd 
398         Simons <sjoerd at luon.net>)
399
400         * AUTHORS: Add Robert McQueen for his work on the Python
401         Bindings and other parts of D-Bus
402
403 2005-11-07  Robert McQueen  <robot101@debian.org>
404
405         * python/decorators.py: Change emit_signal function to use the
406         signature annotation of the signal when marhsalling the arguments from
407         the service. Fix a bug where the code checking signature length
408         against argument length referenced the wrong variable.
409
410         * python/introspect_parser.py: Avoid adding the type signature of
411         signal arguments to any methods which occur after them in the
412         introspection data (!) by making the parser a little more careful
413         about its current state.
414
415         * python/service.py: Remove debug prints from last commit (again :D).
416
417         * test/python/test-client.py, test/python/test-service.py: Add test
418         signals with signature decorators to test the strict marshalling code
419         gives errors at the right time. Could do with checking the signals
420         actually get emitted too, given that the test does nothing with
421         signals at the moment...
422
423 2005-11-07  Robert McQueen  <robot101@debian.org>
424
425         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
426         instances to stop madness of creating new instances representing
427         the same bus connection all the time, rendering any tracking of
428         match rules and bus names quite meaningless. Caught a bug where
429         the private argument to SessionBus() and friends was being passed
430         in as use_default_mainloop by mistake. Still some problems with
431         multiple dbus_binding.Connection instances representing the same
432         low-level connection (eg when you use both SessionBus() and
433         StarterBus() in same process), but it's a lot better now than it
434         was.
435
436         * python/dbus_bindings.pyx: Add constants with the return values
437         for bus_request_name().
438
439         * python/service.py: Store bus name instances in a per-dbus.Bus cache
440         and retrieve the same instances for the same name, so deletion can be
441         done with refcounting. Also now throws some kind of error if you
442         don't actually get the name you requested, unlike previously...
443
444         * test/python/test-client.py: Add tests for instance caching of buses
445         and bus name objects.
446
447 2005-11-04  Robert McQueen  <robot101@debian.org>
448
449         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
450         marshalling of boolean values. Add some booleans to the values in
451         the test client.
452
453         * python/decorators.py, python/service.py: Add an 'async_callbacks'
454         argument to the dbus.service.method decorator, which allows you to
455         name arguments to take two callback functions for replying with
456         return values or an exception.
457
458         * test/python/test-client.py, test/python/test-service.py: Add test
459         case using asynchronous method reply functions, both return values and
460         errors, and from within both the function itself and from a mainloop
461         callback.
462
463         * python/decorators.py, python/service.py: Perform checking that the
464         number of method/signal arguments matches the number of types in the
465         signature at class loading time, not when you first introspect the
466         class.
467
468         * python/service.py: Remove debug print left by the last commit.
469
470 2005-11-03  Robert McQueen  <robot101@debian.org>
471
472         * python/service.py: Heavy refactoring of method invocation, with
473         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
474         in favour of a new _message_cb that uses seperate functions for
475         looking up the method to call, marshalling the return values, and
476         sending exceptions as errors, and is easier to follow as a
477         consequence.  Fixes some corner cases about returning things that
478         don't match your declared out_signature, allows exceptions to define
479         _dbus_error_name and have it be sent over the bus as the error name,
480         and paves the way for cool stuff like heeding the message no reply
481         flag, asynchronous method implementations, informing the method of the
482         sender, and including backtraces in the error messages.
483
484         * test/python/test-client.py: Catch and print exceptions thrown in the
485         async callback tests, rather than passing them to the low-level
486         bindings to be ignored in a noisy and frustrating manner.
487
488 2005-11-03  Robert McQueen  <robot101@debian.org>
489
490         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
491         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
492         tweak others to be consistent.
493
494         * test/python/test-client.py: Tweak output of testInheritance.
495
496 2005-10-29  Robert McQueen  <robot101@debian.org>
497
498         * python/service.py: Major changes to allow multiple inheritance
499         from classes that define D-Bus interfaces:
500         
501          1. Create a new Interface class which is the parent class of
502             Object, and make the ObjectType metaclass into InterfaceType.
503         
504          2. Patch written with Rob Taylor to replace use of method_vtable
505             with code that walks the class's __MRO__ (method resolution order)
506             to behave like Python does when invoking methods and allow
507             overriding as you'd expect. Code is quite tricky because
508             we have to find two methods, the one to invoke which has the
509             right name and isn't decorated with the /wrong/ interface,
510             and the one to pick up the signatures from which is decorated
511             with the right interface.
512         
513             The same caveats apply as to normal multiple inheritance -
514             this has undefined behaviour if you try and inherit from two
515             classes that define a method with the same name but are
516             decorated with different interfaces. You should decorate
517             your overriding method with the interface you want.
518         
519          3. Replace grungy introspection XML generation code in the metaclass
520             with dictionaries that cope correctly with multiple inheritance
521             and the overriding of methods. This also uses the signature
522             decorations to provide correct introspection data, including
523             the debut appearance of the types of your return values. :D
524
525         * test/python/test-client.py, test/python/test-service.py: Add a test
526         case to try invoking an method that overrides one inherited from a
527         D-Bus interface class.
528
529 2005-10-29  Robert McQueen  <robot101@debian.org>
530
531         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
532         Add checking for the end of struct character when marshalling a
533         struct in MessageIter.append_strict.
534
535         * python/examples/example-service.py,
536         python/examples/gconf-proxy-service.py,
537         python/examples/gconf-proxy-service2.py: Update to use gobject
538         mainloop directly rather than appearing to depend on gtk.
539
540         * python/test/test-client.py, python/test/test-server.py: Remove
541         obsolete and broken test scripts for old bindings. We have up to date
542         and working tests in test/python/.
543
544 2005-10-29  Robert McQueen  <robot101@debian.org>
545
546         * python/decorators.py: Add optional arguments to the method and
547         signal decorators to allow you to specify the signature of arguments
548         and return values. Preserve the doc strings of signal functions in the
549         decorated version, for pydoc and friends.
550
551         * python/dbus_bindings.pyx, python/proxies.py: Replace the
552         parse_signature_block function with an iterable dbus.Signature()
553         type. Fix a bug in MessageIter.append_strict where you could append
554         anything by claiming it was a string.
555
556         * python/service.py: Use the out_signature decoration on methods to
557         marshal return values, meaning you no longer require dbus.Array()
558         or dbus.Dictionary() to indicate the type when returning empty
559         arrays or dictionaries. Fix a bug where exceptions which are defined
560         in __main__ are not turned into error replies.
561
562         * test/python/test-client.py, test/python/test-service.py: Add test
563         for correct marshalling of return values according to out_signature.
564         Fix a bug in the async call test where the error_handler is missing a
565         self argument.
566
567 2005-10-29  Robert McQueen  <robot101@debian.org>
568
569         * glib/Makefile.am, glib/examples/Makefile.am,
570         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
571         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
572
573         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
574
575         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
576         from Ubuntu by Daniel Silverstone to allow specifying match rules on
577         the command line.
578
579 2005-10-27  Ross Burton  <ross@openedhand.com>
580
581         * dbus/dbus-marshal-header.c:
582         Remove dead code.
583
584         * glib/dbus-gobject.c:
585         Stop compiler warning.
586
587 2005-10-25  Ross Burton  <ross@openedhand.com>
588
589         * dbus/dbus-auth.c:
590         * dbus/dbus-server-unix.c:
591         * dbus/dbus-transport-unix.c:
592         * glib/dbus-gmain.c:
593         * glib/dbus-gobject.c:
594         Add some const keywords.
595
596 2005-10-25  Ross Burton  <ross@openedhand.com>
597
598         * doc/dbus-specification.xml:
599         Document the NoReply annotation.
600
601         * glib/dbus-binding-tool-glib.h:
602         * glib/dbus-binding-tool-glib.c:
603         Respect the NoReply annotation.
604
605 2005-10-24  Robert McQueen <robot101@debian.org>
606
607         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
608         derive from unicode instead of str, and encode/decode UTF-8 when
609         marshalling/unmarshalling bus messages
610
611         * python/introspect_parser.py: encode introspection data as UTF-8
612         before passing the buffer into libxml2
613
614         * test/python/test-client.py: add unicode test strings
615
616         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
617         ignore generated python test files
618
619 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
620
621         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
622         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
623         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
624
625         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
626         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
627         when constructing struct signatures
628
629         * python/_dbus.py (Bus): handle private connections using the
630         private keyword in the constructor. defaults to private=False
631         (Bus::close): new method to close a connection to the bus
632
633         * python/dbus_bindings.pyx (Connection::close): renamed method
634         was previously called disconnect
635         (bus_get): now supports getting a private connection
636
637         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
638         keyword is set to True.  if it is, execute the method without waiting
639         for a reply
640         (ProxyObject::_introspect_execute_queue): new method for executing
641         all the pending methods that were waiting for the introspect to
642         finish.  this is called when introspect either succeeds or fails
643         (ProxyObject::_introspect_error_handler): call queued methods
644
645 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
646
647         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
648         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
649
650         * python/service.py (Object::_message_cb): handle exceptions correctly
651         by sending them over the wire to the calling app.  This makes sure
652         the client returns immediately instead of waiting the 15 seconds to
653         timeout.
654
655         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
656         Add a test to benchmark how long it takes to introspect a service and 
657         call a method which returns a large element (pretty fast)
658
659         * test/python/test-service.py (TestObject::GetComplexArray): new test 
660         method which pushes a lot of data
661
662 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
663
664         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
665         reclaim memory outside of the loop and use del istead of just setting
666         the key to None
667
668 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
669
670         * python/service.py (ObjectType::_reflect_on_signal): Always close
671         signal tag even when there are no arguments
672
673 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
674
675         * configure.in: Set mono, mono-docs and Qt3 to default
676         to no instead of auto when building.  These bindings do not
677         have full time maintainers and will not be supported for the
678         1.0 release.
679
680 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
681
682         patches from Michael Krivoruchko <misha at sun.com>: 
683         
684         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
685         _dbus_connection_message_sent, 
686         _dbus_connection_send_preallocated_unlocked_no_update, 
687         _dbus_connection_pop_message_link_unlocked): handle the case when path 
688         is NULL when calling _dbus_verbose
689
690         * configure.in: check for functions getpeerucred and getpeereid
691
692         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
693         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
694         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
695         Patch was only tested on Solaris 10 x86 so it might be issues
696         with other platforms (i.e. BSDs and MacOSX)
697         
698
699 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
700
701         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
702         instead of marshal basic so we can handle recursive types in a variant
703
704         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
705         in variants
706
707         * test/glib/test-service-glib.c, test-service-glib.xml
708         (my_object_echo_variant [EchoVariant], 
709         my_object_process_variant_of_array_of_ints123
710         [ProcessVariantOfArrayOfInts123]): 
711         Add two test methods
712
713         * python/introspect_parser.py: New module for parsing introspect
714         data.
715
716         * python/dbus_bindings.pyx:
717         (various places): when throwing errors fix to use errormsg instead 
718         of message local variable because Pyrex can get confused with other 
719         message variables (initial patch by Robert McQueen 
720         <robert.mcqueen at collabora.co.uk>)
721         (MessageIter::parse_signature_block): new method for getting the next
722         block in a signiture.
723         (MessageIter::append_strict): new method for appending values strictly
724         using the passed in signature instead of guessing at the type
725         (MessageItter:: append_dict, append_struct, append_array): use 
726         signatures to marshal children if the signature is available
727         
728         * python/exceptions.py (IntrospectionParserException): new exception
729
730         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
731         introspected signatures if available, else we fall back to the
732         old way of doing things.
733         (ProxyObject::_introspect_reply_handler ): parse introspection data
734         
735         * python/service.py (ObjectType::_reflect_on_method): Properly
736         terminate <method> if there are no args in the reflection data
737
738         * test/python/test-client.py: add tests for talking with the GLib
739         test server.  This gives us better coverage for introspection since
740         python to python will always generate arguments as variants.  It also
741         allows us to test the robustness of the GLib bindings and interlanguage
742         communications.
743
744         
745 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
746
747         * bus/driver.c (bus_driver_handle_introspect): Add signals
748         to the introspect data. (patch from Daniel P. Berrange 
749         <dan at berrange.com>)
750
751         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
752         
753         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
754         _dbus_connection_run_builtin_filters): Changed these to
755         be unlock_no_update functions and call 
756         _dbus_connection_send_unlocked_no_update instead of
757         dbus_connection_send to avoid locking errors.
758         
759         * doc/TODO: Removed the make Ping test TODO
760         
761 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
762
763         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
764         We now copy the message from a DBusError and then free 
765         the error object befor throwing the error
766
767         * glib/dbus-glib-tool.c: removed extra comma at the end of the
768         DBusBindingOutputMode enum which was causing a warning.
769         #include <time.h> so using time_t is explicitly defined
770
771 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
772
773         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
774         - dbus/dbus-bus.c
775         (internal_bus_get): new method that take over the heavy lifting
776         of dbus_bus_get and adds the ability to get a private connection
777         to the bus
778         (dbus_bus_get): wrapper to internal_bus_get that provides the same
779         interface as in previous versions
780         (dbus_bus_get_private): new method that is a wrapper to 
781         internal_bus_get to get a private connection to the bus
782
783         - dbus/dbus-bus.h
784         (dbus_bus_get_private): add as a public libdbus interface
785
786         - dbus-1.pc.in: output system_bus_default_address and 
787         sysconfdir variables so apps can use them when compiling
788
789 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
790         * dbus/qt: New Qt bindings
791
792 2005-09-12  Waldo Bastian  <bastian@kde.org>
793
794         * dbus/dbus-marshal-validate.c,
795         doc/dbus-specification.xml, test/Makefile.am,
796         test/test-names.c: allow hyphens in bus names.
797
798 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
799
800         * test/data/auth/fallback.auth-script: we don't
801         retry the EXTERNAL method when we know its going
802         to fail anymore.
803
804 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
805
806         * dbus/dbus-connection-internal.h: rename
807         (add|remove|toggle)_(watch|timeout) to unlocked()
808         
809         * dbus/dbus-connection.c: ditto.
810         
811         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
812         Update some callers for the renaming.
813
814 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
815
816         * dbus/dbus-auth.c: (record_mechanisms): don't
817         retry the first auth mechanism because we know
818         we're just going to get rejected again.
819         
820         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
821         Fix thinko ... and what a nasty little bugger to
822         track down you were ...
823
824         * dbus/dbus-connection.c:
825         (_dbus_connection_add_watch),
826         (_dbus_connection_remove_watch): add note about
827         these needing the connection to be locked.
828         (_dbus_connection_get_dispatch_status_unlocked):
829         set status to DATA_REMAINS when we queue the
830         disconnected message.
831         
832         * bus/dispatch.c:
833         (bus_dispatch): fix warning.
834         (check_existent_service_no_auto_start):
835         Expect ChildSignaled error too.
836         (check_existent_hello_from_self): fix another
837         couple of warnings.
838         
839 2005-09-08  Joe Shaw  <joeshaw@novell.com>
840
841         Patches from James Willcox <snorp@snorp.net>
842
843         * mono/Makefile.am: Add Int16.cs and UInt16.cs
844
845         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
846         support array "out" parameters.
847
848         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
849         for 16-bit int support.
850
851 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
852
853         * Released 0.50
854
855         * Patch from Steve Grubb:
856         - bus/activation.c (bus_activation_service_reload_test): clean up
857         some indentation
858         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
859         - dbus/dbus-message-factory.c (generate_special): fix a couple of
860         buffer overflows in the test suite.  This is non critical because
861         it can not be exploited and this code is only run when doing a 
862         make check.
863
864         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
865         - configure.in: Don't check and link against kdecore, only qt headers
866         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
867         - gcj/org/freedesktop/dbus/Makefile.am:
868         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
869         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
870         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
871         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
872         - tools/Makefile.am: Add platform extentions to binaries 
873         (i.e. .exe on windows)
874
875         * configure.in: 
876         - Make it so if no suitable version of python is found we only 
877         disable building python instead of exiting the configure script
878         - Require version 2.4 of glib for glib bindings
879         - Up version to 0.50
880
881         * python/__init__.py: Sync version with libdbus to (0,50,0)
882         
883 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
884
885         * dbus/dbus-object-tree.c (find_subtree_recurse):
886         a couple of optimizations (bug #710):
887         - do a binary search in the tree
888         - insert a new child at the right place directly, no need for
889           qsort anymore
890         - do the "double alloc" thing when allocating children
891
892 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
893
894         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
895
896         * python/dbus_bindings.pyx: Memory management foo
897         (global): remove hacky _user_data_references global list
898         (GIL_safe_cunregister_function_handler): userdata now stuffed into
899         tuples. Unref user_data
900         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
901         (Connection::__del__): Remove and replace with __dealloc__ method
902         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
903         to keep tuple from being deallocated instead of the global var hack
904         (Connection::register_object_path): Stuff user_data into a tuple.
905         Use Py_INCREF to keep tuple from being deallocated instead of the 
906         global var hack
907         (Connection::register_fallback): Stuff user_data into a tuple.
908         Use Py_INCREF to keep tuple from being deallocated instead of the 
909         global var hack
910         (GIL_safe_pending_call_notification): Don't unref the message
911         because it gets unreffed when going out of scope.  Py_XDECREF
912         the user_data
913         (PendingCall::__del__): Remove and replace with __dealloc__ method
914         (PendingCall::set_notify): ref the pending call because we will
915         need it to stick around for when the notify callback gets called
916         (Message::__del__): Remove and replace with __dealloc__ method
917
918         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
919         gthreads_init to match up with the dbus call
920
921         * python/glib.py (init_threads): Changed to threads_init to match
922         up with gobject.threads_init().  init_threads is kept for backwards
923         compat but will most likely be deprecated in the future
924
925         * test/python/test-client.py: 
926         - revamp to use Python's unittest functionality
927         - add async call tests
928         - setup threads in glib and dbus so we make sure locks are working
929         
930 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
931
932         * python/dbus_bindings.pyx 
933         (_pending_call_notification, cunregister_function_handler, 
934         cmessage_function_handler): All callback functions have been rearranged 
935         to workaround a bug in Pyrex when working with the GIL which is Python's 
936         global lock when dealing with threads.  They have been split into
937         a wrapper function (which assumes the name of the old function) and
938         a _GIL_safe_<function name> function which contains the functionality
939         of the old function.  This ensures that Pyrex does not write code
940         the lock is released.
941         
942
943 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
944
945         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
946         GIL global lock when calling back into Python
947
948 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
949
950         * Release 0.36.2
951
952         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
953
954         * bus/policy.c (bus_policy_allow_user): change default "user is
955         allowed" to be "user has same uid as the bus itself"; any
956         allow/deny rules will override.
957
958         * bus/session.conf.in: don't allow all users, since now by default
959         the user that ran the bus can connect.
960
961 2005-08-26  Colin Walters  <walters@verbum.org>
962
963         * tools/dbus-print-message.c (print_message): Flush stdout
964         after printing a message, so that redirecting to a file, then
965         hitting Ctrl-C works.
966
967 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
968
969         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
970         (EmptyMessage): new class that subclasses Message.  This is a workaround
971         to a Pyrex bug that fails to call __del__ when the Message object goes out
972         of scope.  For some reason subclassing Message fixes this bug
973         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
974         - s/Message(_create=0)/EmptyMessage everywhere else
975         
976         * test/python/test-{server|client}.py: add the python/.libs directory
977         to the lookup path so dbus_bindings and dbus_glib_bindings don't
978         get picked up from the system
979
980 2005-08-25  Colin Walters  <walters@verbum.org>
981
982         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
983         to Ryan Lortie for the suggestion.
984
985 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
986
987         * test/python: Add python regression test
988
989         * configure.in: Add test/python/Makefile
990
991         * test/Makefile.am: Add the python directory to SUBDIRS
992
993 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
994
995         * Release 0.36.1
996
997         * python/_dbus.py: 
998         (Interface::connect_to_signal): propigate keywords for match on args
999         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1000
1001         * python/proxies.py (ProxyObject::connect_to_signal):
1002         propigate keywords for match on args
1003
1004         * Makefile.am: point everything to pyexecdir since python borks
1005         on multilib
1006
1007 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1008
1009         * Release 0.36
1010
1011 2005-08-23  Colin Walters  <walters@verbum.org>
1012
1013         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1014
1015 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1016
1017         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1018         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1019         of defining DBusConnection ourselves.
1020
1021 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1022
1023         * python/dbus.pth: New path file to fix up problems when installing
1024         c libraries to lib64 and python files to lib.
1025
1026         * python/Makefile.am: install dbus.pth in the correct spot
1027
1028 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1029         * ChangeLog: clean up my last entry a bit
1030
1031         * doc/introspect.xsl: New stylesheet for converting introspection data
1032         into browser renderable xhtml. Contributed by Lennart Poettering.
1033
1034         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1035         Poettering.
1036
1037         * doc/dbus-tutorial.xml: 
1038         - Add Colin Walter to the Authors section for authoring the GLib
1039         section
1040         - Add descriptions of the new signature and type functionality
1041         in the Python complex type mapping section
1042         - Add a sidenote on the new args matching functionality in 
1043         the Python bindings
1044         - Fixed up some of the examples to use the gobject.MainLoop
1045         instead of gtk.main
1046         
1047         * python/_dbus.py:
1048         (Bus::_create_args_dict): New. Converts a hash of arg matches
1049         to a more useable format
1050         (Bus::add_signal_receiver): add a **keywords parameter for catching
1051         arg match parameters
1052         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1053         arg match parameters
1054         
1055         * python/matchrules.py:
1056         (MatchTree::exec_matches): Check for arg matches
1057         (SignalMatchRule::add_args_match): New method
1058         (SignalMatchRule::execute): Added args_list parameter as an optimization
1059         so we don't have to marshal the args more than once
1060         (SignalMatchRule::match_args_from_list): New method that checks to see
1061         if the rule's arg matches match an argument list.  Only arguments
1062         set in the rule are checked.
1063         (SignalMatchRule::match_args_from_rule): New method that checks to see
1064         if the rule's arg matches match another rule's.  All args have to match
1065         in order for this method to return true.  If either rule has more args
1066         then it is not a match.
1067         (SignalMatchRule::is_match): Add args match
1068         (SignalMatchRule::repr): Add args to the final output if they exist
1069
1070 2005-08-17  Ross Burton  <ross@burtonini.com>
1071
1072         * glib/dbus-gproxy.c:
1073         (dbus_g_proxy_call_no_reply): unref the message once sent.
1074         (dbus_g_proxy_call): protect against NULL proxy.
1075
1076 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1077
1078         * python/__init__.py: Version updated (0, 43, 0)
1079         
1080         * python/dbus_bindings.pyx: 
1081         - Fixed type objects to have self passed into __init__
1082         - Added the Variant type
1083         - Add the ability to specify types or signatures for Array, Variant 
1084         and Dictionary
1085         (Connection::send_with_reply_handlers): return a PendingCall object
1086         (_pending_call_notification): handle the case when an error is returned 
1087         without an error message in the body
1088         (MessageIter::get_boolean): return True or False instead of an integer
1089         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1090         and add checks for objects with embeded signatures or types (Array, 
1091         Variant and Dictionary)
1092         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1093         (MessageIter::append_dict): handle embeded types or signatures
1094         (MessageIter::append_array): handle embeded types or signatures
1095         (MessageIter::append_variant): new method
1096         
1097         * python/proxies.py:
1098         (DeferedMethod): New. Dummy executable object used when queuing calls 
1099         blocking on introspection data
1100         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1101         or shorter timeouts for method calls
1102         (ProxyObject): Add first pass at an introspection state machine
1103         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1104         introspection. 
1105         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1106         the usual mechanisms for sending messages.  This is to avoid a deadlock
1107         where the Intospect call would be queued waiting for the Introspect 
1108         call to finish ;-)
1109         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1110         when introspection returns with no error
1111         (ProxyObject::_introspect_error_handler): New.  This method is called 
1112         when introspection encounters an error
1113         (ProxyObject::__getattr__): Code to handle different introspection 
1114         states.  Queue async calls or block blocking calls if we are 
1115         introspecting.  Pass through as normal if we are not or are done with 
1116         introspecting.
1117         
1118         * python/service.py: Import signal and method from decorators.py
1119
1120         * python/types.py: Add Variant type
1121
1122 2005-08-16  Colin Walters  <walters@verbum.org>
1123
1124         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1125         DBusError message is NULL.
1126
1127 2005-08-09  Havoc Pennington  <hp@redhat.com>
1128
1129         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1130         malloc'd copy of the name parameter
1131
1132 2005-08-09  Havoc Pennington  <hp@redhat.com>
1133
1134         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1135         warning if the reply serial is set to 0
1136
1137 2005-08-04  Colin Walters  <walters@verbum.org>
1138
1139         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1140         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1141         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1142         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1143         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1144         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1145         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1146         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1147         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1148         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1149         
1150         Prefix name with _ to ensure they're not exported.  All callers
1151         updated.
1152
1153         * glib/dbus-gvalue.c (typecode_to_gtype)
1154         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1155         (signature_iter_to_g_type_dict)
1156         (signature_iter_to_g_type_array)
1157         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1158         (dbus_gtypes_from_arg_signature):
1159         Move to dbus-gsignature.c.
1160
1161         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1162         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1163         (dbus_binding_tool_output_glib_client): Ditto.
1164
1165         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1166         and dbus-gsignature.h
1167
1168         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1169         unused variable.
1170
1171 2005-08-03  Colin Walters  <walters@verbum.org>
1172
1173         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1174         catch any incompatible changes accidentally made.
1175
1176 2005-08-03  Havoc Pennington  <hp@redhat.com>
1177
1178         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1179         typo, from Julien Puydt
1180
1181         * bus/connection.c (bus_connection_disconnected): we were always
1182         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1183
1184 2005-08-01  Colin Walters  <walters@verbum.org>
1185
1186         Patch from Joe Markus Clarke:   
1187         
1188         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1189         use-after-free.
1190
1191 2005-08-01  Colin Walters  <walters@verbum.org>
1192         
1193         Patch from Joe Markus Clarke:   
1194         
1195         * tools/dbus-send.c (main): 
1196         
1197         Don't use C99 style initializers (bug #3933).
1198         
1199 2005-08-01  Colin Walters  <walters@verbum.org>
1200
1201         Patch from Joe Markus Clarke:   
1202
1203         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1204         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1205         * glib/dbus-gobject.c (write_interface):
1206
1207         Don't use C99 style initializers (bug #3933).
1208
1209 2005-07-31  Havoc Pennington  <hp@redhat.com>
1210
1211         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1212         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1213
1214 2005-07-30  Havoc Pennington  <hp@redhat.com>
1215
1216         * fix a bunch of Doxygen warnings and mistakes
1217
1218 2005-07-30  Havoc Pennington  <hp@redhat.com>
1219
1220         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1221         DBUS_BUILD_TESTS since it's now used in production code
1222
1223 2005-07-29  Havoc Pennington  <hp@redhat.com>
1224
1225         * test/glib/test-profile.c (write_junk): initialize the junk
1226         buffer so valgrind doesn't have a breakdown
1227
1228 2005-07-29  Havoc Pennington  <hp@redhat.com>
1229
1230         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1231         (match_rule_matches): remove unused arg
1232         (test_matching): add tests for match_rule_matches()
1233
1234         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1235         do arg0='foo' arg5='bar' in the match rules
1236         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1237
1238         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1239
1240 2005-07-29  Ross Burton  <ross@openedhand.com>
1241
1242         * dbus/dbus-connection.c:
1243         Don't create a DBusCondVar which is never used.
1244
1245 2005-07-27  Ross Burton  <ross@openedhand.com>
1246
1247         * dbus/dbus-message.c:
1248         Reduce the size of the maximum cached message to 10K.
1249
1250 2005-07-25  Ross Burton  <ross@openedhand.com>
1251
1252         * glib/dbus-gproxy.c:
1253         Remove matches when all proxies are unregistered.
1254
1255 2005-07-24  Colin Walters  <walters@verbum.org>
1256
1257         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1258         typedata; recursive arrays won't have it.
1259
1260         * test/glib/test-dbus-glib.c:
1261         * test/glib/test-service-glib.c:
1262         * test/glib/test-service-glib.xml: Add recursive arrays tests.
1263         
1264 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
1265
1266         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1267         proxies.py, service.py: Cleanup of code after running it through the
1268         pyflakes code checker mostly dealing with undefined names.  
1269         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1270
1271 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1272
1273         * NEWS: Update to 0.35.2
1274
1275 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
1276
1277         * python/_dbus.py: Remove import of the dbus.services
1278         module as it no longer exists (patch from Dimitur Kirov)
1279
1280         * python/service.py (Object::__init__): Fixed typo
1281         s/name/bus_name (patch from Dimitur Kirov)
1282
1283         * python/examples/example-signal-emitter.py: import dbus.glib
1284         to get the main loop and use glib mainloop instead of gtk so
1285         X doesn't have to be running.
1286
1287         * python/examples/example-signal-recipient.py: import dbus.glib
1288         to get the main loop and use glib mainloop instead of gtk so
1289         X doesn't have to be running. Import the decorators module
1290         directly.
1291
1292         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
1293         didn't pick up on but are needed to build
1294
1295         * configure.in: upped version to 0.35.2
1296
1297         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1298         added Colin Walters' SELinux API rename patch from head 
1299         s/unix sercurity context/selinux security context/
1300
1301 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
1302
1303         * python/Makefile.am: dbus_binding.pxd.in should be included 
1304         in EXTRA_DIST not dbus_binding.pxd
1305         fix up $(srcdir) hopefully for the last time
1306
1307         * NEWS: Update to 0.35.1
1308
1309 2005-07-16  Colin Walters  <walters@verbum.org>
1310
1311         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1312         from bus_driver_handle_get_connection_unix_security_context.  Update for
1313         error usage.
1314         (message_handlers): Update for renames.
1315
1316         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1317         _dbus_string_init failure correctly.
1318         (bus_selinux_append_context): Convert SID to context.  Append it
1319         as a byte array.
1320         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1321         hasn't been called.
1322
1323         * bus/selinux.h: Update prototype.
1324
1325         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1326         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1327
1328 2005-07-15  Colin Walters  <walters@verbum.org>
1329
1330         * doc/TODO: Add note about convenience wrappers.
1331
1332 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1333
1334         * NEWS: Update to 0.35
1335
1336 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1337
1338         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1339         so distcheck doesn't fail
1340
1341         * glib/examples/Makefile.am: Add example-service.xml and 
1342         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1343
1344         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1345         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1346
1347         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1348         compiler looks in the right places during distcheck
1349
1350 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1351
1352         * glib/example/Makefile.am: Fix a typo which cause make distcheck
1353         to fail
1354
1355 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1356
1357         * python/examples/example-service.py,
1358         python/examples/example-signal-emitter.py: Fixed up examples
1359         for API changes
1360
1361 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1362
1363         * python/__init__.py: Upped to version (0,42,0) because of
1364         the API change
1365
1366 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1367
1368         * ChangeLog: fix date in last entry
1369
1370         * configure.in, bus/system.conf.in: add the ability to configure 
1371         the system bus user at compiletime with the --with-dbus-user flag
1372         (patch from Kristof Vansant)
1373
1374 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
1375
1376         * bus/dispatch.c, test/test-service.c: Add testcase
1377         for sending messages to oneself (TODO item).
1378
1379         * python/service.py (class Object): Swap ordering of bus_name 
1380         and object_path parameters to better support inheritance.
1381
1382         * doc/dbus-tutorial.xml: change Python docs to reflect change
1383         in parameter ordering and fix the inheritance section.
1384
1385         * doc/TODO: remove sending message to oneself TODO item
1386
1387 2005-07-15  Ross Burton  <ross@openedhand.com>
1388
1389         * glib/dbus-gproxy.c:
1390         Fix a leak when calling methods via the proxy.
1391
1392 2005-07-15  Colin Walters  <walters@verbum.org>
1393
1394         * bus/selinux.c (bus_selinux_append_context): Wrap in
1395         HAVE_SELINUX.
1396
1397 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1398
1399         * python/_dbus.py (Bus::remove_signal_receiver):
1400         don't add a callback to the match if none has been passed in
1401         
1402         * python/matchrules.py (SignalMatchTree::remove): if the rule
1403         being matched does not have a callback treat it as a wildcard
1404         fix matching logic
1405
1406         * doc/dbus-tutorial.xml: Add Python tutorial
1407
1408 2005-07-14  Colin Walters  <walters@verbum.org>
1409
1410         * bus/driver.c
1411         (bus_driver_handle_get_connection_unix_security_context): New function.
1412         (message_handlers): Add.
1413
1414         * bus/selinux.c (bus_selinux_append_context): New function; appends
1415         security context to message.
1416
1417         * bus/selinux.h: Prototype.
1418
1419         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1420
1421 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
1422
1423         * bus/activation.c: clean up all tabs to be 8 spaces 
1424         (bus_activation_activate_service): make sure we clean up
1425         if activation fails
1426
1427         * bus/dispatch.c: clean up all tabs to be 8 spaces 
1428         (check_shell_fail_service_auto_start): New function
1429         tests to make sure we get fail properly when trying to auto start a service
1430         with a faulty command line
1431         (check_shell_service_success_auto_start): New function tests to make sure
1432         auto started services get the arguments on the command line
1433
1434         * test/test-shell-service.c: Added service for testing auto-starting with 
1435         command line arguments
1436
1437         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
1438         test/data/valid-service-files/debug-shell-echo-success.service.in:
1439         Added service files for testing auto-starting with command line arguments
1440
1441         * */.cvsignore: added a bunch of generated files to various .cvsignore files
1442
1443 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
1444
1445         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1446         
1447         * dbus/Makefile.am: added new files to build.
1448
1449         * bus/activation.c (bus_activation_activate_service): support
1450         activation commands with parameters.
1451
1452         * test/shell-test.c: added test program for the shell parsing
1453         code.
1454
1455 2005-07-13  David Zeuthen  <davidz@redhat.com>
1456
1457         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1458         64 bit signed and unsigned parameters
1459
1460 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
1461
1462         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1463
1464         * python/service.py (class Name): renamed BusName to make it clearer
1465         what the object is for (a name on the bus)
1466
1467         * python/examples/example-service.py,
1468         python/examples/example-signal-emitter.py: change the Name object to
1469         BusName
1470
1471 2005-07-12  Colin Walters  <walters@verbum.org>
1472
1473         Patch from Jim Gettys <Jim.Gettys@hp.com>.
1474
1475         * tools/dbus-launch.c: Include sys/select.h.
1476
1477 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
1478         * python/dbus_bindings.pyx.in: removed
1479
1480         * python/dbus_bindings.pyx: Added.
1481         - Fixed some memleaks (patch from 
1482         Sean Meiners <sean.meiners@linspireinc.com>)
1483         - Broke out the #include "dbus_h_wrapper.h" and put it in its
1484         own pxd file (Pyrex definition)
1485         - Broke out glib dependancies into its own pyx module
1486         
1487         * python/dbus_bindings.pdx: Added.
1488         - Defines C class Connection for exporting to other modules
1489
1490         * python/dbus_glib_bindings.pyx: Added.
1491         - New module to handle lowlevel dbus-glib mainloop integration
1492
1493         * python/glib.py: Added.
1494         - Registers the glib mainloop when you import this module
1495
1496         * python/services.py: Removed (renamed to service.py)
1497         
1498         * python/service.py: Added.
1499         - (class Server): renamed Name
1500
1501         * python/__init__.py: Bump ro version (0,41,0)
1502         -don't import the decorators or service module
1503         by default.  These now reside in the dbus.service namespace
1504
1505         * python/_dbus.py (Bus::__init__): Add code run the main loop 
1506         setup function on creation 
1507
1508         * python/examples/example-service.py,
1509         python/examples/example-signal-emitter.py: update examples
1510
1511         * python/examples/gconf-proxy-service.py,
1512         python/examples/gconf-proxy-service2.py: TODO fix these up
1513
1514         * doc/TODO: Addition
1515         - Added a Python Bindings 1.0 section
1516         - added "Add match on args or match on details to match rules"
1517
1518
1519 2005-07-12  Colin Walters  <walters@verbum.org>
1520
1521         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
1522         (statemachine-glue.h): 
1523         * glib/examples/Makefile.am (example-service-glue.h) 
1524         (example-signal-emitter-glue.h): 
1525         * glib/Makefile.am (dbus-glib-error-switch.h): 
1526         Add libtool --mode=execute so we use the built library instead
1527         of any installed one.
1528
1529 2005-07-11  Colin Walters  <walters@verbum.org>
1530
1531         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1532         (dbus_g_value_types_init): Remove assertion.
1533         (dbus_g_value_get_g_type, dbus_g_value_open)
1534         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1535         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1536         functions related to DBusGValue.  Now we marshal/demarshal
1537         structures as GValueArray.
1538         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1539         structures.
1540         (signature_iter_to_g_type_array): Don't call
1541         signature_iter_to_g_type_struct.
1542         (signature_iter_to_g_type_struct): Delete.
1543         (dbus_gvalue_to_signature): Delete.
1544         (dbus_gvalue_to_signature): New function with same name as other
1545         one; we can convert structures to signatures.
1546         (demarshal_valuearray): New function.
1547         (get_type_demarshaller): Use it.
1548         (demarshal_recurse): Delete.
1549         (marshal_proxy): New function.
1550         (marshal_map): Warn if we can't determine signature from type.
1551         (marshal_collection_ptrarray): Ditto.
1552         (marshal_collection_array): Ditto.
1553         (get_type_marshaller): Use marshal_valuearray.
1554         (marshal_recurse): Delete.
1555         (_dbus_gvalue_test): Add some tests.
1556
1557         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
1558         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1559         (dbus_g_value_open, dbus_g_value_iterator_get_value)
1560         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1561         (dbus_g_value_free): Remove prototypes.
1562
1563         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1564         G_TYPE_VALUE_ARRAY.
1565
1566         * glib/examples/example-service.c:
1567         * glib/examples/example-client.c: Implement GetTuple.
1568
1569         * test/glib/test-dbus-glib.c:
1570         * test/glib/test-service-glib.c:
1571         * test/glib/test-service-glib.xml: Add structure tests.
1572
1573 2005-07-10  Colin Walters  <walters@verbum.org>
1574
1575         * doc/TODO: Knock off some GLib items with this patch.
1576
1577         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
1578         (_dbus_gvalue_signals_error): New functions.
1579
1580         * glib/dbus-gvalue-utils.h: Prototype them.
1581
1582         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1583         and change to not output const/retval flags for input args.  All
1584         callers updated.
1585         (invoke_object_method): Refactor to handle return values.  Add
1586         some more comments in various places.  Remove debug g_print.
1587
1588         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1589
1590         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1591         Handle G_TYPE_NONE.
1592         (compute_gsignature): New function; refactored from code from
1593         compute_marshaller and compute_marshaller_name.  Enhance to
1594         handle return values and async ops more cleanly.  Update for
1595         async ops returning NONE instead of BOOLEAN.
1596         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1597         and output appropriate string.
1598         (generate_glue): Handle return value annotation.  Also don't dump
1599         constness flag for input arguments.
1600
1601         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1602         files shared between installed library and utilities.
1603         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1604         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1605         binding tool can access gtype utility functions.
1606
1607         * test/glib/test-service-glib.c: 
1608         * test/glib/test-service-glib.xml: 
1609         * test/glib/test-dbus-glib.c: Add some tests for return values.
1610
1611 2005-07-09  Colin Walters  <walters@verbum.org>
1612
1613         * glib/dbus-gparser.c (parse_annotation): Add annotations to
1614         argument if available, not method.
1615
1616         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1617         (invoke_object_method): First, remove some redundant
1618         GValues (object_value, error_value) in favor of working on
1619         array directly.  Second, rework constness to be less buggy.
1620         Now we iterate directly over the argument metadata instead
1621         of parallel iterating over output signature and metadata.
1622
1623         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1624
1625         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1626         annotation on input args.
1627         
1628 2005-07-09  Colin Walters  <walters@verbum.org>
1629
1630         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1631         Define.
1632
1633         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1634         annotation.
1635
1636         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1637         (method_dir_signature_from_object_info): Handle arg_iterate change.
1638         (write_interface): Ditto.
1639         (lookup_object_info): Don't barf if format_version is > 0.
1640         (invoke_object_method): Handle arg constness.
1641
1642         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1643         (arg_info_new): Create.
1644         (arg_info_unref): Destroy.
1645         (arg_info_get_annotations, arg_info_get_annotation) 
1646         (arg_info_add_annotation): New functions.
1647
1648         * glib/dbus-gidl.h: Prototype them.
1649
1650         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1651         args, disallow them in properties.
1652         (parse_annotation): Handle arg annotations.
1653
1654         * test/glib/test-service-glib.xml: 
1655         * test/glib/test-service-glib.c: Update to make some methods
1656         const.
1657
1658 2005-07-08  Colin Walters  <walters@verbum.org>
1659
1660         * test/glib/test-service-glib.xml: 
1661         * test/glib/test-service-glib.c:
1662         * test/glib/test-dbus-glib.c: Test a{sv}.
1663
1664         * glib/examples/statemachine/statemachine.c:
1665         * glib/examples/statemachine/statemachine-server.c:
1666         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1667         add progress bar, etc.
1668
1669         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1670         needed anymore due to generic array/map marshalling.
1671         (dbus_g_value_types_init): Don't register basic arrays or the
1672         string/string hash.
1673         (dbus_gtype_from_signature_iter): Don't try to recurse into
1674         variants.
1675         (dbus_gtype_to_signature): Check collection/map before type
1676         metadata.
1677         (demarshal_garray_basic): Renamed to demarshal_collection_array.
1678         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1679         generic map creation/append functions instead of hash table
1680         specifically.
1681         (get_type_demarshaller): Handle maps.
1682         (demarshal_collection): Dispatch on collection type to either
1683         demarshal_collection_ptrarray or demarshal_collection_array.
1684         (get_type_marshaller): Handle maps.
1685         (marshal_collection): Dispatch collection type to either
1686         marshal_collection_ptrarray or marshal_collection_array.
1687         (_dbus_gvalue_test): New test.
1688
1689         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1690         (hash_free_from_gtype): Use it to free GValues.
1691         (hashtable_append): New function.
1692         (ptrarray_append): Fix prototype.
1693         (slist_append): Ditto.
1694         (_dbus_gvalue_utils_test): Extend tests.
1695
1696         * glib/dbus-gtype-specialized.c
1697         (dbus_g_type_specialized_init_append): Renamed from
1698         dbus_g_type_specialized_collection_init_append.  Remove const from
1699         value, since we steal it.
1700         (dbus_g_type_specialized_map_append): New function.
1701
1702         * glib/dbus-gtype-specialized.h: Update prototypes.
1703         Add DBusGTypeSpecializedMapAppendFunc.
1704
1705         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1706         _dbus_gvalue_test.
1707         
1708         * glib/dbus-gtest.h: Prototype it.
1709
1710 2005-07-08  Ross Burton  <ross@openedhand.com>
1711
1712         * dbus/dbus-glib.h:
1713         Add DBysGAsyncData for the async bindings.
1714
1715         * glib/dbus-binding-tool-glib.c:
1716         Re-enable the async bindings.
1717
1718         * test/glib/test-dbus-glib.c:
1719         Add a test for the generated async bindings.
1720
1721 2005-07-08  Colin Walters  <walters@verbum.org>
1722
1723         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1724         connection concept.
1725         
1726 2005-07-08  Colin Walters  <walters@verbum.org>
1727         
1728         * tools/Makefile.am: Kill of print-introspect in favor of using
1729         dbus-send --print-reply=literal.
1730
1731         * test/glib/test-service-glib.xml: 
1732         * test/glib/test-service-glib.c (my_object_get_objs): New test
1733         for "ao".
1734
1735         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1736         (main): Test GetObjs.
1737
1738         * glib/examples/statemachine/Makefile.am:
1739         * glib/examples/statemachine/sm-marshal.list:
1740         * glib/examples/statemachine/statemachine-client.c:
1741         * glib/examples/statemachine/statemachine-server.c:
1742         * glib/examples/statemachine/statemachine-server.xml:
1743         * glib/examples/statemachine/statemachine.c:
1744         * glib/examples/statemachine/statemachine.h:
1745         * glib/examples/statemachine/statemachine.xml:
1746
1747         New example.
1748
1749         * glib/examples/example-service.c (main): Move invocation
1750         of dbus_g_object_type_install_info earlier, to emphasize it
1751         should only be done once.
1752
1753         * glib/examples/example-signal-emitter.c (main): Ditto.
1754
1755         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1756
1757         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1758         (dbus_gvalue_marshal): Update prototypes.
1759
1760         * glib/dbus-gvalue.c: Update all marshalling functions to take
1761         const GValue instead of GValue.
1762         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1763         types.
1764         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1765         change.
1766         (dbus_gtype_to_signature): Handle generic collecitons and maps.
1767         Return a newly-allocated string.
1768         (demarshal_proxy, demarshal_object_path, demarshal_object)
1769         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1770         we get the wrong types from message.
1771         (get_type_demarshaller): New function, extracted from
1772         dbus_gvalue_demarshal.
1773         (demarshal_collection): New function, demarshals generic
1774         collection.
1775         (dbus_gvalue_demarshal): Just invoke result of
1776         get_type_demarshaller.  Throw error if we don't have one.
1777         (marshal_garray_basic): Abort on OOM.
1778         (get_type_marshaller): New function, extracted from
1779         dbus_gvalue_marshal.
1780         (collection_marshal_iterator, marshal_collection): New functions;
1781         implements generic marshalling for an iteratable specialized
1782         collection.
1783         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1784
1785         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1786         G_TYPE_STRING.
1787         (ptrarray_value_from_gvalue): Ditto.
1788         (ptrarray_append, ptrarray_free): New functions.
1789         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
1790         (slist_append, slist_end_append, slist_free): New functions.
1791         (dbus_g_type_specialized_builtins_init): Add append fuctions
1792         for GPtrArray and GSList.  Register GSList.
1793         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1794
1795         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1796         New.
1797         (dbus_g_type_specialized_collection_init_append)
1798         (dbus_g_type_specialized_collection_append)
1799         (dbus_g_type_specialized_collection_end_append): Prototype.
1800         (DBusGTypeSpecializedCollectionVtable): Add append_func and
1801         end_append_func.
1802
1803         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
1804         (dbus_g_type_specialized_collection_append) 
1805         (dbus_g_type_specialized_collection_end_append): New functions.
1806         (dbus_g_type_map_value_iterate): Take const GValue.
1807         (dbus_g_type_collection_value_iterate): Ditto.
1808
1809         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1810         _dbus_gvalue_utils_test.
1811         
1812         * glib/dbus-gtest.h: Prototype it.
1813
1814         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1815         using uninitialized owner_list.
1816         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1817         public API.
1818         (dbus_g_proxy_end_call_internal): Update to use error set
1819         from dbus_gvalue_demarshal instead of setting it here.
1820         (dbus_g_proxy_begin_call): Move return_if_fail here.
1821
1822         * glib/dbus-gobject.c (write_interface): Update for
1823         dbus_gtype_to_signature returning new string.
1824
1825         * configure.in: Add glib/examples/statemachine.
1826
1827 2005-07-08  Joe Shaw  <joeshaw@novell.com>
1828
1829         * configure.in: Add a configure option, --with-console-auth-dir
1830         
1831         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1832         new setting.  Patch from Kay Sievers.
1833
1834 2005-07-06  Colin Walters  <walters@verbum.org>
1835
1836         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1837         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1838         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1839         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1840         Delete in favor of dbus_g_proxy_begin_call and
1841         dbus_g_proxy_cancel_call.
1842         (DBusGProxyCall, DBusGProxyCallNotify): New.
1843         (dbus_g_proxy_begin_call): Change prototype to take callback, user
1844         data, and destroy function.  This replaces
1845         dbus_g_pending_call_set_notify.
1846         (dbus_g_proxy_cancel_call): Prototype.
1847         (DBusGAsyncData): Delete, shouldn't be needed anymore.
1848
1849         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1850         pending_calls map.
1851         (struct _DBusGProxyManager): Add bus_proxy member, which is an
1852         internal proxy for calls to the bus. Remove
1853         pending_nameowner_calls, now the internal proxy keeps track.
1854         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1855         pending_nameowner_calls.
1856         (got_name_owner_cb): Update prototype, and use
1857         dbus_g_proxy_end_call.
1858         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1859         (dbus_g_proxy_manager_register): Delete directly libdbus code in
1860         favor of using internal proxy.
1861         (dbus_g_proxy_manager_unregister): Update to use
1862         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1863         (dbus_g_proxy_init): Initialize pending calls map.
1864         (dbus_g_proxy_constructor): New.
1865         (dbus_g_proxy_class_init): Add get/set property functions,
1866         constructor, and add NAME, PATH, and INTERFACE properties.
1867         (cancel_pending_call): New function.
1868         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
1869         cancel them.
1870         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
1871         (GPendingNotifyClosure): New structure.
1872         (d_pending_call_notify, d_pending_call_free): Moved here from
1873         dbus-glib.c.
1874         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
1875         ordering.
1876         (manager_begin_bus_call): New internal function for talking to
1877         internal bus proxy.
1878         (dbus_g_proxy_new): Construct object using GObjet properties.
1879         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
1880         Create closure of same, and insert call into map of pending calls.
1881         (dbus_g_proxy_end_call_internal): Take call id instead of pending
1882         call.  Look up pending call in current set.  Remove it when we've
1883         completed.
1884         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
1885         (dbus_g_proxy_begin_call): Change API to take callback, user data,
1886         and destroy function directly.
1887         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
1888         (dbus_g_proxy_call): Invoke with NULL callback.
1889         (dbus_g_proxy_cancel_call): New function, replaces
1890         dbus_g_pending_call_cancel.
1891
1892         * glib/dbus-gparser.c (validate_signature): Fix call to
1893         dbus_set_g_error.
1894
1895         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
1896         New quark for attaching metadata to GType.
1897         (info_hash): Delete.
1898         (lookup_object_info): Look up using quark.
1899         (dbus_g_object_type_install_info): Check that a type is classed,
1900         not that it's an object.  Also just install type data using quark
1901         instead of using global hash.
1902
1903         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
1904         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
1905         (GPendingNotifyClosure): Delete.
1906         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
1907         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
1908
1909         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
1910         client method generation until we can fix it...
1911         
1912         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
1913         (load_from_service_thread_func): Ditto.
1914
1915         * tools/dbus-names-model.c (struct NamesModel): Hold
1916         DBusGProxyCall.
1917         (have_names_notify): Update prototype, use
1918         dbus_g_proxy_cancel_call.
1919         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
1920
1921         * tools/dbus-monitor.c (filter_func): Update for print_message
1922         API change.
1923
1924         * test/glib/test-dbus-glib.c: Add more tests for async
1925         invocations.  Update many begin_call/end_call pairs to just use
1926         dbus_g_proxy_call.
1927
1928         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
1929         allows us to dump print-introspect.c.
1930
1931         * tools/dbus-print-message.h (print_message): Add literal argument
1932         to print_message which is intended to allow printing arguments without
1933         metadata like "string=".
1934
1935         * tools/dbus-print-message.c (print_iter): Add literal argument.
1936         (print_message): Allow printing string messages literally.
1937
1938 2005-07-05  Colin Walters  <walters@verbum.org>
1939
1940         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1941         Remove value refcount leak, original patch from Jorn Baayen
1942         <jorn@openedhand.com>.  Also remove useless extra value in favor
1943         of prepending to value array directly.
1944
1945 2005-07-02  Colin Walters  <walters@verbum.org>
1946
1947         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
1948
1949 2005-07-01  Colin Walters  <walters@verbum.org>
1950
1951         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1952         
1953         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
1954         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
1955         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
1956         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
1957
1958 2005-06-30  Colin Walters  <walters@verbum.org>
1959
1960         * test/glib/test-dbus-glib.c:
1961         * test/glib/test-service-glib.c:
1962         * test/glib/test-service-glib.xml: Update tests for new error
1963         setting bits, also add async tests (patch from Ross Burton).
1964
1965         * test/glib/Makefile.am (test_service_glib_LDADD): Add
1966         DBUS_GLIB_THREADS_LIBS.
1967
1968         * glib/dbus-gproxy.c (get_name_owner)
1969         (dbus_g_pending_call_end_valist): Ditto.
1970
1971         * glib/dbus-gobject.c (error_metadata): New mapping from GError
1972         domain (GQuark) to DBusGErrorInfo.  
1973         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
1974         quark in error_metadata.  Take message interface as default
1975         error message interface.
1976         (gerror_to_dbus_error_message): Pass message interface.
1977         (dbus_set_g_error): Resurrected.
1978         (dbus_g_error_info_free): New function.
1979         (dbus_g_object_type_install_info): Use g_type_class_ref instead
1980         of _peek to actually create the object class if it hasn't been
1981         created yet.
1982         (dbus_g_error_domain_register): New function.
1983
1984         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
1985
1986         * glib/dbus-gparser.c (validate_signature): Ditto.
1987
1988         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
1989         (dbus_g_error_domain_register): Prototype.
1990
1991         * glib/dbus-glib.c (dbus_g_error_set): Delete.
1992         Update tests.
1993
1994 2005-06-29  Colin Walters  <walters@verbum.org>
1995
1996         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
1997         DBUS_TYPE_G_OBJECT_PATH.
1998
1999         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2000         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2001         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2002         (dbus_g_object_path_get_g_type): New function.
2003         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2004         to DBUS_TYPE_G_OBJECT_PATH by default.
2005         (demarshal_proxy): Remove unused name variable.
2006         (demarshal_object_path, marshal_object_path): New functions.
2007         (demarshal_proxy_array, marshal_proxy_array): Delete.
2008         
2009         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2010         DBUS_TYPE_G_OBJECT_PATH to char *.
2011         (dbus_g_type_get_lookup_function): Map builtin
2012         DBUS_TYPE_G_OBJECT_PATH.
2013
2014         * test/glib/test-dbus-glib.c
2015         * test/glib/test-service-glib.c (my_object_objpath): 
2016         Adapt tests to new object path marshalling.
2017
2018 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2019
2020         * configure.in: force check for Python >= 2.4
2021
2022 2005-06-29  Colin Walters  <walters@verbum.org>
2023         
2024         Patch from Ross Burton <ross@openedhand.com>
2025         
2026         * glib/dbus-gobject.c (invoke_object_method): Unset object
2027         value in all cases, not only in async case.
2028
2029 2005-06-29  Colin Walters  <walters@verbum.org>
2030
2031         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2032         name_call for keeping track of any outgoing GetNameOwner call.
2033         Also add for_owner and associated.
2034         (struct _DBusGProxyManager): Add owner_names, which is hash table
2035         that maps a base name to a list of names it owns (that we're
2036         interested in).  Add pending_nameowner_calls which is a list of
2037         all outstanding GetNameOwner; avoids us having to iterate over
2038         every proxy.  Add unassociated_proxies which keeps track of name
2039         proxies with no associated name owner.
2040         (dbus_g_proxy_manager_unref): Destroy owner_names.
2041         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2042         name refcounts.
2043         (find_name_in_info, name_owner_foreach)
2044         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2045         (dbus_g_proxy_manager_monitor_name_owner)
2046         (dbus_g_proxy_manager_unmonitor_name_owner)
2047         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2048         New functions; they manipulate the owner_names mapping.
2049         (got_name_owner_cb): New function.
2050         (get_name_owner): New function, extracted from
2051         dbus_g_proxy_new_for_name_owner.
2052         (dbus_g_proxy_manager_register): For now we need to keep track of
2053         all NameOwnerChanged.  Also if the proxy is for a name, if we
2054         don't already know the name owner, queue a new GetNameOwner
2055         request and add it to our list of unassociated proxies.  Otherwise
2056         inc the refcount.
2057         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2058         cancel any pending GetNameOwner call, etc.
2059         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2060         the owner_names mapping to look up the current names for the
2061         signal source, and dispatch to any proxies for that name.
2062         (dbus_g_proxy_new): Initialize new members.
2063         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2064         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2065         (dbus_g_pending_call_end_valist): New function, extracted from
2066         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2067         but want to use the GLib infrastructure.  Also note how many
2068         arguments in reply were over.
2069         (dbus_g_pending_call_end): New function, just call
2070         dbus_g_pending_call_end_valist.
2071         (dbus_g_proxy_end_call_internal): Just call
2072         dbus_g_pending_call_end_valist.
2073
2074         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2075         of builtin marshaller for STRING_STRING_STRING.
2076
2077         * test/glib/test-dbus-glib.c: 
2078         * test/glib/test-service-glib.c:
2079         * test/glib/test-service-glib.xml:
2080         Extend tests to cover name proxies, destruction of owner proxies,
2081         etc.
2082         
2083         * glib/examples/example-signal-recipient.c
2084         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2085         
2086         * tools/dbus-send.c (main): Print D-BUS error name in addition
2087         to message.
2088
2089 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2090
2091         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2092         cmessage_function_handler): Patch from 
2093         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2094         by using the Py_GILState_Ensure/Release to synchronize with the
2095         python runtime.
2096         
2097 2005-06-28  Ray Strode  <rstrode@redhat.com>
2098
2099         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2100         babysitter helper process on last unref, bug #2813.
2101
2102 2005-06-27  Colin Walters  <walters@verbum.org>
2103
2104         * test/glib/test-dbus-glib.c: 
2105         * test/glib/test-service-glib.c:
2106         * test/glib/test-service-glib.xml:
2107         Test hash table signal emitting.
2108
2109         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2110         types to their fundamental basis types, since this is what
2111         marshallers operate on.  Also add an entry for VOID__BOXED.
2112         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2113
2114 2005-06-26  Havoc Pennington  <hp@redhat.com>
2115
2116         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2117         from Don Park
2118
2119 2005-06-26  Colin Walters  <walters@verbum.org>
2120
2121         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2122         (dbus_g_error_set): New public function from its ashes; used by
2123         both service-side method implementation and GLib bindings
2124         internals.
2125         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2126         (_dbus_glib_test): Add some tests.
2127
2128         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2129
2130         * test/glib/test-service-glib.c (my_object_throw_error): Use
2131         dbus_g_error_set.
2132
2133         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2134         errors thrown by dbus_g_error_set.
2135
2136         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2137
2138         * glib/dbus-gparser.c (validate_signature): Ditto.
2139
2140         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2141         (dbus_g_proxy_end_call_internal): Ditto.
2142
2143         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2144         converts DBUS_ERROR_x to DBUS_GERROR_x.
2145         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2146
2147         * doc/TODO: Remove error TODO.
2148
2149         * doc/dbus-tutorial.xml: Update with documentation about error
2150         handling.
2151
2152         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2153         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2154         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2155
2156 2005-06-22  Colin Walters  <walters@verbum.org>
2157         
2158         Patch from Ross Burton <ross@openedhand.com>
2159
2160         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2161
2162 2005-06-20  Colin Walters  <walters@verbum.org>
2163
2164         * configure.in: Add glib/examples.
2165
2166         * glib/Makefile.am: Add examples/
2167
2168         * glib/examples/.cvsignore
2169         * glib/examples/Makefile.am
2170         * glib/examples/example-client.c
2171         * glib/examples/example-service.c
2172         * glib/examples/example-service.xml
2173         * glib/examples/example-signal-emitter.c
2174         * glib/examples/example-signal-emitter.xml
2175         * glib/examples/example-signal-recipient.c:
2176         New files; GLib binding examples, ported from
2177         python/examples.
2178
2179 2005-06-20  Colin Walters  <walters@verbum.org>
2180
2181         * dbus/dbus-glib.h: 
2182         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2183         dbus_g_proxy_call.
2184
2185         * glib/dbus-binding-tool-glib.c: 
2186         * doc/dbus-tutorial.xml: 
2187         * test/glib/test-dbus-glib.c: Update for rename.
2188         
2189 2005-06-20  Colin Walters  <walters@verbum.org>
2190
2191         Patch suggested by Ross Burton <ross@openedhand.com>
2192
2193         * glib/dbus-gobject.c (export_signals): Free signal name.
2194         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2195         memory leak.  Add a bit of documentation.
2196         (dbus_g_method_return_error): Free context, and note we do
2197         so.
2198
2199 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2200
2201         * dbus/dbus-glib.h:
2202         * glib/dbus-gobject.c:
2203         * glib/dbus-gproxy.c:
2204         * glib/dbus-gvalue.c: Predeclare structs as 
2205         typedef struct _Something Something instead of 
2206         typedef struct Something Something, so we can 
2207         redeclare the prototypes. Other GNOME libraries 
2208         do this already.
2209
2210 2005-06-17  Colin Walters  <walters@verbum.org>
2211
2212         * tools/dbus-names-model.c (have_names_notify): Fix call
2213         to dbus_g_proxy_end_call.
2214         
2215 2005-06-17  Colin Walters  <walters@verbum.org>
2216
2217         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2218         spew warnings if we get malformed remote signals.
2219
2220         * glib/dbus-gobject.c (propsig_iterate): New function.
2221         (lookup_object_info): New function, extracted from
2222         lookup_object_and_method.
2223         (introspect_properties, introspect_signals): Delete; these
2224         are merged into write_interface.
2225         (write_interface): Write out signals and properties here;
2226         dump the org.gtk.object stuff and use the interface given
2227         in the introspection data blob.  Also fix up property XML.
2228         (lookup_values): New function.
2229         (introspect_interfaces): Gather a mapping from interface to a
2230         list of its methods, signals, and properties, then write out
2231         each interface.
2232         (lookup_object_and_method): Use lookup_object_info.
2233         (struct DBusGSignalClosure): Add interface.
2234         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2235         we can just use the constant data.
2236         (dbus_g_signal_closure_finalize): Don't free signal name.
2237         (signal_emitter_marshaller): Use interface from signal closure.
2238         (export_signals): Only export signals mentioned in introspection
2239         blob.
2240         (dbus_g_connection_register_g_object): Warn if we have no
2241         introspection data for an object.
2242         (funcsig_equal): Remove unused variable.
2243         (dbus_g_object_register_marshaller): Take varargs instead of
2244         list.
2245         (dbus_g_object_register_marshaller_array): New function,
2246         extracted from old dbus_g_object_register_marshaller.
2247
2248         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2249         signals and property data.
2250         (write_quoted_string): New function, extracted from generate_glue.
2251         (generate_glue): Write signals and properties to introspection
2252         blob.
2253
2254         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2255         exported_signals and exported_properties.
2256         (dbus_g_object_register_marshaller): Update prototype.
2257         (dbus_g_object_register_marshaller_array): Prototype.
2258         
2259         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2260
2261         * test/glib/test-service-glib.c: Add new test signals and method
2262         to emit them.
2263
2264         * test/glib/test-service-glib.xml: Add some test signals.
2265
2266         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2267         and my-object-marshal.h
2268         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2269         my-object-marshal.c.
2270         (my-object-marshal.c, my-object-marshal.h): Implement.
2271
2272         * test/glib/.cvsignore: Update.
2273
2274         * doc/TODO: Remove two GLib TODO items fixed by this
2275         patch.
2276
2277 2005-06-16  Colin Walters  <walters@verbum.org>
2278
2279         * doc/TODO: Update for GLib bindings.
2280         
2281 2005-06-16  Colin Walters  <walters@verbum.org>
2282
2283         * glib/dbus-binding-tool-glib.c:
2284         * glib/dbus-gobject.c:
2285         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
2286         from Ross Burton, for his GLib bindings work.
2287
2288 2005-06-16  Colin Walters  <walters@verbum.org>
2289
2290         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2291         to iterate instead of walking to G_TYPE_INVALID.
2292
2293         Patch based on a patch from Ryan Gammon.
2294
2295 2005-06-16  Colin Walters  <walters@verbum.org>
2296
2297         * bus/bus.c (bus_context_new): Set parser to NULL
2298         after we unref it (Patch from Chris Boscolo, #2174).
2299         
2300 2005-06-16  Colin Walters  <walters@verbum.org>
2301
2302         * python/dbus_bindings.pyx.in: Import size_t,
2303         __int64_t, __uint64_t, and __signed.
2304
2305         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2306         Define cmsg struct, output it.
2307         (_dbus_read_credentials_unix_socket):
2308         Use cmsg struct.
2309         
2310         Patch from Joe Markus Clarke for FreeBSD support.
2311         
2312 2005-06-16  Colin Walters  <walters@verbum.org>
2313
2314         * tools/dbus-send.c (append_array): Use strtok.
2315         (append_dict): New function.
2316         (type_from_name): New function, extracted from main.
2317         (main): Handle sending dicts.
2318
2319         * tools/dbus-print-message.c (print_iter): Print dict
2320         entries.
2321         
2322 2005-06-16  Colin Walters  <walters@verbum.org>
2323
2324         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2325         values as the empty string (#2948).
2326         
2327 2005-06-16  Colin Walters  <walters@verbum.org>
2328
2329         * dbus/Makefile.am:
2330         * mono/doc/Makefile.am:
2331         * test/glib/Makefile.am:
2332
2333         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2334
2335 2005-06-16  Colin Walters  <walters@verbum.org>
2336
2337         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2338         header byte order from expected byte order (Patch from Chris Wilson, #3475).
2339
2340         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
2341         Increment pointer after swapping fixed array.  Add assertion
2342         for array length.
2343                 
2344 2005-06-15  Colin Walters  <walters@verbum.org>
2345
2346         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2347         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
2348         
2349 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2350
2351         * NEWS: Update to 0.34
2352
2353 2005-06-15  David Zeuthen  <davidz@redhat.com>
2354
2355         * configure.in (LT_CURRENT): Revert back to 1 as the library
2356         hasn't changed and we've certainly not committed to protocol
2357         stability yet.  All this does is to break ABI. See commit note
2358         from hp@redhat.com 2005-05-05 for details.
2359         
2360 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2361
2362         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
2363         (_dbus_connection_run_builtin_filters): New method
2364         (dbus_connection_dispatch): Run the builtin filters which in turn
2365         runs the peer filter which handles Ping messages.
2366
2367         * doc/TODO: 
2368          - Ping isn't handled: This patch fixes it
2369          
2370          - Add a test case for the Ping message: added TODO item
2371
2372 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2373
2374         * dbus/dbus-message.c:
2375         (dbus_message_has_path): New method
2376         (dbus_message_has_interface): New method
2377         (dbus_message_has_member): New method
2378
2379         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2380         New method
2381
2382         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
2383         the keyring directory is private to the user
2384
2385         * doc/TODO:
2386          - The convenience functions in dbus-bus.h should perhaps have
2387          the signatures that they would have if they were autogenerated
2388          stubs. e.g. the acquire service function. We should also evaluate
2389          which of these functions to include, in light of the fact that
2390          GLib/Qt native stubs will probably also exist.: Punted
2391
2392          - add dbus_message_has_path(), maybe has_member/interface:
2393          fixed in this patch
2394
2395          - in dbus-keyring.c, enforce that the keyring dir is not
2396          world readable/writable: Fixed in this patch
2397
2398 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
2399
2400         * dbus/dbus-marshal-validate.h: Added a new validation
2401         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
2402         out of memory errors when validating signitures
2403
2404         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2405         in places where we previously used DBUS_VALID and a FALSE return 
2406         value to indicate OOM
2407         
2408         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2409         Use a stack to track the number of elements inside containers.  The 
2410         stack values are then used to validate that dict entries have only two
2411         elements within them.
2412         (validate_body_helper): check the reason for failure when validating
2413         varients
2414         
2415         * dbus/dbus-message.c (load_message): use 
2416         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
2417         DBUS_VALID and a FALSE return value to indicate OOM
2418
2419         * doc/TODO: remove "- validate dict entry number of fields" as this
2420         patch fixes it
2421
2422 2005-06-14  David Zeuthen  <davidz@redhat.com>
2423
2424         * bus/bus.c (process_config_every_time): Drop existing conf-dir
2425         watches (if applicable) and add new watches
2426
2427         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2428         (main): Setup SIGIO signal handler if using D_NOTIFY
2429
2430         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2431
2432         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2433         (merge_included): Also merge conf_dirs list
2434         (bus_config_parser_unref): Clear conf_dirs list
2435         (include_dir): Add directory to conf_dirs list
2436         (bus_config_parser_get_conf_dirs): New function
2437
2438         * bus/dir-watch.[ch]: New files
2439
2440         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2441
2442         * configure.in: Add checks for D_NOTIFY on Linux
2443
2444 2005-06-14  Colin Walters  <walters@verbum.org>
2445
2446         * glib/dbus-binding-tool-glib.c:
2447         * glib/dbus-gobject.c:
2448         * glib/dbus-gvalue.c: Fix indentation and brace style.
2449         
2450 2005-06-14  Ross Burton <ross@openedhand.com>.
2451
2452         * glib/dbus-glib.h: Make DBusGMethodInvocation
2453         a private structure.  Rearrange prototypes a bit.
2454         
2455         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2456         documentation for first_arg_type.
2457         
2458         * glib/dbus-gobject.c: Move DBusGMethodInvocation
2459         here, add documentation.  Move dbus_g_method_return
2460         and dbus_g_method_return_error into public API
2461         section.
2462
2463 2005-06-14  Colin Walters  <walters@verbum.org>
2464
2465         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2466         Add missing return statements, noticed by Ross Burton.
2467         
2468 2005-06-13  Ross Burton <ross@openedhand.com>.
2469
2470         * glib/dbus-gobject.c: Handle errors on message
2471         demarshalling by sending error message back.
2472         * glib/dbus-gvalue.c: Initialize return variables.
2473
2474 2005-06-13  Colin Walters  <walters@verbum.org>
2475
2476         * glib/Makefile.am: Fix thinko in last patch.
2477
2478 2005-06-13  Colin Walters  <walters@verbum.org>
2479
2480         * glib/Makefile.am: Move dbus-gtype-specialized.c
2481         and dbus-gtype-specialized.h into a _HEADERS variable,
2482         install them.
2483
2484 2005-06-12  Colin Walters  <walters@verbum.org>
2485
2486         Async signals and various bugfixes and testing by
2487         Ross Burton <ross@openedhand.com>.
2488
2489         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2490         (dbus_gvalue_genmarshal_name_from_type)
2491         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2492         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2493         (dbus_g_value_types_init, dbus_gtype_from_signature)
2494         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2495         (dbus_gtypes_from_arg_signature): New function prototypes.
2496         (dbus_gvalue_demarshal): Take context and error arguments.
2497         (dbus_gvalue_demarshal_variant): New function.
2498         (dbus_gvalue_demarshal_message): New function.
2499         (dbus_gvalue_store): Delete.
2500
2501         * glib/dbus-gvalue.c:
2502
2503         File has been almost entirely rewritten; now we special-case
2504         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2505         hash tables correctly, etc.  Full support for recursive values
2506         is not yet complete.
2507
2508         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2509         argument of signal to G_TYPE_POINTER since we now pass a
2510         structure.
2511         (lookup_g_marshaller): Delete in favor of
2512         _dbus_gobject_lookup_marshaller.
2513         (marshal_dbus_message_to_g_marshaller): Use
2514         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2515         to handle remote signal callbacks.
2516         (dbus_g_proxy_new_from_proxy): New function; creates a new
2517         DBusGProxy by copying an existing one.
2518         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2519         (dbus_g_proxy_get_path): New functions.
2520         (dbus_g_proxy_marshal_args_to_message): New function;
2521         factored out of existing code.
2522         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2523         from a varargs array.
2524         (dbus_g_proxy_begin_call_internal): New function.
2525         (dbus_g_proxy_end_call_internal): New function.
2526         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2527         as arguments; simply invoke dbus_g_proxy_begin_call_internal
2528         after collecting args into value array.
2529         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2530         invoke dbus_g_proxy_end_call_internal.
2531         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2532         end_call_internal.
2533         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2534         types.
2535         (array_free_all): New function.
2536         (dbus_g_proxy_add_signal): Take GTypes.
2537
2538         * glib/dbus-gobject.h:
2539         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2540         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2541         Prototype.
2542
2543         * glib/dbus-gobject.c: Add a global marshal_table hash which
2544         stores mappings from type signatures to marshallers.  Change lots
2545         of invocations of dbus_gtype_to_dbus_type to
2546         dbus_gtype_to_signature.
2547         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2548         (introspect_signals): Fix test for query.return_type.
2549         (set_object_property): Update invocation of dbus_gvalue_demarshal.
2550         (invoke_object_method): Many changes.  Handle asynchronous
2551         invocations.  Convert arguments with
2552         dbus_gvalue_demarshal_message.  Handle errors.  Use
2553         DBusSignatureIter instead of strlen on args. Handle all arguments
2554         generically.  Special-case variants.
2555         (dbus_g_method_return, dbus_g_method_return_error): New function.
2556         (DBusGSignalClosure): New structure, closes over signal
2557         information.
2558         (dbus_g_signal_closure_new): New function.
2559         (dbus_g_signal_closure_finalize): New function.
2560         (signal_emitter_marshaller): New function; is special marshaller
2561         which emits signals on bus.
2562         (export_signals): New function; introspects object signals and
2563         connects to them.
2564         (dbus_g_object_type_install_info): Take GType instead of
2565         GObjectClass.
2566         (dbus_g_connection_register_g_object): Invoke export_signals.
2567         (dbus_g_connection_lookup_g_object): New function.
2568         (DBusGFuncSignature) New structure; used for mapping type
2569         signatures to marshallers.
2570         (funcsig_hash): New function; hashes DBusGFuncSignature.
2571         (funcsig_equal): New function; compares DBusGFuncSignature.
2572         (_dbus_gobject_lookup_marshaller): New function.
2573         (dbus_g_object_register_marshaller): New function; used to
2574         register a marshaller at runtime for a particular signature.
2575
2576         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2577
2578         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2579         which notes a server method implementation should be
2580         asynchronous.
2581
2582         * glib/dbus-binding-tool-glib.c
2583         (dbus_binding_tool_output_glib_server): Call
2584         dbus_g_value_types_init.
2585         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
2586         variants specially.
2587         (dbus_g_type_get_lookup_function): Turn GType into an invocation
2588         of a lookup function.
2589         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2590         (write_untyped_out_args): New method; write output arguments.
2591         (write_formal_declarations_for_direction): Function for
2592         writing prototypes.
2593         (write_formal_parameters_for_direction): Function for
2594         writing implementations.
2595         (write_typed_args_for_direction): Function for writing
2596         arguments prefixed with GTypes.
2597         (write_async_method_client): Write out async version
2598         of method.
2599
2600         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2601         (dbus_g_type_get_marshal_name): Move mapping from GType
2602         to marshal name into here.
2603         (dbus_g_type_get_c_name): Move into here.
2604         (compute_marshaller): Convert signature to type with
2605         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2606         (compute_marshaller_name): Ditto.
2607         (compute_marshaller): Handle async signal annotations.
2608         (gather_marshallers): Return if we don't have a known
2609         prefix.
2610         (generate_glue): Collect introspection blob here, and
2611         write all of the blob at the end.  This allows an object
2612         with multiple interfaces to work.
2613         Mark async methods in introspection blob.
2614
2615         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2616         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2617         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2618
2619         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2620         avoids people accidentally using DBUS_TYPE_* which should
2621         not be necessary anymore.
2622         Do include dbus-gtype-specialized.h, which are utilities
2623         for GLib container types.
2624         Add various #defines for types such as
2625         DBUS_TYPE_G_BOOLEAN_ARRAY.
2626         (DBusGValueIterator, DBusGValue): Define, not fully used
2627         yet.
2628         (dbus_g_value_get_g_type): Type for recursive value.
2629         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2630         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2631         (dbus_g_value_free): Prototypes.
2632         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2633         (dbus_g_proxy_set_interface): Prototype.
2634         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2635         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2636         types.
2637         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2638         Accessors.
2639         (DBusGAsyncData, DBusGMethodInvocation): Structures for
2640         doing async invocations.
2641         (dbus_g_method_return, dbus_g_method_return_error):
2642         Prototypes.
2643         * doc/dbus-tutorial.xml: Update GLib section.
2644         
2645         * tools/dbus-viewer.c (load_child_nodes): Update
2646         for new invocation type of dbus_g_proxy_end_call.
2647         (load_from_service_thread_func): Ditto.
2648
2649         * tools/print-introspect.c (main): Ditto.
2650
2651         * tools/dbus-names-model.c (have_names_notify)
2652         (names_model_reload, names_model_set_connection)
2653         Use GTypes.
2654
2655         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2656         needed since Python bindings use GLib bindings.
2657
2658         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2659         Add --prefix argument.
2660
2661         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
2662         unneeded --ignore-unsupported arg.
2663         
2664         * test/glib/test-service-glib.c: 
2665         * test/glib/test-service-glib.xml:
2666         * test/glib/test-dbus-glib.c: Add many more tests.
2667
2668 2005-06-06  David Zeuthen  <davidz@redhat.com>
2669
2670         * doc/TODO: Add item about need to remove deprecated functions.
2671
2672         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2673
2674         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2675         to repair the ABI which was broken with the last commit.
2676
2677 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
2678
2679         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
2680         (dbus_connection_disconnect): renamed to dbus_connection_close 
2681         for API symmetry with dbus_connection_open
2682         (_dbus_connection_open_internal): 
2683         s/dbus_connection_disconnect/dbus_connection_close
2684
2685         * dbus/dbus-bus.c (dbus_bus_get):
2686         s/dbus_connection_disconnect/dbus_connection_close
2687
2688         * bus/connection.c (bus_connections_unref, 
2689         bus_connections_setup_connection, bus_connections_expire_incomplete):
2690         s/dbus_connection_disconnect/dbus_connection_close
2691
2692         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
2693         kill_client_connection_unchecked, check_hello_connection):
2694         s/dbus_connection_disconnect/dbus_connection_close
2695
2696         * bus/bus.c (new_connection_callback):
2697         s/dbus_connection_disconnect/dbus_connection_close
2698
2699         * tools/dbus-send.c (main):
2700         s/dbus_connection_disconnect/dbus_connection_close
2701
2702         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2703         s/dbus_connection_disconnect/dbus_connection_close
2704         
2705         * test/test-service.c (path_message_func, filter_func):
2706         s/dbus_connection_disconnect/dbus_connection_close
2707         
2708         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
2709         
2710 2005-05-25  Colin Walters  <walters@verbum.org>
2711
2712         * dbus/dbus-protocol.h: Move various bus service #defines such
2713           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2714           dbus/dbus-shared.h.
2715         * dbus/dbus-shared.h: Various defines moved here.
2716         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2717
2718 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
2719
2720         * python/__init__.py: Python bindings deserve a minor version
2721         update.  Upped to (0, 40, 2)
2722
2723 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
2724
2725         * python/decorators.py: add explicitly_pass_message decorator
2726         for passing in the dbus message as keyword for edge case signal
2727         handling
2728
2729         * python/matchrules.py (SignalMatchRule.__repr__): fix output
2730         to conform with what dbus expects for match rules
2731         (SignalMatchRule.execute): add the dbus message as a keyword
2732         if the signal handler has requested it
2733
2734         * python/examples/example/signal-recipient.py: added some more
2735         examples on how to hook up to signals
2736
2737 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
2738
2739         * python/decorators.py: import dbus_bindings
2740
2741         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
2742         SignalMatchNode): new classes that implement wildcard signal
2743         callback matching using a tree lookup. Heavily modified from a
2744         patch sent by Celso Pinto (fd.o bug #3241)
2745
2746         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2747         use new match classes to handle signals.
2748
2749 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
2750         
2751         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2752
2753 2005-05-18  Havoc Pennington  <hp@redhat.com>
2754
2755         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2756         gettext. Not really worth requiring yet perhaps, but any
2757         production quality 1.0 would require it so we should go ahead and
2758         get things set up. We do have a couple token calls to
2759         bindtextdomain in the code already.
2760
2761 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
2762
2763         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2764         when using recursive g_main_loops
2765
2766         * python/_dbus.py (class Bus): add the ProxyObjectClass
2767         alias for ProxyObject to make it easier for the Twisted 
2768         networking framework to integrate dbus.
2769
2770         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2771         alias for ProxyMethod to make it easier for the Twisted 
2772         networking framework to integrate dbus. 
2773
2774 2005-05-11  Ross Burton  <ross@openedhand.com>
2775
2776         * glib/dbus-glib-tool.c: Add --prefix argument.
2777         * glib/dbus-binding-tool-glib.h: Add prefix argument.
2778         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2779         Add prefix argument.
2780         (generate_glue): Pass prefix argument down.
2781         (dbus_binding_tool_output_glib_server): Pass prefix to
2782         glib-genmarshal.
2783         
2784 2005-05-11  Colin Walters  <walters@verbum.org>
2785
2786         * tools/dbus-send.c (append_array): New function.
2787         (append_arg): Broken out from main.
2788         (main): Add cheesy hack to send arrays and variants.
2789         (usage): Update.
2790         * tools/dbus-print-message.c (print_iter): Broken out
2791         from main.
2792
2793 2005-05-11  Colin Walters  <walters@verbum.org>
2794
2795         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2796         New function, returns signature string for signature iter.
2797         * dbus/dbus-signature.h: Prototype it.
2798         * dbus/dbus-message.c (dbus_message_iter_get_signature):
2799         New function, returns signature string for message iter.
2800         (dbus_message_iter_get_array_len): New function, returns
2801         length of array.
2802         (dbus_message_iter_get_fixed_array): Fix assertion; this
2803         function should be used when the iter is pointing to the
2804         contents of an array
2805         * dbus/dbus-message.h: Prototypes.
2806         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2807         New function; returns length of an array.
2808         * dbus/dbus-marshal-recursive.h: Prototype it.
2809         
2810 2005-05-11  Colin Walters  <walters@verbum.org>
2811
2812         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2813         compilation error.
2814         
2815 2005-05-08  Havoc Pennington  <hp@redhat.com>
2816
2817         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2818         daemon's pid, not the parent's pid, to the file descriptor.
2819         Reported by Taj Morton.
2820
2821 2005-05-05  Havoc Pennington  <hp@redhat.com>
2822
2823         * configure.in (LT_*): add notes on how the libtool versioning
2824         works to save thinking. Increment soname to indicate protocol
2825         breakage (though really the library interface hasn't changed I
2826         guess)
2827
2828         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2829         verify the GUID received from server matches what we were
2830         expecting, if we had an expectation
2831
2832         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2833         (_dbus_auth_get_guid_from_server): new function
2834         (send_begin): parse the OK args
2835
2836         * doc/dbus-specification.xml: add GUID to the auth protocol
2837
2838 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
2839
2840         * Fix my name in previous changelog ;)
2841
2842         * python/proxies.py (ProxyObject.__getattr__): add further patch
2843         from Anthony Baxter to throw an AttributeError when python 
2844         __special__ functions are called instead of marshling them over 
2845         the bus (Bug#1685 comment 3).
2846
2847 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
2848
2849         * python/Makefile.am: changed to use pyexecdir for the binding
2850         shared libraries (Bug#2494)
2851
2852         * python/exceptions.py: bring exceptions over from the bindings
2853         so they can be used in applications (Bug#2036)
2854         Make all exceptions derive from DBusException
2855
2856         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2857         of classes so that print obj doesn't throw an exception (Bug #1685)
2858
2859 2005-05-03  Ross Burton  <ross@openedhand.com>
2860
2861         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2862         Return if we get an error during registration.  Set up a
2863         weak reference on object to unregister if object is destroyed.
2864         (unregister_gobject): New function.
2865         
2866 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
2867
2868         * python/dbus_bindings.pyx.in: 
2869         - added new type classes for hinting to the marashaler what type 
2870         to send over the wire
2871         - added int16 and uint16 marshalers
2872         - Fixed a bug in the type constants that caused int32 to go out
2873         as uint16 over the wire
2874         * python/dbus.py: split up into different files and renamed _dbus.py
2875         * python/__init__.py, python/_util.py, python/decorators.py, 
2876         python/exceptions.py, python/proxies.py, python/services.py,
2877         python/types.py: new files split off from dbus.py
2878         * python/Makefile.am: Add new files, remove dbus.py and 
2879         install all python files to <python module dir>/dbus
2880         * python/examples/*: Added #!/usr/bin/env python to the top of
2881         every example.  Patch provided by Tatavarty Kalyan
2882
2883 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2884
2885         * NEWS: Update to 0.33
2886
2887 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
2888
2889         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
2890         method for doing async calls
2891         (_pending_call_notification): New C function for handling pendning call
2892         callbacks
2893         (set_notify): New method for setting pending call notification
2894         
2895         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
2896         Async capabilities added to remote method calls
2897         (Sender): class removed
2898         (RemoteService): class removed
2899         (ObjectTree): class removed for now
2900         (RemoteObject): Renamed to ProxyObject
2901         (RemoteMethod): Renamed to ProxyMethod
2902         (method): Decorator added for decorating python methods as dbus methods
2903         (signal): Decorator added for decorating python methods as signal emitters
2904         (ObjectType): Metaclass added for generating introspection data and the
2905         method callback vtable
2906         (Interface): Wrapper class added to wrap objects in a dbus interface
2907         (Object): Uses ObjectType as its metaclass and exports Introspect
2908         of the org.freedesktop.DBus.Introspectable interface
2909         (ValidationException, UnknownMethodException): new exceptions
2910
2911         * python/examples/*: Modified to fit with the new bindings
2912
2913 2005-04-23  Havoc Pennington  <hp@redhat.com>
2914
2915         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
2916         reported by Tony Houghton
2917
2918         * test/test-service.c (main): test
2919         dbus_connection_get_object_path_data()
2920
2921         * dbus/dbus-object-tree.c (find_handler): be sure we always init
2922         the exact_match
2923         (_dbus_object_tree_get_user_data_unlocked): new function used by
2924         dbus_connection_get_object_path_data()
2925         (do_register): add assertion test for get_user_data_unlocked
2926         (object_tree_test_iteration): more tests
2927
2928         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
2929         new function from Dan Reed to let you get the user data from 
2930         dbus_connection_register_object_path()
2931
2932 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
2933
2934         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
2935         in numerous places that did not account for the NULL terminator
2936         (signature_from_seed): changed the manual string copy loop to 
2937         just use strcpy instead
2938         make check should now pass
2939
2940 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
2941
2942         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
2943         so that it allows messages that are not signals to pass in 
2944         NULL as the interface.
2945
2946 2005-04-18  David Zeuthen  <davidz@redhat.com>
2947
2948         * glib/dbus-gmain.c (io_handler_destroy_source): 
2949         (timeout_handler_destroy_source, connection_setup_free): 
2950         Also unref the source to avoid memory leaks.
2951
2952 2005-04-13  David Zeuthen  <davidz@redhat.com>
2953
2954         * bus/config-parser.c (bus_config_parser_new): Bump this to a
2955         more reasonable, yet still totally arbitrary, value :-). 
2956
2957 2005-04-13  David Zeuthen  <davidz@redhat.com>
2958
2959         * doc/TODO: Added an "important for 1.0" item about selinux
2960         allow/deny messages
2961
2962 2005-04-13  David Zeuthen  <davidz@redhat.com>
2963
2964         * bus/selinux.c: Add c-file-style to top of file
2965         (log_audit_callback): Don't free the data here anymore
2966         (bus_selinux_check): Don't take spid and tpid since appending
2967         that to auxdata may OOM.
2968         (bus_selinux_allows_acquire_service): Handle OOM and signal back
2969         to the caller if we are OOM by taking an error object.
2970         (bus_selinux_allows_send): -do-
2971
2972         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
2973         and bus_selinux_allows_send
2974
2975         * bus/bus.c (bus_context_check_security_policy): Pass error and
2976         pass on OOM thrown by bus_selinux_allows_send()
2977
2978         * bus/services.c (bus_registry_acquire_service): Pass error and
2979         pass on OOM thrown by bus_selinux_allows_acquire_service()
2980
2981 2005-04-13  Havoc Pennington  <hp@redhat.com>
2982
2983         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
2984         message at a time to avoid monopolizing the main loop, bug 
2985         #2953 from Benjamin Otte
2986
2987 2005-04-09  Havoc Pennington  <hp@redhat.com>
2988
2989         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
2990         possible overlap, fix from Daniel Reed
2991         (fixup_alignment): fix signedness warnings
2992         (_dbus_string_append_unichar): ditto
2993
2994 2005-04-09  Havoc Pennington  <hp@redhat.com>
2995
2996         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
2997
2998         * glib/dbus-glib-tool.c (main): fix warning
2999
3000         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3001
3002         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3003         add a new function that can be used in simple applications that
3004         don't have a main loop and are willing to block
3005
3006 2005-04-05  David Zeuthen  <davidz@redhat.com>
3007
3008         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3009
3010         * glib/dbus-gmain.c:
3011         (io_handler_destroy_source): Remove from list of IO handlers
3012         of the ConnectionSetup object
3013         (timeout_handler_destroy_source): -do- for timeout handlers
3014         (io_handler_source_finalized): Don't remove from list since
3015         we now do that in io_handler_destroy_source(). Renamed from
3016         io_handler_source_destroyed
3017         (timeout_handler_source_destroyed): -do- for timeout handlers
3018         (connection_setup_free): It is now safe to iterate over all
3019         IO and timeout handlers as the _destroy_source removes them
3020         from the list synchronously
3021
3022 2005-03-30  Havoc Pennington  <hp@redhat.com>
3023
3024         * configure.in: change check to gtk 2.4
3025
3026         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3027         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3028         to 2.4
3029
3030 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3031
3032         * News: Update 0.32
3033
3034         * HACKING: Fixed realease instructions.  configure.in should be updated to
3035           the next release by the person who made the last release.
3036
3037 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3038
3039         * python/lvalue_cast_post_process.py - removed.  Patch has been
3040           submitted to Pyrex maintainers that fixes gcc4.0 errors
3041
3042         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3043
3044 2005-03-24  Daniel Reed  <n@ml.org>
3045
3046         * tools/Makefile.am: Make print-introspect and
3047         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3048
3049 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3050
3051         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3052
3053         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3054           had in Red Hat packages for a while but for some reason never 
3055           got merged upstream
3056           (_dbus_is_a_number): New checks if a string
3057           can be converted to a number and does the conversion if it can
3058           (_dbus_user_database_lookup): Add check to see if the given username
3059           is a udi.  This allows udi's to be used instead of usernames in the
3060           config file.
3061           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3062           is a gdi.  This allows gdi's to be used instead of groupnames in the
3063           config file.
3064
3065 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3066
3067         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3068           code so that it compiles with gcc4.0
3069
3070         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3071           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3072           results back to dbus_binding.c
3073
3074 2005-03-20  Colin Walters  <walters@verbum.org>
3075
3076         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3077
3078         * configure.in: Require GTK+ 2.6.
3079         
3080 2005-03-20  Colin Walters  <walters@verbum.org>
3081
3082         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3083
3084 2005-03-17  Tom Parker  <palfrey@tevp.net>
3085
3086         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3087         print DBUS_UID_UNSET; instead print passed username.  Also
3088         be sure to actually use gid looked up in cache.
3089         
3090         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3091         for DBUS_GID_UNSET and groupname.
3092
3093 2005-03-17  Colin Walters  <walters@verbum.org>
3094
3095         * bus/print-introspect.c: Move to tools/.
3096         * bus/run-with-tmp-session-bus.sh: Ditto.
3097         
3098         * glib/Makefile.am (dbus-glib-bindings.h): Move
3099         generation to tools/Makefile.am.
3100
3101         * test/glib/run-test.sh: Update to handle move
3102         of run-with-tmp-session-bus.sh.
3103
3104         * test/glib/test-service-glib.c: Update to handle
3105         move of dbus-glib-bindings.h.
3106
3107         * tools/print-introspect.c: Moved here
3108         from bus/, and ported to GLib bindings.
3109
3110         * tools/run-with-tmp-session-bus.sh: Moved here
3111         from bus/.
3112
3113         * tools/Makefile.am: Generate dbus-glib-bindings.h
3114         and dbus-bus-introspect.xml here.
3115
3116         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3117         Update.
3118
3119 2005-03-17  Colin Walters  <walters@verbum.org>
3120
3121         * bus/driver.c (write_args_for_direction): Use
3122         _dbus_string_get_const_data to retrieve string;
3123         _dbus_string_get_const_data_len doesn't actually return
3124         a NULL-terminated substring.
3125
3126         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3127         (main): Change to use org_freedesktop_DBus_request_name
3128         instead of using g_proxy_begin_call/end_call.
3129
3130 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3131
3132         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3133         generating the finalizer.  Fixes from Ben Maurer.
3134
3135 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3136
3137         * mono/BusDriver.cs: Update method names: ListServices
3138         becomes ListNames; GetOwner becomes GetNameOwner.
3139
3140         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3141         onto the eval stack when removing the delegate.
3142
3143 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3144
3145         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3146         LT_CURRENT.  Set it to the autoconf variable.
3147                                                                                 
3148         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3149         classes that disconnects the signal handler delegate from the
3150         service object.  Fixes a big leak of proxy objects on the
3151         client side of things.  Patch from Ben Maurer
3152         <bmaurer@ximian.com>
3153
3154 2005-03-12  Colin Walters  <walters@verbum.org>
3155
3156         * bus/driver.c (write_args_for_direction): New function,
3157         parses a type signature into arguments and outputs to
3158         XML.
3159         (bus_driver_handle_introspect): Use it instead of
3160         hardcoding XML for certain signatures.
3161         
3162         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3163         dependency on dbus-daemon.
3164
3165         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3166         argument, pass it to dbus_binding_tool_output_glib_client.
3167
3168         * glib/dbus-binding-tool-glib.c
3169         (generate_client_glue): Protect against multiple inclusion.
3170         (dbus_binding_tool_output_glib_client): Add
3171         G_BEGIN_DECLS/G_END_DECLS.
3172
3173         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3174         Change to just take iface prefix directly.
3175         (write_formal_parameters): Clarify error message.
3176         (check_supported_parameters): New function; checks to see type
3177         signatures of method parameters are supported.
3178         (generate_client_glue): Handle ignore_unsupported flag.
3179         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3180         parameter.
3181
3182         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3183         --ignore-unsupported by default until glib bindings
3184         support arrays.
3185
3186 2005-03-11  Colin Walters  <walters@verbum.org>
3187
3188         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3189         install it.
3190
3191         * bus/print-introspect.c: New file; prints introspection
3192         data for a given name and object path.
3193
3194         * bus/run-with-tmp-session-bus.sh: New file, refactored
3195         from test/glib/run-test.sh.  Creates a temporary session
3196         bus and runs another program.
3197
3198         * test/glib/run-test.sh: Refactor to invoke
3199         run-with-tmp-session-bus.sh.
3200
3201         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3202         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3203         macros instead of hardcoding.
3204
3205         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3206
3207 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3208
3209         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3210         this unref; it doesn't match up evenly in some codepaths.
3211         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3212         this evenly matches with the ref near the top of this function.
3213
3214 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3215
3216         * dbus/dbus-object-tree.c
3217         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3218         and we try to unregister a path that's not registered, still go
3219         through the process of unlocking and don't just return.
3220
3221 2005-03-09  Colin Walters  <walters@verbum.org>
3222
3223         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3224         to this are generated for client-side wrappers.  Invokes a
3225         D-BUS method and returns reply values.  
3226
3227         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3228         function; writes signature string for argument direction.
3229         (write_args_for_direction): Change to pass input values directly
3230         instead of via address, and fix indentation.
3231         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3232         make generated wrappers inlineable.
3233
3234         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3235         note about using dbus_type_is_fixed.
3236
3237         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3238         dbus/dbus-signature.c as dbus_type_is_fixed.
3239
3240         All callers updated.
3241
3242         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3243         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3244
3245         * dbus/dbus-signature.h: Prototype.
3246
3247         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3248         error printf code.
3249
3250         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3251         appropriate instead of just freeing it.
3252         (main): Free returned strings using g_free.
3253
3254         * test/glib/Makefile.am (test-service-glib-glue.h)
3255         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3256
3257         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3258         simply maps a simple D-BUS type to GType.
3259         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3260         GType.
3261         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3262         initialize the value with it.
3263         (dbus_gvalue_binding_type_from_type): Unused, delete.
3264         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3265         various types instead of unmarshalling to value data directly.
3266         Remove can_convert boolean.
3267         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3268         returning directly instead of using can_convert boolean.
3269         (dbus_gvalue_store): New function; not related to D-BUS per-se.
3270         Stores a GValue in a pointer to a value of its corresponding C
3271         type.
3272
3273         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3274         add dbus_gvalue_store.
3275
3276 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3277
3278         Fix a bunch of lifecycle and memory management problems
3279         in the mono bindings.
3280
3281         * mono/Arguments.cs (Arguments): Implement IDisposable
3282
3283         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
3284         strictly a static class.
3285
3286         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3287         delegates into this file.
3288         (Connection): Implement IDisposable.
3289         (Dispose): Disconnect the connection and set the raw connection
3290         pointer to IntPtr.Zero.
3291         (~Connection): Call Dispose().
3292         (RegisterObjectPath): Added.  Manages the registration of object
3293         paths so we can cleanly disconnect them at dispose/finalize time.
3294         (UnregisterObjectPath): Ditto.
3295         (set_RawConnection): Unregister all of the object paths when
3296         changing the underlying DBusConnection.  Add them back onto the
3297         new connection, if any.
3298
3299         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3300         more unmanaged resources anymore, so it's not necessary.  Move all
3301         the DBusObjectPathVTable stuff out of here.
3302         (Handler): Save references to our delegates so that they don't get
3303         finalized.  Call Connection.RegisterObjectPath() instead of
3304         dbus_connection_register_object_path() directly.
3305         (Message_Called): Dispose the message after we're finished with
3306         it.
3307
3308         * mono/Message.cs (Message): Implement IDisposable.
3309         (Dispose): Dispose the Arguments, and set the RawMessage to
3310         IntPtr.Zero.
3311         (SendWithReplyAndBlock): We own the ref to the reply that comes
3312         back from dbus_connection_send_with_reply_and_block() so add a
3313         comment about that and unref it after we've constructed a managed
3314         MethodReturn class around it.  Fixes a big, big leak.
3315
3316         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3317         method.
3318         (BuildSignalHandler): After we've sent the Signal message, dispose
3319         of it.
3320         (BuildMethod): Dispose of the method call and reply messages after
3321         we've sent the message and extracted the data we want from the
3322         reply.
3323
3324         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3325         anymore.
3326         (Service_FilterCalled): Dispose of the message after we're
3327         finished with it.
3328
3329 2005-03-08  Joe Shaw  <joeshaw@novell.com>
3330
3331         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3332         After we attach our pending call to the connection, unref
3333         it.  Fixes a leak.
3334  
3335         * mono/Connection.cs (set_RawConnection): Disconnect our
3336         filter and match callbacks from the old connection and
3337         reconnect them to the new connection, if any.
3338
3339         * mono/DBusType/Array.cs: "Code" is a static member, so
3340         don't use "this" to refer to it.  Fix for stricter checking
3341         in Mono 1.1.4.
3342  
3343         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3344         object path that we pass into unmanaged code.
3345  
3346         * mono/DBusType/String.cs (Append): Don't leak the string
3347         that we pass into unmanged code.
3348
3349 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
3350         * NEWS: Update for 0.31
3351
3352         * configure.in: Release 0.31
3353         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3354
3355         * qt/Makefile.am: fixed build
3356
3357         * dbus/Makefile.am: soname bump for libdbus
3358
3359         * glib/Makefile.am: soname bump for libdbus-glib
3360
3361 2005-03-05  Havoc Pennington  <hp@redhat.com>
3362
3363         * dbus/dbus-sysdeps.c:
3364         (pseudorandom_generate_random_bytes_buffer): fix to have no return
3365         value
3366         (_dbus_generate_random_bytes_buffer): fix return value
3367
3368         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3369         checks actually work, from Tom Parker <fdo@tevp.net>
3370
3371 2005-03-01  Colin Walters  <walters@verbum.org>
3372
3373         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3374         functions copied from dbus-glib-tool.c.
3375         (main): Convert lots of error code to use them.
3376         Also add some testing for introspection bits.
3377
3378 2005-03-01  Colin Walters  <walters@verbum.org>
3379         
3380         * doc/TODO: Remove introspection signature TODO.
3381
3382 2005-02-27  Colin Walters  <walters@verbum.org>
3383
3384         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3385         Change return value to const char * instead of int so we can do
3386         full signatures.
3387         (struct PropertyInfo, struct ArgInfo): Store char *.
3388         (property_info_new, arg_info_new): Update parameters, strdup.
3389         (property_info_unref, arg_info_unref): Free.
3390
3391         * glib/dbus-gidl.h: Update prototypes.
3392
3393         * glib/dbus-gparser.c (basic_type_from_string): Delete.
3394         (validate_signature): New function, just validates signature and
3395         sets GError.
3396         (parse_property, parse_arg): Invoke validate_signature.  Store
3397         signature instead of just type code.
3398
3399         * glib/dbus-gvalue.c (base_type_from_signature): New utility
3400         function to return a primary type for a signature, dropping
3401         information about types in container types.
3402         (dbus_gvalue_genmarshal_name_from_type)
3403         (dbus_gvalue_binding_type_from_type)
3404         (dbus_gvalue_ctype_from_type): Update to take full signature
3405          instead of type code.
3406         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3407
3408         * glib/dbus-gvalue.h: Update prototypes for above.
3409
3410         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3411         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3412         (introspect_properties, introspect_signals, write_interface):
3413         Update to handle signatures, and remove usage of
3414         _dbus_gutils_type_to_string.
3415         (handle_introspect): Print out type codes instead of e.g. "string"
3416         in hardcoded introspection XML; also use x_AS_STRING constants
3417         instead of hardcoding in string.
3418
3419         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3420         to string.  Remove usage of _dbus_gutils_type_to_string.
3421
3422         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3423
3424         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3425         deletion.
3426         
3427         * glib/dbus-binding-tool-glib.c (compute_marshaller)
3428         (compute_marshaller_name, generate_glue): Handle signature change
3429         to string.
3430         (write_formal_parameters, write_args_for_direction): Ditto, and
3431         remove FIXME.
3432
3433         * tools/dbus-tree-view.c (type_to_string): Delete.
3434         (info_set_func_text): Update to print full signatures.
3435
3436         * test/glib/test-service-glib.xml: Change types to new
3437         introspection format.
3438
3439 2005-02-26  Havoc Pennington  <hp@redhat.com>
3440
3441         * doc/TODO: remove the "guid" item
3442
3443         * test/glib/test-profile.c (no_bus_thread_func): use open_private
3444         (with_bus_thread_func): use open_private
3445
3446         * dbus/dbus-connection.c (dbus_connection_open_private): new
3447         function that works like the old dbus_connection_open()
3448         (dbus_connection_open): now returns an existing connection if
3449         possible
3450
3451         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3452         through the GUID to the transport
3453
3454         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3455         GUID in hex-encoded form.
3456
3457         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3458         pass GUID argument in to the transport
3459
3460         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3461         guid argument
3462
3463         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3464
3465         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3466
3467 2005-02-25  Havoc Pennington  <hp@redhat.com>
3468
3469         * doc/dbus-specification.xml: document the GUID thing
3470
3471         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3472         globally unique ID for the server, and put a "guid=hexencoded"
3473         field in the address
3474
3475         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3476
3477         * dbus/dbus-message.c: ditto
3478
3479         * dbus/dbus-dataslot.c: ditto
3480
3481         * dbus/dbus-list.c: ditto
3482
3483         * dbus/dbus-internals.h: wait, just include
3484         dbus-threads-internal.h here
3485         
3486         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3487         use in main library
3488
3489         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3490
3491 2005-02-24  Colin Walters  <walters@verbum.org>
3492
3493         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3494
3495 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
3496
3497         * glib/Makefile.am: added dbus-gobject.h to sources list
3498         so distcheck doesn't fail
3499         
3500 2005-02-24  Havoc Pennington  <hp@redhat.com>
3501
3502         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3503         you must disconnect before unref, since locking and other things
3504         are screwed up otherwise. Fix assorted other locking stuff.
3505
3506         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3507         fix compilation
3508
3509         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3510         into a private header and don't export from the library
3511
3512         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3513
3514 2005-02-24  Colin Walters  <walters@verbum.org>
3515         
3516         * dbus/dbus-signature.c: New file; implements various functions
3517         related to type signatures.  Includes an interator for parsing,
3518         validation functions.
3519         (dbus_type_is_basic): Moved here from
3520         dbus-marshal-basic.c:_dbus_type_is_basic.
3521         (dbus_type_is_container): Moved here from
3522         dbus-marshal-basic.c:_dbus_type_is_container.
3523
3524         All callers of _dbus_type_is_container and _dbus_type_is_basic
3525         updated, and include dbus-signature.h.
3526
3527         * dbus/dbus-signature.h: New file; prototypes for the above.
3528
3529         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3530         dbus-signature.h.
3531
3532         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3533         function factored out of _dbus_first_type_in_signature.
3534         (_dbus_first_type_in_signature_c_str): New function; returns first
3535         type code for a type signature character.
3536
3537         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3538         handle function moves.
3539
3540         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3541
3542         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3543         function; skips to next complete type in type signature.
3544         Implemented using previous skip_one_complete_type.  Now
3545         skip_one_complete_type just delegates to
3546         _dbus_type_signature_next.
3547
3548         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3549         to dbus-signature.c
3550         (_dbus_type_is_container): Ditto.
3551
3552         * doc/dbus-specification.xml: Update introspection sample to
3553         use real type signatures.
3554
3555         * dbus/dbus-test.h: Prototype signature test.
3556
3557         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3558         signature tests.
3559
3560         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3561
3562 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
3563
3564         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3565         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3566
3567 2005-02-21  Colin Walters  <walters@verbum.org>
3568
3569         * dbus/dbus-test-main.c (main): Take optional specific test
3570         argument.
3571
3572         * dbus/dbus-test.c (run_test): New function, runs a test function
3573         with no data directory.
3574         (run_data_test): Like above, but takes data directory.
3575         (dbus_internal_do_not_use_run_tests): Take
3576         specific test argument.  Replace lots of cut n' paste code
3577         with run_test and run_data_test.
3578
3579         * dbus/dbus-test.h: Update prototype for
3580         dbus_internal_do_not_use_run_tests.
3581
3582 2005-02-20  Havoc Pennington  <hp@redhat.com>
3583
3584         Fix bugs reported by Daniel P. Berrange
3585         
3586         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3587         (protected_change_watch): new function
3588         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3589         (_dbus_server_add_watch): change to work like the
3590         dbus-connection.c equivalents; like those, probably kind of
3591         busted, but should at least mostly work for now
3592         (dbus_server_disconnect): drop the lock if we were already
3593         disconnected, patch from Daniel P. Berrange
3594
3595         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
3596         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3597         same stuff
3598
3599         * doc/TODO: todo about unscrewing this mess
3600
3601 2005-02-19  Colin Walters  <walters@verbum.org>
3602
3603         * glib/dbus-binding-tool-glib.c
3604         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3605
3606         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3607         as errno.h and sys/stat.h.
3608         (lose): New function, prints error with
3609         newline and exits.
3610         (lose_gerror): Similar, but takes GError for message.
3611         (main): Add --output argument to specify output file to write to,
3612         instead of always printing to stdout.  In this mode, determine
3613         timestamps on source files to see whether any are newer than the
3614         target file.  If not, exit.  Also convert a number of error
3615         messages to use lose (since it's shorter), and switch to using
3616         g_io_channel_shutdown.
3617
3618 2005-02-19  Havoc Pennington  <hp@redhat.com>
3619
3620         * glib/dbus-gobject.c
3621         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3622
3623         * glib/dbus-glib.c: fix doxygen warnings
3624
3625         * glib/dbus-gparser.c (parse_annotation): error if an annotation
3626         is found on an <arg>
3627
3628 2005-02-17  Colin Walters  <walters@verbum.org>
3629
3630         * glib/dbus-gobject.h: Don't export
3631         _dbus_glib_marshal_dbus_message_to_gvalue_array.
3632         
3633         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3634         (invoke_object_method): Handle it.
3635
3636         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3637         Handle rename.
3638         
3639 2005-02-17  Colin Walters  <walters@verbum.org>
3640
3641         * bus/.cvsignore, doc/.cvsignore
3642         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3643         Update.
3644
3645 2005-02-17  Colin Walters  <walters@verbum.org>
3646         
3647         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3648         Rename to DBUS_SERVICE_DBUS.
3649         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3650         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3651         Change the value from "org.freedesktop.Local"
3652         to "org.freedesktop.DBus.Local".
3653         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3654         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3655         DBUS_INTERFACE_INTROSPECTABLE.
3656         Change the value from "org.freedesktop.Introspectable"
3657         to "org.freedesktop.DBus.Introspectable".
3658         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3659         DBUS_INTERFACE_PROPERTIES.
3660         Change the value from "org.freedesktop.Properties"
3661         to "org.freedesktop.DBus.Properties".
3662         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3663         DBUS_INTERFACE_PEER.
3664         Change the value from "org.freedesktop.Peer"
3665         to "org.freedesktop.DBus.Peer".
3666         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
3667         DBUS_INTERFACE_LOCAL.
3668         Change the value from "org.freedesktop.Local"
3669         to "org.freedesktop.DBus.Local".
3670
3671         All other users of those constants have been changed.
3672
3673         * bus/driver.c (bus_driver_handle_introspect): Use constants.
3674
3675         * glib/dbus-gobject.c (handle_introspect): Use constants.
3676
3677         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3678
3679 2005-02-17  Colin Walters  <walters@verbum.org>
3680
3681         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3682         (parse_node, parse_interface, parse_method, parse_signal)
3683         (parse_property, parse_annotation): Lose if we're currently in an
3684         annotation.
3685         (parse_annotation): New function.
3686         (parser_start_element, parser_end_element): Handle annotation.
3687         (parse_method, parse_interface): Remove support for c_name attribute,
3688         switch to annotations.
3689
3690         * glib/dbus-gidl.h (interface_info_get_binding_names)
3691         (method_info_get_binding_names)
3692         (interface_info_get_binding_name, method_info_get_binding_name)
3693         (interface_info_set_binding_name, method_info_set_binding_name):
3694         Remove.
3695         (interface_info_get_annotations, method_info_get_annotations)
3696         (interface_info_get_annotation, method_info_get_annotation)
3697         (interface_info_add_annotation, method_info_add_annotation):
3698         Prototype.
3699
3700         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3701         for "bindings".
3702         (struct MethodInfo): Ditto.
3703         Straightfoward conversion of binding methods into annotation methods
3704         as prototyped.
3705
3706         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3707
3708         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3709
3710         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3711         Use new annotation API.
3712
3713         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
3714         annotation element.
3715         
3716         * doc/dbus-specification.xml: Discuss introspection annotations,
3717         include list of well-known annotations.
3718
3719         * test/glib/test-service-glib.xml: Make validate against new DTD.
3720
3721 2005-02-17  Colin Walters  <walters@verbum.org>
3722
3723         This patch is based on initial work from
3724         Paul Kuliniewicz <kuliniew@purdue.edu>.
3725
3726         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3727         initialization of GValue from dbus type to here.
3728         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3729         for the "glib-genmarshal" program from a DBus type.
3730         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3731         into the C name for it we use in the glib bindings.
3732         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3733         glib C type (not GValue).
3734         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3735
3736         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3737         from dbus-gobject.c.
3738
3739         * glib/dbus-gutils.h: Prototype it.
3740
3741         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3742         (marshal_dbus_message_to_g_marshaller): Use new shared function
3743         dbus_glib_marshal_dbus_message_to_gvalue_array.
3744
3745         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3746         Will be changed once we have annotations.
3747
3748         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3749         GStaticRWLock.  Callers updated.
3750         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
3751         (string_table_next): New function for iterating over zero-terminated
3752         string value array.
3753         (string_table_lookup): New function; retrieves specific entry in
3754         array.
3755         (get_method_data): New function; look up method data in object data chunk.
3756         (object_error_domain_prefix_from_object_info)
3757         (object_error_code_from_object_info): New functions, but not implemented yet.
3758         (method_interface_from_object_info): New function; retrieve interface name.
3759         (method_name_from_object_info): New function; retrieve method name.
3760         (method_arg_info_from_object_info): New function; retrieve argument data.
3761         (arg_iterate): New function; iterates over serialized argument data.
3762         (method_dir_signature_from_object_info): New function; returns a
3763         GString holding type signature for arguments for just one
3764         direction (input or output).
3765         (method_input_signature_from_object_info)
3766         (method_output_signature_from_object_info): New functions.
3767         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3768         converts dbus message arguments into a GValue array.  Used for both
3769         signal handling and method invocation.
3770         (struct DBusGlibWriteIterfaceData): New utility structure.
3771         (write_interface): New function; generate introspection XML for
3772         an interface.
3773         (introspect_interfaces): New function; gathers all interface->methods,
3774         generates introspection XML for them.
3775         (handle_introspect): Invoke introspect_interfaces.
3776         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3777         (lookup_object_and_method): New function; examines an incoming message
3778         and attempts to match it up (via interface, method name, and argument
3779         signature) with a known object and method.
3780         (gerror_domaincode_to_dbus_error_name): New function; converts a
3781         GError domain and code into a DBus error name.  Needs GError data
3782         added to object introspection to work well.
3783         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3784         GError.
3785         (invoke_object_method): New function to invoke an object method
3786         looked up via lookup_object_and_method.  Parses the incoming
3787         message, turns it into a GValue array, then invokes the marshaller
3788         specified in the DBusGMethodInfo.  Creates a new message with
3789         either return values or error message as appropriate.
3790         (gobject_message_function): Invoke lookup_object_and_method and
3791         invoke_object_method.
3792
3793         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3794         (enum DBusBindingOutputMode): New enum for binding output modes.
3795         (pretty_print): Print binding names.
3796         (dbus_binding_tool_error_quark): GError bits.
3797         (version): Fix typo.
3798         (main): Create GIOChannel for output.  Parse new --mode argument,
3799         possible values are "pretty-print", "glib-server", "glib-client".
3800         Use mode to invoke appropriate function.
3801         
3802         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3803
3804         * glib/dbus-glib-tool.h: New header, just includes GError bits
3805         for now.
3806
3807         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3808         maps binding style to name.
3809         (struct MethodInfo): Ditto.
3810         (get_hash_keys, get_hash_key): Utility function, returns keys for
3811         a GHashTable.
3812         (interface_info_new, method_info_new): Initialize bindings.
3813         (interface_info_unref, method_info_unref): Destroy bindings.
3814         (method_info_get_binding_names, method_info_get_binding_name)
3815         (interface_info_get_binding_names, interface_info_get_binding_name):
3816         Functions for retrieving binding names.
3817         (method_info_set_binding_name, interface_info_set_binding_name):
3818         Functions for setting binding names.
3819
3820         * glib/dbus-binding-tool-glib.h: New file, has prototypes
3821         for glib binding generation.
3822
3823         * glib/dbus-binding-tool-glib.c: New file, implements server-side
3824         and client-side glib glue generation.
3825
3826         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3827         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3828         dbus-glib-tool.h.
3829
3830         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3831         of using GClosureMarshal directly.
3832         (struct DBusGObjectInfo): Add n_infos member.
3833
3834         * test/glib/test-service-glib.xml: New file; contains introspection data
3835         for MyTestObject used in test-service-glib.c.
3836
3837         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3838         (my_object_do_nothing, my_object_increment, my_object_throw_error)
3839         (my_object_uppercase, my_object_many_args): New test methods.
3840         (main): Use dbus_g_object_class_install_info to include generated object
3841         info.
3842
3843         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3844         as well as client-side bindings.
3845
3846         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3847         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3848         using both the dbus_gproxy stuff directly as well as the generated bindings.
3849
3850 2005-02-15  Havoc Pennington  <hp@redhat.com>
3851
3852         * dbus/dbus-connection.c (dbus_connection_dispatch): always
3853         complete a pending call, don't run filters first.
3854
3855         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3856         dbus_pending_call_steal_reply
3857
3858         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3859         _dbus_connection_block_pending_call
3860         (dbus_pending_call_get_reply): change to steal_reply and return a
3861         ref
3862
3863         * dbus/dbus-connection.c
3864         (dbus_connection_send_with_reply_and_block): port to work in terms
3865         of DBusPendingCall
3866         (_dbus_connection_block_pending_call): replace block_for_reply
3867         with this
3868
3869 2005-02-14  Havoc Pennington  <hp@redhat.com>
3870
3871         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
3872         properly handle looking up group information by name; fix 
3873         from j@bootlab.org
3874
3875 2005-02-13  Havoc Pennington  <hp@redhat.com>
3876
3877         * dbus/dbus-connection.c (dbus_connection_return_message) 
3878         (dbus_connection_borrow_message): hold dispatch lock while message
3879         is outstanding
3880         (_dbus_connection_block_for_reply): hold dispatch lock while we
3881         block for the reply, so nobody steals our reply
3882         (dbus_connection_pop_message): hold the dispatch lock while we
3883         pluck the message
3884
3885 2005-02-13  Havoc Pennington  <hp@redhat.com>
3886
3887         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
3888         (_dbus_connection_release_dispatch)
3889         (_dbus_connection_acquire_io_path)
3890         (_dbus_connection_release_io_path): make the mutex and condvar
3891         control access to the "acquired" flag. Drop the connection lock
3892         while waiting on the condvar. Hopefully these are baby steps in
3893         roughly the right direction.
3894
3895 2005-02-13  Havoc Pennington  <hp@redhat.com>
3896
3897         * dbus/dbus-connection.c: use separate mutexes for the condition
3898         variables; this is some kind of baseline for sanity, but the
3899         condition variables still aren't used correctly afaict
3900
3901 2005-02-13  Havoc Pennington  <hp@redhat.com>
3902
3903         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3904         fix a double-unlock
3905
3906         * dbus/dbus-connection.c
3907         (_dbus_connection_detach_pending_call_unlocked): add this
3908
3909         Initial semi-correct pass through to fix thread locking; there are
3910         still some issues with the condition variable paths I'm pretty
3911         sure
3912         
3913         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
3914         lock/unlock calls
3915
3916         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
3917         rename to add _unlocked
3918         (struct DBusConnection): move "dispatch_acquired" and
3919         "io_path_acquired" to use only one bit each.
3920         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
3921         (dbus_connection_set_watch_functions): hacky fix to reentrancy
3922         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
3923         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
3924         (_dbus_connection_remove_timeout) 
3925         (_dbus_connection_toggle_timeout): drop lock when calling out to
3926         user functions; done in a hacky/bad way.
3927         (_dbus_connection_send_and_unlock): add a missing unlock
3928         (_dbus_connection_block_for_reply): add a missing unlock
3929
3930         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3931         drop lock in a hacky probably unsafe way to call out to user
3932         function
3933
3934 2005-02-12  Havoc Pennington  <hp@redhat.com>
3935
3936         * tools/dbus-tree-view.c (info_set_func_text): display more
3937         details on args
3938
3939         * bus/driver.c (bus_driver_handle_list_services): list the bus
3940         driver
3941
3942         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
3943
3944         * glib/dbus-gidl.c (signal_info_get_n_args): new function
3945         (method_info_get_n_args): new function
3946
3947 2005-02-12  Havoc Pennington  <hp@redhat.com>
3948
3949         * bus/driver.c (bus_driver_handle_introspect): add introspection
3950         for bus driver
3951
3952 2005-02-12  Havoc Pennington  <hp@redhat.com>
3953
3954         * bus/driver.c: put the signature of each bus driver method in the
3955         table of handlers and check it on incoming calls; this isn't
3956         really useful, but going to add introspect support in a minute.
3957
3958 2005-02-11  Joe Shaw  <joeshaw@novell.com>
3959
3960         * mono/Connection.cs: The unpredictability of finalizers in mono
3961         prevents us from deterministically disconnecting the filters from
3962         the Service class's finalizer, so move tracking of filters and
3963         matches here.  Add API for that.
3964
3965         * mono/Service.cs: Remove the code, add code which calls the
3966         methods now on the Connection class.
3967
3968 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
3969
3970         * python/dbus.py (class Sender): added to support dbus signals better
3971         (Bus::add_signal_receiver): added expand_args parameter which defaults
3972         to True.  When expand args is True the signal handler will pass the 
3973         message arguments as parameters to the signal handler.  If False
3974         revert to previous behavior where the signal handler must get the
3975         argument list from the message.  This is to help port applications
3976         like HAL that have a tendancy to send variable length argument lists.
3977         self._match_rule_to_receivers is now a dict of dicts.
3978         (Bus::remove_signal_receiver): pop handler off the dict intead of 
3979         removing it from a list
3980         (Bus::_signal_func): change signal handlers so that interface,
3981         signal_name, service, path and message are packed into a Sender
3982         object and that is passed to the handler.  If expand_args is True
3983         extract the args list from the message and append it to the parameter
3984         list
3985         
3986         * python/dbus_bindings.pyx.in (class Signature): added to support 
3987         signiature types
3988         (MessageIter::__init__): changed iteration limit to match D-BUS
3989         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
3990         STRUCT and VARIENT type support
3991         (MessageIter::python_value_to_dbus_sig): made recursive to support
3992         recursive types
3993         (MessageIter::append*): added Signature, dict, tuple 
3994         support
3995
3996         * python/examples/example-client.py: added examples of getting tuples
3997         and dicts
3998
3999         * python/examples/example-service.py: added examples of sending tuples
4000         and dicts
4001
4002         * python/examples/example-signal-recipient.py: Fixed to handle new
4003         signal callback format
4004
4005 2005-02-10  Havoc Pennington  <hp@redhat.com>
4006
4007         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4008         (call dbus_g_proxy_add_signal)
4009
4010         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4011         escape the hostname
4012         (_dbus_server_new_for_domain_socket): escape the path
4013
4014         * dbus/dbus-address.c (dbus_address_escape_value): new
4015         (dbus_address_unescape_value): new
4016         (dbus_parse_address): unescape values
4017
4018         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4019
4020         * doc/dbus-specification.xml: explain how to escape values in
4021         addresses
4022
4023 2005-02-10  Havoc Pennington  <hp@redhat.com>
4024
4025         * dbus/dbus-message-factory.c (generate_special): modify test to
4026         avoid using a non-basic dict key
4027
4028         * dbus/dbus-marshal-validate-util.c: add test for the below
4029
4030         * doc/dbus-specification.xml: require that dict keys are a basic
4031         type
4032
4033         * dbus/dbus-marshal-validate.c
4034         (_dbus_validate_signature_with_reason): require that dict key is a
4035         basic type
4036
4037 2005-02-10  Havoc Pennington  <hp@redhat.com>
4038
4039         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4040         change to be _and_unlock instead of _unlocked
4041
4042         * dbus/dbus-connection.c
4043         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4044         have no_update so we can find this bug quickly in future
4045
4046 2005-02-10  Havoc Pennington  <hp@redhat.com>
4047
4048         * dbus/dbus-message-util.c (verify_test_message): tests for string
4049         array
4050
4051         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4052         support for arrays of string/signature/path
4053
4054 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4055
4056         * dbus/dbus-connection.c
4057         (_dbus_connection_queue_received_message_link,
4058         _dbus_connection_message_sent): Add the path to
4059         the verbose output.
4060         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4061         _dbus_connection_send_preallocated_unlocked(), updated the
4062         dispatch status, and unlocks.  Fixes a bug where certain
4063         situations (like a broken pipe) could cause a Disconnect message
4064         to not be sent, tricking the bus into thinking a service was still
4065         there when the process had quit.
4066         (_dbus_connection_send_preallocated): Call
4067         _dbus_connection_send_preallocated_and_unlock().
4068         (_dbus_connection_send_and_unlock): Added.  Calls
4069         _dbus_connection_send_preallocated_and_unlock().
4070         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4071         (dbus_connection_send_with_reply): Update the dispatch status and
4072         unlock.
4073
4074         * mono/Service.cs (~Service): Added.  Removes the filter so that
4075         we don't get unmanaged code calling back into a GCed delegate.
4076         (RemoveFilter); Added.
4077
4078 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4079
4080         * dbus/dbus-message.c (dbus_message_iter_open_container):
4081         - Removed check for iterator type being an array because
4082         get_arg_type does not work with writer iterators
4083         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4084
4085 2005-02-07  Havoc Pennington  <hp@redhat.com>
4086
4087         * doc/dbus-specification.xml: some more language cleanups; add
4088         stuff about how to deal with invalid protocol and extension
4089         points; add _ to allowed chars in auth commands; add EXTENSION_
4090         auth command prefix
4091
4092 2005-02-06  Havoc Pennington  <hp@redhat.com>
4093
4094         * s/expected/required/ in a couple places for clarity
4095
4096 2005-02-07  Colin Walters  <walters@verbum.org>
4097
4098         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4099         sender or proposed_recipient.
4100
4101 2005-02-06  Havoc Pennington  <hp@redhat.com>
4102
4103         * dbus/dbus-message-factory.c (generate_special): more tests
4104
4105         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4106         array length that exceeds the maximum
4107
4108 2005-02-05  Havoc Pennington  <hp@redhat.com>
4109
4110         * dbus/dbus-message-factory.c (generate_special): more test cases,
4111         increasing coverage
4112
4113         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4114         reason why a signature was invalid
4115
4116         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4117         skip the length of the string before we look at it in validation
4118
4119         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4120         equal_substring
4121
4122         * dbus/dbus-message.c (_dbus_message_loader_new): default
4123         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4124
4125 2005-02-05  Havoc Pennington  <hp@redhat.com>
4126
4127         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4128         if the signature of a variant was empty
4129         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4130         struct with no element type)
4131
4132         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4133         mangled messages to break things
4134
4135 2005-02-04  Havoc Pennington  <hp@redhat.com>
4136
4137         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4138         g_quark_try_string() so it actually can return 0
4139         (dbus_g_proxy_connect_signal): ditto
4140
4141 2005-02-04  Havoc Pennington  <hp@redhat.com>
4142
4143         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4144         bogus warning
4145         (tristring_from_message): assert cleanly on null path/interface
4146         (should not be possible though I decided later)
4147         (dbus_g_proxy_dispose): move proxy manager unregistration here
4148         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4149         g_return_if_fail() checks
4150
4151 2005-02-04  Havoc Pennington  <hp@redhat.com>
4152
4153         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4154
4155         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4156         (with some minor changes)
4157
4158         * doc/dbus-specification.xml: add deprecated attribute to
4159         introspection format
4160
4161 2005-01-31  Havoc Pennington  <hp@redhat.com>
4162
4163         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4164         think it's sort of right
4165
4166 2005-01-30  Havoc Pennington  <hp@redhat.com>
4167
4168         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4169
4170 2005-01-30  Havoc Pennington  <hp@redhat.com>
4171
4172         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4173
4174         * autogen.sh: change to autotools 1.9
4175
4176         * glib/dbus-gproxy.c: completely change how signals work
4177         (dbus_g_proxy_add_signal): new function to specify signature of a
4178         signal
4179         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4180         and g_warning if the incoming message has the wrong signature.
4181
4182 2005-01-30  Havoc Pennington  <hp@redhat.com>
4183
4184         * tools/dbus-names-model.c (have_names_notify): fix this
4185
4186         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4187         up the string array handling a bit 
4188
4189 2005-01-30  Havoc Pennington  <hp@redhat.com>
4190
4191         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4192         (dbus_g_pending_call_cancel): new function
4193
4194         * dbus/dbus-glib.h: move GType decls for connection/message here;
4195         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4196         here, just kind of rationalizing how we handle all that
4197
4198         * tools/dbus-names-model.c: new file for a tree model listing the
4199         services on a bus
4200
4201         * tools/dbus-tree-view.c (model_new): use proper typing on the
4202         model rows
4203
4204 2005-01-30  Havoc Pennington  <hp@redhat.com>
4205
4206         * glib/dbus-gmain.c: add a custom GSource back that just checks
4207         whether the message queue has anything in it; otherwise, there are 
4208         cases where we won't see messages in the queue since there was no 
4209         IO visible to the glib main loop
4210
4211         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4212         increase default message timeout to 25 seconds
4213
4214 2005-01-30  Havoc Pennington  <hp@redhat.com>
4215
4216         * test/glib/test-profile.c (no_bus_stop_server): remove the
4217         warning about the g_warning that I just fixed
4218
4219         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4220         custom source, seems to be a lot easier to understand and work
4221         better.
4222
4223 2005-01-30  Havoc Pennington  <hp@redhat.com>
4224
4225         I think this main loop thing is conceptually broken, but here are 
4226         some band aids. I'll maybe rewrite it in a minute.
4227         
4228         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4229         custom GSource, so don't pass it in; confusing
4230         (gsource_server_finalize, gsource_connection_finalize): add
4231         finalize handlers that remove all the watches.  
4232
4233 2005-01-30  Havoc Pennington  <hp@redhat.com>
4234
4235         * glib/dbus-gobject.c (introspect_properties): fix the XML
4236         generated
4237
4238         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4239         which effectively detects the use of freed messages
4240
4241         * glib/dbus-gobject.c (handle_introspect): modify and return the
4242         reply message instead of the incoming message
4243
4244         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4245         gee, maybe it should SEND THE XML instead of just making a string
4246         and freeing it again ;-)
4247
4248         * tools/dbus-print-message.c (print_message): improve printing of
4249         messages
4250
4251         * configure.in: add debug-glib.service to the output
4252
4253 2005-01-30  Havoc Pennington  <hp@redhat.com>
4254
4255         dbus-viewer introspected and displayed the bus driver
4256         
4257         * dbus/dbus-object-tree.c 
4258         (object_tree_test_iteration): add tests for a handler registered on "/"
4259
4260         * dbus/dbus-object-tree.c
4261         (_dbus_decompose_path): fix to handle path "/" properly
4262         (run_decompose_tests): add tests for path decomposition
4263         
4264         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4265         properly
4266
4267         * glib/dbus-gobject.c (handle_introspect): fix quotes
4268
4269         * test/glib/run-test.sh: support launching the bus, then running
4270         dbus-viewer
4271
4272         * test/glib/test-service-glib.c (main): put in a trivial gobject
4273         subclass and register it on the connection
4274
4275         * bus/driver.c (bus_driver_handle_introspect): implement
4276         introspection of the bus driver service
4277
4278         * dbus/dbus-protocol.h: add #defines for the XML namespace,
4279         identifiers, doctype decl
4280
4281         * bus/driver.c (bus_driver_handle_get_service_owner): handle
4282         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
4283         returning the service unchanged.
4284         (bus_driver_handle_message): remove old check for reply_serial in
4285         method calls, now the message type deals with that
4286         (bus_driver_handle_message): handle NULL interface
4287
4288         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4289
4290         * glib/dbus-gloader-expat.c (description_load_from_string): allow
4291         -1 for len
4292
4293         * tools/dbus-viewer.c: add support for introspecting a service on
4294         a bus
4295
4296         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4297         (dbus_g_pending_call_unref): add
4298
4299 2005-01-29  Havoc Pennington  <hp@redhat.com>
4300
4301         * tools/dbus-tree-view.c: add support for displaying properties.
4302         (run dbus-viewer with an introspect xml file as arg, then resize
4303         the window so the tree elements show up, not sure what that is)
4304
4305         * glib/dbus-gobject.c (handle_introspect): return
4306         org.freedesktop.Properties and org.freedesktop.Introspectable
4307         interfaces when we are introspected.
4308
4309         * doc/dbus-specification.xml: allow empty interface name when 
4310         Get/Set a property
4311
4312 2005-01-29  Havoc Pennington  <hp@redhat.com>
4313
4314         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4315         though it uses glib, it could be extended for any binding in
4316         principle
4317
4318         * glib/dbus-gobject.c (gobject_message_function): change to the
4319         new way properties work
4320
4321         * dbus/dbus-protocol.h: add the new interfaces
4322
4323         * doc/dbus-specification.xml: document the introspection format,
4324         Introspectable interface, and add an org.freedesktop.Properties
4325         interface.
4326
4327         * glib/dbus-gparser.c: add support for a <property> element
4328
4329         * glib/dbus-gidl.c: add PropertyInfo
4330
4331         * glib/dbus-gobject.c (handle_introspect): put the outermost
4332         <node> outside the signal and property descriptions.
4333         (introspect_properties): export properties as <property> rather
4334         than as method calls
4335
4336 2005-01-28  Havoc Pennington  <hp@redhat.com>
4337
4338         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4339         related to authentication protocol
4340
4341 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
4342
4343         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4344                 - BUS_ACTIVATION -> BUS_STARTER
4345                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4346                 - class MessageIter (__init__): Added recursion checking 
4347                 so we throw a nice error instead of just disconnecting from the
4348                 bus.
4349                 (get): Added arg_type parameter for recursion.
4350                 Removed the nil type
4351                 Added signiture type placeholder (not implemented)
4352                 Added struct type placeholder (not implemented)
4353                 Added varient type placeholder (not implemented)
4354                 Commented out dict type for now     
4355                 (get_element_type): renamed from get_array_type
4356                 (get_*): changed to use the dbus_message_iter_get_basic API
4357                 (get_*_array): removed in favor of recursive get_array method
4358                 (get_array): new recursive method which calls get to marshal
4359                 the elements of the array
4360                 (value_to_dbus_sig): New method returns the corrasponding
4361                 dbus signiture to a python value
4362                 (append): Comment out dict handling for now
4363                 Handle lists with the new recursive API
4364                 Comment out None handling for now
4365                 (append_nil): removed
4366                 (append_*): changed to use dbus_message_iter_append_basic API
4367                 (append_*_array): removed in favor of recursive append_array 
4368                 method
4369                 (__str__): Make it easier to print out recursive iterators
4370                 for debugging
4371                 - class Message (__str__): moved type inspection to the
4372                 MessageIter class' __str__ method
4373                 (get_iter): Added an append parameter wich defaults to False
4374                 If True use the new API's to create an append iterator
4375
4376         * python/dbus.py: Update to use new bindings API
4377                 - TYPE_ACTIVATION -> TYPE_STARTER
4378                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4379                 - class ActivationBus -> class StarterBus
4380                 - class RemoteObject (__call__): get an append iterator
4381                 - (_dispatch_dbus_method_call): get an append iterator
4382                 - class Object (emit_signal): get an append iterator
4383
4384         * python/examples/: Fixed up the examples to work with the new API
4385                 
4386 2005-01-28  Joe Shaw  <joeshaw@novell.com>
4387
4388         * configure.in: Bump version up to 0.30.
4389
4390         * HACKING: Add a release item to bump the version number up after 
4391         a release.
4392
4393 2005-01-28  Havoc Pennington  <hp@redhat.com>
4394
4395         * doc/dbus-specification.xml: update to describe 16-bit types and
4396         dict entries
4397
4398         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4399         assertion
4400
4401         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4402         type
4403
4404         * dbus/dbus-marshal-recursive.c: implement
4405
4406 2005-01-27  Havoc Pennington  <hp@redhat.com>
4407
4408         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4409
4410         * configure.in: find the right type for 16 and 32 bit ints as well
4411         as 64
4412
4413         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4414         the 16-bit types so people don't have to stuff them in 32-bit or
4415         byte arrays.
4416
4417 2005-01-27  Havoc Pennington  <hp@redhat.com>
4418
4419         * dbus/dbus-message.c: byteswap the message if you init an
4420         iterator to read/write from it
4421         
4422         * dbus/dbus-marshal-byteswap.c: new file implementing 
4423         _dbus_marshal_byteswap()
4424
4425         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4426
4427 2005-01-26  Havoc Pennington  <hp@redhat.com>
4428         
4429         * dbus/dbus-marshal-validate-util.c: break this out (and fix
4430         build, apparently - nobody noticed?)
4431         
4432 2005-01-26  Havoc Pennington  <hp@redhat.com>
4433
4434         * dbus/dbus-marshal-recursive.h: remove todo comment
4435
4436 2005-01-25  Joe Shaw  <joeshaw@novell.com>
4437
4438         * Land the mono binding changes to conform to the new APIs.
4439
4440         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4441         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4442
4443         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
4444         type code as a string.
4445         (InitAppending): Rename dbus_message_append_iter_init() to
4446         dbus_message_iter_init_append().
4447
4448         * mono/BusDriver.cs: Rename ServiceEventHandler to
4449         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
4450         Rename ServiceOwnerChanged to NameOwnerChanged.
4451
4452         * mono/Connection.cs: Rename BaseService to UniqueName, and the
4453         underlying C call.
4454
4455         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
4456
4457         * mono/Service.cs: Rename Exists to HasOwner, internally rename
4458         dbus_bus_acquire_service() to dbus_bus_request_name().
4459
4460         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4461         of Type.UnderlyingSystemType to get the correct element type for
4462         the array.
4463         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4464         dbus_message_get_{element|arg}_type() instead of
4465         dbus_message_iter_init_array_iterator().
4466         (Append): Replace dbus_message_iter_append_array() with
4467         dbus_message_iter_open_container() and
4468         dbus_message_iter_close_container().
4469
4470         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
4471         types have been removed.
4472         
4473         * mono/DBusType/*.cs: Replace calls of
4474         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4475         but specify the type in the DllImport extern declaration.  Ditto
4476         for dbus_message_iter_append_[type]() ->
4477         dbus_message_iter_append_basic().
4478
4479         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4480         NameOwnerChangedHandler.
4481
4482 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
4483
4484         * python/dbus_bindings.pyx.in: Rename of methods and bindings
4485                 - get_base_service -> get_unique_name
4486                 - bus_get_base_service -> bus_get_unique_name
4487                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4488                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
4489                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4490                 - bus_activate_service -> bus_start_service_by_name
4491                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4492                 - bus_acquire_service -> bus_request_name
4493                 - dbus_bus_acquire_service -> dbus_bus_request_name
4494                 - bus_service_exists -> bus_name_has_owner
4495                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4496
4497         * python/dbus.py: Rename of methods
4498                 - activate_service -> start_service_by_name
4499                 - bus_acquire_service -> bus_request_name
4500                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
4501                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4502
4503         
4504 2005-01-24  Joe Shaw  <joeshaw@novell.com>
4505
4506         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4507         signature for the method that can't be found.
4508
4509         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4510         the message has any arguments, we need to call
4511         _dbus_type_reader_get_current_type(), not
4512         _dbus_type_reader_has_next().
4513
4514 2005-01-24  Havoc Pennington  <hp@redhat.com>
4515
4516         * dbus/dbus-message-factory.c: more testing of message validation
4517
4518         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4519         header
4520
4521 2005-01-23  Havoc Pennington  <hp@redhat.com>
4522
4523         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
4524         get this all working, not many tests in the framework yet though
4525
4526 2005-01-22  Havoc Pennington  <hp@redhat.com>
4527
4528         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4529         tutorial, based on work from David Wheeler.
4530
4531 2005-01-21  Havoc Pennington  <hp@redhat.com>
4532
4533         * dbus/dbus-bus.c: add more return_if_fail checks
4534
4535         * dbus/dbus-message.c (load_message): have the "no validation"
4536         mode (have to edit the code to toggle the mode for now though)
4537
4538         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4539         skips all validation; I want to use this at least for benchmark
4540         baseline, I'm not sure if it should be a publicly-available switch.
4541
4542 2005-01-21  Havoc Pennington  <hp@redhat.com>
4543
4544         * glib/dbus-gmain.c: don't put the GLib bindings in the same
4545         toplevel doxygen group as the low-level API stuff
4546
4547         * dbus/dbus.h: note that libdbus is the low-level API
4548
4549 2005-01-20  Havoc Pennington  <hp@redhat.com>
4550
4551         * update-dbus-docs.sh: script to update docs on the web site, only
4552         works for me though. neener.
4553
4554 2005-01-20  Havoc Pennington  <hp@redhat.com>
4555
4556         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4557         code can reveal bugs in it
4558
4559 2005-01-20  Havoc Pennington  <hp@redhat.com>
4560
4561         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4562         select() version, patches from Tor Lillqvist
4563
4564 2005-01-20  Havoc Pennington  <hp@redhat.com>
4565
4566         * doc/dbus-tutorial.xml: replace > with &gt;
4567
4568         * bus/services.c (bus_registry_acquire_service): validate the name
4569         and return a better error if it's no good.
4570
4571         * doc/dbus-specification.xml: note NO_AUTO_START change
4572
4573         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4574         from AUTO_START, we're toggling the default
4575
4576         * bus/dispatch.c: adapt the tests to change of auto-start default
4577
4578 2005-01-18  Havoc Pennington  <hp@redhat.com>
4579
4580         * rename dbus-daemon-1 to dbus-daemon throughout
4581
4582 2005-01-18  Havoc Pennington  <hp@redhat.com>
4583
4584         * Throughout, grand renaming to strip out the use of "service",
4585         just say "name" instead (or "bus name" when ambiguous).  Did not
4586         change the internal code of the message bus itself, only the
4587         programmer-facing API and messages.
4588         
4589         * doc/dbus-specification.xml: further update the message bus section
4590         
4591         * bus/config-parser.c (all_are_equiv): fix bug using freed string
4592         in error case
4593
4594 2005-01-17  Havoc Pennington  <hp@redhat.com>
4595
4596         * dbus/dbus-types.h: remove 16-bit types since we don't use them
4597         ever
4598
4599         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4600         "invalid name character" not only non-ASCII
4601
4602         * doc/dbus-specification.xml: further update spec, message bus 
4603         parts are still out-of-date but the marshaling etc. stuff is now
4604         accurate-ish
4605
4606 2005-01-17  Havoc Pennington  <hp@redhat.com>
4607
4608         * doc/dbus-specification.xml: partially update spec
4609
4610 2005-01-17  Havoc Pennington  <hp@redhat.com>
4611
4612         * Throughout, align variant bodies according to the contained
4613         type, rather than always to 8. Should save a fair bit of space in
4614         message headers.
4615         
4616         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4617         fix handling of case where p == end
4618
4619         * doc/TODO: remove the dbus_bool_t item and variant alignment items
4620
4621 2005-01-17  Havoc Pennington  <hp@redhat.com>
4622
4623         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4624
4625         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4626         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
4627         are marshaling/unmarshaling a boolean.
4628
4629 2005-01-16  Havoc Pennington  <hp@redhat.com>
4630
4631         This is about it on what can be disabled/deleted from libdbus
4632         easily, back below 150K anyhow. Deeper cuts are more work than 
4633         just turning the code off as I've done here.
4634         
4635         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4636         signed int convenience funcs
4637
4638         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4639         verbose mode
4640
4641         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4642         things out of libdbus
4643
4644         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4645         
4646         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4647         tests-enabled-only, though it should probably be deleted)
4648
4649         * dbus/dbus-message-util.c: same stuff
4650
4651         * dbus/dbus-auth-util.c: same stuff
4652
4653 2005-01-16  Havoc Pennington  <hp@redhat.com>
4654
4655         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4656
4657         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4658         way for stripping down dbus-userdb.c stuff included in libdbus.
4659         Rename _dbus_parse_uid for consistency.
4660
4661 2005-01-16  Havoc Pennington  <hp@redhat.com>
4662
4663         * dbus/dbus-internals.c (_dbus_real_assert): print the function
4664         name the assertion failed in
4665
4666         * dbus/dbus-internals.h (_dbus_return_if_fail) 
4667         (_dbus_return_val_if_fail): assert that the name of the function
4668         containing the check doesn't start with '_', since we only want to 
4669         use checks on public functions
4670         
4671         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4672         checks to assertions
4673
4674         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4675         change checks to asserts for private function
4676
4677         * dbus/dbus-message.c (_dbus_message_set_serial): checks
4678         to asserts for private function
4679
4680         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4681         broken assertion that was breaking make check
4682         (_dbus_type_reader_array_is_empty): remove this rather than fix
4683         it, was only used in assertions
4684
4685 2005-01-16  Havoc Pennington  <hp@redhat.com>
4686
4687         * test/unused-code-gc.py: hacky script to find code that's used
4688         only by the bus (not libdbus) or used only by tests or not used at
4689         all. It has some false alarms, but looks like we can clean up a
4690         lot of size from libdbus.
4691
4692         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4693         dbus/Makefile.am: initially move 10K of binary size out of libdbus
4694         
4695 2005-01-16  Havoc Pennington  <hp@redhat.com>
4696
4697         * Add and fix docs according to Doxygen warnings throughout
4698         source.
4699         
4700         * dbus/dbus-marshal-recursive.c
4701         (_dbus_type_reader_array_is_empty): change this to just call
4702         array_reader_get_array_len() and make it static
4703
4704         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4705         from get_array_type
4706         (dbus_message_iter_init_append): rename from append_iter_init
4707
4708         * dbus/dbus-marshal-recursive.c
4709         (_dbus_type_reader_get_element_type): rename from
4710         _dbus_type_reader_get_array_type
4711
4712 2005-01-15  Havoc Pennington  <hp@redhat.com>
4713
4714         * test/glib/test-profile.c (with_bus_server_filter): fix crash
4715
4716         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4717         when DBUS_DISABLE_ASSERT
4718         (_dbus_marshal_set_basic): be sure we align for the string length
4719
4720         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4721         this look faster
4722
4723         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4724         inline macro version
4725         (_dbus_string_set_byte): provide inline macro version
4726
4727 2005-01-15  Havoc Pennington  <hp@redhat.com>
4728
4729         * Land the new message args API and type system.
4730
4731         This patch is huge, but the public API change is not 
4732         really large. The set of D-BUS types has changed somewhat, 
4733         and the arg "getters" are more geared toward language bindings;
4734         they don't make a copy, etc.
4735
4736         There are also some known issues. See these emails for details
4737         on this huge patch:
4738         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4739         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4740         
4741         * dbus/dbus-marshal-*: all the new stuff
4742
4743         * dbus/dbus-message.c: basically rewritten
4744
4745         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4746         freed blocks to be all non-nul bytes so using freed memory is less
4747         likely to work right
4748
4749         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4750         DBUS_FAIL_MALLOC=N environment variable, so you can do
4751         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4752         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4753         thorough.
4754
4755         * qt/message.cpp: port to the new message args API
4756         (operator<<): use str.utf8() rather than str.unicode()
4757         (pretty sure this is right from the Qt docs?)
4758
4759         * glib/dbus-gvalue.c: port to the new message args API
4760
4761         * bus/dispatch.c, bus/driver.c: port to the new message args API
4762
4763         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4764         "locked" flag to TRUE and align_offset to 0; I guess we never
4765         looked at these anyhow, but seems cleaner.
4766
4767         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4768         move allocation padding macro to this header; use it to implement
4769         (_DBUS_STRING_STATIC): ability to declare a static string.
4770
4771         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4772         change to return TRUE if the interface is not set.
4773
4774         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4775         to dbus-marshal-validate.[hc]
4776
4777         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4778         dbus-internals.c
4779
4780         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4781         to dbus-marshal-*.[hc]
4782
4783         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4784         function here from dbus-marshal.c
4785
4786 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4787
4788         * NEWS: Update for 0.23.
4789
4790         * configure.in: Release 0.23.
4791
4792 2005-01-12  Joe Shaw  <joeshaw@novell.com>
4793
4794         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
4795         dbus DLL with --debug.  Clean up after the .mdb files this leaves
4796         behind.
4797
4798         * mono/doc/Makefile.am: Need to uninstall the docs on "make
4799         uninstall"
4800
4801         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4802         is an enum, get the enum's underlying type.  Another mono
4803         1.1.3 fix.
4804
4805 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4806
4807         Patch from Sjoerd Simons <sjoerd@luon.net>
4808
4809         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4810         DESTDIR.  It breaks stuff.
4811
4812 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4813
4814         Patch from Tambet Ingo <tambet@ximian.com>
4815
4816         * mono/DBusType/Array.cs (Get): Get the underlying element type by
4817         calling type.GetElementType().  The code previously depended on
4818         broken Mono behavior, which was fixed in Mono 1.1.3.
4819
4820         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4821         Activator.CreateInstance() so that the class's constructor is
4822         called with the right parameters.
4823
4824 2005-01-11  Joe Shaw  <joeshaw@novell.com>
4825
4826         Patch from Timo Teräs <ext-timo.teras@nokia.com>
4827
4828         * dbus/dbus-connection.c
4829         (_dbus_connection_queue_received_message_link): Call
4830         _dbus_connection_remove_timeout() instead of the _locked()
4831         variant, since it's always called from
4832         _dbus_connection_handle_watch(), which handles the locking.
4833         Removed the _locked() variant since it's no longer used.
4834
4835 2005-01-03  Havoc Pennington  <hp@redhat.com>
4836
4837         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4838         return
4839         
4840 2004-12-26  Havoc Pennington  <hp@redhat.com>
4841
4842         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4843
4844 2005-01-03  Havoc Pennington  <hp@redhat.com>
4845
4846         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4847         floating point
4848
4849         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4850
4851 2005-01-02  Havoc Pennington  <hp@redhat.com>
4852
4853         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4854
4855 2005-01-01  Havoc Pennington  <hp@redhat.com>
4856
4857         * configure.in: add -Wfloat-equal
4858
4859 2005-01-01  Havoc Pennington  <hp@redhat.com>
4860
4861         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
4862         for a variety of reasons '==' doesn't do this.
4863
4864 2004-12-31  Havoc Pennington  <hp@redhat.com>
4865
4866         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4867         I keep wishing I had
4868
4869 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4870
4871         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
4872
4873 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
4874
4875         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
4876         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
4877         dbus-protocol.h.  Because they are defines and not enums they are not
4878         autogenerated.
4879
4880 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
4881
4882         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
4883         dbus_bus_activate_service
4884
4885         * python/dbus.py (Bus.activate_service): activate a service on the
4886         bus.
4887
4888 2004-12-24  Havoc Pennington  <hp@redhat.com>
4889
4890         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
4891         file format has also changed and I haven't adapted to that yet
4892         
4893         * Makefile.am: load .gcno files from latest gcc
4894
4895 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
4896         * Patch from Rob Taylor <robtaylor@fastmail.fm>
4897
4898         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
4899         lowlevel binding
4900
4901         * python/dbus.py (get_unix_user): Added binding to 
4902         call dbus_bindings.bus_get_unix_user
4903
4904         * python/extract.py: Modified the proto_pat regex to
4905         handle unsigned long
4906
4907 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
4908
4909         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
4910         better POSIX compliance.
4911
4912 2004-12-19  Havoc Pennington  <hp@redhat.com>
4913
4914         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
4915         (_dbus_string_insert_8_aligned): new functions
4916
4917         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
4918
4919 2004-12-18  Havoc Pennington  <hp@redhat.com>
4920
4921         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
4922         macro
4923
4924         * dbus/dbus-message.c: fix a comment, and add a still-unused
4925         not-implemented function
4926
4927         * dbus/dbus-marshal.h: fix comment
4928
4929         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
4930
4931 2004-12-17  Joe Shaw  <joeshaw@novell.com>
4932
4933         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
4934         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
4935         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
4936         Type.UnderlyingSystemType to get the actual system type
4937         underneath.  This code previously depended on the broken Mono
4938         behavior, which was fixed in 1.1.3.
4939
4940 2004-11-27  Havoc Pennington  <hp@redhat.com>
4941
4942         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
4943         are disabled
4944         (_dbus_string_get_const_data): inline when asserts are disabled
4945
4946         * dbus/dbus-message.c: record the _dbus_current_generation of
4947         creation so we can complain if dbus_shutdown() is used improperly.
4948         Do this only if checks are enabled.
4949
4950         * dbus/dbus-connection.c: ditto
4951         
4952 2004-11-26  Havoc Pennington  <hp@redhat.com>
4953
4954         * test/glib/test-profile.c: add with_bus mode to profile echoes
4955         that go through the bus.
4956
4957         * test/glib/run-test.sh: add ability to run test-profile
4958
4959         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
4960         config file reload.
4961
4962 2004-11-26  Havoc Pennington  <hp@redhat.com>
4963
4964         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
4965         thing was implemented
4966
4967 2004-11-26  Havoc Pennington  <hp@redhat.com>
4968
4969         * test/glib/test-profile.c: tweak a bit, add support for some
4970         made-up minimal malloc overhead with plain sockets, since in 
4971         real life some sort of buffers are unavoidable thus we could 
4972         count them in the theoretical best case
4973
4974 2004-11-26  Havoc Pennington  <hp@redhat.com>
4975
4976         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
4977         where I was trying to cache one too many messages
4978
4979 2004-11-26  Havoc Pennington  <hp@redhat.com>
4980
4981         * dbus/dbus-message.c: reimplement message cache as an array which 
4982         makes the cache about twice as fast and saves maybe 1.5% overall
4983
4984 2004-11-26  Havoc Pennington  <hp@redhat.com>
4985
4986         * dbus/dbus-threads.c (init_global_locks): forgot to put the
4987         message cache lock here
4988
4989 2004-11-26  Havoc Pennington  <hp@redhat.com>
4990
4991         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
4992         the "char byte_order" next to each other to save 4 bytes
4993         (dbus_message_new_empty_header): reduce preallocation, since the
4994         message cache should achieve a similar effect
4995         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
4996         message cache that keeps a few DBusMessage around in a pool,
4997         another 8% speedup or so.
4998
4999         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5000
5001 2004-11-25  Havoc Pennington  <hp@redhat.com>
5002
5003         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5004         to write, without reading or blocking, try it before the poll()
5005         and skip the poll() if nothing remains to write. This is about a
5006         3% speedup in the echo client/server
5007
5008 2004-11-25  Havoc Pennington  <hp@redhat.com>
5009
5010         The primary change here is to always write() once before adding
5011         the write watch, which gives us about a 10% performance increase.
5012         
5013         * dbus/dbus-transport-unix.c: a number of modifications to cope
5014         with removing messages_pending
5015         (check_write_watch): properly handle
5016         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5017         messages_pending stuff
5018         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5019         AUTHENTICATED cases
5020         (unix_handle_watch): after writing, see if the write watch can be
5021         removed
5022         (unix_do_iteration): assert that write_watch/read_watch are
5023         non-NULL rather than testing that they aren't, since they 
5024         aren't allowed to be NULL. check_write_watch() at the end so 
5025         we add the watch if we did not finish writing (e.g. got EAGAIN)
5026
5027         * dbus/dbus-transport-protected.h: remove messages_pending call,
5028         since it resulted in too much inefficient watch adding/removing; 
5029         instead we now require that the transport user does an iteration 
5030         after queueing outgoing messages, and after trying the first
5031         write() we add a write watch if we got EAGAIN or exceeded our 
5032         max bytes to write per iteration setting
5033
5034         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5035         function
5036
5037         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5038         freed and then accessed, valgrind flagged this bug, fix it
5039
5040         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5041         as the last valid field plus 1, where really it is equal to the
5042         last valid field. Corrects some message corruption issues.
5043
5044         * dbus/dbus-mainloop.c: verbosity changes
5045
5046         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5047         instead of aborting in one of the test codepaths
5048
5049         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5050         caused not printing the pid ever again if a verbose was missing
5051         the newline at the end
5052         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5053
5054         * dbus/dbus-connection.c: verbosity changes; 
5055         (dbus_connection_has_messages_to_send): new function
5056         (_dbus_connection_message_sent): no longer call transport->messages_pending
5057         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5058         try to write() immediately, so we can avoid the write watch. This
5059         is the core purpose of this patchset
5060         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5061         dump the outgoing message queue, so nobody will get confused
5062         trying to send them or thinking stuff is pending to be sent
5063
5064         * bus/test.c: verbosity changes
5065
5066         * bus/driver.c: verbosity/assertion changes
5067
5068         * bus/dispatch.c: a bunch of little tweaks to get it working again
5069         because this patchset changes when/where you need to block.
5070
5071 2004-11-23  Havoc Pennington  <hp@redhat.com>
5072
5073         * test/glib/test-profile.c: modify to accept a plain_sockets
5074         argument in which case it will bench plain sockets instead of
5075         libdbus, for comparison purposes.
5076
5077 2004-11-22  Havoc Pennington  <hp@redhat.com>
5078
5079         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5080         threads for more time, so sysprof can get a grip on it.
5081
5082         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5083         pointless variable
5084
5085 2004-11-13  Havoc Pennington  <hp@redhat.com>
5086
5087         * test/glib/test-profile.c: fix this thing up a bit
5088
5089         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5090         preallocation sizes by a fair bit; not sure if this will be an
5091         overall performance win or not, but it does reduce reallocs.
5092
5093         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5094         the test hack that forced constant realloc if asserts are
5095         disabled, so we can profile sanely. Sprinkle in some
5096         _DBUS_UNLIKELY() which are probably pointless, but before I
5097         noticed the real performance problem I put them in.
5098         (_dbus_string_validate_utf8): micro-optimize this thing a little
5099         bit, though callgrind says it didn't help; then special-case
5100         ascii, which did help a lot; then be sure we detect nul bytes as
5101         invalid, which is a bugfix.
5102         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5103         superstition; use memset to nul the padding instead of a manual
5104         loop.
5105         (_dbus_string_get_length): inline this as a
5106         macro; it showed up in the profile because it's used for loop
5107         tests and so forth
5108
5109 2004-11-10  Colin Walters  <walters@verbum.org>
5110
5111         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5112         for extra paranoia.
5113
5114 2004-11-09  Colin Walters  <walters@verbum.org>
5115
5116         * dbus/dbus-string.c (_dbus_string_get_length): New
5117         function, writes DBusString to C buffer.
5118
5119         * dbus/dbus-string.h: Prototype it.
5120
5121         * dbus/dbus-message.c (dbus_message_type_to_string): New
5122         function, converts message type into C string.
5123
5124         * dbus/dbus-message.h: Prototype it.
5125
5126         * bus/selinux.c (bus_selinux_check): Take source pid,
5127         target pid, and audit data.  Pass audit data to
5128         avc_has_perm.
5129         (log_audit_callback): New function, appends extra
5130         audit information.
5131         (bus_selinux_allows_acquire_service): Also take
5132         service name, add it to audit data.
5133         (bus_selinux_allows_send): Also take message
5134         type, interface, method member, error name,
5135         and destination, and add them to audit data.
5136         (log_cb): Initialize func_audit.
5137         
5138         * bus/selinux.h (bus_selinux_allows_acquire_service)
5139         (bus_selinux_allows_send): Update prototypes 
5140
5141         * bus/services.c (bus_registry_acquire_service): Pass
5142         service name to bus_selinux_allows_acquire_service.
5143
5144         * bus/bus.c (bus_context_check_security_policy): Pass
5145         additional audit data.  Move assignment of dest
5146         to its own line.
5147
5148 2004-11-07  Colin Walters  <walters@verbum.org>
5149
5150         * dbus/dbus-transport-unix.c (do_authentication): Always
5151         initialize auth_completed.
5152         
5153 2004-11-07  Colin Walters  <walters@verbum.org>
5154
5155         * bus/bus.c (load_config): Break into three
5156         separate functions: process_config_first_time_only,
5157         process_config_every_time, and process_config_postinit.
5158         (process_config_every_time): Move call of
5159         bus_registry_set_service_context_table into
5160         process_config_postinit.
5161         (process_config_postinit): New function, does
5162         any processing that needs to happen late
5163         in initialization (and also on reload).
5164         (bus_context_new): Instead of calling load_config,
5165         open config parser here and call process_config_first_time_only
5166         and process_config_every_time directly.  Later, after
5167         we have forked but before changing UID,
5168         invoke bus_selinux_full_init, and then call
5169         process_config_postinit.
5170         (bus_context_reload_config): As in bus_context_new,
5171         load parse file inside here, and call process_config_every_time
5172         and process_config_postinit.
5173
5174         * bus/services.h, bus/services.c
5175         (bus_registry_set_service_context_table): Rename
5176         from bus_registry_set_sid_table.  Take string hash from config
5177         parser, and convert them here into SIDs.
5178
5179         * bus/config-parser.c (struct BusConfigParser): Have
5180         config parser only store a mapping of service->context
5181         string.
5182         (merge_service_context_hash): New function.
5183         (merge_included): Merge context string hashes instead
5184         of using bus_selinux_id_table_union.
5185         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5186         simply create a new string hash.
5187         (bus_config_parser_unref): Unref it.
5188         (start_selinux_child): Simply insert strings into hash,
5189         don't call bus_selinux_id_table_copy_over.
5190
5191         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5192         (bus_selinux_id_table_copy_over): Delete.
5193
5194 2004-11-03  Colin Walters  <walters@verbum.org>
5195
5196         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5197         variables.
5198         
5199 2004-11-03  Colin Walters  <walters@verbum.org>
5200
5201         * bus/test-main.c (test_pre_hook): Fix test logic,
5202         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5203
5204 2004-11-02  Colin Walters  <walters@redhat.com>
5205
5206         * bus/selinux.c (bus_selinux_init): Split into two functions,
5207         bus_selinux_pre_init and bus_selinux_post_init.
5208         (bus_selinux_pre_init): Just determine whether SELinux is
5209         enabled.
5210         (bus_selinux_post_init): Do everything else.
5211
5212         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5213         config file, and bus_selinux_post_init after.  This ensures that
5214         we don't lose the policyreload notification thread that
5215         bus_selinux_init created before forking previously.
5216         
5217         * bus/test-main.c (test_pre_hook): Update for split.
5218
5219 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5220
5221         Patch from Johan Fischer <linux@fischaz.com>
5222         
5223         * mono/doc/Makefile.am (install-data-local): Added directory
5224         install for DESTDIR
5225
5226 2004-10-29  Colin Walters  <walters@redhat.com>
5227
5228         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5229         parameter for fd to write pid to.       
5230
5231         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5232         
5233         * bus/bus.c (bus_context_new): Pass print_pid_fd
5234         to _dbus_become_daemon (bug #1720)
5235
5236 2004-10-29  Colin Walters  <walters@redhat.com>
5237
5238         Patch from Ed Catmur <ed@catmur.co.uk>
5239
5240         * mono/doc/Makefile.am (install-data-local): Handle
5241         DESTDIR.
5242
5243 2004-10-29  Colin Walters  <walters@redhat.com>
5244
5245         * bus/.cvsignore, qt/.cvsignore: Update.
5246
5247 2004-10-29  Colin Walters  <walters@redhat.com>
5248
5249         Patch from Kristof Vansant <de_lupus@pandora.be>
5250
5251         * configure.in: Detect Slackware.
5252         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5253         * bus/rc.messagebus.in: New file.
5254
5255 2004-10-29  Colin Walters  <walters@redhat.com>
5256
5257         * tools/dbus-monitor.c (filter_func): Return
5258         DBUS_HANDLER_RESULT_HANDLED in filter function
5259         for now.  See:
5260         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5261
5262 2004-10-29  Colin Walters  <walters@redhat.com>
5263
5264         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5265
5266         * bus/services.c (bus_registry_acquire_service): 
5267         Correctly retrieve service name from DBusString
5268         for printing.
5269
5270 2004-10-29  Colin Walters  <walters@redhat.com>
5271
5272         * dbus/dbus-glib.h: Update documentation to not
5273         refer to internal APIs.
5274
5275 2004-10-27  Joe Shaw  <joeshaw@novell.com>
5276
5277         * mono/Arguments.cs (GetDBusTypeConstructor):
5278         type.UnderlyingSystemType will return "System.Byte" if you do it
5279         on "byte[]", which is not what we want.  So check the type.IsArray
5280         property and use System.Array instead.
5281
5282 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
5283
5284         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5285         the DBusUserInfo structure since this is passed into the function.
5286         This would cause a double free when the function that allocated
5287         the structure would try to free it when an error occured.
5288
5289         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5290         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5291         for service activation to avoid 32bit/64bit parallel install issues
5292
5293 2004-10-21  Colin Walters  <walters@verbum.org>
5294
5295         * AUTHORS: Fix my email address, the @gnu.org one
5296         has been bouncing for some time.  Also add J5.
5297         
5298 2004-10-21  Colin Walters  <walters@verbum.org>
5299
5300         * dbus/dbus-transport-unix.c (do_authentication): Return
5301         authentication status to callers.
5302         (unix_handle_watch): If we completed authentication this round,
5303         don't do another read.  Instead wait until the next iteration,
5304         after we've read any pending data in the auth buffer.
5305         (unix_do_iteration): Ditto.
5306         (unix_handle_watch): Updated for new do_authentication prototype.
5307
5308 2004-10-18  Colin Walters  <walters@verbum.org>
5309
5310         * bus/selinux.c (bus_selinux_enabled): Handle
5311         --disable-selinux case.
5312         
5313 2004-10-18  Colin Walters  <walters@verbum.org>
5314
5315         * bus/selinux.h: Add bus_selinux_enabled.
5316         
5317         * bus/selinux.c (bus_selinux_enabled): Implement it.
5318         
5319         * bus/config-parser.c (struct include): Add
5320         if_selinux_enabled member.
5321         (start_busconfig_child): Parse if_selinux_enabled
5322         attribute for include.
5323         (bus_config_parser_content): Handle it.
5324
5325         * bus/session.conf.in, bus/system.conf.in: Add
5326         inclusion of context mapping to default config files;
5327         conditional on SELinux being enabled.
5328         
5329         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5330         
5331         * test/data/invalid-config-files/badselinux-1.conf, 
5332         test/data/invalid-config-files/badselinux-2.conf:
5333         Test files for bad syntax.
5334         
5335 2004-10-17  Colin Walters  <walters@verbum.org>
5336
5337         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5338         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5339         format specifier mismatches.
5340
5341 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5342
5343         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5344         format string.
5345
5346         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5347         pointer (bug #1540, Leonardo Boiko).
5348
5349 2004-09-28  Jon Trowbridge  <trow@ximian.com>
5350
5351         * mono/BusDriver.cs: Changed BusDriver struct to remove
5352         the ServiceCreated and ServiceDeleted events and replace them
5353         with the new ServiceOwnerChanged event.
5354
5355         * mono/example/BusListener.cs: Added a new example program,
5356         which listens for and reports any ServiceOwnerChanged events
5357         on the bus driver.
5358
5359         * mono/example/Makefile.am (DESTDIR): Build changes for the
5360         new BusListener.cs example.
5361
5362 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5363
5364         * bus/signals.c (bus_match_rule_parse): validate the components of
5365         match rules (bug #1439).
5366
5367         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5368
5369 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5370
5371         * doc/dbus-specification.xml: document ServiceOwnerChanged
5372         signal.
5373         
5374         * bus/driver.c, bus/driver.h, bus/services.c: Use
5375         ServiceOwnerChanged signal instead of ServiceCreated and
5376         ServiceDeleted.
5377         
5378         * bus/dispatch.c: update testcase for the new signal.
5379
5380 2004-09-20  Jon Trowbridge  <trow@ximian.com>
5381
5382         Patch from Nat Friedman <nat@novell.com>
5383
5384         * mono/Makefile.am: A number of small build fixes to allow "make
5385         distcheck" to succeed.
5386
5387         * mono/example/Makefile.am: "make distcheck" fixes.
5388
5389         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5390         key in @srcdir@.
5391
5392         * test/Makefile.am: "make distcheck" fixes.
5393
5394 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5395
5396         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5397
5398         * doc/busconfig.dtd: update the DTD for the at_console attribute.
5399
5400         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5401         messages after the first one (bug #1389).
5402         
5403         * bus/dispatch.c (check_double_hello_message): add a test case for
5404         the double hello message bug.
5405         (check_existent_service_activation): fix check of spawning error.
5406         
5407 2004-09-16  David Zeuthen  <david@fubar.dk>
5408
5409         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5410
5411 2004-09-12  David Zeuthen  <david@fubar.dk>
5412
5413         Patch from Kay Sievers <kay.sievers@vrfy.org>
5414
5415         * bus/bus.c (bus_context_new):
5416         * bus/bus.h:
5417         * bus/main.c (usage)
5418         (main):
5419         Add commandline option --nofork to override configuration file
5420         setting.
5421
5422 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5423
5424         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5425         compilers don't like it (bug #974).
5426
5427 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
5428
5429         * qt/connection.*: Applied patch by Jérôme Lodewyck
5430         <lodewyck@clipper.ens.fr> to integrate an existing
5431         connection into the Qt eventloop
5432
5433 2004-08-30  Jon Trowbridge  <trow@ximian.com>
5434
5435         * mono/BusDriver.cs: Added.  This is a class for interacting with
5436         the org.freedesktop.DBus service.
5437
5438         * mono/Message.cs: Added a mechanism to expose the message that is
5439         currently being dispatched via the static Message.Current
5440         property.  Added Message.Sender and Message.Destination
5441         properties.
5442
5443         * mono/Handler.cs: Expose the dispatched message via
5444         Message.Current when handling method calls.
5445
5446         * mono/Service.cs: Expose the dispatched message via
5447         Message.Current when handling signal emissions.
5448         
5449         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5450         Connection.BaseService property.
5451
5452 2004-08-28  Havoc Pennington  <hp@redhat.com>
5453
5454         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5455
5456         More fixes from Steve Grubb
5457         
5458         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5459         (_dbus_listen_tcp_socket): fix fd leak
5460
5461         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5462         EINTR to a bit lower in the code
5463
5464 2004-08-26  Jon Trowbridge  <trow@ximian.com>
5465
5466         * bus/driver.c (bus_driver_handle_service_exists): Respond with
5467         TRUE if we are inquiring about the existence of the built-in
5468         org.freedesktop.DBus service.
5469
5470 2004-08-25  John Palmieri  <johnp@redhat.com>
5471         * bus/config-parser.c:
5472         (struct PolicyType): Add POLICY_CONSOLE
5473         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5474         (start_busconfig_child): Sets up console element when
5475         <policy at_console=""> is encountered in a policy file
5476         (append_rule_from_element): Convert console elements to console
5477         rules.
5478
5479         * bus/policy.c: 
5480         (bus_policy_create_client_policy): Add console rules to the client
5481         policy based on if the client is at the console
5482         (bus_policy_append_console_rule): New function for adding a
5483         console rule to a policy
5484         (bus_policy_merge): Handle console rule merging
5485
5486         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5487         where we check for console user files
5488         
5489         * dbus/dbus-sysdeps.c:
5490         (_dbus_file_exists): New function which checks if the given
5491         file exists
5492         (_dbus_user_at_console): New function which does the system
5493         specific process of checking if the user is at the console
5494
5495         * dbus/dbus-userdb.c:
5496         (_dbus_is_console_user): New function converts a UID to user name
5497         and then calls the system specific _dbus_user_at_console to 
5498         see if the user is at the console and therefor a console user
5499
5500 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5501
5502         * bus/config-parser.c (set_limit):
5503         * bus/dbus-daemon-1.1.in:
5504         * test/data/valid-config-files/many-rules.conf: set the
5505         max_match_rules_per_connection limt from the config file. 
5506
5507         * doc/busconfig.dtd: update the DTD.
5508
5509         * bus/driver.c: remove some unused variables.
5510
5511 2004-08-24  Mikael Hallendal  <micke@imendio.com>
5512
5513         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
5514         it's been replaced by dbus_g_bus_get
5515
5516 2004-08-23  Colin Walters  <walters@redhat.com>
5517
5518         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5519
5520         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5521
5522         * bus/selinux.c: Create a thread for policy reload notification.
5523         (bus_selinux_get_policy_root): Implement.
5524
5525         * bus/config-parser.c (start_busconfig_child)
5526         (bus_config_parser_content): Support SELinux-root relative
5527         inclusion.
5528
5529         * configure.in <HAVE_SELINUX>: Add -lpthread.
5530         
5531         * bus/test-main.c (test_pre_hook, test_post_hook): New.
5532         (test_post_hook): Move memory checking into here.
5533         (test_pre_hook, test_post_hook): Move SELinux checks in
5534         here, but conditional on a DBUS_TEST_SELINUX environment
5535         variable.  Unfortunately we can't run the SELinux checks
5536         as a normal user, since they won't have any permissions
5537         for /selinux.  So this will have to be tested manually
5538         for now, until we have virtualization for most of
5539         libselinux.
5540         
5541 2004-08-23  Havoc Pennington  <hp@redhat.com>
5542
5543         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5544         drop supplementary groups, suggested by Steve Grubb
5545
5546 2004-08-20  Colin Walters  <walters@redhat.com>
5547
5548         * bus/config-parser.c (start_busconfig_child): Remove some unused
5549         variables.
5550         
5551         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5552         warning.
5553
5554 2004-08-17  Joe Shaw  <joeshaw@novell.com>
5555
5556         * configure.in: If --enable-mono is passed in, if we can't find
5557         mono error out.
5558
5559         * mono/Makefile.am: Use /gacutil to install assemblies into the
5560         GAC and not /root.
5561
5562 2004-08-12  Havoc Pennington  <hp@redhat.com>
5563
5564         * NEWS: update for 0.22
5565
5566         * configure.in: release 0.22
5567
5568 2004-08-11  Colin Walters  <walters@redhat.com>
5569
5570         * tools/dbus-send.c (main, usage): Add --reply-timeout
5571         argument.
5572
5573 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5574
5575         * bus/bus.c (process_config_first_time_only): get rid of an unused
5576         DBusError that was causing a memoy leak (bug #989).
5577
5578         * dbus/dbus-keyring.c, dbus/dbus-message.c:
5579         fix compilation on Solaris/Forte C (bug #974)
5580
5581         * bus/main.c (main): plug two minuscule memleaks.
5582
5583 2004-08-10  Havoc Pennington  <hp@redhat.com>
5584
5585         * doc/dbus-tutorial.xml: add some more info on GLib bindings
5586
5587 2004-08-09  Havoc Pennington  <hp@redhat.com>
5588
5589         * COPYING: switch to Academic Free License version 2.1 instead of
5590         2.0, to resolve complaints about patent termination clause.
5591
5592 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
5593
5594         * README: added documentation for the --enable-python 
5595         configure switch.
5596
5597 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5598
5599         * bus/config-parser.c (bus_config_parser_new): fix an invalid
5600         _unref in the SELinux support.
5601
5602         * doc/busconfig.dtd: update DTD for SELinux support.
5603
5604         * bus/config-loader-libxml.c: fix error handler and parser
5605         initialisation/cleanup. OOM test now works with libxml2 HEAD.
5606
5607         * configure.in: remove the warning about libxml2.
5608
5609         * dbus/dbus-bus.c: silence doxygen warning.
5610
5611 2004-07-31  Colin Walters  <walters@redhat.com>
5612
5613         * configure.in: Move #error in SELinux check to its own line.
5614
5615 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5616
5617         * dbus/dbus-internals.h (_DBUS_SET_OOM):
5618         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5619         dbus_error_set.
5620
5621         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5622         broken by the change in the _SET_OOM macros.
5623
5624 2004-07-31  Colin Walters  <walters@redhat.com>
5625
5626         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5627         BUS_SET_OOM.
5628
5629 2004-07-31  Colin Walters  <walters@redhat.com>
5630
5631         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5632         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
5633         AC_MSG_CHECKING.
5634
5635 2004-07-24  Havoc Pennington  <hp@redhat.com>
5636
5637         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5638
5639         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5640         functionality
5641
5642         * configure.in: add --enable-selinux
5643         
5644         * bus/policy.c (bus_policy_merge): add FIXME to a comment
5645
5646         * bus/main.c (main): initialize and shut down selinux
5647
5648         * bus/connection.c: store SELinux ID on each connection, to avoid 
5649         repeated getting of the string context and converting it into 
5650         an ID
5651
5652         * bus/bus.c (bus_context_get_policy): new accessor, though it
5653         isn't used
5654         (bus_context_check_security_policy): check whether the security
5655         context of sender connection can send to the security context of
5656         recipient connection
5657
5658         * bus/config-parser.c: add parsing for <selinux> and <associate>
5659         
5660         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5661         implement dbus_connection_get_unix_fd()
5662
5663         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5664         function, used by the selinux stuff
5665         
5666 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5667
5668         * bus/config-loader-libxml.c: complete the implementation of
5669         libxml backend for config file loader. Doesn't work with full OOM
5670         test yet. 
5671         
5672         * configure.in: change error when selecting libxml into a warning.
5673         
5674         * test/data/invalid-config-files: add two non-well-formed XML
5675         files. 
5676         
5677         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5678         
5679         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5680         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5681         be necessary to read all the buffer. (bug #894)
5682
5683         * bus/activation.c (bus_activation_activate_service): fix a
5684         potential assertion failure (bug #896). Small optimization in the
5685         case of auto-activation messages.
5686
5687         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5688         add test case for byte-through-vararg bug (#901). patch by Kimmo
5689         Hämäläinen. 
5690
5691 2004-07-28  Anders Carlsson  <andersca@gnome.org>
5692
5693         * python/dbus.py:
5694         * python/dbus_bindings.pyx.in:
5695         Add dbus.init_gthreads (), allow emit_signal to pass
5696         arguments to the signal.
5697         
5698 2004-07-24  Havoc Pennington  <hp@redhat.com>
5699
5700         * AUTHORS: add some people, not really comprehensively, let me
5701         know if I missed you
5702
5703 2004-07-24  Havoc Pennington  <hp@redhat.com>
5704
5705         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5706         Owen
5707
5708         * test/Makefile.am (DIST_SUBDIRS): here also
5709
5710 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5711
5712         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5713         breaking build on Solaris, reported by Farhad Saberi on the ML.
5714
5715         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5716         va_arg invocation to account for integer promotion in the case of
5717         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5718
5719         * bus/services.c (bus_service_remove_owner): fix bug #902, use
5720         _dbus_list_get_first_link, not _dbus_list_get_first.
5721
5722         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5723
5724         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5725         handler functions so that the asserts in _dbus_object_subtree_unref
5726         do not fail.
5727
5728         * dbus/dbus-transport-unix.c (do_reading):
5729         _dbus_transport_queue_messages return value is of type
5730         dbus_bool_t, not DBusDispatchStatus.
5731         
5732 2004-07-19  David Zeuthen  <david@fubar.dk>
5733
5734         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5735
5736         * bus/dispatch.c:
5737         (check_get_connection_unix_user): Debug says GetProperty; but the
5738         method is called GetConnectionUnixUser
5739         (check_get_connection_unix_process_id): New function
5740         (bus_dispatch_test): Actually call check_get_connection_unix_user();
5741         also call check_get_connection_unix_process_id()
5742         
5743         * bus/driver.c:
5744         (bus_driver_handle_get_connection_unix_process_id): New function,
5745         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5746         interface
5747         
5748         * dbus/dbus-auth.c:
5749         (handle_server_data_external_mech): Set pid from the credentials
5750         obtained from the socket
5751         
5752         * dbus/dbus-connection.c:
5753         (dbus_connection_get_unix_process_id): New function
5754         
5755         * dbus/dbus-connection.h: 
5756         Add prototype for dbus_connection_get_unix_process_id
5757         
5758         * dbus/dbus-transport.c:
5759         (_dbus_transport_get_unix_process_id): New function
5760         
5761         * dbus/dbus-transport.h:
5762         Add prototype for _dbus_transport_get_unix_process_id
5763         
5764 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5765
5766         * dbus/dbus-message.c: Message counter fix, patch by Christian
5767         Hammond <chipx86@gnupdate.org>
5768
5769 2004-07-18  Seth Nickell  <seth@gnome.org>
5770
5771         * python/dbus.py:
5772         * python/dbus_bindings.pyx.in:
5773         * python/tests/test-client.py:
5774
5775         Add dbus.ByteArray and dbus_bindings.ByteArray
5776         types so that byte streams can be passed back.
5777
5778         Give jdahlin the heaps of credit that are so
5779         rightfully his.
5780         
5781 2004-07-12  Seth Nickell  <seth@gnome.org>
5782
5783         * python/dbus.py:
5784
5785         Add message argument to the default object_method_handler
5786         function.
5787         
5788         * python/dbus_bindings.pyx.in:
5789
5790         Automatically return NIL when passed an empty list
5791         (we can't pass back a list since lists are typed
5792         and we don't have any idea what type the the client
5793         intended the list to be... :-( )
5794         
5795 2004-07-10  Seth Nickell  <seth@gnome.org>
5796
5797         * python/examples/Makefile.am:
5798
5799         Fix distcheck breakage caused by new examples.
5800
5801 2004-07-10  Seth Nickell  <seth@gnome.org>
5802
5803         * python/dbus.py:
5804
5805         Add "message" argument to service-side dbus.Object
5806         methods. This will break existing services written
5807         using the python bindings, but will allow extraction
5808         of all the message information (e.g. who its from).
5809
5810         Add improved "object oriented" signal handling/emission.
5811         
5812         * python/examples/example-service.py:
5813
5814         Nix this example.
5815         
5816         * python/examples/example-signal-emitter.py:
5817         * python/examples/example-signal-recipient.py:
5818
5819         Two new examples that show how to emit and receive
5820         signals using the new APIs.
5821         
5822         * python/examples/example-signals.py:
5823         * python/examples/gconf-proxy-service.py:
5824         * python/examples/gconf-proxy-service2.py:
5825
5826         Add "message" argument to service methods.
5827
5828 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
5829
5830         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5831         * dbus/bus.c (dbus_bus_get_unix_user)
5832         * doc/dbus-specification.xml: implement GetConnectionUnixUser
5833         method of org.freedesktop.DBus interface.
5834
5835         * bus/dispatch.c: test case
5836
5837 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
5838
5839         * python/Makefile.am: switched include directory from glib/ to dbus/
5840         since dbus-glib.h moved
5841  
5842 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5843
5844         * configure.in: prevent building the gcj stuff and libxml loader
5845         since they are broken.
5846
5847 2004-06-20  Havoc Pennington  <hp@redhat.com>
5848
5849         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
5850         codes from the dbus error names
5851         
5852         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
5853         as dbus/dbus-glib.h and that breakage is now visible due to 
5854         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5855         
5856         * glib/dbus-glib.h: s/gproxy/g_proxy/
5857
5858         * dbus/dbus-shared.h: new header to hold stuff shared with
5859         binding APIs
5860         
5861         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5862         than dbus-errors.h
5863
5864         * glib/dbus-glib.h (dbus_set_g_error): move to
5865         dbus-glib-lowlevel.h
5866
5867         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5868         of stuff to enable this
5869
5870         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
5871
5872         * a bunch of other changes with the same basic "separate glib 
5873         bindings from dbus.h" theme
5874         
5875 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
5876
5877         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
5878
5879         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
5880
5881 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5882
5883         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
5884         the reply value of the ServiceExists message.
5885
5886 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
5887
5888         * python/dbus_bindings.pyx.in: No longer need to parse path
5889         elements and pass them as arrays of strings.  The C API now
5890         accepts plain path strings.
5891         (_build_parsed_path): removed 
5892
5893 2004-06-07  Havoc Pennington  <hp@redhat.com>
5894
5895         * doc/TODO: remove auto-activation item since it's done; sort
5896         items by importance/milestone
5897
5898 2004-06-07  Havoc Pennington  <hp@redhat.com>
5899
5900         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
5901         random signature when using REQUIRED_FIELDS (this hack won't work
5902         in the long term)
5903
5904         * dbus/dbus-message.c: change the signature to be a header field,
5905         instead of message->signature special-case string. Incremental
5906         step forward. Then we can fix up code to send the signature in the
5907         message, then fix up code to validate said signature, then fix up
5908         code to not put the typecodes inline, etc.
5909         (load_one_message): don't make up the signature after the fact
5910         (decode_header_data): require signature field for the known
5911         message types
5912
5913         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
5914
5915         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
5916
5917 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
5918
5919         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
5920
5921         * mono/Handler.cs: Updated to follow new path argument for
5922         (un-)registering objects.
5923
5924         * mono/example/Makefile.am:
5925         * mono/Makefile.am:
5926         * configure.in: Bumped required version for mono and use new -pkg
5927         syntax for deps
5928
5929 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5930
5931         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
5932         registration functions take the path argument as char* instead of
5933         char**.
5934
5935         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
5936         split off the path decompostion part of
5937         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
5938         warnings. 
5939
5940         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
5941         
5942 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5943  
5944         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
5945         machine approach.  A state is implemented as a function that
5946         handles incoming events as specified for that state.
5947         
5948         * doc/dbus-specification.xml: Update auth protocol state machine
5949         specification to match implementation.  Remove some leftover
5950         base64 examples.
5951
5952 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
5953
5954         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
5955         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
5956         quiet doxygen.
5957
5958         * Doxyfile.in: remove deprecated options.
5959
5960         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
5961         glib/test-thread.h, glib/test-thread-client.c,
5962         glib/test-thread-server.c, glib/test-profile.c,
5963         glib/test-dbus-glib.c: remove these unused files.
5964
5965 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5966
5967         * dbus/dbus-object-tree.c
5968         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
5969         non-fallback handlers (bug #684).
5970         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
5971         (find_subtree_recurse): report wether the returned subtree is an
5972         exact match or a "fallback" match higher up in the tree.
5973         (object_tree_test_iteration): update test case.
5974
5975 2004-06-01  Seth Nickell  <seth@gnome.org>
5976
5977         * python/dbus_bindings.pyx.in:
5978         * python/tests/test-client.py:
5979
5980         Round off basic type support. Add dicts (yay!), and 
5981         remaining array types.
5982
5983         Make MessageIter more general so it works for dicts too.
5984
5985         Mark all loop variables as C integers.
5986         
5987 2004-05-31  Havoc Pennington  <hp@redhat.com>
5988
5989         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
5990         "in" before "out"
5991
5992         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
5993
5994         * glib/dbus-glib-tool.c (main): set up to have a --self-test
5995         option that runs the tests, and start filling in some code
5996         including for starters just dumping the interfaces to stdout
5997
5998         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
5999
6000         * test/data/valid-introspection-files/lots-of-types.xml: test of
6001         an example introspection file
6002
6003         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6004         "node" (I think...)
6005
6006 2004-05-31  Seth Nickell  <seth@gnome.org>
6007
6008         * python/dbus_bindings.pyx.in:
6009         * python/tests/test-client.py:
6010
6011         Test Suite: 1
6012         Python Bindings: 0
6013
6014         Fix string array memory trashing bug... oops...
6015
6016 2004-05-30  Seth Nickell  <seth@gnome.org>
6017
6018         * python/dbus.py:
6019
6020         Add a nicer-but-less-flexible alternate API for handling 
6021         calls to virtual objects in dbus.ObjectTree.
6022
6023         Screw up the argument order to the dbus.Object constructor
6024         for consistency with dbus.ObjectTree (and to make dbus_methods
6025         optional for future extension)
6026         
6027         * python/examples/Makefile.am:
6028         * python/examples/gconf-proxy-service.py:
6029         * python/examples/gconf-proxy-service2.py:
6030
6031         Alternate implementation of gconf-proxy-service using the
6032         nicer dbus.ObjectTree API.
6033         
6034         * python/examples/example-service.py:
6035         * python/tests/test-server.py
6036
6037         Reverse the argument order to deal with dbus.Object constructor
6038         changes.
6039         
6040 2004-05-30  Seth Nickell  <seth@gnome.org>
6041
6042         * python/examples/example-client.py:
6043         * python/examples/example-service.py:
6044
6045         Take it back. Lists seem to work but they're broken
6046         in the test suite. Make the base examples use
6047         lists (works fine).
6048
6049 2004-05-30  Seth Nickell  <seth@gnome.org>
6050
6051         * python/dbus_bindings.pyx.in:
6052         * python/tests/test-client.py:
6053
6054         Add some more tests and fix errors that crop up.
6055         Unfortunately, currently it seems like marshalling
6056         and unmarshalling of lists is completely broken :-(
6057
6058 2004-05-30  Seth Nickell  <seth@gnome.org>
6059
6060         * python/dbus_bindings.pyx.in:
6061
6062         Add support for ObjectPath type.
6063
6064         * python/dbus.py:
6065
6066         Refactor message handling code to a common function.
6067         
6068         * python/tests/test-client.py:
6069         * python/tests/test-server.py:
6070
6071         Add tests that check to make sure values of all types
6072         can be echoed from a service w/o mangling.
6073         
6074 2004-05-29  Seth Nickell  <seth@gnome.org>
6075
6076         * python/dbus.py:
6077
6078         Add ObjectTree class which allows implementation
6079         of trees of "virtual" objects. Basically the python
6080         wrapper for "register_fallback".
6081         
6082         * python/examples/Makefile.am
6083         * python/examples/gconf-proxy-client.py:
6084         * python/examples/gconf-proxy-service.py:
6085
6086         Implement a simple GConf proxy service that supports
6087         get/set on string and int GConf keys using the ObjectTree.
6088         
6089 2004-05-29  Seth Nickell  <seth@gnome.org>
6090
6091         * python/dbus.py:
6092         * python/examples/example-client.py:
6093         * python/examples/example-service.py:
6094         * python/examples/list-system-services.py:
6095
6096         Add SessionBus, SystemBus and ActivationBus classes
6097         so you don't need to know the special little BUS_TYPE
6098         flag.
6099         
6100 2004-05-29  Havoc Pennington  <hp@redhat.com>
6101
6102         * bus/config-parser.c (process_test_valid_subdir): temporarily
6103         stop testing config parser OOM handling, since expat has issues
6104         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6105
6106         * bus/dbus-daemon-1.1.in: change requested_reply to
6107         send_requested_reply/receive_requested_reply so we can send the
6108         replies, not just receive them.
6109
6110         * bus/config-parser.c: parse the new
6111         send_requested_reply/receive_requested_reply
6112
6113         * bus/policy.c (bus_client_policy_check_can_send): add
6114         requested_reply argument and use it
6115
6116         * bus/bus.c (bus_context_check_security_policy): pass through
6117         requested_reply status to message send check
6118
6119         * bus/system.conf.in: adapt to requested_reply change
6120         
6121 2004-05-28  Havoc Pennington  <hp@redhat.com>
6122
6123         * test/glib/test-service-glib.c (main): remove unused variable
6124
6125         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6126
6127         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6128         from the enum, no longer in use.
6129
6130         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6131         works right.
6132
6133         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6134         whether error_name passed in is a valid error name.
6135
6136 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6137
6138         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6139         OBJECT_PATH and OBJECT_PATH_ARRAY
6140
6141 2004-05-28  Seth Nickell  <seth@gnome.org>
6142
6143         * python/examples/Makefile.am:
6144
6145         Forget to add Makefile.am. Do not pass go.
6146
6147 2004-05-28  Michael Meeks  <michael@ximian.com>
6148
6149         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6150         fix no int64 case.
6151
6152         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6153
6154         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6155         (_dbus_message_iter_get_basic_type_array): impl.
6156         drastically simplify ~all relevant _get methods to use these.
6157         (_dbus_message_iter_append_basic_array),
6158         (dbus_message_iter_append_basic): impl
6159         drastically simplify ~all relevant _append methods to use these.
6160
6161         * dbus/dbus-message-builder.c (parse_basic_type) 
6162         (parse_basic_array, lookup_basic_type): impl.
6163         (_dbus_message_data_load): prune scads of duplicate /
6164         cut & paste coding.
6165
6166         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6167         (_dbus_demarshal_basic_type): implement,
6168         (demarshal_and_validate_len/arg): beef up debug.
6169         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6170
6171 2004-05-27  Seth Nickell  <seth@gnome.org>
6172
6173         * configure.in:
6174         * python/Makefile.am:
6175
6176         Include the example python apps in the tarball.
6177         
6178         * python/examples/list-system-services.py
6179
6180         Add a python new example that fetches the list of services
6181         from the system bus.
6182         
6183 2004-05-27  Seth Nickell  <seth@gnome.org>
6184
6185         * python/dbus.py:
6186         * python/dbus_bindings.pyx.in:
6187
6188         Fix failure to notify that a signal was not handled,
6189         resulted in hung functions.
6190         
6191 2004-05-25  Colin Walters  <walters@redhat.com>
6192
6193         * tools/dbus-monitor.c (main): Monitor all types of messages.
6194
6195 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6196
6197         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6198         which unregisters the object path and disposes the handler.
6199
6200 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6201  
6202         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6203          
6204         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6205         operands to && so we call dbus_message_iter_next () for the last
6206         argument also.
6207
6208 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6209
6210         * dbus/dbus-object-tree.c
6211         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6212         children even if the requested path isn't registered.
6213         (object_tree_test_iteration): test object_tree_list_registered.
6214
6215         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6216         it to 0.
6217         
6218 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6219
6220         * doc/TODO: Remove resolved items.
6221
6222         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6223         field.
6224         
6225         * bus/connection.c (bus_connections_expect_reply): Enforce the
6226         per-connection limit on pending replies.
6227         
6228         Patch from Jon Trowbridge <trow@ximian.com>:
6229  
6230         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6231         up a watch that triggers a config reload when one end of the pipe
6232         becomes readable.
6233         (signal_handler): Instead of doing the config reload in our SIGHUP
6234         handler, just write to the reload pipe and let the associated
6235         watch handle the reload when control returns to the main loop.
6236  
6237         * bus/driver.c (bus_driver_handle_reload_config): Added.
6238         Implements a ReloadConfig method for requesting a configuration
6239         file reload via the bus driver.
6240  
6241 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6242
6243         * HACKING: Updated release instructions concerning the wiki page.
6244
6245 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6246
6247         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6248         filter against auth->allowed_mechs; we only add allowed mechs in
6249         record_mechanisms().
6250  
6251         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6252         ALLOWED_MECHS to auth-script format so we can set the list of
6253         allowed mechanisms.
6254  
6255         * data/auth/client-out-of-mechanisms.auth-script: New test to
6256         check client disconnects when it is out of mechanisms to try.
6257  
6258         * dbus/dbus-auth.c (process_command): Remove check for lines
6259         longer that 1 MB; we only buffer up maximum 16 kB.
6260  
6261         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6262         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6263         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6264         assume there might be unused bytes.
6265  
6266         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6267         client-out-of-mechs, it is handled in process_reject(). Move check
6268         for max failures to send_rejected(), as it's a server-only thing.
6269
6270         * dbus/dbus-auth.c: Factor out protocol reply code into functions
6271         send_auth(), send_data(), send_rejected(), send_error(),
6272         send_ok(), send_begin() and send_cancel().
6273
6274 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
6275
6276         Remove base64 encoding, replace with hex encoding. Original patch
6277         from trow@ximian.com, added error handling.
6278
6279         * dbus/dbus-string.c (_dbus_string_base64_encode)
6280         (_dbus_string_base64_decode): Remove.
6281         (_dbus_string_hex_decode): Add end_return argument so we can
6282         distinguish between OOM and invalid hex encoding.
6283         (_dbus_string_test): Remove base64 tests and add test case for
6284         invalid hex.
6285
6286         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6287         Replace base64 with hex.
6288
6289         * test/data/auth/invalid-hex-encoding.auth-script: New test case
6290         for invalid hex encoded data in auth protocol.
6291
6292 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6293
6294         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6295         leak.
6296
6297 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6298
6299         * mono/dbus-sharp.dll.config.in: Added for GAC
6300         * mono/dbus-sharp.snk: Added for GAC
6301         * mono/Assembly.cs.in: Added for GAC
6302         * mono/Makefile.am: Changes for GAC installation        
6303         * configure.in: Added refs for dbus-sharp.dll.config.in and
6304         Assembly.cs.in. More fixes for mono testing
6305         * mono/example/Makefile.am: Changed var to CSC
6306         * Makefile.am: Changed flag name to DBUS_USE_CSC
6307
6308 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
6309
6310         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6311         * mono/doc/*: Added documentation framework
6312         * configure.in: Added monodoc check
6313         * README: Added description of mono configure flags
6314
6315 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
6316
6317         * doc/dbus-specification.xml: Added a "Required" column to the 
6318         header fields table and changed the "zero or more" verbage in
6319         the above paragraph to read "The header must contain the required 
6320         named header fields and zero or more of the optional named header 
6321         fields".
6322         * test/data/invalid-messages/*.message: Added the required PATH 
6323         named header field to the tests so that they don't fail on 
6324         'Missing path field'
6325
6326 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
6327
6328         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6329         the stack by implicitly defining variable and parameter types and
6330         removing the hack of defining C pointers as python objects and later
6331         casting them.
6332
6333 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
6334
6335         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6336
6337 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
6338
6339         * mono/DBusType/Dict.cs: Handle empty dicts
6340         * mono/DBusType/Array.cs: Handle empty arrays
6341         * mono/Arguments.cs: Handle empty arguments
6342
6343 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
6344
6345         * dbus-sharp.pc.in: Modified to include include Libs and Requires
6346         field
6347
6348 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
6349
6350         * test/data/valid-messages/standard-*.message: Update message
6351         test scripts to new header field names.
6352
6353 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
6354
6355         * test/break-loader.c (randomly_do_n_things): tracked down buffer
6356         overflow to times_we_did_each_thing array which would chop off the
6357         first character of the failure_dir string. Increased the size of
6358         the array to 7 to reflect the number of random mutation functions
6359         we have.
6360
6361 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
6362
6363         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6364         unix_server->watch here, it is unreffed in disconnect.
6365         (_dbus_server_new_for_tcp_socket): convert NULL host to
6366         "localhost" here so we don't append NULL to address.
6367         
6368         * dbus/dbus-server.c (_dbus_server_test): Add test case for
6369         various addresses, including tcp with no explicit host.
6370
6371 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6372
6373         * dbus/dbus-message.c (decode_header_data, decode_string_field):
6374         fix incorrect setting of .name_offset in the HeaderField (it was
6375         off by two bytes, positioned right after the name and typecode)
6376
6377         * bus/bus.c (bus_context_new, bus_context_unref): test before
6378         calling dbus_server_free_data_slot and _dbus_user_database_unref
6379         in case of an error.
6380
6381         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6382         by libdbus-gtool.
6383
6384 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
6385
6386         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6387         _dbus_poll() instead of select().
6388
6389 2004-04-15  Jon Trowbridge  <trow@ximian.com>
6390
6391         * bus/main.c (signal_handler): Reload the configuration files
6392         on SIGHUP.
6393         (main): Set up our SIGHUP handler.
6394
6395         * bus/bus.c (struct BusContext): Store the config file, user and
6396         fork flag in the BusContext.
6397         (process_config_first_time_only): Added.  Contains the code
6398         (previously in bus_context_new) for setting up the BusContext from
6399         the BusConfigParser that should only be run the first time the
6400         config files are read.
6401         (process_config_every_time): Added.  Contains the code (previously
6402         in bus_context_new) for setting up the BusContext from the
6403         BusConfigParser that should be run every time the config files are
6404         read.
6405         (load_config): Added.  Builds a BusConfigParser from the config
6406         files and passes the resulting structure off to
6407         process_config_first_time_only (assuming this is the first time)
6408         and process_config_every_time.
6409         (bus_context_new): All of the config-related code has been moved
6410         to process_config_first_time_only and process_config_every_time.
6411         Now this function just does the non-config-related initializations
6412         and calls load_config.
6413         (bus_context_reload_config): Added.
6414
6415 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6416
6417         * bus/driver.c (bus_driver_handle_get_service_owner):
6418         implement a GetServiceOwner method.
6419         * doc/dbus-specification.xml: document it.
6420         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6421         
6422         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6423         implement, using the bus GetServiceOwner method.
6424
6425         * test/glib/test-dbus-glib.c:
6426         use dbus_gproxy_new_for_service_owner so that we can receive the
6427         signal. 
6428
6429 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
6430
6431         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6432         dbus/dbus-message.c, dbus/dbus-protocol.h
6433         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6434
6435         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6436         dbus/dbus-message.c, dbus/dbus-protocol.h
6437         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6438
6439         * dbus/dbus-internals.c (_dbus_header_field_to_string):
6440         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6441         DBUS_HEADER_FIELD_SENDER resolves to "sender"
6442
6443         * doc/dbus-specification.xml (Header Fields Table):
6444         s/SERVICE/DESTINATION
6445         s/SENDER_SERVICE/SENDER
6446
6447
6448 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6449
6450         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6451         a few seconds.
6452
6453 2004-04-13  Michael Meeks  <michael@ximian.com>
6454
6455         * glib/dbus-gobject.c (handle_introspect): split out
6456         (introspect_properties): this.
6457         (handle_introspect): implement this.
6458
6459         * test/glib/Makefile.am: use the absolute path so the bus
6460         daemon's chdir ("/") doesn't kill us dead.
6461
6462         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6463
6464 2004-04-12  Jon Trowbridge  <trow@ximian.com>
6465
6466         * bus/config-parser.c (struct BusConfigParser): Added
6467         included_files field.
6468         (seen_include): Added.  Checks whether or not a file has already
6469         been included by any parent BusConfigParser.
6470         (bus_config_parser_new): Copy the parent's included_files.
6471         (include_file): Track which files have been included, and fail on
6472         circular inclusions.
6473         (process_test_valid_subdir): Changed printf to report if we are
6474         testing valid or invalid conf files.
6475         (all_are_equiv): Changed printf to be a bit clearer about
6476         what we are actually doing.
6477         (bus_config_parser_test): Test invalid configuration files.
6478
6479 2004-04-09  Jon Trowbridge  <trow@ximian.com>
6480
6481         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6482         argument.  If non-null, the newly-constructed BusConfigParser will
6483         be initialized with the parent's BusLimits instead of the default
6484         values.
6485         (include_file): When including a config file, pass in
6486         the current parser as the parent and then copy the BusLimits
6487         from the included BusConfigParser pack to the current parser.
6488         (process_test_valid_subdir): Renamed from process_test_subdir.
6489         (process_test_equiv_subdir): Added.  Walks through a directory,
6490         descending into each subdirectory and loading the config files
6491         it finds there.  If any subdirectory contains two config files
6492         that don't produce identical BusConfigParser structs, fail.
6493         For now, the BusConfigParser's BusPolicies are not compared.
6494         (bus_config_parser_test): Call both process_test_valid_subdir and
6495         process_test_equiv_subdir.
6496
6497         * bus/config-loader-libxml.c (bus_config_load): Take a parent
6498         argument and pass it along to the call to bus_config_parser_new.
6499         Also made a few small changes to allow this code to compile.
6500
6501         * bus/config-loader-expat.c (bus_config_load): Take a parent
6502         argument and pass it along to the call to bus_config_parser_new.
6503
6504         * bus/bus.c (bus_context_new): Load the config file
6505         with a NULL parent argument.
6506
6507 2004-03-29  Michael Meeks  <michael@ximian.com>
6508
6509         * glib/dbus-gobject.c (introspect_properties): split
6510         out, fix mangled 'while' flow control.
6511         (introspect_signals): implement.
6512         (handle_introspect): update.
6513
6514 2004-03-29  Michael Meeks  <michael@ximian.com>
6515
6516         * glib/dbus-gobject.c (set_object_property): split out / 
6517         re-work, use the property type, and not the message type(!)
6518         (get_object_property): ditto.
6519
6520         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6521         (dbus_gvalue_marshal): make this code re-usable, needed
6522         for signals too, also on both proxy and server side.
6523         Re-write for more efficiency / readability.
6524
6525 2004-03-29  Michael Meeks  <michael@ximian.com>
6526
6527         * dbus/dbus-message.c
6528         (dbus_message_new_error_printf): impl.
6529
6530         * dbus/dbus-connection.c
6531         (dbus_connection_unregister_object_path): fix warning.
6532
6533         * configure.in: fix no-mono-installed situation.
6534
6535 2004-03-27  Havoc Pennington  <hp@redhat.com>
6536
6537         Patch from Timo Teräs:
6538         
6539         * tools/dbus-send.c (main): if --print-reply, assume type is
6540         method call; support boolean type args
6541         
6542         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6543         bunch of memleak and logic bugs
6544         
6545 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6546
6547         * mono/Arguments.cs:
6548         * mono/Introspector.cs:
6549         * mono/Handler.cs:
6550         * mono/InterfaceProxy.cs:
6551         * mono/Message.cs
6552         * mono/ProxyBuilder.cs:
6553         * mono/Service.cs:
6554         Added InterfaceProxy class to avoid building proxies for every
6555         object.
6556
6557         * dbus-message.h:
6558         * dbus-message.c (dbus_message_append_args_valist)
6559         (dbus_message_iter_get_object_path)
6560         (dbus_message_iter_get_object_path_array)
6561         (dbus_message_iter_append_object_path)
6562         (dbus_message_iter_append_object_path_array):
6563         Added object_path iter functions to handle OBJECT_PATH arguments
6564         
6565 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
6566
6567         First checkin of mono bindings.
6568         * configure.in:
6569         * Makefile.am:
6570         Build stuff for the bindings
6571         * dbus-sharp.pc.in: Added for pkgconfig
6572         
6573 2004-03-21  Havoc Pennington  <hp@redhat.com>
6574
6575         * test/test-service.c (main): remove debug spew
6576
6577 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6578
6579         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6580         arrays
6581
6582         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6583         (dbus_message_iter_init_array_iterator)
6584         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6585         indicate whether the iterator is empty
6586
6587         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6588         warnings
6589
6590 2004-03-19  Havoc Pennington  <hp@redhat.com>
6591
6592         * NEWS: 0.21 updates
6593
6594         * configure.in: 0.21
6595
6596         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6597         
6598         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6599         you don't need pyrex to make dist
6600
6601         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6602         sources; run moc
6603         
6604 2004-03-18  Richard Hult  <richard@imendio.com>
6605
6606         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
6607         (dbus_message_set_auto_activation): Add doxygen docs.
6608
6609 2004-03-16  Richard Hult  <richard@imendio.com>
6610
6611         * bus/activation.c: (bus_activation_service_created),
6612         (bus_activation_send_pending_auto_activation_messages),
6613         (bus_activation_activate_service):
6614         * bus/activation.h:
6615         * bus/dispatch.c: (bus_dispatch),
6616         (check_nonexistent_service_auto_activation),
6617         (check_service_auto_activated),
6618         (check_segfault_service_auto_activation),
6619         (check_existent_service_auto_activation), (bus_dispatch_test):
6620         * bus/driver.c: (bus_driver_handle_activate_service):
6621         * bus/services.c: (bus_registry_acquire_service):
6622         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6623         (dbus_message_get_auto_activation):
6624         * dbus/dbus-message.h:
6625         * dbus/dbus-protocol.h: Implement auto-activation.
6626         
6627         * doc/dbus-specification.xml: Add auto-activation to the spec.
6628
6629 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6630
6631         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6632         fix a bug with CUSTOM types.
6633
6634         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6635         a unit test for this bug (used to fail).
6636
6637 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6638
6639         * bus/activation.c:
6640         (babysitter_watch_callback): notify all pending activations waiting for
6641           the same exec that the activation failed.
6642         (bus_activation_activate_service): shortcut the activation if we 
6643           already waiting for the same executable to start up.
6644
6645 2004-03-12  Mikael Hallendal  <micke@imendio.com>
6646
6647         * bus/activation.c: 
6648         - Added service file reloading. 
6649           Each service files directory is kept in an hash table in 
6650           BusActivation and each BusActivationEntry knows what .service-file it
6651           was read from. So when you try to activate a service the bus will 
6652           check if it's been updated, removed or if new .service-files has 
6653           been installed.
6654         - Test code at the bottom for the service file reloading.
6655         * bus/test-main.c: (main):
6656         * bus/test.h:
6657         - added service reloading test.
6658         * dbus/dbus-sysdeps.c: 
6659         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6660
6661 2004-03-08  Michael Meeks  <michael@ximian.com>
6662
6663         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
6664         bail immediately if disconnected, to avoid busy loop.
6665
6666         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6667         cleanup cut/paste/inefficiency.
6668
6669 2004-03-01  David Zeuthen  <david@fubar.dk>
6670
6671         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6672         bug where args were used twice. This bug resulted in a segfault
6673         on a Debian/PPC system when starting the messagebus daemon. Include
6674         dbus-sysdeps.h for DBUS_VA_COPY
6675
6676         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6677
6678         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6679         appropriate va_copy implementation. From GLib
6680         
6681 2004-02-24  Joe Shaw  <joe@ximian.com>
6682
6683         * bus/services.c (bus_registry_acquire_service): We need to pass
6684         in the service name to dbus_set_error() to prevent a crash.
6685
6686 2003-12-26  Anders Carlsson  <andersca@gnome.org>
6687
6688         * AUTHORS: Reveal my True identity.
6689
6690 2003-12-17  Mikael Hallendal  <micke@imendio.com>
6691
6692         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
6693         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6694
6695 2003-12-13  Mikael Hallendal  <micke@imendio.com>
6696
6697         * doc/TODO: Added not about better error check of configuration files.
6698
6699 2003-12-02  Richard Hult  <richard@imendio.com>
6700
6701         * Update AFL version to 2.0 throughout the source files to reflect
6702         the update that was done a while ago.
6703
6704 2003-12-02  Richard Hult  <richard@imendio.com>
6705
6706         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6707         wrote_dict_key to FALSE on the iter that the dict is appended to,
6708         just like when appending other types. Fixes a bug where a dict
6709         couldn't be put inside a dict.
6710         (dbus_message_iter_append_dict_key): Fix typo in warning message.
6711         (message_iter_test, _dbus_message_test): Add test case for dict
6712         inside dict.
6713
6714 2003-12-01  David Zeuthen  <david@fubar.dk>
6715
6716         * python/dbus.py: Add the actual message when calling the reciever
6717         of a signal such that parameters can be inspected. Add the method
6718         remove_signal_receiver
6719         
6720 2003-11-26  Mikael Hallendal  <micke@imendio.com>
6721
6722         * bus/*.[ch]:
6723         * dbus/*.[ch]:
6724         * glib/*.[ch]: Made ref functions return the pointer
6725
6726 2003-11-25  Zack Rusin  <zack@kde.org>
6727
6728         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6729
6730         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
6731         wrappers,
6732
6733         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
6734         the Integrator and to better fit with the server,
6735
6736 2003-11-24  Zack Rusin  <zack@kde.org>
6737
6738         * qt/connection.h, qt/connection.cpp: removing initDbus method since
6739         the integrator handles it now
6740
6741         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6742         since QTimer wasn't really meant to be used the way DBusTimeout is
6743
6744 2003-11-24  Zack Rusin  <zack@kde.org>
6745
6746         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
6747         Integrator class which integrates D-BUS with the Qt event loop,
6748
6749         * qt/connection.h, qt/connection.cpp: Move all the code which
6750         was dealing with D-BUS integration to the Integrator class,
6751         and start using Integrator,
6752
6753 2003-11-23  Zack Rusin  <zack@kde.org>
6754
6755         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
6756         wrapper
6757
6758         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6759         switching namespaces to DBusQt, reworking the class,
6760
6761         * Makefile.cvs: switching dependencies so that it matches KDE 
6762         schematics,
6763         
6764         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
6765         the library
6766
6767 2003-11-19  Havoc Pennington  <hp@redhat.com>
6768
6769         * NEWS: update
6770
6771         * configure.in: bump version to 0.20
6772
6773         * configure.in (have_qt): add yet another place to look for qt
6774         (someone hand trolltech a .pc file...)
6775
6776 2003-11-01  Havoc Pennington  <hp@redhat.com>
6777
6778         * doc/dbus-specification.xml: add state machine docs on the auth
6779         protocol; just a first draft, I'm sure it's wrong.      
6780
6781 2003-10-28  David Zeuthen  <david@fubar.dk>
6782
6783         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6784         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6785         
6786 2003-10-28  Havoc Pennington  <hp@redhat.com>
6787
6788         * dbus/dbus-message.c (get_next_field): delete unused function
6789
6790 2003-10-28  Havoc Pennington  <hp@redhat.com>
6791
6792         * bus/expirelist.c (do_expiration_with_current_time): detect
6793         failure of the expire_func due to OOM
6794
6795         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6796
6797         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6798         NoReply error that's now created by the bus when the service exits
6799
6800 2003-10-28  Havoc Pennington  <hp@redhat.com>
6801
6802         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6803         tests for set_path, set_interface, set_member, etc.
6804
6805         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6806
6807         * dbus/dbus-message.c (set_string_field): always just delete and
6808         re-append the field; accept NULL for deletion
6809         (re_align_fields_recurse): reimplement
6810         
6811 2003-10-26  Havoc Pennington  <hp@redhat.com>
6812
6813         * dbus/dbus-connection.c: fix docs to properly describe the
6814         disconnected message
6815         (_dbus_connection_notify_disconnected): remove this function; 
6816         we can't synchronously add the disconnected message, we have to 
6817         do it after we've queued any remaining real messages
6818         (_dbus_connection_get_dispatch_status_unlocked): queue the
6819         disconnect message only if the transport has finished queueing all
6820         its real messages and is disconnected.
6821         (dbus_connection_disconnect): update the dispatch status here
6822
6823 2003-10-22  Havoc Pennington  <hp@redhat.com>
6824
6825         * bus/bus.c (bus_context_check_security_policy): fix up assertion
6826
6827         * bus/connection.c (bus_transaction_send_from_driver): set the
6828         destination to the connection's base service
6829
6830 2003-10-20  Havoc Pennington  <hp@redhat.com>
6831
6832         hmm, make check is currently not passing.
6833         
6834         * doc/dbus-specification.xml: add requirement that custom type
6835         names follow the same rules as interface names.
6836
6837         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6838         duplication and allow 'c' to be 'custom'; dict is now 'm' for
6839         'map'
6840
6841         * doc/dbus-specification.xml: update type codes to match
6842         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6843         CUSTOM. Add type OBJECT_PATH to the spec.
6844
6845 2003-10-17  Havoc Pennington  <hp@redhat.com>
6846
6847         * bus/driver.c (create_unique_client_name): use "." as separator
6848         in base service names instead of '-'
6849
6850         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6851         byte at the end of the string
6852
6853         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6854         optimization macros since string validation seems to be a slow
6855         point.
6856         
6857         * doc/dbus-specification.xml: restrict valid
6858         service/interface/member/error names. Add test suite code for the
6859         name validation.
6860
6861         * dbus/dbus-string.c: limit service/interface/member/error names 
6862         to [0-9][A-Z][a-z]_
6863
6864         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6865         format arg to verbose spew
6866
6867         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6868         memory, return instead of g_error
6869
6870         * test/test-service.c (path_message_func): support emitting a
6871         signal on request
6872
6873         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
6874         activation bus type if DBUS_BUS_ACTIVATION was set; default to
6875         assuming the activation bus was the session bus so that services
6876         started manually will still register.
6877         (init_connections_unlocked): fix so that in OOM situation we get
6878         the same semantics when retrying the function
6879         
6880         * test/test-service.c (main): change to use path registration, to
6881         test those codepaths; register with DBUS_BUS_ACTIVATION rather
6882         than DBUS_BUS_SESSION
6883
6884 2003-10-16  Havoc Pennington  <hp@redhat.com>
6885
6886         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
6887
6888         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
6889         coverage of the tests
6890         (coverage-report.txt): don't move the .da and .bbg files around
6891
6892 2003-10-16  Havoc Pennington  <hp@redhat.com>
6893
6894         * bus/bus.c (struct BusContext): remove struct field I didn't mean
6895         to put there
6896
6897 2003-10-16  Havoc Pennington  <hp@redhat.com>
6898
6899         * bus/connection.c (bus_pending_reply_expired): either cancel or
6900         execute, not both
6901         (bus_connections_check_reply): use unlink, not remove_link, as we
6902         don't want to free the link; fixes double free mess
6903
6904         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
6905         where no reply was received
6906
6907         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
6908         fix a refcount leak
6909
6910         * bus/signals.c (match_rule_matches): add special cases for the
6911         bus driver, so you can match on sender/destination for it.
6912
6913         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
6914         DBUS_PRINT_BACKTRACE is set
6915
6916         * dbus/dbus-internals.c: add pid to assertion failure messages
6917
6918         * dbus/dbus-connection.c: add message type code to the debug spew
6919
6920         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
6921         sender=foo not service=foo
6922
6923         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
6924         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
6925         DBUS_ACTIVATION_ADDRESS instead
6926
6927         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
6928         DBUS_SYSTEM_BUS_ADDRESS if appropriate
6929
6930         * bus/bus.c (bus_context_new): handle OOM copying bus type into
6931         context struct
6932
6933         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
6934         (dbus_message_iter_get_object_path_array): new function (half
6935         finished, disabled for the moment)
6936         
6937         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
6938         DBUS_MESSAGE_TYPE_ERROR
6939
6940         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
6941         avoid redirecting stderr to /dev/null
6942         (babysit): close stdin if not doing the "exit_with_session" thing
6943
6944         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
6945         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
6946         stdout/stdin, so things don't get confused
6947         
6948         * bus/system.conf.in: fix to allow replies, I modified .conf
6949         instead of .conf.in again.
6950
6951 2003-10-14  David Zeuthen  <david@fubar.dk>
6952
6953         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
6954         argtype to arg_type when raising unknown arg type exception.
6955         Changed type list to reflect the changes in dbus-protocol.h so 
6956         the bindings actually work.
6957
6958 2003-10-14  Havoc Pennington  <hp@redhat.com>
6959
6960         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
6961         to have a bug keeping it from outputting the .da files sometimes
6962         (string_get_string): don't append garbage nul bytes to the string.
6963
6964 2003-10-15  Seth Nickell  <seth@gnome.org>
6965
6966         * python/Makefile.am:
6967
6968         Include dbus_h_wrapper.h in the dist tarball.
6969
6970 2003-10-14  Havoc Pennington  <hp@redhat.com>
6971
6972         * bus/bus.c (bus_context_check_security_policy): revamp this to
6973         work more sanely with new policy-based requested reply setup
6974
6975         * bus/connection.c (bus_transaction_send_from_driver): set bus
6976         driver messages as no reply
6977
6978         * bus/policy.c (bus_client_policy_check_can_receive): handle a
6979         requested_reply attribute on allow/deny rules
6980
6981         * bus/system.conf: add <allow requested_reply="true"/>
6982
6983         * bus/driver.c (bus_driver_handle_message): fix check for replies
6984         sent to the bus driver, which was backward. How did this ever work
6985         at all though? I think I'm missing something.
6986
6987         * dbus/dbus-message.c (decode_header_data): require error and
6988         method return messages to have a reply serial field to be valid
6989         (_dbus_message_loader_queue_messages): break up this function;
6990         validate that reply serial and plain serial are nonzero; 
6991         clean up the OOM/error handling.
6992         (get_uint_field): don't return -1 from this
6993         (dbus_message_create_header): fix signed/unsigned bug
6994
6995         * bus/connection.c (bus_connections_expect_reply): save serial of
6996         the incoming message, not reply serial
6997
6998 2003-10-14  Havoc Pennington  <hp@redhat.com>
6999
7000         * bus/connection.c: implement pending reply tracking using
7001         BusExpireList
7002
7003         * bus/bus.c (bus_context_check_security_policy): verify that a
7004         reply is pending in order to allow a reply to be sent. Deny 
7005         messages of unknown type.
7006
7007         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7008
7009         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7010         (bus_context_get_reply_timeout): new
7011
7012 2003-10-13  Seth Nickell  <seth@gnome.org>
7013
7014         * python/Makefile.am:
7015
7016         Pass "make distcheck": remove a couple files from DIST_FILES
7017         that weren't included in the final version.
7018
7019 2003-10-12  Havoc Pennington  <hp@pobox.com>
7020
7021         Added test code that 1) starts an actual bus daemon and 2) uses
7022         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7023         more testing possible, but this is the basic framework.
7024         
7025         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7026         empty proxy lists from the proxy list hash
7027
7028         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7029         couple of return_if_fail checks
7030
7031         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7032         to allocate, so everything is cleared to NULL as it should be.
7033
7034         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7035         source as data to dbus_connection_set_timeout_functions() as the 
7036         timeout functions expected
7037
7038         * test/glib/run-test.sh: add a little script to start up a message
7039         bus and run tests using it
7040
7041         * tools/dbus-launch.1: updates
7042
7043         * tools/dbus-launch.c (main): add --config-file option
7044
7045         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7046         that could never be reached.
7047
7048         * dbus/dbus-message.c (dbus_message_new_method_return) 
7049         (dbus_message_new_error, dbus_message_new_signal): set the
7050         no-reply-expected flag on all these. Redundant, but may
7051         as well be consistent.
7052
7053 2003-10-11  Havoc Pennington  <hp@pobox.com>
7054
7055         * test/decode-gcov.c (function_solve_graph): make broken block
7056         graph a nonfatal error since it seems to be broken. Need to debug
7057         this.
7058
7059         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7060         can't just check type > INVALID < LAST anymore
7061
7062         * dbus/dbus-message.c (dbus_message_get_signature): new function
7063         (dbus_message_has_signature): new function
7064         (struct DBusMessage): add signature field (right now it isn't sent
7065         over the wire, just generated on the fly)
7066         (dbus_message_copy): copy the signature, and init strings to
7067         proper length to avoid some reallocs
7068         (dbus_message_iter_init_array_iterator): return void, since it
7069         can't fail
7070         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7071         (_dbus_message_loader_queue_messages): add silly temporary hack to
7072         fill in message->signature on load
7073
7074         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7075         characters, so they are relatively human-readable.
7076
7077 2003-10-11  Havoc Pennington  <hp@pobox.com>
7078
7079         * dbus/dbus-message.c (_dbus_message_test): add more test
7080         coverage, but #if 0 for now since they uncover a bug 
7081         not fixed yet; I think in re_align_field_recurse()
7082         (re_align_field_recurse): add FIXME about broken assertion
7083
7084         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7085
7086         * bus/connection.c: share a couple code bits with expirelist.c
7087
7088         * bus/expirelist.h, bus/expirelist.c: implement a generic
7089         expire-items-after-N-seconds facility, was going to share between
7090         expiring connections and replies, decided not to use for expiring
7091         connections for now.
7092
7093         * COPYING: include AFL 2.0 (still need to change all the file headers)
7094
7095 2003-10-09  Havoc Pennington  <hp@redhat.com>
7096
7097         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7098         gcc 3.3. Not that we do anything about it yet.
7099
7100         * bus/signals.c (bus_match_rule_parse): impose max length on the
7101         match rule text
7102
7103         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7104
7105 2003-10-09  Havoc Pennington  <hp@redhat.com>
7106
7107         Make matching rules theoretically work (add parser).
7108         
7109         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7110         the case where destination is explicitly specified as bus driver
7111         and someone else is eavesdropping.
7112         
7113         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7114         definition of eavesdropping and assertion
7115
7116         * tools/dbus-send.c (main): use dbus_message_type_from_string
7117
7118         * bus/signals.c (bus_match_rule_parse): implement
7119
7120         * dbus/dbus-message.c (dbus_message_type_from_string): new
7121
7122         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7123
7124 2003-10-02  Havoc Pennington  <hp@pobox.com>
7125
7126         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7127         dbus_gproxy_oneway_call
7128
7129         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7130         (dbus_server_setup_with_g_main): fix to allow calling them more
7131         than once on the same args
7132         (dbus_bus_get_with_g_main): new function
7133
7134 2003-10-02  Havoc Pennington  <hp@redhat.com>
7135
7136         * doc/dbus-tutorial.xml: write some stuff
7137
7138 2003-09-29  Havoc Pennington  <hp@pobox.com>
7139
7140         * configure.in: split checks for Doxygen from XML docs, check for
7141         xmlto
7142
7143         * doc/Makefile.am: XML-ify all the docs, and add a blank
7144         dbus-tutorial.xml
7145
7146 2003-09-29  Havoc Pennington  <hp@pobox.com>
7147
7148         * Merge dbus-object-names branch. To see the entire patch 
7149         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7150         it's huuuuge though.
7151         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7152         
7153 2003-09-28  Havoc Pennington  <hp@pobox.com>
7154
7155         * HACKING: update to reflect new server
7156
7157 2003-09-26  Seth Nickell  <seth@gnome.org>
7158
7159         * python/dbus.py:
7160         * python/examples/example-signals.py:
7161
7162         Start implementing some notions of signals. The API
7163         is really terrible, but they sort of work (with the
7164         exception of being able to filter by service, and to
7165         transmit signals *as* a particular service). Need to
7166         figure out how to make messages come from the service
7167         we registered :-(
7168         
7169         * python/dbus_bindings.pyx.in:
7170
7171         Removed duplicate message_handler callbacks.
7172         
7173 2003-09-25  Havoc Pennington  <hp@redhat.com>
7174
7175         * bus/session.conf.in: fix my mess
7176
7177 2003-09-25  Havoc Pennington  <hp@pobox.com>
7178
7179         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7180
7181 2003-09-25  Seth Nickell  <seth@gnome.org>
7182
7183         * python/examples/example-service.py:
7184
7185         Johan notices complete wrong code in example-service, but
7186         completely wrong in a way that works exactly the same (!).
7187         Johan is confused, how could this possibly work? Example
7188         code fails to serve purpose of making things clear.
7189         Seth fixes.
7190
7191 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7192
7193         * doc/dbus-specification.sgml: don't require header fields
7194         to be 4-byte aligned and specify that fields should be
7195         distinguished from padding by the fact that zero is not
7196         a valid field name.
7197         
7198         * doc/TODO: remove re-alignment item and add item to doc
7199         the OBJECT_PATH type.
7200         
7201         * dbus/dbus-message.c:
7202         (HeaderField): rename the original member to value_offset
7203         and introduce a name_offset member to keep track of where
7204         the field actually begins.
7205         (adjust_field_offsets): remove.
7206         (append_int_field), (append_uint_field),
7207         (append_string_field): don't align the start of the header
7208         field to a 4-byte boundary.
7209         (get_next_field): impl finding the next marhsalled field
7210         after a given field.
7211         (re_align_field_recurse): impl re-aligning a number of
7212         already marshalled fields.
7213         (delete_field): impl deleting a field of any type and
7214         re-aligning any following fields.
7215         (delete_int_or_uint_field), (delete_string_field): remove.
7216         (set_int_field), (set_uint_field): no need to re-check
7217         that we have the correct type for the field.
7218         (set_string_field): ditto and impl re-aligning any
7219         following fields.
7220         (decode_header_data): update to take into account that
7221         the fields aren't 4-byte aligned any more and the new
7222         way to distinguish padding from header fields. Also,
7223         don't exit when there is too much header padding.
7224         (process_test_subdir): print the directory.
7225         (_dbus_message_test): add test to make sure a following
7226         field is re-aligned correctly after field deletion.
7227         
7228         * dbus/dbus-string.[ch]:
7229         (_dbus_string_insert_bytes): rename from insert_byte and
7230         allow the insert of multiple bytes.
7231         (_dbus_string_test): test inserting multiple bytes.
7232
7233         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7234         warning note to docs about having to re-align any
7235         marshalled values following the string.
7236         
7237         * dbus/dbus-message-builder.c:
7238         (append_string_field), (_dbus_message_data_load):
7239         don't align the header field.
7240         
7241         * dbus/dbus-auth.c: (process_test_subdir): print the
7242         directory.
7243         
7244         * test/break-loader.c: (randomly_add_one_byte): upd. for
7245         insert_byte change.
7246         
7247         * test/data/invalid-messages/bad-header-field-alignment.message:
7248         new test case.
7249         
7250         * test/data/valid-messages/unknown-header-field.message: shove
7251         a dict in the unknown field.
7252
7253 2003-09-25  Seth Nickell  <seth@gnome.org>
7254
7255         * python/dbus.py:
7256         * python/dbus_bindings.pyx.in:
7257
7258         Handle return values.
7259         
7260         * python/examples/example-client.py:
7261         * python/examples/example-service.py:
7262
7263         Pass back return values from the service to the client.
7264         
7265 2003-09-24  Seth Nickell  <seth@gnome.org>
7266
7267         * python/dbus.py:
7268
7269         Connect Object methods (when you are sharing an object) up... pass
7270         in a list of methods to be shared. Sharing all the methods just
7271         worked out too weird. You can now create nice Services over the
7272         DBus in Python. :-)
7273         
7274         * python/dbus_bindings.pyx.in:
7275
7276         Keep references to user_data tuples passed into C functions so 
7277         Python doesn't garbage collect on us.
7278
7279         Implement MethodReturn and Error subclasses of Message for creating
7280         DBusMessage's of those types.
7281         
7282         * python/examples/example-client.py:
7283         * python/examples/example-service.py:
7284
7285         Simple example code showing both how create DBus services and objects,
7286         and how to use them.
7287
7288 2003-09-23  Havoc Pennington  <hp@pobox.com>
7289
7290         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7291
7292 2003-09-23  Havoc Pennington  <hp@redhat.com>
7293
7294         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7295         (dbus_gproxy_disconnect_signal): implement
7296         (dbus_gproxy_manager_remove_signal_match): implement
7297         (dbus_gproxy_manager_add_signal_match): implement
7298         (dbus_gproxy_oneway_call): implement
7299
7300 2003-09-23  Havoc Pennington  <hp@pobox.com>
7301
7302         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7303         subclass. This means dropping the transparent thread safety of the
7304         proxy; you now need a separate proxy per-thread, or your own
7305         locking on the proxy. Probably right anyway.
7306         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7307
7308 2003-09-22  Havoc Pennington  <hp@redhat.com>
7309
7310         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7311
7312 2003-09-21  Seth Nickell  <seth@gnome.org>
7313
7314         First checkin of the Python bindings.
7315         
7316         * python/.cvsignore:
7317         * python/Makefile.am:
7318         * python/dbus_bindings.pyx.in:
7319         * python/dbus_h_wrapper.h:
7320
7321         Pieces for Pyrex to operate on, building a dbus_bindings.so
7322         python module for low-level access to the DBus APIs.
7323         
7324         * python/dbus.py:
7325
7326         High-level Python module for accessing DBus objects.
7327
7328         * configure.in:
7329         * Makefile.am:
7330
7331         Build stuff for the python bindings.
7332
7333         * acinclude.m4:
7334
7335         Extra macro needed for finding the Python C header files.
7336
7337 2003-09-21  Havoc Pennington  <hp@pobox.com>
7338
7339         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7340         implementing the proxy manager, didn't get very far.
7341
7342         * dbus/dbus-bus.c (dbus_bus_add_match): new
7343         (dbus_bus_remove_match): new
7344
7345         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7346         path_name argument; adjust the other not-yet-implemented 
7347         gproxy constructors to be what I think they should be.
7348
7349 2003-09-21  Havoc Pennington  <hp@pobox.com>
7350
7351         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7352         by default for message bus connections.
7353
7354         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7355         exit_on_disconnect flag is set and we process the disconnected
7356         signal.
7357         (dbus_connection_set_exit_on_disconnect): new function
7358
7359 2003-09-21  Havoc Pennington  <hp@pobox.com>
7360
7361         Get matching rules mostly working in the bus; only actually
7362         parsing the rule text remains. However, the client side of
7363         "signal connections" hasn't been started, this patch is only the
7364         bus side.
7365         
7366         * dbus/dispatch.c: fix for the matching rules changes
7367         
7368         * bus/driver.c (bus_driver_handle_remove_match)
7369         (bus_driver_handle_add_match): send an ack reply from these
7370         method calls
7371
7372         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7373         arguments, reported by Seth Nickell
7374
7375         * bus/config-parser.c (append_rule_from_element): support
7376         eavesdrop=true|false attribute on policies so match rules 
7377         can be prevented from snooping on the system bus.
7378
7379         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7380         and "destination" in attribute names; fix some docs bugs; 
7381         add eavesdrop=true|false attribute
7382
7383         * bus/driver.c (bus_driver_handle_add_match)
7384         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7385         messages
7386
7387         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7388         rid of broadcast service concept, signals are just always broadcast
7389
7390         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7391         mostly implement matching rules stuff (currently only exposed as signal
7392         connections)
7393
7394 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
7395
7396         * doc/dbus-specification.sgml: Change the header field name
7397         to be an enum and update the rest of the spec to reference
7398         the fields using the conventinal name.
7399
7400         * dbus/dbus-protocol.h: update to reflect the spec.
7401
7402         * doc/TODO: add item to remove the 4 byte alignment requirement.
7403         
7404         * dbus/dbus-message.c: Remove the code to generalise the
7405         header/body length and serial number header fields as named
7406         header fields so we can reference field names using the 
7407         protocol values.
7408         (append_int_field), (append_uint_field), (append_string_field):
7409         Append the field name as a byte rather than four chars.
7410         (delete_int_or_uint_field), (delete_string_field): reflect the
7411         fact that the field name and typecode now occupy 4 bytes instead
7412         of 8.
7413         (decode_string_field), (decode_header_data): update to reflect
7414         protocol changes and move the field specific encoding from
7415         decode_string_field() back into decode_header_data().
7416         
7417         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7418         Add utility to aid debugging.
7419         
7420         * dbus/dbus-message-builder.c:
7421         (append_string_field), (_dbus_message_data_load): Update to
7422         reflect protocol changes; Change the FIELD_NAME directive
7423         to HEADER_FIELD and allow it to take the field's conventional
7424         name rather than the actual value.
7425         
7426         * test/data/*/*.message: Update to use HEADER_FIELD instead
7427         of FIELD_NAME; Always align the header on an 8 byte boundary
7428         *before* updating the header length.
7429
7430 2003-09-15  Havoc Pennington  <hp@pobox.com>
7431
7432         * dbus/dbus-pending-call.c: add the get/set object data
7433         boilerplate as for DBusConnection, etc. Use generic object data
7434         for the notify callback.
7435
7436         * glib/dbus-gparser.c (parse_node): parse child nodes
7437
7438         * tools/dbus-viewer.c: more hacking on the dbus-viewer
7439         
7440         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7441         contain functions shared between the convenience lib and the
7442         installed lib
7443
7444         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7445         -export-symbols-regex to the GLib library
7446
7447         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7448         fix the locking in here, and add a default handler for
7449         Introspect() that just returns sub-nodes.
7450
7451 2003-09-14  Havoc Pennington  <hp@pobox.com>
7452
7453         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7454         rather than gfoo consistent
7455
7456         * glib/dbus-gproxy.h: delete for now, move contents to
7457         dbus-glib.h, because the include files don't work right since we
7458         aren't in the dbus/ subdir.
7459         
7460         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7461         (dbus_gproxy_end_call): finish
7462         (dbus_gproxy_begin_call): finish
7463
7464         * glib/dbus-gmain.c (dbus_set_g_error): new
7465
7466         * glib/dbus-gobject.c (handle_introspect): include information
7467         about child nodes in the introspection
7468
7469         * dbus/dbus-connection.c (dbus_connection_list_registered): new
7470         function to help in implementation of introspection
7471
7472         * dbus/dbus-object-tree.c
7473         (_dbus_object_tree_list_registered_and_unlock): new function
7474
7475 2003-09-12  Havoc Pennington  <hp@pobox.com>
7476
7477         * glib/dbus-gidl.h: add common base class for all the foo_info
7478         types
7479
7480         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7481         similar to kdcop
7482
7483         * test/Makefile.am: try test srcdir -ef . in addition to test
7484         srcdir = ., one of them should work (yeah lame)
7485         
7486         * glib/Makefile.am: build the "idl" parser stuff as a convenience
7487         library
7488         
7489         * glib/dbus-gparser.h: make description_load routines return
7490         NodeInfo* not Parser*
7491
7492         * Makefile.am (SUBDIRS): build test dir after all library dirs
7493
7494         * configure.in: add GTK+ detection
7495
7496 2003-09-07  Havoc Pennington  <hp@pobox.com>
7497
7498         * Make Doxygen contented.
7499
7500 2003-09-07  Havoc Pennington  <hp@pobox.com>
7501
7502         * doc/dbus-specification.sgml: more updates
7503
7504 2003-09-06  Havoc Pennington  <hp@pobox.com>
7505
7506         * doc/dbus-specification.sgml: partial updates
7507
7508         * bus/dbus-daemon-1.1.in: fix the config file docs for the
7509         zillionth time; hopefully I edited the right file this time.
7510
7511         * bus/config-parser.c (append_rule_from_element): support
7512         send_type, send_path, receive_type, receive_path
7513
7514         * bus/policy.c: add message type and path to the list of things
7515         that can be "firewalled"
7516
7517 2003-09-06  Havoc Pennington  <hp@pobox.com>
7518
7519         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7520         (dbus_connection_register_object_path): make this not handle
7521         messages to paths below the given path
7522
7523 2003-09-03  Havoc Pennington  <hp@pobox.com>
7524
7525         * test/glib/Makefile.am: add this with random glib-linked test
7526         programs
7527
7528         * glib/Makefile.am: remove the random test programs from here,
7529         leave only the unit tests
7530
7531         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
7532         uscore/javacaps conversion, and fix     
7533         (get_object_property, set_object_property): change to .NET
7534         convention for mapping props to methods, set_FooBar/get_FooBar, 
7535         since one language has such a convention we may as well copy it. 
7536         Plus real methods in either getFooBar or get_foo_bar style won't 
7537         collide with this convention.
7538
7539 2003-09-01  Havoc Pennington  <hp@pobox.com>
7540
7541         * glib/dbus-gparser.c: implement
7542
7543         * glib/dbus-gobject.c: start implementing skeletons support
7544
7545         * configure.in: when disabling checks/assert, also define
7546         G_DISABLE_ASSERT and G_DISABLE_CHECKS
7547
7548 2003-09-01  Havoc Pennington  <hp@pobox.com>
7549
7550         * glib/Makefile.am: rearrange a bunch of files and get "make
7551         check" framework set up
7552
7553 2003-08-31  Havoc Pennington  <hp@pobox.com>
7554
7555         * fix build with --disable-tests
7556
7557 2003-08-30  Havoc Pennington  <hp@pobox.com>
7558
7559         * dbus/dbus-connection.c: purge DBusMessageHandler
7560
7561         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
7562         use callbacks everywhere
7563
7564 2003-08-30  Havoc Pennington  <hp@pobox.com>
7565
7566         * test/data/valid-config-files/system.d/test.conf: change to 
7567         root for the user so warnings don't get printed
7568
7569         * dbus/dbus-message.c: add dbus_message_get_path,
7570         dbus_message_set_path
7571         
7572         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7573         dispatching to a path
7574
7575         * dbus/dbus-string.c (_dbus_string_validate_path): add
7576
7577         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7578         (_dbus_marshal_object_path): implement
7579
7580         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
7581         to contain the path to the target object
7582         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7583         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7584
7585 2003-08-30  Havoc Pennington  <hp@pobox.com>
7586
7587         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7588
7589 2003-08-29  Havoc Pennington  <hp@pobox.com>
7590
7591         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7592         registered
7593         (struct DBusObjectSubtree): shrink this
7594         a lot, since we may have a lot of them
7595         (_dbus_object_tree_free_all_unlocked): implement
7596         (_dbus_object_tree_dispatch_and_unlock): implement
7597
7598 2003-08-29  Havoc Pennington  <hp@pobox.com>
7599
7600         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7601
7602 2003-08-28  Havoc Pennington  <hp@pobox.com>
7603
7604         purge DBusObjectID
7605         
7606         * dbus/dbus-connection.c: port to no ObjectID, create a
7607         DBusObjectTree, rename ObjectTree to ObjectPath in public API
7608
7609         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
7610         everything except UnregisterFunction and MessageFunction
7611         
7612         * dbus/dbus-marshal.c: port away from DBusObjectID, 
7613         add DBUS_TYPE_OBJECT_PATH
7614         
7615         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
7616         dbus/dbus-objectid.[hc]: remove these, we are moving to 
7617         path-based object IDs
7618
7619 2003-08-25  Havoc Pennington  <hp@pobox.com>
7620
7621         Just noticed that dbus_message_test is hosed, I wonder when I
7622         broke that. I thought make check was passing earlier...
7623         
7624         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
7625         container tree, will replace most of dbus-object-registry
7626
7627         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7628         screwup
7629
7630 2003-08-19  Havoc Pennington  <hp@pobox.com>
7631
7632         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7633         (dbus_message_is_error): fix this function
7634
7635         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7636         match
7637
7638         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7639         reflect clarified man page
7640         (bus_client_policy_check_can_send): ditto
7641         
7642         * bus/session.conf.in: fixup
7643
7644         * bus/system.conf.in: fixup
7645
7646 2003-08-18  Havoc Pennington  <hp@redhat.com>
7647
7648         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7649
7650         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7651         dumb bug created earlier (wrong order of args to
7652         decode_header_data())
7653         
7654         * tools/dbus-send.c: port
7655
7656         * tools/dbus-print-message.c (print_message): port
7657
7658         * test/data/*messages: port all messages over
7659         
7660         * dbus/dbus-message-builder.c: support including 
7661         message type
7662         
7663         * bus/driver.c: port over
7664         
7665         * bus/dispatch.c: port over to new stuff
7666
7667         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7668         rename disconnect signal to "Disconnected"
7669
7670 2003-08-17  Havoc Pennington  <hp@pobox.com>
7671
7672         This doesn't compile yet, but syncing up so I can hack on it from
7673         work. What are branches for if not broken code? ;-)
7674         
7675         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7676         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7677         DBUS_HEADER_FIELD_ERROR_NAME
7678         
7679         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7680         for the interface+member pairs
7681         (string_hash): change to use g_str_hash algorithm
7682         (find_direct_function, find_string_function): refactor these to
7683         share most code.
7684         
7685         * dbus/dbus-message.c: port all of this over to support 
7686         interface/member fields instead of name field
7687
7688         * dbus/dbus-object-registry.c: port over
7689         
7690         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7691         from _dbus_string_validate_name
7692
7693         * bus/dbus-daemon-1.1: change file format for the 
7694         <deny>/<allow> stuff to match new message naming scheme
7695
7696         * bus/policy.c: port over
7697
7698         * bus/config-parser.c: parse new format
7699         
7700 2003-08-16  Havoc Pennington  <hp@pobox.com>
7701
7702         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7703         broken assertion
7704
7705         * glib/dbus-gproxy.c: some hacking
7706
7707 2003-08-15  Havoc Pennington  <hp@redhat.com>
7708
7709         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7710
7711         * dbus/dbus-connection.c
7712         (dbus_connection_send_with_reply_and_block): factor out internals;
7713         change to convert any error replies to DBusError instead of 
7714         returning them as a message
7715
7716 2003-08-15  Havoc Pennington  <hp@pobox.com>
7717
7718         * dbus/dbus-connection.c, 
7719         dbus/dbus-pending-call.c: Finish the pending call stuff
7720
7721 2003-08-14  Havoc Pennington  <hp@redhat.com>
7722
7723         * dbus/dbus-pending-call.c: start on new object that will replace
7724         DBusMessageHandler and ReplyHandlerData for tracking outstanding
7725         replies
7726
7727         * dbus/dbus-gproxy.c: start on proxy object used to communicate
7728         with remote interfaces
7729
7730         * dbus/dbus-gidl.c: do the boring boilerplate in here
7731         
7732 2003-08-12  Havoc Pennington  <hp@pobox.com>
7733
7734         * bus/dispatch.c (bus_dispatch): make this return proper 
7735         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7736
7737         * dbus/dbus-errors.c (dbus_set_error): use
7738         _dbus_string_append_printf_valist
7739
7740         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7741         (_dbus_string_append_printf): new
7742
7743         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7744         UNKNOWN_METHOD
7745
7746         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7747         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7748         message is unhandled.
7749
7750 2003-08-11  Havoc Pennington  <hp@pobox.com>
7751
7752         * bus/test.c (client_disconnect_handler): change to return
7753         HANDLED (would have been REMOVE_MESSAGE)
7754
7755         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7756         HANDLED/NOT_YET_HANDLED instead of
7757         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
7758         should be used.
7759
7760 2003-08-10  Havoc Pennington  <hp@pobox.com>
7761
7762         * tools/dbus-send.c (main): add --type argument, for now
7763         supporting only method_call and signal types.
7764
7765         * tools/dbus-print-message.c: print message type
7766
7767         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7768         init connection->objects
7769
7770         * doc/dbus-specification.sgml: fix sgml
7771
7772         * bus/*.c: port over to object-instance API changes
7773
7774         * test/test-service.c: ditto
7775         
7776         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7777         name, we will have to fix up the rest of the code to also handle
7778         this
7779         (dbus_message_new): generic message-creation call
7780         (set_string_field): allow appending name field
7781
7782 2003-08-06  Havoc Pennington  <hp@pobox.com>
7783
7784         * dbus/dbus-object-registry.c: implement signal connection 
7785         and dispatch
7786
7787         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7788
7789         * dbus/dbus-internals.c (_dbus_memdup): new function
7790
7791 2003-08-02  Havoc Pennington  <hp@pobox.com>
7792
7793         * dbus/dbus-message.c (dbus_message_get_no_reply)
7794         (dbus_message_set_no_reply): add these and remove
7795         set_is_error/get_is_error
7796
7797         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
7798         remove the ERROR flag, since there's now an ERROR type
7799
7800 2003-08-01  Havoc Pennington  <hp@pobox.com>
7801
7802         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7803         implement
7804
7805         * dbus/dbus-message.c (dbus_message_get_type): new function
7806
7807         * doc/dbus-specification.sgml: add "type" byte to messages
7808
7809 2003-08-01  Havoc Pennington  <hp@pobox.com>
7810
7811         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7812         a message type enum to distinguish kinds of message
7813         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
7814         that need not be replied to
7815
7816 2003-08-01  Havoc Pennington  <hp@pobox.com>
7817
7818         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7819         (unpack_8_octets): fix no-64-bit-int bug
7820
7821         * dbus/dbus-object-registry.c (validate_id): validate the 
7822         connection ID bits, not just the instance ID.
7823
7824         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7825         the connection-global 33 bits of the object ID
7826
7827         * dbus/dbus-object-registry.c (info_from_entry): fill in 
7828         object ID in the new way
7829
7830         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
7831         define server/client/instance bits.
7832
7833 2003-07-30  Havoc Pennington  <hp@pobox.com>
7834
7835         * dbus/dbus-connection.c (dbus_connection_register_object): fix
7836         build
7837
7838 2003-07-13  Havoc Pennington  <hp@pobox.com>
7839
7840         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7841         fields to DBusObjectVTable and DBusObjectInfo
7842
7843 2003-07-12  Havoc Pennington  <hp@pobox.com>
7844
7845         * dbus/dbus-object-registry.c: implement unit test,
7846         fix bugs discovered in process
7847
7848         * dbus/dbus-connection.c: remove handler_table and
7849         register_handler(), add DBusObjectRegistry usage
7850
7851         * dbus/dbus-objectid.c (dbus_object_id_is_null)
7852         (dbus_object_id_set_null): new functions
7853
7854 2003-07-08  Havoc Pennington  <hp@pobox.com>
7855
7856         * dbus/dbus-object.c: implement some of this
7857
7858         * dbus/dbus-object-registry.c
7859         (_dbus_object_registry_add_and_unlock): fill in the object_id out
7860         param
7861         (_dbus_object_registry_new): handle OOM
7862
7863 2003-07-08  Havoc Pennington  <hp@pobox.com>
7864
7865         * dbus/dbus-object.h: sketch out an API for registering objects
7866         with a connection, that allows us to use as little as 24 bytes
7867         per object and lets application code represent an object in 
7868         any conceivable way.
7869
7870         * dbus/dbus-object-registry.c: implement the hard bits of the
7871         DBusConnection aspect of object API. Not yet wired up.
7872         
7873 2003-07-06  Havoc Pennington  <hp@pobox.com>
7874
7875         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
7876         (_dbus_marshal_object_id): new
7877         (_dbus_demarshal_object_id): new
7878         (_dbus_marshal_get_arg_end_pos): support object ID type, and
7879         consolidate identical switch cases. Don't conditionalize handling
7880         of DBUS_TYPE_UINT64, need to handle the type always.
7881         (_dbus_marshal_validate_arg): consolidate identical cases, and
7882         handle DBUS_TYPE_OBJECT_ID
7883
7884         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
7885
7886         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
7887
7888 2003-09-28  Havoc Pennington  <hp@pobox.com>
7889
7890         * real 0.13 release
7891
7892 2003-09-28  Havoc Pennington  <hp@pobox.com>
7893
7894         * doc/Makefile.am (dbus-specification.html): testing a funky hack
7895         to work with Debian db2html
7896
7897 2003-09-28  Havoc Pennington  <hp@pobox.com>
7898
7899         * configure.in: 0.13
7900
7901         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
7902         stylesheet-images for benefit of Debian
7903         
7904         Change back to using filesystem-linked sockets for the system
7905         bus, so only root can create the default system bus address.
7906         
7907         * bus/system.conf.in: change to use
7908         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7909
7910         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
7911         from here.
7912
7913         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7914         here, and AC_DEFINE DBUS_SYSTEM_PATH
7915
7916 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7917
7918         * doc/TODO:
7919         * doc/busconfig.dtd:
7920         Add busconfig DTD.
7921         
7922 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
7923
7924         * doc/dbus-specification.sgml:
7925         Add activation reply values.
7926         
7927 2003-08-05  Havoc Pennington  <hp@redhat.com>
7928
7929         * configure.in: 0.12
7930
7931 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
7932
7933         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
7934         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
7935         (add_watch), (remove_watch), (create_source):
7936         Refcount fds, fixes some reentrancy issues.
7937         
7938 2003-07-30  Havoc Pennington  <hp@redhat.com>
7939
7940         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
7941         bus address to be abstract if we have abstract sockets
7942
7943         * NEWS: update
7944
7945 2003-07-28  Havoc Pennington  <hp@redhat.com>
7946
7947         * bus/messagebus.in: fix to avoid processname/servicename 
7948         confusion, from Michael Kearey
7949         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7950         
7951 2003-07-23  Havoc Pennington  <hp@pobox.com>
7952
7953         * dbus/dbus-message.c (dbus_message_iter_get_named): 
7954         fix from Andy Hanton to remove broken "+1"
7955
7956 2003-07-16  Havoc Pennington  <hp@pobox.com>
7957
7958         * tools/dbus-launch.c (babysit): close stdout/stderr in the
7959         babysitter process, as suggested by Thomas Leonard, so 
7960         an "eval `dbus-launch --exit-with-session`" will actually 
7961         return
7962
7963 2003-07-16  Havoc Pennington  <hp@pobox.com>
7964
7965         * configure.in: print out EXPANDED_* variables in the summary at
7966         the end; clean up the code that computes EXPANDED_ variables and
7967         get the ones using exec_prefix right. Should make things work
7968         when you build without --prefix
7969
7970 2003-06-29  Havoc Pennington  <hp@pobox.com>
7971
7972         * mono/Test.cs (class Test): fire up a main loop and run it
7973
7974         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
7975         done once, the app has to do it
7976
7977 2003-06-26  Havoc Pennington  <hp@pobox.com>
7978
7979         * mono/Connection.cs: set up connection with the glib main loop
7980
7981 2003-07-01  Havoc Pennington  <hp@redhat.com>
7982
7983         * doc/dbus-specification.sgml: clarify the format of a type code,
7984         change suggested by Jim Blandy
7985
7986 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
7987
7988         * doc/Makefile.am:
7989         * tools/Makefile.am: Don't assume srcdir == builddir.
7990
7991         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
7992         the allocated block.
7993         (_dbus_memory_test): New function.
7994         * dbus/dbus-test.h: Add _dbus_memory_test ().
7995         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
7996
7997         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
7998         of %c%c%c%c.
7999         (dbus_message_new): Remove obsolete @todo.
8000
8001         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8002         (_dbus_marshal_set_uint64): Fix comment.
8003
8004         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8005         hardcode FIELD_REPLY_SERIAL.
8006
8007         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8008         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8009
8010         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8011         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8012
8013 2003-06-24  Havoc Pennington  <hp@pobox.com>
8014
8015         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8016
8017 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8018
8019         * configure.in:
8020         * gcj/.cvsignore:
8021         * gcj/Hello.java:
8022         * gcj/Makefile.am:
8023         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8024         * gcj/org/.cvsignore:
8025         * gcj/org/Makefile.am:
8026         * gcj/org/freedesktop/.cvsignore:
8027         * gcj/org/freedesktop/Makefile.am:
8028         * gcj/org/freedesktop/dbus/.cvsignore:
8029         * gcj/org/freedesktop/dbus/Makefile.am:
8030         * gcj/org/freedesktop/dbus/Message.java: (Message),
8031         (Message.Message):
8032         * gcj/org/freedesktop/dbus/natMessage.cc:
8033         Fix the build system.
8034
8035 2003-06-22  Havoc Pennington  <hp@pobox.com>
8036
8037         * mono/Connection.cs: add more bindings
8038
8039         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8040         more than once.
8041
8042 2003-06-22  Havoc Pennington  <hp@pobox.com>
8043
8044         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8045         Start wrapping more stuff.
8046
8047 2003-06-22  Havoc Pennington  <hp@pobox.com>
8048
8049         * mono/Message.cs: implement Message.Wrap() that ensures we only
8050         have a single C# wrapper per DBusMessage, assuming it works which
8051         it probably doesn't.
8052
8053         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8054         (dbus_message_free_data_slot): new
8055         (dbus_message_set_data): new
8056         (dbus_message_get_data): new
8057
8058 2003-06-22  Havoc Pennington  <hp@pobox.com>
8059
8060         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8061         (_dbus_data_slot_allocator_alloc): rework these to keep a
8062         reference count on each slot and automatically manage a global
8063         slot ID variable passed in by address
8064
8065         * bus/bus.c: convert to new dataslot API
8066
8067         * dbus/dbus-bus.c: convert to new dataslot API
8068
8069         * dbus/dbus-connection.c: convert to new dataslot API
8070
8071         * dbus/dbus-server.c: convert to new dataslot API
8072
8073         * glib/dbus-gmain.c: ditto
8074
8075         * bus/test.c: ditto
8076
8077         * bus/connection.c: ditto
8078
8079 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8080
8081         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8082         after the gcj checks so that the correct configuration tags
8083         will be added to libtool.
8084
8085         * dbus-glib-1.pc.in: No need to specify any includes since
8086         dbus-1.pc.in has those.
8087
8088 2003-06-22  Havoc Pennington  <hp@pobox.com>
8089
8090         * mono/*, gcj/*, configure.in, Makefile.am:
8091         Check in makefiles and subdirs for mono and gcj bindings.
8092         Neither binding actually exists, just trying to get through
8093         all the build and other boring bits.
8094
8095 2003-06-21  Philip Blundell  <philb@gnu.org>
8096
8097         * tools/dbus-monitor.1: Updated.
8098
8099         * tools/dbus-send.1: Likewise.
8100
8101 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8102
8103         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8104         for hangup and error after checking read so we won't discard
8105         pending data if both hangup and read are set.
8106
8107 2003-06-19  Philip Blundell  <philb@gnu.org>
8108
8109         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8110
8111         * tools/dbus-send.c: Accept both --system and --session.
8112
8113         * tools/dbus-monitor.c: Same here.
8114
8115 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8116
8117         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8118         from C++ (Patch by Miloslav Trmac).
8119
8120 2003-06-15  Joe Shaw  <joe@assbarn.com>
8121
8122         * configure.in: Check for socklen_t.
8123
8124         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8125
8126         * test/test-segfault.c: Add #include <sys/time.h>
8127
8128         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8129         dbus-launch needs it.
8130
8131 2003-06-09  Havoc Pennington  <hp@redhat.com>
8132
8133         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8134         SUN_LEN, it breaks abstract socket usage
8135
8136         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8137         starts of lines.
8138
8139 2003-06-04  Havoc Pennington  <hp@pobox.com>
8140
8141         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8142         using unix:abstract=/foo, and when listening in a tmpdir
8143         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8144
8145         * dbus/dbus-transport.c (_dbus_transport_open): support
8146         unix:abstract=/foo
8147
8148         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8149         support abstract sockets
8150
8151         * dbus/dbus-transport-unix.c
8152         (_dbus_transport_new_for_domain_socket): support abstract sockets
8153
8154         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8155         toggle as an argument, implement abstract namespace support
8156         (_dbus_listen_unix_socket): ditto
8157
8158         * configure.in: add --enable-abstract-sockets and implement
8159         a configure check for autodetection of the right value.
8160
8161 2003-06-01  Havoc Pennington  <hp@pobox.com>
8162
8163         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8164         in /tmp (though on Linux this will end up being useless,
8165         when we add abstract namespace support)
8166
8167         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8168         subst'ing it
8169
8170 2003-05-28  Colin Walters  <walters@verbum.org>
8171
8172         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8173
8174 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8175
8176         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8177
8178 2003-05-17  Colin Walters  <walters@gnu.org>
8179
8180         * tools/dbus-send.c: Don't exit with an error code if --help was
8181         passed.  Default to using the session bus instead of the system
8182         one.
8183
8184         * tools/dbus-launch.c: Ditto.
8185
8186         * tools/dbus-monitor.c: Ditto.
8187
8188         * tools/dbus-send.1: Update with new arguments.
8189
8190         * tools/dbus-launch.c: Emit code to export variables.  New
8191         arguments -s and -c to specify shell syntax, and a bit of code to
8192         autodetect syntax.  Also, allow specifying a program to run.
8193
8194         * tools/dbus-launch.1: Update with new arguments.
8195
8196         * tools/dbus-send.1: Ditto.
8197
8198         * tools/dbus-monitor.1: Ditto.
8199
8200 2003-05-17  Havoc Pennington  <hp@pobox.com>
8201
8202         * bus/config-parser.c (merge_included): merge in policies from
8203         child configuration file.
8204
8205         * bus/policy.c (bus_policy_merge): function to merge two policies
8206         together
8207
8208 2003-05-16  Havoc Pennington  <hp@redhat.com>
8209
8210         * dbus/dbus-connection.c: disable verbose lock spew
8211
8212         * tools/dbus-send.c: add --print-reply command line option
8213
8214         * tools/dbus-print-message.h (print_message): new util function
8215         shared by dbus-send and dbus-monitor
8216
8217         * tools/dbus-monitor.c (handler_func): exit on disconnect
8218
8219         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8220         disconnected, don't try to use the read_watch
8221
8222         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8223         so we can find this bug more easily
8224
8225 2003-05-16  Havoc Pennington  <hp@redhat.com>
8226
8227         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8228         NULL as DBusHashTable is annoyingly likely to do.
8229
8230 2003-05-16  Colin Walters  <walters@verbum.org>
8231
8232         * tools/dbus-monitor.c: Add --session argument and usage()
8233         function.
8234
8235         * tools/dbus-monitor.1: Update with new --session arg.
8236
8237         * bus/Makefile.am (install-data-hook): Create
8238         $(libdir)/dbus-1.0/services so that the session bus is happy.
8239
8240 2003-05-15  Havoc Pennington  <hp@redhat.com>
8241
8242         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8243         on non-x86. ifdef's are evil.
8244
8245 2003-05-15  Havoc Pennington  <hp@redhat.com>
8246
8247         * configure.in: 0.11
8248
8249         * NEWS: update
8250
8251         * bus/Makefile.am (initddir): apparently we are supposed to put
8252         init scripts in /etc/rc.d/init.d not /etc/init.d
8253
8254         * bus/Makefile.am: remove the "you must --enable-tests to make
8255         check" as it broke distcheck
8256
8257         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8258
8259 2003-05-13  James Willcox  <jwillcox@gnome.org>
8260
8261         * configure.in:
8262         * bus/activation.c: (bus_activation_service_created),
8263         (bus_activation_activate_service):
8264         * bus/driver.c: (bus_driver_send_service_deleted),
8265         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8266         (bus_driver_send_service_acquired),
8267         (bus_driver_send_welcome_message),
8268         (bus_driver_handle_list_services):
8269         * bus/session.conf.in:
8270         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8271         (dbus_bus_service_exists), (dbus_bus_activate_service):
8272         * dbus/dbus-bus.h:
8273
8274         Add some convenience API which lets you activate a service, and did a
8275         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8276         and dbus_message_get_args()
8277
8278 2003-05-11  Havoc Pennington  <hp@pobox.com>
8279
8280         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8281         calling _dbus_marshal_validate_arg() for every byte in a byte
8282         array, etc.
8283
8284         * dbus/dbus-message-handler.c: use atomic reference counting to
8285         reduce number of locks slightly; the global lock in here sucks
8286
8287         * dbus/dbus-connection.c
8288         (_dbus_connection_update_dispatch_status_and_unlock): variant of
8289         update_dispatch_status that can be called with lock held; then use
8290         in a couple places to reduce locking/unlocking
8291         (dbus_connection_send): hold the lock over the whole function
8292         instead of acquiring it twice.
8293
8294         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8295
8296         * bus/connection.c (bus_connections_setup_connection): fix access
8297         to already-freed memory.
8298
8299         * dbus/dbus-connection.c: keep a little cache of linked list
8300         nodes, to avoid using the global linked list alloc lock in the
8301         normal send-message case. Instead we just use the connection lock
8302         that we already have to take.
8303
8304         * dbus/dbus-list.c (_dbus_list_find_last): new function
8305
8306         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8307         change to use a struct for the atomic type; fix docs,
8308         they return value before increment, not after increment.
8309
8310         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8311         (_dbus_string_append_8_aligned): new functions to try to
8312         microoptimize this operation.
8313         (reallocate_for_length): break this out of set_length(), to
8314         improve profile info, and also so we can consider inlining the
8315         set_length() part.
8316
8317         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8318         strings with some preallocation, cuts down on our calls to realloc
8319         a fair bit. Though if we can get the "move entire string to empty
8320         string" optimization below to kick in here, it would be better.
8321
8322         * dbus/dbus-string.c (_dbus_string_move): just call
8323         _dbus_string_move_len
8324         (_dbus_string_move_len): add a special case for moving
8325         an entire string into an empty string; we can just
8326         swap the string data instead of doing any reallocs.
8327         (_dbus_string_init_preallocated): new function
8328
8329 2003-05-11  Havoc Pennington  <hp@pobox.com>
8330
8331         Write a "test-profile" that does echo client-server with threads;
8332         profile reveals lock contention, memcpy/realloc of buffers, and
8333         UTF-8 validation as hot spots. 20% of lock contention eliminated
8334         with dbus_atomic_inc/dec implementation on x86.  Much remaining
8335         contention is global mempool locks for GList and DBusList.
8336
8337         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8338         x86 implementation
8339
8340         * dbus/dbus-connection.c (struct DBusConnection): use
8341         dbus_atomic_t for the reference count
8342
8343         * dbus/dbus-message.c (struct DBusMessage): declare
8344         dbus_atomic_t values as volatile
8345
8346         * configure.in: code to detect ability to use atomic integer
8347         operations in assembly, from GLib patch
8348
8349         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8350         time, tired of it being wrong in threads and forked processes
8351
8352         * glib/test-profile.c: a little program to bounce messages back
8353         and forth between threads and eat CPU
8354
8355         * dbus/dbus-connection.c: add debug spew macros for debugging
8356         thread locks; include config.h at top; fix deadlock in
8357         dbus_connection_flush()
8358
8359 2003-05-08  Havoc Pennington  <hp@pobox.com>
8360
8361         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8362         data from getting written, and there wasn't a good reason to
8363         use _exit really.
8364
8365         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8366         dbus_verbose lines in test coverage
8367         (main): add list of functions sorted by # of untested blocks
8368         to the coverage report
8369
8370         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8371
8372         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8373
8374         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8375         extend test coverage
8376
8377         * test/data/auth/cancel.auth-script: test canceling an
8378         authentication
8379
8380         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8381         aren't used. in CVS history if we end up needing them.
8382
8383 2003-05-04  Havoc Pennington  <hp@pobox.com>
8384
8385         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8386         unit test
8387
8388         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8389         function, which assumed length was in # of strings, not bytes
8390
8391         * dbus/dbus-message.c (_dbus_message_test): add tests for some
8392         missing coverage
8393
8394         * dbus/dbus-connection.c
8395         (_dbus_connection_queue_received_message): disable function for
8396         now, we are only using it in test mode
8397
8398         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8399         remove a mistaken FIXME
8400
8401 2003-05-04  Havoc Pennington  <hp@pobox.com>
8402
8403         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8404         unlock mutex on successful return, patch from Anders Gustafsson
8405
8406 2003-05-04  Havoc Pennington  <hp@pobox.com>
8407
8408         * dbus-glib-1.pc.in (Requires): fix dependencies, from
8409         Anders Gustafsson
8410
8411 2003-05-04  Havoc Pennington  <hp@pobox.com>
8412
8413         * tools/dbus-launch.c: implement
8414
8415         * bus/main.c (main), bus/bus.c (bus_context_new):
8416         implement --print-pid and --fork
8417
8418 2003-05-03  Havoc Pennington  <hp@redhat.com>
8419
8420         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8421         the address had no value, and add to test suite. Fix and
8422         regression test from Miloslav Trmac
8423
8424 2003-05-03  Havoc Pennington  <hp@pobox.com>
8425
8426         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8427         watch is invalid when handled
8428
8429         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8430         dbus-launch utility to launch the bus from a shell script.  Didn't
8431         actually implement dbus-launch yet, it's just a placeholder still.
8432
8433 2003-05-03  Havoc Pennington  <hp@pobox.com>
8434
8435         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8436         daemon; also documents daemon config file, so replaces
8437         doc/config-file.txt. Corrected some stuff from config-file.txt in
8438         the process of moving it.
8439
8440 2003-05-03  Havoc Pennington  <hp@pobox.com>
8441
8442         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8443         add some man pages
8444
8445 2003-05-03  Colin Walters  <walters@verbum.org>
8446
8447         * dbus/dbus-sysdeps.c (fill_user_info): Test against
8448         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8449
8450         * Makefile.am: Update to use new .pc versioning scheme.
8451
8452 2003-05-02  Havoc Pennington  <hp@redhat.com>
8453
8454         * bus/system.conf.in: allow send/receive to/from message bus
8455         service
8456
8457 2003-04-30  Havoc Pennington  <hp@redhat.com>
8458
8459         * configure.in: print a note when building with unit tests and
8460         without assertions
8461
8462 2003-04-30  Havoc Pennington  <hp@redhat.com>
8463
8464         * Makefile.am: add a check-local that complains if you didn't
8465         configure with --enable-tests
8466
8467 2003-04-29  Havoc Pennington  <hp@redhat.com>
8468
8469         * glib/dbus-gmain.c: docs cleanups
8470
8471         * dbus/dbus-types.h: add docs on int64 types
8472
8473         * dbus/dbus-memory.c: fix docs to avoid putting private API in
8474         public API docs section
8475
8476 2003-04-29  Havoc Pennington  <hp@redhat.com>
8477
8478         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8479         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8480         parallel install API version, not with the D-BUS package version.
8481
8482         * HACKING: move some of README over here
8483
8484         * README: updates, and document API/ABI policy
8485
8486         * configure.in: reindentation
8487
8488 2003-04-29  Havoc Pennington  <hp@redhat.com>
8489
8490         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8491         to use this library" to be sure people have the right
8492         expectations.
8493
8494 2003-04-28  Havoc Pennington  <hp@redhat.com>
8495
8496         * configure.in: add --enable-docs which by default is auto yes if
8497         doxygen and db2html found, no otherwise; but can be forced on/off
8498
8499         * doc/Makefile.am: conditionalize whether to build docs on
8500         --enable-docs
8501
8502 2003-04-28  Havoc Pennington  <hp@redhat.com>
8503
8504         * configure.in: 0.10
8505
8506         * NEWS: update
8507
8508         * bus/system.conf.in: add <includedir>system.d</includedir>
8509
8510         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8511         username was provided but not uid
8512
8513         * bus/config-parser.c (struct BusConfigParser): keep track of
8514         whether the parser is toplevel or was included; change some
8515         of the error handling if it's included.
8516
8517 2003-04-27  Havoc Pennington  <hp@pobox.com>
8518
8519         Unbreak my code...
8520
8521         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8522         report correct status if we finish processing authentication
8523         inside this function.
8524
8525         * bus/activation.c (try_send_activation_failure): use
8526         bus_transaction_send_error_reply
8527
8528         * bus/connection.c (bus_connection_get_groups): return an error
8529         explaining the problem
8530
8531         * bus/bus.c (bus_context_check_security_policy): implement
8532         restriction here that inactive connections can only send the
8533         hello message. Also, allow bus driver to send anything to
8534         any recipient.
8535
8536         * bus/connection.c (bus_connection_complete): create the
8537         BusClientPolicy here instead of on-demand.
8538         (bus_connection_get_policy): don't return an error
8539
8540         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8541         sender field in message being replied to
8542
8543         * bus/bus.c (bus_context_check_security_policy): fix silly typo
8544         causing it to return FALSE always
8545
8546         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8547         we checked sender rather than destination
8548
8549 2003-04-25  Havoc Pennington  <hp@redhat.com>
8550
8551         test suite is slightly hosed at the moment, will fix soon
8552
8553         * bus/connection.c (bus_connections_expire_incomplete): fix to
8554         properly disable the timeout when required
8555         (bus_connection_set_name): check whether we can remove incomplete
8556         connections timeout after we complete each connection.
8557
8558         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8559         probably still broken.
8560
8561         * bus/services.c (bus_registry_acquire_service): implement max
8562         number of services owned, and honor allow/deny rules on which
8563         services a connection can own.
8564
8565         * bus/connection.c (bus_connection_get_policy): report errors here
8566
8567         * bus/activation.c: implement limit on number of pending
8568         activations
8569
8570 2003-04-25  Havoc Pennington  <hp@redhat.com>
8571
8572         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8573         where we used >= 0 instead of != DBUS_UID_UNSET.
8574
8575 2003-04-25  Havoc Pennington  <hp@redhat.com>
8576
8577         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8578         were toggled without add/remove, fix from Anders Gustafsson
8579
8580 2003-04-24  Havoc Pennington  <hp@redhat.com>
8581
8582         * test/data/valid-config-files/basic.conf: add <limit> tags to
8583         this test
8584
8585         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8586         <limit> tag in configuration file.
8587
8588 2003-04-24  Havoc Pennington  <hp@redhat.com>
8589
8590         * bus/dispatch.c: somehow missed some name_is
8591
8592         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8593         (_dbus_timeout_set_interval): new
8594
8595         * bus/connection.c (bus_connections_setup_connection): record time
8596         when each connection is first set up, and expire them after the
8597         auth timeout passes.
8598
8599 2003-04-24  Havoc Pennington  <hp@redhat.com>
8600
8601         * dbus/dbus-message.c (dbus_message_name_is): rename
8602         (dbus_message_service_is): rename
8603         (dbus_message_sender_is): rename
8604         (dbus_message_get_service): rename
8605
8606 2003-04-24  Havoc Pennington  <hp@redhat.com>
8607
8608         * configure.in: add --enable-checks
8609
8610         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8611
8612         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8613         to use thread locks.
8614         (_dbus_connection_handler_destroyed_locked): move some private
8615         functions into proper docs group
8616
8617         * dbus/dbus-internals.h: add _dbus_return_if_fail,
8618         _dbus_return_val_if_fail
8619
8620         Throughout: use dbus_return_if_fail
8621
8622 2003-04-23  James Willcox  <jwillcox@gnome.org>
8623
8624         * glib/dbus-glib.h:
8625         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8626         (dbus_connection_setup_with_g_main),
8627         (dbus_server_setup_with_g_main):
8628         * glib/test-dbus-glib.c: (main):
8629         * glib/test-thread-client.c: (main):
8630         * glib/test-thread-server.c: (new_connection_callback), (main):
8631         * tools/dbus-monitor.c: (main):
8632
8633         Added a GMainContext argument to dbus_connection_setup_with_g_main()
8634         and dbus_server_setup_with_g_main().
8635
8636 2003-04-20  Havoc Pennington  <hp@pobox.com>
8637
8638         * doc/dbus-specification.sgml: document the restrictions on
8639         message and service names
8640
8641 2003-04-22  Havoc Pennington  <hp@redhat.com>
8642
8643         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8644         support, and do some code cleanups to share more code and
8645         speed up array marshal/demarshal.
8646
8647         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8648
8649         * configure.in: generate dbus-arch-deps.h
8650
8651         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8652         64-bit typecodes
8653
8654 2003-04-22  Havoc Pennington  <hp@redhat.com>
8655
8656         * test/data/valid-messages/opposite-endian.message: fix test
8657         to use proper type for rply field
8658
8659         * test/data/invalid-messages: add tests for below validation
8660
8661         * dbus/dbus-message.c (decode_header_data): validate field types,
8662         and validate that named fields are valid names
8663         (decode_name_field): consider messages in the
8664         org.freedesktop.Local. namespace to be invalid.
8665
8666         * dbus/dbus-string.c (_dbus_string_validate_name): new
8667
8668 2003-04-19  Havoc Pennington  <hp@pobox.com>
8669
8670         * bus/driver.c (bus_driver_handle_hello): check limits and
8671         return an error if they are exceeded.
8672
8673         * bus/connection.c: maintain separate lists of active and inactive
8674         connections, and a count of each. Maintain count of completed
8675         connections per user. Implement code to check connection limits.
8676
8677         * dbus/dbus-list.c (_dbus_list_unlink): export
8678
8679         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8680         number of bytes in the message queue for a connection
8681
8682 2003-04-18  Havoc Pennington  <hp@pobox.com>
8683
8684         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8685
8686         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8687         memleaks
8688
8689         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8690         on realloc be sure to update the pointer in the keyring
8691
8692         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8693         offset to avoid writing to unallocated memory
8694
8695         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8696         try the next mechanism, so we properly handle OOM
8697
8698         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8699         on OOM.
8700         (_dbus_keyring_new): fix OOM bug
8701         (_dbus_keyring_new_homedir): always set error; impose a maximum
8702         number of keys we'll load from the file, mostly to speed up the
8703         test suite and make its OOM checks more useful, but also for
8704         general sanity.
8705
8706         * dbus/dbus-auth.c (process_error_server): reject authentication
8707         if we get an error from the client
8708         (process_cancel): on cancel, send REJECTED, per the spec
8709         (process_error_client): send CANCEL if we get an error from the
8710         server.
8711
8712 2003-04-18  Havoc Pennington  <hp@pobox.com>
8713
8714         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8715         debug spew
8716
8717         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8718         handling problem
8719
8720         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8721         about DBUS_TEST_HOMEDIR once
8722
8723         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8724         the environment
8725
8726         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8727         config file so we test the right thing
8728
8729         Throughout: assorted docs improvements
8730
8731 2003-04-18  Havoc Pennington  <hp@pobox.com>
8732
8733         * glib/dbus-gmain.c: adapt to watch changes
8734
8735         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8736
8737         * dbus/dbus-server.h: remove dbus_server_handle_watch
8738
8739         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8740
8741         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8742         like DBusTimeout, so we don't need dbus_connection_handle_watch
8743         etc.
8744
8745 2003-04-17  Havoc Pennington  <hp@redhat.com>
8746
8747         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8748         database usage so it all goes via the DBusUserDatabase cache.
8749
8750 2003-04-17  Havoc Pennington  <hp@redhat.com>
8751
8752         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8753         there was an OOM watch we skipped, we always return TRUE so we
8754         iterate again to have a look at it again. Fixes test suite hang.
8755         Code rearrangement also lets us lose some memset and only iterate
8756         over callbacks once.
8757
8758         * bus/driver.c (bus_driver_handle_message): sense of test for
8759         reply was backward
8760
8761 2003-04-16  Havoc Pennington  <hp@pobox.com>
8762
8763         * doc/dbus-specification.sgml: make spec say serials are unsigned
8764
8765         * dbus/dbus-message.h: change message serials to unsigned
8766
8767         * dbus/dbus-connection.c: adapt to message serials being unsigned
8768
8769 2003-04-15  Havoc Pennington  <hp@pobox.com>
8770
8771         * bus/bus.c: create and keep around a shared DBusUserDatabase
8772         object.
8773
8774         * bus/connection.c (bus_connection_get_groups): don't cache
8775         groups for user in the connection object, since user database
8776         object now does that.
8777
8778 2003-04-16  Havoc Pennington  <hp@redhat.com>
8779
8780         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8781         list of size counters
8782         (_dbus_message_loader_putback_message_link): put back a popped link
8783
8784         * dbus/dbus-connection.c
8785         (dbus_connection_set_max_live_messages_size): rename
8786         max_received_size
8787         (dbus_connection_get_outgoing_size): get size of outgoing
8788         queue
8789         (_dbus_connection_set_connection_counter): remove this cruft
8790
8791 2003-04-14  Havoc Pennington  <hp@redhat.com>
8792
8793         * dbus/dbus-userdb.c: user database abstraction, mostly to get
8794         caching, but at some point we might want to be able to use a
8795         different database.
8796
8797         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8798         SHA1 conf file to test the sha1 auth mechanism, since the regular
8799         test always uses EXTERNAL when available.
8800
8801         * configure.in,
8802         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8803         add conf file that requires use of sha1 auth
8804
8805 2003-04-13  Havoc Pennington  <hp@pobox.com>
8806
8807         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8808         from Philip Blundell to send messages and monitor them.
8809
8810 2003-04-13  Havoc Pennington  <hp@pobox.com>
8811
8812         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8813         callbacks
8814
8815         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8816         users
8817
8818         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8819         fix to only recover unused bytes if we're already authenticated
8820         (_dbus_transport_get_is_authenticated): fix to still mark us
8821         authenticated if there are unused bytes.
8822
8823         * bus/dispatch.c: implement security policy checking
8824
8825         * bus/connection.c (bus_transaction_send_from_driver): new
8826
8827         * bus/bus.c (bus_context_check_security_policy): new
8828
8829         * bus/dispatch.c (send_service_nonexistent_error): delete this,
8830         now we just set the DBusError and it gets converted to an error
8831         reply.
8832
8833         * bus/connection.c (allow_user_function): enable code using actual
8834         data from the config file
8835
8836         * bus/policy.c (list_allows_user): handle wildcard rules for
8837         user/group connection perms
8838
8839 2003-04-13  Havoc Pennington  <hp@pobox.com>
8840
8841         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8842
8843         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8844
8845         * bus/policy.c (bus_policy_append_mandatory_rule)
8846         (bus_policy_append_default_rule, bus_policy_append_user_rule)
8847         (bus_policy_append_group_rule): new functions
8848
8849 2003-04-12  Havoc Pennington  <hp@pobox.com>
8850
8851         * bus/config-parser.c (bus_config_parser_new): fix a memleak
8852
8853         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8854         the pid/gid/uid, just for paranoia.
8855
8856         * test/break-loader.c (randomly_do_n_things): find a byte
8857         containing a type code, and randomly change it to a different
8858         type code.
8859
8860 2003-04-12  Havoc Pennington  <hp@pobox.com>
8861
8862         * bus/policy.h: change BusPolicy to be the thing from the config
8863         file, and rename old BusPolicy to BusClientPolicy
8864
8865         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8866         match change in how policy works
8867
8868         * dbus/dbus-internals.h: mark assert_not_reached as
8869         __attribute((noreturn))__
8870
8871 2003-04-11  Havoc Pennington  <hp@redhat.com>
8872
8873         * doc/dbus-specification.sgml: fix a spot with the wrong name for
8874         the broadcast service. Use boolean return for ServiceExists.
8875
8876 2003-04-11  Havoc Pennington  <hp@redhat.com>
8877
8878         * configure.in: add another directory to look for qt in.
8879
8880 2003-04-11  Havoc Pennington  <hp@redhat.com>
8881
8882         * AUTHORS: add Colin Walters
8883
8884 2003-04-11  Havoc Pennington  <hp@redhat.com>
8885
8886         * NEWS: update
8887
8888         * configure.in: 0.9
8889
8890 2003-04-11  Havoc Pennington  <hp@redhat.com>
8891
8892         * bus/messagebus.in: remove pid file when stopping the
8893         message bus, since the bus won't have privileges to remove it
8894         itself.
8895
8896 2003-04-11  Havoc Pennington  <hp@redhat.com>
8897
8898         * bus/bus.c (bus_context_new): move credentials change after
8899         creating pidfile
8900
8901 2003-04-11  Havoc Pennington  <hp@pobox.com>
8902
8903         * test/decode-gcov.c: add "below average functions" to the
8904         coverage report, and change how some of the code works.
8905
8906         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
8907         not in the coverage stats.
8908
8909         * test/test-service.c (main): use _dbus_verbose not fprintf in a
8910         couple places so running the test suite doesn't result in megaspam.
8911
8912 2003-04-11  Havoc Pennington  <hp@pobox.com>
8913
8914         * bus/dispatch.c (check_existent_service_activation): accept a no
8915         memory error in a place we didn't before
8916
8917         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
8918         in case the first one failed," since the test suite is less
8919         broken now.
8920
8921 2003-04-10  Havoc Pennington  <hp@pobox.com>
8922
8923         * bus/dispatch.c (check_segfault_service_activation): add test
8924         for launching an executable that just crashes.
8925
8926         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
8927         don't leave a million cores. We'll see how portable this is.
8928
8929 2003-04-10  Havoc Pennington  <hp@pobox.com>
8930
8931         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
8932         the possible parent failures before we fork, so that we don't
8933         fail to create a babysitter after creating the child.
8934
8935         * bus/activation.c (bus_activation_activate_service): kill child
8936         if we don't successfully complete the activation.
8937
8938 2003-04-10  Havoc Pennington  <hp@redhat.com>
8939
8940         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
8941         the connection if it's disconnected
8942
8943         * bus/activation.c (bus_activation_service_created): use new
8944         transaction features to roll back removal of pending activation if
8945         we don't successfully create the service after all. Don't remove
8946         pending activation if the function fails.
8947
8948         * dbus/dbus-list.c (_dbus_list_insert_before_link)
8949         (_dbus_list_insert_after_link): new code to facilitate
8950         services.c fixes
8951
8952         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
8953         new functionality, so we can preallocate the ability to insert
8954         into a hash table.
8955
8956         * bus/connection.c (bus_transaction_add_cancel_hook): new function
8957         allowing us to put custom hooks in a transaction to be used for
8958         cancelling said transaction
8959
8960         * doc/dbus-specification.sgml: add some discussion of secondary
8961         service owners, and disallow zero-length service names
8962
8963         * bus/services.c (bus_registry_acquire_service): new function,
8964         splits out part of bus_driver_handle_acquire_service() and fixes
8965         a bug where we didn't remove the service doing the acquiring
8966         from the secondary queue if we failed to remove the current owner
8967         from the front of the queue.
8968
8969 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8970
8971         * doc/dbus-specification.sgml:
8972         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
8973
8974 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8975
8976         * bus/.cvsignore:
8977         * glib/.cvsignore:
8978         * test/.cvsignore:
8979         Added files to cvsignore
8980
8981         * dbus/dbus-message.h:
8982         * dbus/dbus-message.c: (dbus_message_iter_get_named):
8983         Make get_named() take two out argument and return a boolean.
8984         (dbus_message_iter_get_args_valist):
8985         Update usage of get_named().
8986         (dbus_message_iter_append_byte):
8987         Fix typo
8988         (dbus_message_iter_append_named)
8989         Fix typo
8990         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
8991         More tests.
8992
8993 2003-04-10  Alexander Larsson  <alexl@redhat.com>
8994
8995         * dbus/dbus-marshal.[ch]:
8996         Add array_type_pos argument to _dbus_marshal_validate_arg.
8997         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
8998
8999         * dbus/dbus-message.[ch]:
9000         Multi-dimensional arrays have full type specification in the
9001         outermost array. Iter code re-arranged to handle this.
9002         Added some more iter tests.
9003
9004         * doc/dbus-specification.sgml:
9005         Add me to authors.
9006         Remove old FIXME.
9007         Update new array encoding description.
9008         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9009
9010         * test/data/invalid-messages/array-with-mixed-types.message:
9011         * test/data/valid-messages/array-of-array-of-uint32.message:
9012         Change to the new array format.
9013
9014         * test/data/invalid-messages/too-short-dict.message:
9015         Fix bug in test.
9016
9017         * test/data/valid-messages/recursive-types.message:
9018         Fix up and extend test.
9019
9020 2003-04-10  Havoc Pennington  <hp@pobox.com>
9021
9022         * bus/dispatch.c: lots of fixes
9023
9024         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9025         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9026         that was crack, broke the test service.
9027
9028         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9029         handling to avoid piling up errors if we get a failure on the
9030         first address.
9031
9032         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9033         pid in assertion failures.
9034
9035         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9036         to some fixed size of file descriptor array. Don't return TRUE
9037         anytime a timeout exists, that led to lots of busy loop silliness
9038         in the tests.
9039
9040 2003-04-09  Havoc Pennington  <hp@redhat.com>
9041
9042         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9043         I'd checked this in earlier but hadn't.
9044
9045 2003-04-09  Havoc Pennington  <hp@redhat.com>
9046
9047         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9048         the activation test (man this is getting old!)
9049
9050 2003-04-09  Havoc Pennington  <hp@redhat.com>
9051
9052         * test/test-utils.c: use dispatch status function to fix this up
9053
9054         * bus/connection.c (connection_watch_callback): don't dispatch
9055         from here
9056         (connection_timeout_callback): don't dispatch from here
9057         (bus_connections_setup_connection): set the dispatch status function
9058         (bus_connection_disconnected): unset it
9059
9060         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9061         used to add a connection to be dispatched
9062         (_dbus_loop_iterate): do the dispatching at the end of each
9063         iteration
9064
9065         * dbus/dbus-connection.c
9066         (dbus_connection_set_dispatch_status_function): new function
9067         allowing us to fix up main loop usage
9068         (_dbus_connection_last_unref): free all the various function
9069         user data
9070         (dbus_connection_dispatch): call the DispatchStatusFunction
9071         whenever this function returns
9072         (dbus_connection_handle_watch): call DispatchStatusFunction
9073         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9074         (reply_handler_timeout): call DispatchStatusFunction
9075         (dbus_connection_flush): call DispatchStatusFunction
9076
9077 2003-04-09  Havoc Pennington  <hp@redhat.com>
9078
9079         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9080         a memory leak
9081
9082         * bus/dispatch.c (check_service_activated): fix bug in test
9083
9084         * dbus/dbus-mainloop.c (check_timeout): fix this up
9085
9086         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9087         verbose output so we can sort out output from different processes,
9088         e.g. in the activation case.
9089
9090 2003-04-08  Colin Walters  <walters@gnu.org>
9091
9092         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9093         the pid file.
9094         (bus_context_new): Set it.
9095         (bus_context_unref): Use it to delete the pid file.
9096
9097 2003-04-08  Havoc Pennington  <hp@redhat.com>
9098
9099         * test/data/invalid-messages/array-with-mixed-types.message:
9100         regression test that fails for the moment
9101
9102         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9103         tests for convenience
9104
9105         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9106         array of nil, it broke things.
9107
9108         * test/data/invalid-messages/array-of-nil.message: regression test
9109
9110         * test/data/valid-messages/array-of-array-of-uint32.message:
9111         happened to write this so added it to suite
9112
9113 2003-04-08  Havoc Pennington  <hp@redhat.com>
9114
9115         * bus/driver.c (bus_driver_handle_acquire_service): init
9116         retval/reply before checking name
9117
9118         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9119         recursion depth argument
9120
9121         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9122         in the public struct for future extension
9123
9124         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9125         typo
9126
9127         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9128         message
9129
9130         * doc/dbus-specification.sgml: fix typo
9131
9132 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9133
9134         Implemented recursive types, named types and new-style iters
9135
9136         * bus/driver.c:
9137         * glib/test-thread-client.c: (thread_func):
9138         * glib/test-thread-server.c: (handle_test_message):
9139         * test/test-service.c: (handle_echo):
9140         Update to new api
9141
9142         * dbus/Makefile.am:
9143         * dbus/dbus-dict.c:
9144         * dbus/dbus-dict.h:
9145         * dbus/dbus.h
9146         Remove DBusDict
9147
9148         * dbus/dbus-internals.c: (_dbus_type_to_string):
9149         Update for new types.
9150
9151         * dbus/dbus-marshal.[ch]:
9152         Implement recursive types and the new marshalling format.
9153         Remove hardcoded dict marshalling.
9154         Marshal named types.
9155
9156         * dbus/dbus-message-builder.c:
9157         Add BYTE_ARRAY.
9158         Remove references to old types
9159
9160         * dbus/dbus-message.[ch]:
9161         New non-refcounted iter API that supports recursive iters.
9162         Use iters for appending, including support for recursive
9163         iters.
9164         Add byte and named type support.
9165         Update everything to new marshalling formats.
9166         Add tests for new API.
9167
9168         * dbus/dbus-protocol.h:
9169         Remove old array types.
9170         Add types: BYTE, ARRAY, DICT, NAMED
9171
9172         * dbus/dbus-string.c:
9173         * dbus/dbus-sysdeps.c:
9174         Make parse_double locale safe.
9175
9176         * dbus/dbus-test-main.c:
9177         Call setlocale.
9178
9179         * dbus/dbus-test.c:
9180         Kill dict test
9181
9182         * doc/dbus-specification.sgml:
9183         Update spec
9184
9185         * test/data/incomplete-messages/missing-body.message:
9186         * test/data/invalid-messages/bad-boolean.message:
9187         * test/data/invalid-messages/bad-boolean-array.message:
9188         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9189         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9190         * test/data/invalid-messages/too-short-dict.message:
9191         * test/data/valid-messages/dict-simple.message:
9192         * test/data/valid-messages/dict.message:
9193         * test/data/valid-messages/emptiness.message:
9194         * test/data/valid-messages/lots-of-arguments.message:
9195         * test/data/valid-messages/no-padding.message:
9196         * test/data/valid-messages/recursive-types.message:
9197         Add missing NAME fields
9198         Fix up dicts & arrays
9199
9200         * test/data/invalid-messages/dict-with-nil-value.message:
9201         Removed, this is not invalid anymore.
9202
9203         * test/data/valid-messages/recursive-types.message:
9204         Add new test for deeply recursive types.
9205
9206 2003-04-07  Havoc Pennington  <hp@pobox.com>
9207
9208         * bus/driver.c (bus_driver_handle_acquire_service): return an
9209         error if you try to acquire a service that starts with ':'
9210
9211 2003-04-07  Havoc Pennington  <hp@redhat.com>
9212
9213         * doc/dbus-specification.sgml: require that base service names
9214         start with ':' and that the base service is created/deleted
9215         as first and last things a connection does on the bus
9216
9217         * bus/dispatch.c (check_existent_service_activation): lots more
9218         work on the activation test; it doesn't fully pass yet...
9219
9220         * test/test-service.c (main): fix so we don't memleak the
9221         connection to the message bus
9222         (filter_func): accept a message asking us to exit
9223
9224 2003-04-06  Havoc Pennington  <hp@pobox.com>
9225
9226         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9227         from Colin Walters
9228
9229         * configure.in: fixes to Qt detection from Colin Walters
9230
9231         * doc/Makefile.am: Only remove generated docbook dirs if they
9232         exist, from Colin Walters
9233
9234         * dbus/dbus-bus.c: change how we set well-known connections to
9235         NULL, so that it works if a single connection is stored in
9236         two well-known array slots.
9237
9238         * test/Makefile.am: remove a lot of stuff that isn't immediately
9239         useful, it's in CVS history if we want it.
9240
9241         * test/test-service.c: use dbus-mainloop instead of that
9242         watch.[hc] crack
9243
9244 2003-04-06  Havoc Pennington  <hp@pobox.com>
9245
9246         * dbus/Makefile.am: split lists of sources into stuff that goes in
9247         the library, util functions that go in the lib and are also used
9248         elsewhere, and util functions that are used in tests/daemon but
9249         don't go in the lib.
9250
9251         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9252         here so it can be used in test binaries also
9253
9254 2003-04-06  Havoc Pennington  <hp@pobox.com>
9255
9256         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9257         here in the parent process, so we can return an error if it
9258         fails. Also, move some of the code into the child so the parent
9259         is less hosed if we fail midway through.
9260
9261         * bus/bus.c (bus_context_new): move pidfile detection further up
9262         in the function, before we start overwriting sockets and such.
9263
9264         * bus/messagebus.in: adjust this a bit, not sure if it will work.
9265
9266         * configure.in: add --with-system-pid-file and --with-system-socket
9267
9268 2003-04-06  Colin Walters  <walters@verbum.org>
9269
9270         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9271
9272         * bus/system.conf.in: Declare a pidfile.
9273
9274         * bus/bus.c (bus_context_new): Test for an existing pid file, and
9275         create one (if appropriate).
9276
9277         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9278         (struct BusConfigParser) [pidfile]: New.
9279         (element_type_to_name, merge_included, start_busconfig_child)
9280         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9281         (bus_config_parser_unref): Free it.
9282         (bus_config_parser_get_pidfile): New function.
9283
9284         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9285
9286         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9287
9288         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9289
9290         * dbus/dbus-sysdeps.h: Prototype it.
9291
9292 2003-04-06  Havoc Pennington  <hp@pobox.com>
9293
9294         * bus/bus.c (bus_context_new): print the address in here, rather
9295         than in main(), because we need to do it before forking the daemon
9296
9297         * bus/dispatch.c (send_service_nonexistent_error): set the sender
9298         on the service nonexistent error
9299
9300         * bus/driver.c (bus_driver_handle_acquire_service): set the
9301         sender on the AcquireService reply
9302
9303         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9304         server also listen on a UNIX socket so services can connect to it.
9305
9306 2003-04-06  Havoc Pennington  <hp@pobox.com>
9307
9308         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9309         so it detects deadlocks and also we actually init threads when
9310         debugging.
9311
9312 2003-04-06  Havoc Pennington  <hp@pobox.com>
9313
9314         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9315         save the domain socket name, and unlink it when we disconnect the
9316         server. Means that at least when we exit normally, we won't leave
9317         a bunch of junk in /tmp
9318
9319         * dbus/dbus-transport-unix.c
9320         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9321         memory management). (I was making a real change here but then
9322         didn't)
9323
9324 2003-04-06  Havoc Pennington  <hp@pobox.com>
9325
9326         * bus/bus.c (bus_context_new): fix wrong handling of
9327         server_data_slot_unref() in the error case.
9328
9329         * dbus/dbus-internals.h (_dbus_assert): change so it passes
9330         "(condition) != 0" to _dbus_real_assert so that
9331         "_dbus_assert (pointer)" doesn't cause a warning
9332
9333         * bus/main.c (main): accept --print-address option to print out
9334         the message bus address
9335
9336         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9337
9338         * dbus/dbus-transport.c (_dbus_transport_open): special error for
9339         "tmpdir" option to unix: address on client side
9340
9341         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9342         to unix: address
9343
9344         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9345         we can use to create sockets in the test suite.
9346
9347         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9348         cleanly. To be used for testing.
9349
9350         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9351
9352         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9353
9354         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9355         handle trying to call this when there's no servers active
9356
9357 2003-04-05  Havoc Pennington  <hp@pobox.com>
9358
9359         * NEWS: update
9360
9361         * configure.in: 0.8
9362
9363 2003-04-05  Havoc Pennington  <hp@pobox.com>
9364
9365         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9366         crash on startup. Need to get "try starting the daemon"
9367         in the test suite I guess. ;-)
9368
9369         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9370         tracked the number of open connections; it's better done in
9371         application-specific code as you want it to span all servers etc.
9372
9373 2003-04-05  Havoc Pennington  <hp@pobox.com>
9374
9375         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9376         patch from Colin Walters
9377
9378 2003-04-05  Havoc Pennington  <hp@pobox.com>
9379
9380         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9381         reality; in fact multiple mechanisms are allowed.
9382
9383         * dbus/dbus-internals.c (_dbus_real_assert)
9384         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9385         _dbus_assert_not_reached() into functions, so that they don't show
9386         up in basic block counts for test coverage, and don't use up as
9387         much disk space. Does mean slower execution speed though, so
9388         assumes --disable-asserts is the normal production case.
9389
9390 2003-04-05  Havoc Pennington  <hp@pobox.com>
9391
9392         * test/Makefile.am (dist-hook): also dist *.in files
9393
9394         * NEWS: update
9395
9396         * configure.in: 0.7
9397
9398 2003-04-05  Havoc Pennington  <hp@pobox.com>
9399
9400         * dbus/dbus-string.c: docs warning
9401
9402         * dbus/dbus-spawn.c: missing docs
9403
9404         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9405
9406 2003-04-05  Havoc Pennington  <hp@pobox.com>
9407
9408         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9409         magic from GLib
9410
9411         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9412         to -1 once we've reaped the babysitter
9413         (_dbus_babysitter_handle_watch): do as much work as we can, not
9414         just one go of it
9415
9416         * bus/activation.c: add code using DBusBabysitter so that we
9417         handle it when a service fails to start up properly.
9418         (bus_activation_service_created): don't remove the activation
9419         entries as we go, just let them get removed when we free the pending
9420         activation. Unref reply messages after sending them.
9421
9422 2003-04-05  Havoc Pennington  <hp@pobox.com>
9423
9424         * test/decode-gcov.c (main): print per-directory stats in the report
9425
9426         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9427
9428 2003-04-05  Havoc Pennington  <hp@pobox.com>
9429
9430         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9431
9432         * test/decode-gcov.c: hack up a little program to suck data
9433         out of gcov files. Yes this is sort of silly.
9434
9435         * configure.in: define something in config.h and do an
9436         AM_CONDITIONAL when gcov is enabled
9437
9438 2003-04-04  Havoc Pennington  <hp@redhat.com>
9439
9440         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9441         return a "babysitter" object that is used to monitor the status of
9442         the spawned process and reap it when required.
9443
9444         * test/test-segfault.c, test/test-exit.c,
9445         test/test-sleep-forever.c: binaries that do various lame things,
9446         used in the test suite.
9447
9448         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9449
9450 2003-04-03  Havoc Pennington  <hp@pobox.com>
9451
9452         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9453         in preparation for modifying it, dbus-sysdeps is getting
9454         a bit unmanageable.
9455
9456 2003-04-03  Havoc Pennington  <hp@redhat.com>
9457
9458         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9459         have multiple ones
9460
9461         * bus/*.[hc]: adapt to mainloop change
9462
9463 2003-04-03  Havoc Pennington  <hp@redhat.com>
9464
9465         * bus/activation.c (load_directory): fix up memleaks
9466         (bus_activation_entry_free): free the entry
9467
9468         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9469         we get one from the message bus; fix memleaks.
9470
9471         * dbus/dbus-message.c (dbus_set_error_from_message): new function
9472
9473 2003-04-03  Havoc Pennington  <hp@pobox.com>
9474
9475         * bus/config-parser.c (bus_config_parser_unref): free
9476         list of mechanisms, bug discovered by test suite enhancements
9477         (putting system.conf and session.conf into suite)
9478
9479         * test/Makefile.am, test/test-service.c: add placeholder for a
9480         test service that we'll activate as part of test suite. Doesn't
9481         do anything yet.
9482
9483         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9484         setting NULL value, and use system malloc not dbus_malloc()
9485         when we have unavoidable memleakage.
9486
9487         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9488         didn't work, and support DBUS_BUS_ACTIVATION.
9489
9490         * bus/activation.c (child_setup): pass our well-known bus type to
9491         the child
9492
9493         * bus/config-parser.c: support <type> to specify well-known type
9494
9495         * doc/dbus-specification.sgml: document the env variables to
9496         locate well-known buses and find service activator
9497
9498 2003-04-02  Havoc Pennington  <hp@redhat.com>
9499
9500         * test/Makefile.am (all-local): add a rule to copy tests to
9501         builddir, so we can have generated tests. Use this to remove the
9502         silly hack for testing system.conf and session.conf. Will use this
9503         shortly to generate .service files pointing to test binaries.
9504
9505 2003-04-02  Havoc Pennington  <hp@redhat.com>
9506
9507         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9508         current alloc and needed new length, not max of the doubled
9509         allocation and needed new length. Also, when building tests,
9510         don't do the double-allocation stuff, just realloc every time.
9511
9512 2003-04-02  Havoc Pennington  <hp@redhat.com>
9513
9514         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9515         in error messages
9516         (_dbus_string_get_dirname): new
9517         (_dbus_sysdeps_test): new
9518         (_dbus_directory_open): include dirnames in error messages
9519
9520         * bus/config-parser.c: interpret <include> and <includedir> and
9521         <servicedir> relative to config file location if the given
9522         filename is not absolute.
9523
9524         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9525
9526 2003-04-02  Havoc Pennington  <hp@redhat.com>
9527
9528         * bus/connection.c (bus_transaction_send_error_reply): set sender
9529         service for the error, and unref the reply on success
9530
9531         * bus/activation.c: convert to use BusTransaction so OOM can be
9532         handled correctly
9533         (bus_activation_service_created): set sender of the message
9534
9535 2003-04-01  Havoc Pennington  <hp@redhat.com>
9536
9537         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9538         <includedir> (at least mostly)
9539
9540         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9541         first, then the user ID
9542
9543 2003-04-01  Havoc Pennington  <hp@pobox.com>
9544
9545         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9546         function
9547
9548         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9549
9550         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9551
9552         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9553         socket 0777, and unlink any existing socket.
9554
9555         * bus/bus.c (bus_context_new): change our UID/GID and fork if
9556         the configuration file so specifies; set up auth mechanism
9557         restrictions
9558
9559         * bus/config-parser.c (bus_config_parser_content): add support
9560         for <fork> option and fill in code for <auth>
9561
9562         * bus/system.conf.in: add <fork/> to default configuration,
9563         and limit auth mechanisms to EXTERNAL
9564
9565         * doc/config-file.txt (Elements): add <fork>
9566
9567         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9568         (_dbus_change_identity): new function
9569
9570 2003-03-31  Havoc Pennington  <hp@redhat.com>
9571
9572         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9573         (_dbus_listen_unix_socket): fix off-by-one error in null
9574         termination spotted by Nalin
9575
9576 2003-03-31  Havoc Pennington  <hp@redhat.com>
9577
9578         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9579         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9580         having a real home directory available.
9581
9582 2003-03-31  Havoc Pennington  <hp@redhat.com>
9583
9584         * bus/Makefile.am (install-data-hook): create /var/run/dbus
9585
9586         * bus/messagebus.in: add init script for Red Hat /etc/init.d
9587
9588         * configure.in: add support for specifying a style of init script
9589         to install
9590
9591 2003-03-31  Havoc Pennington  <hp@redhat.com>
9592
9593         Fix some annoying DBusString API and fix all affected code.
9594
9595         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9596         max_length argument
9597         (_dbus_string_get_data): change to return string instead of using
9598         an out param
9599         (_dbus_string_get_const_data): ditto
9600         (_dbus_string_get_data_len): ditto
9601         (_dbus_string_get_const_data_len): ditto
9602
9603 2003-03-31  Havoc Pennington  <hp@redhat.com>
9604
9605         * bus/main.c (main): fix up the command line arguments to be nicer
9606
9607 2003-03-31  Havoc Pennington  <hp@redhat.com>
9608
9609         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9610         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9611         final location that lands in the config file
9612
9613         * bus/config-loader-expat.c (bus_config_load): fix type of
9614         XML_Parser variable
9615
9616         * doc/TODO: remove TODO item for dbus_bus_get()
9617
9618         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9619
9620 2003-03-31  Havoc Pennington  <hp@pobox.com>
9621
9622         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9623         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9624         argument since they are always client side
9625
9626         * dbus/dbus-server.c (dbus_server_get_address): new function
9627
9628         * bus/main.c (main): take the configuration file as an argument.
9629
9630         * test/data/valid-config-files/debug-allow-all.conf: new file to
9631         use with dispatch.c tests for example
9632
9633         * bus/test-main.c (main): require test data dir
9634
9635         * bus/bus.c (bus_context_new): change this to take a
9636         configuration file name as argument
9637
9638         * doc/config-file.txt (Elements): add <servicedir>
9639
9640         * bus/system.conf, bus/session.conf: new files
9641
9642         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9643         well-known socket if none set
9644
9645         * configure.in: create system.conf and session.conf
9646
9647 2003-03-30  Havoc Pennington  <hp@pobox.com>
9648
9649         * bus/config-parser.c: hacking
9650
9651         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9652         to shut down, since it could cause weirdness with the DBusList
9653         lock
9654
9655         * dbus/dbus-list.c (_dbus_list_test): add tests for the
9656         link-oriented stack routines
9657         (alloc_link): free the mempool if the first alloc from it fails
9658
9659         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9660
9661         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9662         from GLib
9663         (_dbus_string_skip_white): new
9664
9665         * doc/config-file.txt (Elements): add <includedir>
9666
9667 2003-03-28  Havoc Pennington  <hp@pobox.com>
9668
9669         * dbus/dbus-string.c (_dbus_string_copy_data_len)
9670         (_dbus_string_copy_data): new functions
9671
9672 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
9673
9674         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9675         * dbus/dbus-bus.h:
9676         Add dbus_bus_get.
9677
9678         * dbus/dbus-memory.c:
9679         Fix a doc comment.
9680
9681 2003-03-28  Havoc Pennington  <hp@pobox.com>
9682
9683         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9684         I think it may have just been superstition. Not sure.
9685
9686         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9687         failures that were not being handled.
9688
9689         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9690
9691         * dbus/dbus-memory.c: add ability to set number of mallocs in a
9692         row that will fail on out-of-memory.
9693
9694         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9695         function for testing out-of-memory handling.
9696
9697         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9698         allocation functions, they do map exactly to the expat ones.
9699
9700 2003-03-27  Havoc Pennington  <hp@redhat.com>
9701
9702         * bus/config-loader-libxml.c (bus_config_load): add another error
9703         check
9704
9705 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9706
9707         * doc/TODO:
9708         Add note about automatic service activation.
9709
9710         * doc/dbus-specification.sgml:
9711         Rename the specification and clarify a few things.
9712
9713 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
9714
9715         * Doxyfile.in:
9716         * dbus/dbus-address.c:
9717         * dbus/dbus-dict.c:
9718         * dbus/dbus-marshal.c:
9719         * dbus/dbus-server-debug-pipe.c:
9720         * dbus/dbus-transport-unix.c:
9721         Fix documentation warnings.
9722
9723 2003-03-26  Havoc Pennington  <hp@pobox.com>
9724
9725         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9726         after every test so it's quick and easy to see which leaked, and
9727         so we test multiple dbus_shutdown() calls
9728
9729         * configure.in: change configure.in XML stuff to also support
9730         expat
9731
9732         * config-loader-libxml.c: some hacking
9733
9734         * config-loader-expat.c: some hacking
9735
9736         * config-parser.c: some hacking, plus tests
9737
9738 2003-03-25  Havoc Pennington  <hp@redhat.com>
9739
9740         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9741
9742         * configure.in: add --with-xml option to specify XML library,
9743         right now only libxml is supported.
9744
9745         * bus/config-loader-libxml.c, config-parser.c: sync some minor
9746         nonworking code between home and work, still just stubs
9747
9748 2003-03-24  Havoc Pennington  <hp@redhat.com>
9749
9750         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9751         file
9752
9753         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9754         NULL argument for "message" if the error is a well-known one,
9755         fill in a generic message in this case.
9756
9757         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9758         favor of DBusError
9759
9760         * bus/test.c (bus_test_flush_bus): add
9761
9762         * bus/policy.c (bus_policy_test): test code stub
9763
9764 2003-03-24  Havoc Pennington  <hp@pobox.com>
9765
9766         * bus/connection.c (bus_connections_setup_connection): set up
9767         the "can this user connect" function, but it always returns
9768         TRUE until we have a config file parser so we can have a config
9769         file that allows connections.
9770
9771 2003-03-23  Havoc Pennington  <hp@pobox.com>
9772
9773         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9774         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9775         the mutex, so we can check for proper memory management
9776         and OOM handling.
9777
9778         * dbus/dbus-dataslot.c: remove the mutex from
9779         DBusDataSlotAllocator and lock it manually when using it,
9780         to simplify fitting it into the global slots framework.
9781
9782         * dbus/dbus-threads.c (init_static_locks): rework how we're
9783         handling global locks so they are easily shut down.
9784
9785         * bus/policy.c (bus_policy_append_rule): fix
9786
9787         * bus/test-main.c (main): check for memleaks
9788
9789         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9790         test suite check for memleaks
9791
9792         * dbus/dbus-memory.c: add support in test mode for tracking
9793         number of outstanding blocks
9794
9795 2003-03-23  Havoc Pennington  <hp@pobox.com>
9796
9797         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9798         policies code
9799
9800         * dbus/dbus-hash.h: add ULONG hash keys
9801
9802         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9803         (_dbus_get_group_id): new function
9804
9805 2003-03-20  Havoc Pennington  <hp@redhat.com>
9806
9807         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9808         new function
9809         (dbus_connection_get_unix_user): new function
9810
9811 2003-03-20  Havoc Pennington  <hp@pobox.com>
9812
9813         * bus/connection.c (bus_connection_send_oom_error): assert that
9814         message has a sender
9815         (connection_execute_transaction): ditto
9816         (bus_connection_preallocate_oom_error): fix to set the sender, and
9817         set recipient to the destination service, not the bus driver
9818
9819         * bus/policy.c: hacking
9820
9821         * dbus/dbus-message.c (dbus_message_service_is): new function
9822         (dbus_message_sender_is): new
9823
9824 2003-03-19  Havoc Pennington  <hp@redhat.com>
9825
9826         * bus/policy.c: start sketching code for policy restrictions on
9827         what connections can do.
9828
9829 2003-03-18  Havoc Pennington  <hp@redhat.com>
9830
9831         * doc/TODO: some notes on high-level todo items. Little nitpick
9832         stuff is all in @todo, so no need to add it here.
9833
9834         * doc/config-file.txt: some notes on how config file might look
9835
9836 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
9837
9838         * configure.in: 0.6
9839
9840         * NEWS: Update.
9841
9842 2003-03-17  Havoc Pennington  <hp@redhat.com>
9843
9844         * dbus/dbus-internals.h: add gcc attributes so that
9845         our printf-style functions warn on bad arguments to
9846         format
9847
9848         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9849         format bug
9850
9851         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9852         printf format bug
9853
9854 2003-03-17  Havoc Pennington  <hp@redhat.com>
9855
9856         * bus/test-main.c (main): make it print something as it runs
9857         so make check doesn't look stuck
9858
9859         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9860         from CVS, now obsolete
9861
9862 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9863
9864         * bus/dispatch.c: (bus_dispatch):
9865         Refetch the service name since it may have been reallocated
9866         when dbus_message_set_sender was called.
9867
9868         * dbus/dbus-sysdeps.c: (_dbus_accept):
9869         Add address and address length variables and use them to stop
9870         valgrind from complaining.
9871
9872 2003-03-17  Havoc Pennington  <hp@pobox.com>
9873
9874         All tests pass, no memleaks, no valgrind complaints.
9875
9876         * bus/test.c: refcount handler_slot
9877
9878         * bus/connection.c (bus_connections_new): refcount
9879         connection_data_slot
9880
9881         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
9882         bytes so that auth scripts pass.
9883
9884         * bus/dispatch.c: init message_handler_slot so it gets allocated
9885         properly
9886
9887         * bus/dispatch.c (message_handler_slot_ref): fix memleak
9888
9889         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
9890         dealloc server_pipe_hash when no longer used for benefit of
9891         leak checking
9892
9893         * dbus/dbus-auth.c (process_command): memleak fix
9894
9895         * bus/dispatch.c (check_hello_message): memleak fix
9896
9897 2003-03-16  Havoc Pennington  <hp@pobox.com>
9898
9899         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
9900
9901 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
9902
9903         * bus/activation.c (bus_activation_activate_service): Append
9904         the pending activation entry to the list of pending activations.
9905
9906 2003-03-16  Havoc Pennington  <hp@pobox.com>
9907
9908         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
9909         connections
9910
9911         * dbus/dbus-address.c (create_entry): fix OOM handling when
9912         failing to alloc entry->method
9913
9914 2003-03-16  Havoc Pennington  <hp@pobox.com>
9915
9916         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
9917         the watch
9918
9919         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9920         add some missing dbus_set_result
9921
9922         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
9923         alloc the DBusMessageHandler
9924
9925         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
9926         the transport here, since we call this from the finalizer; it
9927         resulted in a double-finalize.
9928
9929         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
9930         where we tried to use transport->connection that was NULL,
9931         happened when transport was disconnected early on due to OOM
9932
9933         * bus/*.c: adapt to handle OOM for watches/timeouts
9934
9935         * dbus/dbus-transport-unix.c: port to handle OOM during
9936         watch handling
9937
9938         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
9939         reference to unused bytes instead of a copy
9940
9941         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
9942         out of memory
9943
9944         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
9945         FALSE on OOM
9946
9947         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
9948         of memory
9949
9950 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9951
9952         * doc/dbus-specification.sgml:
9953         Document reply message for ActivateService.
9954
9955 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
9956
9957         * bus/activation.c: (bus_pending_activation_entry_free),
9958         (bus_pending_activation_free), (bus_activation_new),
9959         (bus_activation_unref), (bus_activation_service_created),
9960         (bus_activation_activate_service):
9961         * bus/activation.h:
9962         * bus/bus.c: (bus_context_new):
9963         * bus/desktop-file.c: (new_section):
9964         * bus/driver.c: (bus_driver_send_service_deleted),
9965         (bus_driver_handle_activate_service):
9966         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
9967         * bus/services.h:
9968         * dbus/dbus-connection.c:
9969         (dbus_connection_send_with_reply_and_block):
9970         * dbus/dbus-message.c: (dbus_message_append_args_valist):
9971         * dbus/dbus-protocol.h:
9972         Make activation work better. Now pending activations will be queued
9973         and the daemon won't try to activate services that are already registered.
9974
9975 2003-03-16  Havoc Pennington  <hp@pobox.com>
9976
9977         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
9978         connection data
9979
9980         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
9981         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
9982
9983 2003-03-16  Havoc Pennington  <hp@pobox.com>
9984
9985         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
9986         this. always run the test suite before commit...
9987
9988         * bus/*: adapt to DBusConnection API changes
9989
9990         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
9991         requires renaming stuff to avoid dbus_connection_dispatch name
9992         conflict.
9993
9994         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
9995         function
9996
9997         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9998         separate from _dbus_message_loader_return_buffer()
9999
10000         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10001         this, because it's now always broken to use; the number of
10002         messages in queue vs. the number still buffered by the message
10003         loader is undefined/meaningless. Should use
10004         dbus_connection_get_dispatch_state().
10005         (dbus_connection_dispatch): rename from
10006         dbus_connection_dispatch_message
10007
10008 2003-03-16  Havoc Pennington  <hp@pobox.com>
10009
10010         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10011         implementation
10012
10013 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10014
10015         * dbus/dbus-connection.c:
10016         (dbus_connection_send_with_reply_and_block):
10017         Decrease connection->n_incoming when removing an entry
10018         from the list.
10019         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10020         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10021         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10022         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10023         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10024         (dbus_dict_get_byte_array):
10025         Handle NULL arrays and strings. Also add support for byte arrays.
10026
10027         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10028         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10029         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10030         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10031         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10032         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10033         * dbus/dbus-marshal.h:
10034         Add support for marshalling and demarshalling empty arrays and strings.
10035
10036         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10037         (dbus_message_append_string_array),
10038         (dbus_message_iter_get_boolean),
10039         (dbus_message_iter_get_boolean_array),
10040         (dbus_message_iter_get_int32_array),
10041         (dbus_message_iter_get_uint32_array),
10042         (dbus_message_iter_get_double_array),
10043         (dbus_message_iter_get_byte_array),
10044         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10045         (check_message_handling):
10046         Add support for getting empty arrays and dicts.
10047
10048         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10049         Don't do any validation at all for now, that's better than just checking
10050         for ASCII.
10051
10052         * test/data/valid-messages/emptiness.message:
10053         New test message with lots of empty arrays.
10054
10055 2003-03-16  Havoc Pennington  <hp@pobox.com>
10056
10057         * dbus/dbus-connection.c
10058         (_dbus_connection_queue_received_message_link): new function that
10059         can't fail due to OOM
10060
10061         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10062         new function pops a message together with a list link
10063         containing it.
10064
10065         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10066         message queuing functions to avoid needing to alloc memory
10067
10068 2003-03-16  Havoc Pennington  <hp@pobox.com>
10069
10070         Oops - test code was only testing failure of around 30 of the
10071         mallocs in the test path, but it turns out there are 500+
10072         mallocs. I believe this was due to misguided linking setup such
10073         that there was one copy of dbus_malloc etc. in the daemon and one
10074         in the shared lib, and only daemon mallocs were tested. In any
10075         case, the test case now tests all 500+ mallocs, and doesn't pass
10076         yet, though there are lots of fixes in this patch.
10077
10078         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10079         this so that it doesn't need to allocate memory, since it
10080         has no way of indicating failure due to OOM (and would be
10081         annoying if it did).
10082
10083         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10084
10085         * bus/Makefile.am: rearrange to create two self-contained
10086         libraries, to avoid having libraries with overlapping symbols.
10087         that was resulting in weirdness, e.g. I'm pretty sure there
10088         were two copies of global static variables.
10089
10090         * dbus/dbus-internals.c: move the malloc debug stuff to
10091         dbus-memory.c
10092
10093         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10094         empty.
10095
10096         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10097
10098         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10099         on failure.
10100
10101         * bus/dispatch.c (bus_dispatch_add_connection): free
10102         message_handler_slot when no longer using it, so
10103         memory leak checkers are happy for the test suite.
10104
10105         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10106
10107         * bus/bus.c (new_connection_callback): disconnect in here if
10108         bus_connections_setup_connection fails.
10109
10110         * bus/connection.c (bus_connections_unref): fix to free the
10111         connections
10112         (bus_connections_setup_connection): if this fails, don't
10113         disconnect the connection, just be sure there are no side
10114         effects.
10115
10116         * dbus/dbus-string.c (undo_alignment): unbreak this
10117
10118         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10119         leaking
10120         (_dbus_auth_new): fix the order in which we free strings
10121         on OOM failure
10122
10123         * bus/connection.c (bus_connection_disconnected): fix to
10124         not send ServiceDeleted multiple times in case of memory
10125         allocation failure
10126
10127         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10128         get the base service name
10129         (dbus_bus_register_client): don't return base service name,
10130         instead store it on the DBusConnection and have an accessor
10131         function for it.
10132         (dbus_bus_register_client): rename dbus_bus_register()
10133
10134         * bus/dispatch.c (check_hello_message): verify that other
10135         connections on the bus also got the correct results, not
10136         just the one sending hello
10137
10138 2003-03-15  Havoc Pennington  <hp@pobox.com>
10139
10140         Make it pass the Hello handling test including all OOM codepaths.
10141         Now to do other messages...
10142
10143         * bus/services.c (bus_service_remove_owner): fix crash when
10144         removing owner from an empty list of owners
10145         (bus_registry_ensure): don't leave service in the list of
10146         a connection's owned services if we fail to put the service
10147         in the hash table.
10148
10149         * bus/connection.c (bus_connection_preallocate_oom_error): set
10150         error flag on the OOM error.
10151
10152         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10153         handle _dbus_transport_set_connection failure
10154
10155         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10156         to create watches up front and simply enable/disable them as
10157         needed.
10158         (unix_connection_set): this can now fail on OOM
10159
10160         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10161         of enabling/disabling a watch or timeout.
10162
10163         * bus/loop.c (bus_loop_iterate): don't touch disabled
10164         watches/timeouts
10165
10166         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10167
10168 2003-03-15  Havoc Pennington  <hp@pobox.com>
10169
10170         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10171         write useful test code, after all that futzing around ;-)
10172
10173         Test does not yet pass because we can't handle OOM in
10174         _dbus_transport_messages_pending (basically,
10175         dbus_connection_preallocate_send() does not prealloc the write
10176         watch). To fix this, I think we need to add new stuff to
10177         set_watch_functions, namely a SetEnabled function so we can alloc
10178         the watch earlier, then enable it later.
10179
10180         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10181         dbus-memory.c to the convenience lib
10182
10183         * bus/test.c: rename some static functions to keep them clearly
10184         distinct from stuff in connection.c. Handle client disconnection.
10185
10186 2003-03-14  Havoc Pennington  <hp@pobox.com>
10187
10188         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10189         transport, tests more of the real codepath. Set up clients
10190         with bus_setup_debug_client.
10191
10192         * bus/test.c (bus_setup_debug_client): function to set up debug
10193         "clients" on the main loop
10194
10195         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10196         support
10197
10198         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10199         server type
10200
10201         * dbus/dbus-server-debug.c: support a debug server based on pipes
10202
10203         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10204         (_dbus_close): new function
10205
10206         * configure.in: check for socketpair
10207
10208 2003-03-14  Havoc Pennington  <hp@redhat.com>
10209
10210         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10211         cheesy hack
10212
10213         * dbus/dbus-transport-debug.c: rework this a good bit to be
10214         less complicated. hopefully still works.
10215
10216         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10217         manually
10218
10219         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10220         after running it
10221
10222         * dbus/dbus-message.c (dbus_message_copy): rename from
10223         dbus_message_new_from_message, fix it up to copy
10224         all the message fields, add test case
10225
10226         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10227         not quite passing yet
10228
10229 2003-03-14  Havoc Pennington  <hp@pobox.com>
10230
10231         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10232         until no work remains" in test code. (the large diff here
10233         is just code movement, no actual changes)
10234
10235         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10236         1, no point waiting around for test code.
10237         (_dbus_server_debug_accept_transport): unref the timeout
10238         after adding it (right?)
10239
10240         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10241
10242 2003-03-13  Havoc Pennington  <hp@redhat.com>
10243
10244         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10245         out of memory
10246
10247         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10248         of memory
10249
10250         * dbus/dbus-connection.h: Make AddWatchFunction and
10251         AddTimeoutFunction return a bool so they can fail on out-of-memory
10252
10253         * bus/bus.c (bus_context_new): set up timeout handlers
10254
10255         * bus/connection.c (bus_connections_setup_connection): set up
10256         timeout handlers
10257
10258         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10259         can fail
10260
10261         * bus/bus.c (bus_context_new): adapt to changes
10262
10263         * bus/connection.c: adapt to changes
10264
10265         * test/watch.c: adapt to DBusWatch changes
10266
10267         * bus/dispatch.c (bus_dispatch_test): started adding this but
10268         didn't finish
10269
10270 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
10271
10272         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10273
10274 2003-03-13  Havoc Pennington  <hp@pobox.com>
10275
10276         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10277         set up a test framework as for the library
10278
10279 2003-03-12  Havoc Pennington  <hp@pobox.com>
10280
10281         Throughout: purge global variables, introduce BusActivation,
10282         BusConnections, BusRegistry, etc. objects instead.
10283
10284         * bus/bus.h, bus/bus.c: introduce BusContext as a global
10285         message bus object
10286
10287         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10288         going to redo this a bit differently I think
10289
10290 2003-03-12  Havoc Pennington  <hp@redhat.com>
10291
10292         Mega-patch that gets the message bus daemon initially handling
10293         out-of-memory. Work still needed. Also lots of random
10294         moving stuff to DBusError instead of ResultCode.
10295
10296         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10297
10298         * dbus/dbus-connection.c
10299         (dbus_connection_send_with_reply_and_block): use DBusError
10300
10301         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10302         DBusResultCode
10303
10304         * dbus/dbus-connection.c (dbus_connection_send): drop the result
10305         code here, as the only failure possible is OOM.
10306
10307         * bus/connection.c (bus_connection_disconnect):
10308         rename bus_connection_disconnected as it's a notification only
10309
10310         * bus/driver.c (bus_driver_handle_acquire_service): don't free
10311         "name" on get_args failure, should be done by get_args;
10312         don't disconnect client for bad args, just return an error.
10313         (bus_driver_handle_service_exists): ditto
10314
10315         * bus/services.c (bus_services_list): NULL-terminate returned array
10316
10317         * bus/driver.c (bus_driver_send_service_lost)
10318         (bus_driver_send_service_acquired): send messages from driver to a
10319         specific client to the client's unique name, not to the broadcast
10320         service.
10321
10322         * dbus/dbus-message.c (decode_header_data): reject messages that
10323         contain no name field
10324         (_dbus_message_get_client_serial): rename to
10325         dbus_message_get_serial and make public
10326         (_dbus_message_set_serial): rename from set_client_serial
10327         (_dbus_message_set_reply_serial): make public
10328         (_dbus_message_get_reply_serial): make public
10329
10330         * bus/connection.c (bus_connection_foreach): allow stopping
10331         iteration by returning FALSE from foreach function.
10332
10333         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10334         (dbus_connection_free_preallocated_send)
10335         (dbus_connection_preallocate_send): new API for sending a message
10336         without possibility of malloc failure.
10337         (dbus_connection_send_message): rename to just
10338         dbus_connection_send (and same for whole function family)
10339
10340         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10341
10342         * dbus/dbus-sysdeps.c (_dbus_exit): new function
10343
10344         * bus/activation.c: handle/return errors
10345
10346         * dbus/dbus-errors.h: add more DBUS_ERROR #define
10347
10348         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10349         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10350         (_dbus_result_from_errno): move to this file
10351
10352 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
10353
10354         * dbus/dbus-marshal.c:
10355         (_dbus_marshal_set_string):
10356         Take a length argument so we can marshal the correct string
10357         length.
10358
10359         (_dbus_marshal_dict), (_dbus_demarshal_dict),
10360         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10361         (_dbus_marshal_test):
10362         * dbus/dbus-marshal.h:
10363         Add support for marshalling and demarshalling dicts.
10364
10365         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10366         Add support for TYPE DICT.
10367
10368         * dbus/dbus-message.c: (set_string_field):
10369         Adjust header padding.
10370
10371         (dbus_message_append_args_valist), (dbus_message_append_dict),
10372         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10373         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10374         (check_message_handling), (check_have_valid_message):
10375         * dbus/dbus-message.h:
10376         Add functions for setting and getting dicts.
10377
10378         * dbus/dbus-protocol.h:
10379         Add DBUS_TYPE_DICT.
10380
10381         * dbus/dbus.h:
10382         Add dbus-dict.h
10383
10384         * doc/dbus-specification.sgml:
10385         Add information about how dicts are marshalled.
10386
10387         * test/data/invalid-messages/dict-with-nil-value.message:
10388         * test/data/invalid-messages/too-short-dict.message:
10389         * test/data/valid-messages/dict-simple.message:
10390         * test/data/valid-messages/dict.message:
10391         Add sample messages containing dicts.
10392
10393 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
10394
10395         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10396
10397 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10398
10399         * dbus/Makefile.am:
10400         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10401         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10402         (dbus_dict_set_int32), (dbus_dict_set_uint32),
10403         (dbus_dict_set_double), (dbus_dict_set_string),
10404         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10405         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10406         (dbus_dict_set_string_array), (_dbus_dict_test):
10407         * dbus/dbus-dict.h:
10408         Fix according to comments from Havoc.
10409
10410 2003-03-06  Michael Meeks  <michael@server.home>
10411
10412         * configure.in: if we don't have kde-config, disable have_qt.
10413
10414 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
10415
10416         * dbus/Makefile.am:
10417         Add dbus-dict.[ch]
10418
10419         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10420         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10421         (dbus_dict_remove), (dbus_dict_get_value_type),
10422         (dbus_dict_get_keys), (dbus_dict_put_boolean),
10423         (dbus_dict_put_int32), (dbus_dict_put_uint32),
10424         (dbus_dict_put_double), (dbus_dict_put_string),
10425         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10426         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10427         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10428         (dbus_dict_get_int32), (dbus_dict_get_uint32),
10429         (dbus_dict_get_double), (dbus_dict_get_string),
10430         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10431         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10432         (dbus_dict_get_string_array), (_dbus_dict_test):
10433         * dbus/dbus-dict.h:
10434         Add DBusDict implementation
10435
10436         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10437         * dbus/dbus-test.h:
10438         Add _dbus_dict_test
10439
10440 2003-03-04  Havoc Pennington  <hp@pobox.com>
10441
10442         * test/data/auth/*: adapt to changes
10443
10444         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10445         USERID_BASE64 and change USERNAME_BASE64 to put in username not
10446         userid
10447
10448         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10449         more stuff from being in a context name, to make the protocol
10450         simpler to deal with
10451
10452         * dbus/dbus-errors.c (dbus_error_has_name): new function
10453         (dbus_error_is_set): new function
10454
10455         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10456         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10457
10458         * dbus/dbus-connection.c (dbus_connection_flush): also read
10459         messages during a flush operation
10460
10461         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10462
10463 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10464
10465         * configure.in: Check for gethostbyname on Solaris.
10466
10467         * dbus/dbus-transport.c: (_dbus_transport_open):
10468         Remove duplicate "tcp" entry.
10469
10470         * doc/dbus-specification.sgml:
10471         Clarify some things.
10472
10473 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10474
10475         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10476         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10477         (_dbus_keyring_test):
10478         * dbus/dbus-md5.c: (_dbus_md5_compute):
10479         * dbus/dbus-sha.c: (_dbus_sha_compute):
10480         Plug memory leaks.
10481
10482 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
10483
10484         * README: Add some things.
10485
10486 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
10487
10488         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10489         after case DBUS_TYPE_BOOELAN.
10490
10491 2003-03-02  Havoc Pennington  <hp@pobox.com>
10492
10493         * test/break-loader.c (randomly_set_extreme_ints): add test that
10494         sets really huge and small integers
10495
10496         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10497         that length of boolean array fits in the string, and that
10498         string has room for boolean value in single-bool case.
10499
10500         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10501         optional value to "ALIGN" command which is what to fill the
10502         alignment with.
10503
10504         * test/data/valid-messages/no-padding.message: add regression
10505         test for the message padding problem
10506
10507 2003-03-02  Havoc Pennington  <hp@pobox.com>
10508
10509         * dbus/dbus-message.c (decode_header_data): fix to always init
10510         message_padding, from Benjamin Dauvergne
10511
10512 2003-03-02  Havoc Pennington  <hp@pobox.com>
10513
10514         * configure.in: 0.5
10515
10516         * NEWS: Update.
10517
10518 2003-03-01  Joe Shaw  <joe@assbarn.com>
10519
10520         * configure.in: Check for "struct cmsgcred" and try to access its
10521         members for BSD-like unices.
10522
10523         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10524         _dbus_read_credentials_unix_socket().
10525         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10526         read() for reading the credential byte off the unix socket.  Use
10527         struct cmsgcred on systems that support it.
10528
10529 2003-02-27  Alexander Larsson  <alexl@redhat.com>
10530
10531         * glib/Makefile.am:
10532         * configure.in:
10533         Make gthreads-2.0 dependency optional. Don't build thread test if
10534         its not found.
10535
10536 2003-02-27  Havoc Pennington  <hp@pobox.com>
10537
10538         * dbus/dbus-connection.c
10539         (dbus_connection_send_message_with_reply_and_block): fix doh!
10540         doh! doh! bug that resulted in never removing a reply from the
10541         queue, no wonder we called get_reply_serial so much ;-)
10542
10543         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10544         and client serial instead of demarshaling them every time
10545
10546 2003-02-27  Havoc Pennington  <hp@pobox.com>
10547
10548         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10549         more inlined, using dbus-string-private.h, speeds things up
10550         substantially
10551
10552         * dbus/dbus-string.c (_dbus_string_free): apply align offset
10553         when freeing the string
10554         (_dbus_string_steal_data): fix for align offset
10555         (undo_alignment): new function
10556
10557 2003-02-26  Havoc Pennington  <hp@redhat.com>
10558
10559         All kinds of audit fixes from Owen, plus initial attempt to
10560         handle unaligned memory returned from malloc.
10561
10562         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10563         leave room for align_offset and nul byte
10564         (fixup_alignment): function to track an align_offset and
10565         ensure real->str is aligned
10566         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10567         to allow a nul byte plus align offset
10568         (_dbus_string_lock): fix overflow issue
10569         (_dbus_string_init_const_len): add assertions on sanity of len,
10570         assign allocated to be ALLOCATION_PADDING larger than len
10571         (set_length): fixup the overflow handling
10572         (_dbus_string_get_data_len): fix overflow in assertion
10573         (open_gap): detect overflow in size of gap to be opened
10574         (_dbus_string_lengthen): add overflow check
10575         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10576         (_dbus_string_append): add overflow check
10577         (_dbus_string_append_unichar): overflow
10578         (_dbus_string_delete): fix overflow in assertion
10579         (_dbus_string_copy_len): overflow in assertion
10580         (_dbus_string_replace_len): overflows in assertions
10581         (_dbus_string_find): change to implement in terms of
10582         _dbus_string_find_to
10583         (_dbus_string_find_to): assorted fixage
10584         (_dbus_string_equal_c_str): assert c_str != NULL,
10585         fix logic so the function works
10586         (_dbus_string_ends_with_c_str): fix overflow thingy
10587         (_dbus_string_base64_encode): overflow fix
10588         (_dbus_string_validate_ascii): overflow
10589         (_dbus_string_validate_nul): overflow
10590
10591 2003-02-26  Havoc Pennington  <hp@redhat.com>
10592
10593         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10594
10595 2003-02-26  Alexander Larsson  <alexl@redhat.com>
10596
10597         * configure.in:
10598         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10599
10600         * dbus/dbus-connection.c:
10601         * dbus/dbus-connection.h:
10602         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10603         Add dbus_connection_set_wakeup_main_function and use it when queueing
10604         incoming and outgoing messages.
10605
10606
10607         * dbus/dbus-dataslot.c:
10608         Threadsafe usage of DBusDataSlotAllocator
10609
10610         * dbus/dbus-message.c: (dbus_message_get_args_iter):
10611         dbus_new can fail.
10612
10613         * dbus/dbus-server-unix.c:
10614         Add todo comment
10615
10616         * glib/dbus-gmain.c:
10617         Implement the new wakeup functions for glib.
10618
10619         * glib/Makefile.am:
10620         * glib/test-thread-client.c:
10621         * glib/test-thread-server.c:
10622         * glib/test-thread.h:
10623         Initial cut at some thread test code. Not really done yet.
10624
10625 2003-02-26  Havoc Pennington  <hp@pobox.com>
10626
10627         * dbus/dbus-connection.c
10628         (dbus_connection_send_message_with_reply_and_block): fix crash
10629         where we ref'd the outgoing message instead of the returned reply
10630
10631         * dbus/dbus-transport-unix.c (do_authentication): check read watch
10632         at the end of this function, so if we didn't need to read for
10633         authentication, we reinstall it for receiving messages
10634
10635         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10636         a NULL sender for peer-to-peer case
10637
10638         * dbus/dbus-transport-unix.c (check_read_watch): handle
10639         !authenticated case correctly
10640
10641         * glib/dbus-gmain.c: add support for DBusServer
10642
10643         * dbus/dbus-server.c: add data slot support
10644
10645         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10646         return values and handle errors
10647
10648         * dbus/dbus-dataslot.c: factor out the data slot stuff from
10649         DBusConnection
10650
10651         * Doxyfile.in (INPUT): add glib subdir
10652
10653         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10654         setup_with_g_main instead of hookup_with_g_main; write docs
10655
10656 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10657
10658         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10659         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10660         * dbus/dbus-message.c: (dbus_message_append_boolean),
10661         (dbus_message_append_boolean_array),
10662         (dbus_message_get_args_valist), (_dbus_message_test):
10663         * dbus/dbus-message.h:
10664         * doc/dbus-specification.sgml:
10665         Various fixes as pointed out by Havoc.
10666
10667         * test/data/invalid-messages/bad-boolean-array.message:
10668         * test/data/invalid-messages/bad-boolean.message:
10669         Add invalid boolean value test cases.
10670
10671 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
10672
10673         * dbus/dbus-internals.c: (_dbus_type_to_string):
10674         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10675         (_dbus_marshal_validate_arg):
10676         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10677         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10678         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10679         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10680         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10681         (dbus_message_iter_get_double),
10682         (dbus_message_iter_get_boolean_array), (message_iter_test):
10683         * dbus/dbus-message.h:
10684         * dbus/dbus-protocol.h:
10685         * doc/dbus-specification.sgml:
10686         * test/data/valid-messages/lots-of-arguments.message:
10687         Add support for boolean and boolean array types.
10688
10689 2003-02-23  Havoc Pennington  <hp@pobox.com>
10690
10691         * dbus/dbus-keyring.c: finish most of this implementation and
10692         simple unit test
10693
10694         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10695         these barf if the error isn't cleared to NULL
10696
10697         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10698         (_dbus_create_directory): new function
10699
10700         * dbus/dbus-errors.c (dbus_set_error): fix warning
10701
10702         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10703         (_dbus_string_hex_decode): new function
10704         (test_hex_roundtrip): test code
10705
10706         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10707
10708         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10709
10710         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10711         the save-to-temp/rename trick to atomically write the new file
10712         (_dbus_string_parse_uint): new function
10713
10714 2003-02-22  Havoc Pennington  <hp@pobox.com>
10715
10716         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10717
10718 2003-02-22  Havoc Pennington  <hp@pobox.com>
10719
10720         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10721         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10722
10723         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10724
10725         * dbus/test/data/sha-1: add US government test suite for SHA-1
10726
10727 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10728
10729         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10730         Make string arrays NULL-terminated.
10731
10732         * dbus/dbus-memory.c: (dbus_free_string_array):
10733         * dbus/dbus-memory.h:
10734         New function for freeing NULL-terminated string arrays.
10735
10736         * dbus/dbus-message-builder.c: (append_quoted_string),
10737         (_dbus_message_data_load):
10738         Add support for array types.
10739
10740         * dbus/dbus-message.c: (check_message_handling):
10741         Add more types as test cases.
10742
10743         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10744         (_dbus_string_parse_double):
10745         Add the start offset to the end offset.
10746
10747         * test/data/valid-messages/lots-of-arguments.message:
10748         New test message with lots of arguments.
10749
10750 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10751
10752         * dbus/dbus-message.c: (dbus_message_append_nil),
10753         (dbus_message_append_int32), (dbus_message_append_uint32),
10754         (dbus_message_append_double), (dbus_message_append_string),
10755         (dbus_message_append_int32_array),
10756         (dbus_message_append_uint32_array),
10757         (dbus_message_append_double_array),
10758         (dbus_message_append_byte_array),
10759         (dbus_message_append_string_array):
10760         Fix all out-of-memory handling in these functions.
10761
10762 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10763
10764         * dbus/dbus-message.c: (dbus_message_append_nil):
10765         Fix a silly.
10766
10767 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10768
10769         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10770         (dbus_message_append_nil), (dbus_message_append_int32_array),
10771         (dbus_message_append_uint32_array),
10772         (dbus_message_append_double_array),
10773         (dbus_message_append_byte_array),
10774         (dbus_message_append_string_array), (dbus_message_get_args_valist),
10775         (dbus_message_iter_get_int32_array),
10776         (dbus_message_iter_get_uint32_array),
10777         (dbus_message_iter_get_double_array),
10778         (dbus_message_iter_get_byte_array),
10779         (dbus_message_iter_get_string_array):
10780
10781         * dbus/dbus-message.h:
10782         Add functions for appending and getting arrays.
10783
10784 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
10785
10786         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10787         element size at least 8 bytes, fixes mempool tests on
10788         64-bit machines.
10789
10790 2003-02-20  Alexander Larsson  <alexl@redhat.com>
10791
10792         * dbus/dbus-transport-unix.c (unix_do_iteration):
10793         Unlock the connection mutex during a blocking select call.
10794         Add todo about how we need a way to wake up the select.
10795
10796         * dbus/dbus-connection-internal.h:
10797         * dbus/dbus-connection.c:
10798         Add _dbus_connection_lock and _dbus_connection_unlock.
10799
10800 2003-02-19  Havoc Pennington  <hp@pobox.com>
10801
10802         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10803         Doxyfile.in, not Doxyfile
10804
10805         * dbus/dbus-keyring.c: do some hacking on this
10806
10807         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10808
10809         * dbus/dbus-errors.c (dbus_set_error_const): do not call
10810         dbus_error_init
10811         (dbus_set_error): remove dbus_error_init, check for message ==
10812         NULL *before* we sprintf into it, and add @todo about including
10813         system headers in this file
10814
10815         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10816
10817         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10818
10819         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10820         get various bits of user information based on either username
10821         or user ID
10822         (_dbus_homedir_from_username): new function
10823
10824 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
10825
10826         * configure.in:
10827         Add check for nonposix getpwnam_r
10828
10829         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10830         Align the pool element size to a sizeof (void *) boundary.
10831
10832         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10833         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10834         General Solaris fixes.
10835
10836         * test/data/valid-messages/simplest-manual.message:
10837         Explicitly state that we want little-endian packing.
10838
10839 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
10840
10841         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10842
10843         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10844         Added to create a transport connecting using a tcp/ip socket.
10845
10846         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10847         to a tcp socket at given host and port.
10848         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10849         hostname and port.
10850
10851         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10852
10853         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10854         Added to create a server listening on a TCP/IP socket.
10855
10856 2003-02-19  Havoc Pennington  <hp@pobox.com>
10857
10858         Throughout: mop up all the Doxygen warnings and undocumented
10859         stuff.
10860
10861         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10862         to search any paths.
10863
10864         * dbus/dbus-threads.c: move global mutex initializers to
10865         dbus-internals.h, multiple prototypes was confusing doxygen
10866         besides being kind of ugly
10867
10868         * Doxyfile (PREDEFINED): have Doxygen define
10869         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
10870         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
10871         (do not abuse the feature! it's for stuff like the autogenerated
10872         macros in dbus-md5.c, not just for things you don't feel like
10873         documenting...)
10874
10875 2003-02-18  Havoc Pennington  <hp@pobox.com>
10876
10877         * dbus/dbus-string.c (_dbus_string_zero): new function
10878
10879         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
10880         wrap it in some dbus-friendly API
10881
10882         * dbus/dbus-types.h: add 16-bit types
10883
10884 2003-02-18  Joe Shaw  <joe@assbarn.com>
10885
10886         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
10887         credentials from our currently running process.
10888         (get_word): Fix a buglet where we were copying the entire length
10889         instead of relative to our position.
10890
10891         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
10892         keys on the stack... it's 640k of data.
10893
10894         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
10895         read the credentials byte off the socket, even if we don't have
10896         SO_PEERCRED.
10897         (_dbus_poll): Implement poll() using select() for systems which
10898         don't have it.
10899
10900         * glib/test-dbus-glib.c (main): Print out an error if no
10901         parameters are given.
10902
10903         * test/data/auth/fallback.auth-script: Added.  Tests that a client
10904         can fallback to a secondary auth mechanism if the first fails.
10905
10906 2003-02-18  Havoc Pennington  <hp@pobox.com>
10907
10908         * AUTHORS: add Alex
10909
10910 2003-02-17  Havoc Pennington  <hp@pobox.com>
10911
10912         * doc/dbus-specification.sgml: lots of cosmetic
10913         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
10914         env variable to DBUS_BUS_ADDRESS, s/client/application/,
10915         s/server/bus/ (except in authentication section). Add a section
10916         "Message Bus Message Routing"
10917
10918 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
10919
10920         Release 0.4
10921
10922         * NEWS: Update
10923
10924 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10925
10926         * doc/dbus-specification.sgml:
10927         Specification updates.
10928
10929 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10930
10931         * bus/activation.c: (bus_activation_init), (child_setup),
10932         (bus_activation_activate_service):
10933         * bus/activation.h:
10934         * bus/main.c: (main):
10935         Set DBUS_ADDRESS environment variable.
10936
10937         * dbus/dbus-errors.c: (dbus_set_error):
10938         Don't use va_copy since that's a C99 feature.
10939
10940         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
10941         (_dbus_spawn_async):
10942         * dbus/dbus-sysdeps.h:
10943         Add child_setup_func to _dbus_spawn_async.
10944
10945         * doc/dbus-specification.sgml:
10946         Update specification.
10947
10948         * test/spawn-test.c: (setup_func), (main):
10949         Fix test.
10950
10951 2003-02-17  Alexander Larsson  <alexl@redhat.com>
10952
10953         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
10954         Added todo.
10955
10956 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10957
10958         * doc/.cvsignore:
10959         * doc/Makefile.am:
10960         * doc/dbus-test-plan.sgml:
10961         Add test plan document.
10962
10963         * test/Makefile.am:
10964         Fix distcheck.
10965
10966 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
10967
10968         * dbus/dbus-message.c: (decode_header_data),
10969         (_dbus_message_loader_return_buffer):
10970         Set the header padding amount when loading a message.
10971
10972 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
10973
10974         * bus/dispatch.c: (send_one_message):
10975         Only send broadcast messages to registered connections.
10976
10977         * dbus/dbus-message.c: (dbus_message_name_is):
10978         * dbus/dbus-message.h:
10979         New convenience function.
10980
10981         * dbus/dbus-transport-debug.c: (do_reading):
10982         Only dispatch one message per run.
10983
10984         * test/Makefile.am:
10985         * test/bus-test.c: (new_connection_callback), (die),
10986         (test_hello_client1_handler), (test_hello_client2_handler),
10987         (test_hello_replies), (main):
10988
10989         * test/bus-test-loop.[ch]:
10990         Add these.
10991
10992 2003-02-16  Havoc Pennington  <hp@pobox.com>
10993
10994         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10995         backward conditional
10996
10997 2003-02-16  Alexander Larsson  <alexl@redhat.com>
10998
10999         * dbus/dbus-connection.c:
11000         Implement sent_message_with_reply. (with_reply_and block is still
11001         busted).
11002         Made dispatch_message not lose message if OOM.
11003
11004         * dbus/dbus-errors.h:
11005         Add NoReply error (for reply timeouts).
11006
11007 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11008
11009         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11010         Actually free keys and values when destroying hashtable.
11011
11012 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11013
11014         * dbus/dbus-auth.c: (client_try_next_mechanism):
11015         Plug a leak.
11016
11017         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11018         Return TRUE if there's no thread implementation around.
11019
11020         * glib/dbus-gmain.c: (free_source),
11021         (dbus_connection_hookup_with_g_main):
11022         Make sure to remove the GSource when the connection is finalized.
11023
11024 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11025
11026         * bus/dispatch.c: (bus_dispatch_message_handler):
11027         * dbus/dbus-errors.h:
11028         Return an error if someone tries to send a message to a service
11029         that doesn't exist.
11030
11031 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11032
11033         * bus/activation.c: (load_directory), (bus_activation_init),
11034         (bus_activation_activate_service):
11035         * bus/activation.h:
11036         * bus/driver.c:
11037         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11038         More work on the activation handling.
11039
11040         * dbus/dbus-errors.h:
11041         Add some error messages
11042
11043         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11044         * dbus/dbus-message.h:
11045         New function that creates an error message.
11046
11047         * dbus/dbus-protocol.h:
11048         Add ACTIVATE_SERVER message.
11049
11050         * dbus/dbus-server-unix.c: (unix_handle_watch),
11051         (_dbus_server_new_for_domain_socket):
11052         Call _dbus_fd_set_close_on_exec.
11053
11054         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11055         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11056         (_dbus_fd_set_close_on_exec):
11057         * dbus/dbus-sysdeps.h:
11058         Add _dbus_fd_set_close_on exec function. Also add function that checks
11059         that all open fds are set to close-on-exec and warns otherwise.
11060
11061         * dbus/dbus-transport-unix.c:
11062         (_dbus_transport_new_for_domain_socket):
11063         Call _dbus_fd_set_close_on_exec.
11064
11065 2003-02-16  Havoc Pennington  <hp@pobox.com>
11066
11067         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11068         allow people to avoid setting SIGPIPE to SIG_IGN
11069         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11070         we've been asked not to
11071
11072 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11073
11074         * dbus/dbus-list.c: (_dbus_list_append_link),
11075         (_dbus_list_prepend_link):
11076         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11077         (dbus_realloc):
11078         Warning fixes.
11079
11080 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11081
11082         * bus/Makefile.am:
11083         * bus/activation.c: (bus_activation_entry_free),
11084         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11085         * bus/activation.h:
11086         * bus/main.c: (main):
11087         Add simple activation support, doesn't work yet though.
11088
11089 2003-02-15   Zack Rusin  <zack@kde.org>
11090
11091         * qt/dbus-qthread.cpp:  small casting fix
11092
11093 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11094
11095         * dbus/dbus-errors.c: (dbus_set_error):
11096         * dbus/dbus-errors.h:
11097         Add a few errors and make dbus_set_error void.
11098
11099         * dbus/dbus-sysdeps.c:
11100         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11101         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11102         * dbus/dbus-sysdeps.h:
11103         Add _dbus_spawn_async.
11104
11105         * test/spawn-test.c: (main):
11106         Test for _dbus_spawn_async.
11107
11108 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11109
11110         * dbus/dbus-internals.h:
11111         Fix build without tests.
11112
11113         * dbus/dbus-list.c: (alloc_link):
11114         Fix a segfault when a malloc fails.
11115
11116         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11117         (dbus_malloc0), (dbus_realloc):
11118         Add support for malloc debugging.
11119
11120 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11121
11122         * dbus/dbus-threads.c:
11123         * dbus/dbus-threads.h:
11124         Add condvars. Remove static mutext from API.
11125         Implement static mutexes by initializing them from threads_init.
11126
11127         * glib/dbus-gthread.c:
11128         * qt/dbus-qthread.cpp:
11129         Update with the thread api changes.
11130
11131
11132         * dbus/dbus-list.c:
11133         * dbus/dbus-list.h:
11134         Turn StaticMutex into normal mutex + init function.
11135         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11136         _dbus_list_append_link, _dbus_list_prepend_link
11137
11138
11139         * dbus/dbus-sysdeps.c:
11140         * dbus/dbus-sysdeps.h:
11141         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11142         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11143
11144         * dbus/dbus-protocol.h:
11145         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11146
11147         * dbus/dbus-message.c:
11148         Make ref/unref atomic.
11149         Fix some docs.
11150
11151         * dbus/dbus-connection-internal.h:
11152         * dbus/dbus-connection.c:
11153         * dbus/dbus-connection.h:
11154         Make threadsafe.
11155         Change _peek to _borrow,_return & _steal_borrowed.
11156         Change disconnect callback to event.
11157         Make dbus_connection_dispatch_messages reentrant.
11158
11159         * dbus/dbus-transport.c:
11160         Don't ref the connection on calls to the transport
11161         implementation.
11162
11163         * dbus/dbus-message-handler.c:
11164         Make threadsafe.
11165
11166         * glib/dbus-gmain.c:
11167         Don't use peek_message anymore
11168
11169         * test/Makefile.am:
11170         * test/debug-thread.c:
11171         * test/debug-thread.h:
11172         Simple thread implementation that asserts() on deadlocks in
11173         single-threaded code.
11174
11175         * test/bus-test.c:
11176         (main) Call debug_threads_init.
11177
11178         * test/watch.c:
11179         Use disconnect message instead of disconnect callback.
11180
11181         * bus/connection.c:
11182         * bus/connection.h:
11183         Don't call dbus_connection_set_disconnect_function. Instead export
11184         bus_connection_disconnect.
11185
11186         * bus/dispatch.c:
11187         Call bus_connection_disconnect when we get a disconnected message.
11188
11189 2003-02-15  Havoc Pennington  <hp@pobox.com>
11190
11191         * dbus/dbus-message.c (dbus_message_new): fool around with the
11192         docs
11193
11194 2003-02-14  Havoc Pennington  <hp@pobox.com>
11195
11196         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11197
11198         * dbus/dbus-memory.c: fail if the debug functions indicate we
11199         should
11200
11201         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11202         (_dbus_decrement_fail_alloc_counter): debug functions to
11203         simulate memory allocation failures
11204
11205 2003-02-14  Havoc Pennington  <hp@pobox.com>
11206
11207         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11208         to DBusError
11209
11210 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11211
11212         * bus/driver.c: (bus_driver_handle_hello):
11213         * bus/driver.h:
11214         * bus/services.c: (bus_service_lookup):
11215         Reorder message sending so we get a more sane order.
11216
11217         * test/bus-test.c: (message_handler):
11218         Fix tyop.
11219
11220 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11221
11222         * bus/driver.c: (bus_driver_send_service_deleted),
11223         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11224         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11225         (bus_driver_send_welcome_message),
11226         (bus_driver_handle_list_services),
11227         (bus_driver_handle_acquire_service),
11228         (bus_driver_handle_service_exists):
11229         * dbus/dbus-bus.c: (dbus_bus_register_client),
11230         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11231         * dbus/dbus-errors.c: (dbus_result_to_string):
11232         * dbus/dbus-errors.h:
11233         * dbus/dbus-message.c: (dbus_message_append_args),
11234         (dbus_message_append_args_valist), (dbus_message_get_args),
11235         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11236         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11237         (dbus_message_iter_get_byte_array),
11238         (dbus_message_iter_get_string_array), (message_iter_test),
11239         (check_message_handling), (_dbus_message_test):
11240         * dbus/dbus-message.h:
11241         * test/bus-test.c: (main):
11242         Change fields to arguments in messages, so that they won't be
11243         confused with header fields.
11244
11245         * glib/test-dbus-glib.c: (main):
11246         Remove append_fields from hello message.
11247
11248 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11249
11250         * dbus/dbus-errors.c:
11251         * dbus/dbus-message.c:
11252         * dbus/dbus-string.c:
11253         Documentation fixes.
11254
11255 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11256
11257         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11258         (remove_timeout):
11259         Implement support for timeouts in dbus-glib.
11260
11261 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11262
11263         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11264         * dbus/dbus-message.c: (process_test_subdir):
11265         * test/break-loader.c: (find_breaks_based_on):
11266         Plug some memory leaks.
11267
11268 2003-02-13  Richard Hult  <rhult@codefactory.se>
11269
11270         * bus/main.c: Fix build.
11271
11272         * dbus/dbus-errors.h:
11273         * dbus/dbus-errors.c: Fix copyright for Anders.
11274
11275 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11276
11277         * bus/Makefile.am:
11278         Add utils.[ch]
11279
11280         * bus/connection.c: (bus_connection_foreach):
11281         Fix a warning.
11282
11283         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11284         (unescape_string), (new_section), (parse_section_start),
11285         (parse_key_value), (report_error), (bus_desktop_file_load),
11286         (bus_desktop_file_get_string):
11287         * bus/desktop-file.h:
11288         Use DBusError for error reporting.
11289
11290         * bus/dispatch.c: (send_one_message),
11291         (bus_dispatch_message_handler):
11292         * bus/driver.c: (bus_driver_send_service_deleted),
11293         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11294         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11295         (bus_driver_send_welcome_message),
11296         (bus_driver_handle_list_services),
11297         (bus_driver_handle_acquire_service),
11298         (bus_driver_handle_service_exists):
11299         * bus/loop.c: (bus_loop_run):
11300         * bus/main.c:
11301         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11302
11303         * bus/utils.c: (bus_wait_for_memory):
11304         * bus/utils.h:
11305         New files with general utility functions.
11306
11307         * dbus/dbus-internals.h:
11308         Remove _DBUS_HANDLE_OOM.
11309
11310 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11311
11312         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11313         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11314         * dbus/dbus-errors.h:
11315         Add DBusError structure.
11316
11317 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11318
11319         * test/data/valid-messages/standard-acquire-service.message:
11320         * test/data/valid-messages/standard-hello.message:
11321         * test/data/valid-messages/standard-list-services.message:
11322         * test/data/valid-messages/standard-service-exists.message:
11323         Add some standard messages.
11324
11325 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11326
11327         * bus/driver.c: (bus_driver_send_welcome_message),
11328         (bus_driver_handle_list_services),
11329         (bus_driver_handle_acquire_service),
11330         (bus_driver_handle_service_exists), (bus_driver_handle_message):
11331         Update for API changes in libdbus.
11332
11333         * dbus/dbus-message.c: (dbus_message_new_reply):
11334         * dbus/dbus-message.h:
11335         Remove the name argument. The spec states that replies shouldn't
11336         have a name.
11337
11338 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11339
11340         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11341         (report_error), (bus_desktop_file_load), (lookup_section),
11342         (lookup_line), (bus_desktop_file_get_raw),
11343         (bus_desktop_file_get_string):
11344         * bus/desktop-file.h:
11345         Some fixes, and new functions for getting a key value from a section.
11346
11347 2003-02-13  Havoc Pennington  <hp@pobox.com>
11348
11349         * test/data/auth/fail-after-n-attempts.auth-script: new test
11350
11351         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11352         reject the client.
11353
11354 2003-02-13  Havoc Pennington  <hp@pobox.com>
11355
11356         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11357         dbus_credentials_match were backward
11358
11359         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11360         NO_CREDENTIALS and ROOT_CREDENTIALS
11361
11362         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11363         into here. Never process more commands after we've reached an
11364         end state; store further data as unused bytes.
11365
11366         * test/data/auth/*: add more auth tests
11367
11368         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11369         command to match exact string and EXPECT_UNUSED to match unused
11370         bytes
11371
11372         * test/Makefile.am (dist-hook): fix to dist all the test stuff
11373
11374 2003-02-12  Havoc Pennington  <hp@pobox.com>
11375
11376         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11377         \r off of popped lines
11378
11379         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11380         scripts
11381
11382         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11383         SEND, append \r\n
11384
11385 2003-02-12  Havoc Pennington  <hp@pobox.com>
11386
11387         * dbus/Makefile.am: remove break-loader from the build, since it
11388         moved.
11389
11390         * configure.in: add --enable-gcov to turn on coverage profiling
11391         flags and disable optimization
11392
11393 2003-02-10  Havoc Pennington  <hp@pobox.com>
11394
11395         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11396         initial cut at test framework for DBusAuth from laptop.
11397         Doesn't quite work yet but it compiles and I need to get
11398         it off the 266mhz laptop. ;-)
11399
11400         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11401         fix a memleak in error case
11402
11403 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
11404
11405         * bus/Makefile.am:
11406         * bus/desktop-file.c:
11407         * bus/desktop-file.h:
11408         Add a desktop file parser.
11409
11410 2003-02-11  Zack Rusin  <zack@kde.org>
11411
11412         * qt/message.[h|cpp]: sample implementation
11413         of the KDE wrapper for DBusMessage
11414
11415 2003-02-09  Zack Rusin  <zack@kde.org>
11416
11417         * test/bus-test.c: make_it_compile
11418         * doc/dbus-specification.sgml: minimal semantic fix
11419
11420 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11421
11422         Release 0.3
11423
11424         * NEWS: Update
11425
11426 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
11427
11428         * dbus/Makefile.am:
11429         * dbus/dbus-break-loader.c:
11430         * test/Makefile.am:
11431         * test/break-loader.c:
11432         Move dbus-break-loader to test/ and rename it to break-loader.
11433
11434 2003-02-02  Havoc Pennington  <hp@pobox.com>
11435
11436         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11437         for code to manage cookies in your home directory
11438
11439         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11440
11441         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11442         to authenticate, then disconnect the client.
11443
11444 2003-02-03  Alexander Larsson  <alexl@redhat.com>
11445
11446         * dbus/dbus-message.c (dbus_message_append_fields):
11447         Correct docs.
11448
11449 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11450
11451         * doc/dbus-specification.sgml:
11452         Update address format section.
11453
11454 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11455
11456         * test/Makefile.am:
11457         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11458         (message_handler), (new_connection_callback), (loop_quit),
11459         (loop_run), (main):
11460         Add bus test.
11461
11462 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11463
11464         * bus/driver.c: (bus_driver_handle_service_exists):
11465         Simplify the code a bit.
11466
11467         * dbus/dbus-bus.c: (dbus_bus_service_exists):
11468         Fix a silly.
11469
11470 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11471
11472         * bus/Makefile.am:
11473         Add libdbus-daemon.la and link to it.
11474
11475 2003-02-01  James Willcox  <jwillcox@gnome.org>
11476
11477         * bus/driver.c: (bus_driver_handle_own_service):
11478         Actually include the service reply code in the message.
11479
11480 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11481
11482         * bus/driver.c: (bus_driver_handle_service_exists):
11483         Don't unref the incoming message.
11484
11485 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11486
11487         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11488
11489 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
11490
11491         * dbus/dbus-server.c: (dbus_server_listen):
11492         * dbus/dbus-transport.c: (_dbus_transport_open):
11493         ifdef out the calls to the debug transport and server.
11494
11495 2003-02-02  Alexander Larsson  <alexl@redhat.com>
11496
11497         * dbus/dbus-watch.c (dbus_watch_get_flags):
11498         Add note in the docs that ERROR or HANGUP won't be returned
11499         and are assumed always on.
11500
11501         * glib/dbus-gmain.c (add_watch):
11502         Always add IO_ERR | IO_HUP
11503
11504         * dbus/dbus-message.h:
11505         Add semicolon after dbus_message_iter_get_string_array().
11506         Makes qt code build again
11507
11508 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
11509
11510         * bus/driver.c: (create_unique_client_name),
11511         (bus_driver_handle_hello):
11512         Don't take a name, just use a numeric id to identify
11513         each client.
11514
11515         * dbus/Makefile.am:
11516         * dbus/dbus-bus.c: (dbus_bus_register_client),
11517         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11518         * dbus/dbus-bus.h:
11519         Add new convenience functions for communicating with the bus.
11520
11521         * dbus/dbus-message.h:
11522
11523         * dbus/dbus-protocol.h:
11524         Fix a typo.
11525
11526 2003-02-01  Alexander Larsson  <alexl@redhat.com>
11527
11528         * dbus/dbus-message.c (dbus_message_append_fields):
11529         Add some more doc comments.
11530
11531 2003-02-01  Havoc Pennington  <hp@pobox.com>
11532
11533         * dbus/dbus-break-loader.c (randomly_modify_length): change
11534         a 4-byte value in the message as if it were a length
11535
11536         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11537         execute bit on saved files
11538
11539 2003-02-01  Havoc Pennington  <hp@pobox.com>
11540
11541         * dbus/dbus-break-loader.c (main): new program to find messages
11542         that break the loader.
11543
11544         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11545         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11546
11547         * dbus/dbus-string.c (_dbus_string_set_byte): new
11548
11549 2003-01-31  Havoc Pennington  <hp@pobox.com>
11550
11551         * dbus/dbus-message.c: refactor the test code to be more general,
11552         in preparation for writing a "randomly permute test cases to
11553         try to break the loader" program.
11554
11555 2003-01-31  Havoc Pennington  <hp@pobox.com>
11556
11557         * doc/dbus-specification.sgml: work on the specification
11558
11559         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11560         the protocol version of the message.
11561
11562         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11563         no longer specifies that.
11564         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11565         1/2/3/4)
11566
11567         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11568         "break" for DBUS_TYPE_NIL, remove @todo
11569
11570 2003-01-31  Havoc Pennington  <hp@pobox.com>
11571
11572         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11573         just set_is_error/get_is_error as this is a commonly-used
11574         function, and write docs.
11575
11576 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
11577
11578         * dbus/dbus-address.c: (dbus_address_entry_free):
11579         Free key and value lists.
11580
11581         * dbus/dbus-internals.c: (_dbus_type_to_string):
11582         Add the types we didn't have.
11583
11584         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11585         (_dbus_marshal_validate_arg):
11586         Add NIL types.
11587
11588         * dbus/dbus-message.c: (dbus_message_set_sender):
11589         Remove todo about being able to set sender to NULL.
11590
11591         (dbus_message_set_is_error_reply),
11592         (dbus_message_get_is_error_reply):
11593         * dbus/dbus-message.h:
11594         New functions.
11595
11596         * dbus/dbus-protocol.h:
11597         Add error reply flag.
11598
11599         * test/data/valid-messages/opposite-endian.message:
11600         Add NIL type to test.
11601
11602 2003-01-31  Havoc Pennington  <hp@pobox.com>
11603
11604         * doc/dbus-specification.sgml: fully specify the header.  Add
11605         flags and major protocol version, and change header/body len to
11606         unsigned.
11607
11608         * dbus/dbus-message-builder.c (append_saved_length): append length
11609         as uint32
11610
11611         * dbus/dbus-message.c (dbus_message_create_header): change header
11612         length and body length to unsigned. Add the new fields from the
11613         spec
11614         (_dbus_message_loader_return_buffer): unsigned header/body len
11615
11616 2003-01-30  Havoc Pennington  <hp@pobox.com>
11617
11618         * dbus/dbus-auth.c: rework to use only REJECTED, no
11619         MECHANISMS
11620
11621         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11622         use REJECTED, suggested by Mark McLoughlin
11623
11624 2003-01-30  Havoc Pennington  <hp@pobox.com>
11625
11626         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11627         a better way to report errors here. e.g.  "unix address lacks
11628         path" or something. also "no such file" when the path doesn't
11629         exist, etc.
11630
11631         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11632         leaking list nodes
11633         (dbus_parse_address): add @todo about documenting address format,
11634         and allowing , and ; to be escaped
11635
11636 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
11637
11638         * dbus/Makefile.am:
11639         Add dbus-address.[ch]
11640
11641         * dbus/dbus-address.c: (dbus_address_entry_free),
11642         (dbus_address_entries_free), (create_entry),
11643         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11644         (dbus_parse_address), (_dbus_address_test):
11645         * dbus/dbus-address.h:
11646         New files for dealing with address parsing.
11647
11648         * dbus/dbus-connection.c:
11649         Document timeout functions.
11650
11651         * dbus/dbus-message.c:
11652         Document dbus_message_new_from_message.
11653
11654         * dbus/dbus-server-debug.c:
11655         Document.
11656
11657         * dbus/dbus-server.c: (dbus_server_listen):
11658         Parse address and use correct server implementation.
11659
11660         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11661         * dbus/dbus-string.h:
11662         New function with test.
11663
11664         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11665         * dbus/dbus-test.h:
11666         Add address tests.
11667
11668         * dbus/dbus-transport-debug.c:
11669         Document.
11670
11671         * dbus/dbus-transport.c: (_dbus_transport_open):
11672         Parse address and use correct transport implementation.
11673
11674 2003-01-30  Havoc Pennington  <hp@pobox.com>
11675
11676         * dbus/dbus-message.c: use message->byte_order instead of
11677         DBUS_COMPILER_BYTE_ORDER throughout.
11678         (dbus_message_create_header): pad header to align the
11679         start of the body of the message to 8-byte boundary
11680
11681         * dbus/dbus-marshal.h: make all the demarshalers take const
11682         DBusString arguments.
11683
11684         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11685         validate message args here, so we don't have to do slow validation
11686         later, and so we catch bad messages as they are incoming. Also add
11687         better checks on header_len and body_len. Also fill in
11688         message->byte_order
11689
11690         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11691         implemented properly)
11692         (_dbus_string_validate_nul): new function to check all-nul
11693
11694         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11695         get_arg_end_pos and remove all validation
11696         (_dbus_marshal_validate_arg): actually do validation here.
11697
11698 2003-01-29  Havoc Pennington  <hp@pobox.com>
11699
11700         * dbus/dbus-message.c (check_message_handling): fix assertion
11701         failure on set_client_serial
11702
11703 2003-01-28  Havoc Pennington  <hp@pobox.com>
11704
11705         * dbus/dbus-server-debug.c: Add doc section comments
11706
11707         * dbus/dbus-transport-debug.c: add doc section comments
11708
11709 2003-01-28  Havoc Pennington  <hp@redhat.com>
11710
11711         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11712         the reverse order from how I had it
11713         (_dbus_string_base64_encode): reverse encoding order. I was
11714         basically byteswapping everything during encoding.
11715
11716 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
11717
11718         * dbus/dbus-connection-internal.h:
11719         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11720         (_dbus_connection_remove_timeout):
11721         Add functions for adding and removing timeouts.
11722
11723         * dbus/dbus-message.c: (dbus_message_new_from_message):
11724         Add new function that takes a message and creates an exact
11725         copy of it, but with the refcount set to 1.
11726         (check_message_handling):
11727         Fix build error.
11728
11729         * dbus/dbus-server-protected.h:
11730         * dbus/dbus-server.c: (_dbus_server_init_base),
11731         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11732         (dbus_server_set_timeout_functions):
11733         (_dbus_server_remove_timeout):
11734         New functions so that a server can add and remove timeouts.
11735
11736         (dbus_server_listen):
11737         Add commented out call to dbus_server_debug_new.
11738
11739         * dbus/dbus-timeout.c: (_dbus_timeout_new):
11740         Actually set the handler, doh.
11741
11742         * dbus/dbus-transport.c: (_dbus_transport_open):
11743         Add commented out call to dbus_transport_debug_client_new.
11744
11745         * dbus/Makefile.am:
11746         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11747
11748 2003-01-28  Havoc Pennington  <hp@pobox.com>
11749
11750         * dbus/dbus-message.c (check_message_handling): function to check
11751         on the loaded message, iterates over it etc.
11752
11753 2003-01-28  Havoc Pennington  <hp@pobox.com>
11754
11755         * test/Makefile.am (dist-hook): fix make distdir
11756
11757         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11758
11759 2003-01-27  Havoc Pennington  <hp@pobox.com>
11760
11761         * dbus/dbus-mempool.c (time_for_size): replace printf with
11762         _dbus_verbose
11763
11764         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11765         empty lines; fix the SAVE_LENGTH stuff to be
11766         START_LENGTH/END_LENGTH so it actually works; couple other
11767         bugfixes
11768
11769         * test/Makefile.am (dist-hook): add dist-hook for .message files
11770
11771         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11772         can be constant or locked.
11773         (_dbus_string_free): allow freeing a const string as
11774         documented/intended
11775
11776         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11777
11778         * dbus/dbus-test-main.c (main): take an argument which is the
11779         directory containing test data
11780
11781         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11782         argument to this and load all the messages in test/data/
11783         checking that they can be loaded or not loaded as appropriate.
11784
11785 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
11786
11787         * bus/dispatch.c: (bus_dispatch_message_handler):
11788         Dispatch messages sent to services.
11789
11790         * bus/driver.c: (bus_driver_send_service_deleted),
11791         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11792         (bus_driver_send_service_acquired):
11793         Add helper functions for sending service related messages.
11794
11795         (bus_driver_send_welcome_message):
11796         Send HELLO_REPLY instead of WELCOME.
11797
11798         (bus_driver_handle_list_services):
11799         Send LIST_SERVICES_REPLY instead of SERVICES.
11800
11801         (bus_driver_handle_own_service),
11802         (bus_driver_handle_service_exists):
11803         New message handlers.
11804
11805         (bus_driver_handle_message):
11806         Invoke new message handlers.
11807
11808         (bus_driver_remove_connection):
11809         Don't remove any services here since that's done automatically
11810         by bus_service_remove_owner now.
11811
11812         * bus/driver.h:
11813         New function signatures.
11814
11815         * bus/services.c: (bus_service_add_owner):
11816         Send ServiceAcquired message if we're the only primary owner.
11817
11818         (bus_service_remove_owner):
11819         Send ServiceAcquired/ServiceLost messages.
11820
11821         (bus_service_set_prohibit_replacement),
11822         (bus_service_get_prohibit_replacement):
11823         Functions for setting prohibit replacement.
11824
11825         (bus_service_has_owner):
11826         New function that checks if a connection is in the owner queue of
11827         a certain service.
11828
11829         * bus/services.h:
11830         Add new function signatures.
11831
11832         * dbus/dbus-list.c: (_dbus_list_test):
11833         Add tests for _dbus_list_remove_last and traversing the list backwards.
11834
11835         * dbus/dbus-list.h:
11836         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11837         go any further, so return NULL then.
11838
11839         * dbus/dbus-protocol.h:
11840         Add new messages, service flags and service replies.
11841
11842 2003-01-26  Havoc Pennington  <hp@pobox.com>
11843
11844         * dbus/dbus-message-builder.c: implement, completely untested.
11845
11846         * test/data/*: add data to be used in testing.
11847         ".message" files are our simple loadable text format.
11848         ".message-raw" will be binary dumps of messages.
11849
11850         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11851
11852 2003-01-26  Havoc Pennington  <hp@pobox.com>
11853
11854         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11855
11856         * dbus/dbus-errors.c (dbus_result_to_string): add
11857         file errors
11858
11859         * dbus/dbus-message-builder.c: new file, will contain code to load
11860         up messages from files. Not implemented yet.
11861
11862 2003-01-26  Havoc Pennington  <hp@pobox.com>
11863
11864         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11865         the sender by setting to NULL
11866
11867 2003-01-26  Havoc Pennington  <hp@pobox.com>
11868
11869         The unit tests pass, but otherwise untested.  If it breaks, the
11870         tests should have been better. ;-)
11871
11872         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
11873         the connection.
11874
11875         * dbus/dbus-message.c: redo everything so we maintain
11876         message->header as the only copy of the various fields.
11877         This avoids the possibility of out-of-memory in some cases,
11878         for example dbus_message_lock() can't run out of memory anymore,
11879         and avoids extra copying. Figured I may as well go ahead and do
11880         this since it was busted for dbus_message_lock to not return
11881         failure on OOM, and dbus_message_write_header was totally
11882         unchecked for OOM. Also fixed some random other bugs.
11883
11884         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
11885         that strings are nul-terminated. Also, end_pos can be equal
11886         to string length just not greater than, I think.
11887         (_dbus_marshal_set_int32): new function
11888         (_dbus_marshal_set_uint32): new function
11889         (_dbus_marshal_set_string): new function
11890
11891         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
11892         a warning, init timeout_list to NULL
11893         (dbus_connection_send_message): don't use uninitialized variable
11894         "serial"
11895
11896         * dbus/dbus-string.c (_dbus_string_replace_len): new function
11897
11898 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11899
11900         * bus/driver.c: (bus_driver_handle_hello),
11901         (bus_driver_send_welcome_message):
11902         Plug leaks
11903
11904 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
11905
11906         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
11907         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11908         (dbus_connection_unref):
11909         * dbus/dbus-marshal.c: (_dbus_marshal_test):
11910         * dbus/dbus-message.c: (dbus_message_unref),
11911         Plug memory leaks.
11912
11913         (dbus_message_get_fields):
11914         Remove debugging printout.
11915
11916         (_dbus_message_loader_return_buffer):
11917         Don't store the header string.
11918
11919         (_dbus_message_test):
11920         Plug leaks.
11921
11922 2003-01-26  Richard Hult  <rhult@codefactory.se>
11923
11924         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
11925         the file descriptor list, since it can change under us.
11926
11927 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11928
11929         * glib/dbus-gmain.c: (dbus_connection_prepare),
11930         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
11931         (remove_watch), (dbus_connection_hookup_with_g_main):
11932         Rewrite the glib handling to use its own GSource instead of a
11933         GIOChannel so we can catch messages put in the queue while waiting
11934         for a reply.
11935
11936 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11937
11938         * bus/Makefile.am:
11939         * bus/connection.c: (connection_disconnect_handler),
11940         (connection_watch_callback), (bus_connection_setup):
11941         * bus/dispatch.c: (send_one_message),
11942         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
11943         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
11944         * bus/dispatch.h:
11945         * bus/driver.c: (bus_driver_send_service_deleted),
11946         (bus_driver_send_service_created), (bus_driver_handle_hello),
11947         (bus_driver_send_welcome_message),
11948         (bus_driver_handle_list_services), (bus_driver_remove_connection),
11949         (bus_driver_handle_message):
11950         * bus/driver.h:
11951         Refactor code, put the message dispatching in its own file. Use
11952         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
11953         is disconnected.
11954
11955 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11956
11957         * dbus/dbus-internals.h:
11958         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
11959
11960         * dbus/dbus-message.c: (dbus_message_get_sender):
11961         * dbus/dbus-message.h:
11962         Implement dbus_message_get_sender.
11963
11964         * dbus/dbus-protocol.h:
11965         Add message and service defines.
11966
11967 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11968
11969         * dbus/dbus-connection.c: (dbus_connection_send_message):
11970         * dbus/dbus-message-internal.h:
11971         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
11972         (dbus_message_write_header):
11973         Remove _dbus_messag_unlock and don't set the client serial on a
11974         message if one already exists.
11975
11976 2003-01-24  Havoc Pennington  <hp@pobox.com>
11977
11978         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
11979         list_pool
11980
11981         * bus/driver.c (bus_driver_handle_list_services): fix a leak
11982         on OOM
11983
11984 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11985
11986         * dbus/dbus-list.c: (alloc_link), (free_link):
11987         Use a memory pool for the links.
11988
11989 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
11990
11991         * bus/connection.c: (bus_connection_foreach):
11992         * bus/connection.h:
11993         Add new bus_connection_foreach function.
11994
11995         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
11996         Add function that broadcasts a message to all clients.
11997
11998         (bus_driver_send_service_created), (bus_driver_handle_hello),
11999         (bus_driver_send_welcome_message),
12000         (bus_driver_handle_list_services), (bus_driver_message_handler):
12001         Implement functions that take care of listing services, and notifying
12002         clients when new services are created.
12003
12004         * bus/services.c: (bus_services_list):
12005         * bus/services.h:
12006         Add new function that returns an array of strings with the currently
12007         registered services.
12008
12009         * glib/dbus-glib.h:
12010         * glib/dbus-gmain.c:
12011         Update copyright year.
12012
12013 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12014
12015         * dbus/dbus-connection.c: (dbus_connection_send_message):
12016         Unlock the message in case it was sent earlier.
12017
12018         (dbus_connection_send_message_with_reply_and_block):
12019         Remove the reply message from the list.
12020
12021         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12022         Set array_len and new_pos correctly.
12023
12024         (_dbus_marshal_test):
12025         Remove debug output.
12026
12027         * dbus/dbus-message-internal.h:
12028         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12029         New function that returns the reply serial.
12030
12031         (_dbus_message_unlock):
12032         New function that unlocks a message and resets its header.
12033
12034         (dbus_message_append_string_array),
12035         (dbus_message_get_fields_valist),
12036         (dbus_message_iter_get_field_type),
12037         (dbus_message_iter_get_string_array),
12038         (dbus_message_get_fields),
12039         (dbus_message_append_fields_valist):
12040         Handle string arrays.
12041
12042         (dbus_message_set_sender):
12043         Make this function public since the bus daemon needs it.
12044
12045         (decode_header_data):
12046         Set the reply serial to -1 initially.
12047
12048         * dbus/dbus-message.h:
12049         Add dbus_message_set_sender.
12050
12051 2003-01-24  Havoc Pennington  <hp@pobox.com>
12052
12053         * doc/dbus-specification.sgml: add some stuff
12054
12055 2003-01-22  Havoc Pennington  <hp@pobox.com>
12056
12057         * doc/dbus-specification.sgml: Start to document the protocol.
12058
12059 2003-01-22  Havoc Pennington  <hp@pobox.com>
12060
12061         * dbus/dbus-connection.c
12062         (dbus_connection_send_message_with_reply_and_block): add some @todo
12063
12064         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12065
12066 2003-01-21  Havoc Pennington  <hp@pobox.com>
12067
12068         (patch untested because can't compile)
12069
12070         * bus/driver.c (create_unique_client_name): make this function
12071         never recycle client names. Also, caller should initialize
12072         the DBusString.
12073
12074         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12075
12076 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12077
12078         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12079         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12080         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12081         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12082         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12083         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12084         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12085         * dbus/dbus-marshal.h:
12086         * dbus/dbus-protocol.h:
12087         Add support for marshalling and demarshalling integer, double
12088         and string arrays.
12089
12090 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12091
12092         * bus/Makefile.am:
12093         Add driver.[ch]
12094
12095         * bus/connection.c: (connection_disconnect_handler):
12096         Remove the connection from the bus driver's list.
12097
12098         (connection_watch_callback): Dispatch messages.
12099
12100         (free_connection_data): Free connection name.
12101
12102         (bus_connection_setup): Add connection to the bus driver's list.
12103         (bus_connection_remove_owned_service):
12104         (bus_connection_set_name), (bus_connection_get_name):
12105         Add functions for setting and getting the connection's name.
12106
12107         * bus/connection.h:
12108         Add function headers.
12109
12110         * bus/driver.c: (create_unique_client_name),
12111         (bus_driver_handle_hello_message),
12112         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12113         (bus_driver_add_connection), (bus_driver_remove_connection):
12114         * bus/driver.h:
12115         * bus/main.c:
12116         * bus/services.c: (bus_service_free):
12117         * bus/services.h:
12118         New file that handles communication and registreation with the bus
12119         itself.
12120
12121 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12122
12123         * dbus/dbus-connection.c: (dbus_connection_send_message):
12124         Add a new client_serial parameter.
12125
12126         (dbus_connection_send_message_with_reply):
12127         Remove a @todo since we've implemented the blocking function.
12128
12129         (dbus_connection_send_message_with_reply_and_block):
12130         New function that sends a message and waits for a reply and
12131         then returns the reply.
12132
12133         * dbus/dbus-connection.h:
12134         Add new functions.
12135
12136         * dbus/dbus-errors.c: (dbus_result_to_string):
12137         * dbus/dbus-errors.h:
12138         Add new DBUS_RESULT.
12139
12140         * dbus/dbus-message-internal.h:
12141         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12142         (_dbus_message_set_sender), (dbus_message_write_header),
12143         (dbus_message_new_reply), (decode_header_data),
12144         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12145         * dbus/dbus-message.h:
12146         Add new functions that set the reply serial and sender.
12147         Also marshal and demarshal them correctly and add test.
12148
12149         * dbus/dbus-protocol.h:
12150         Add new DBUS_MESSAGE_TYPE_SENDER.
12151
12152         * glib/dbus-glib.h:
12153         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12154         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12155         (dbus_connection_hookup_with_g_main):
12156         * glib/test-dbus-glib.c: (main):
12157         Rewrite to use GIOChannel and remove the GSource crack.
12158
12159         * test/echo-client.c: (main):
12160         * test/watch.c: (check_messages):
12161         Update for changed APIs
12162
12163 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12164
12165         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12166
12167         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12168         Create a DBusTimeoutList.
12169         (dbus_connection_set_timeout_functions): Add new function to
12170         set timeout callbacks
12171
12172         * dbus/dbus-connection.h: Add public DBusTimeout API.
12173
12174         * dbus/dbus-message.c: (dbus_message_get_service):
12175         * dbus/dbus-message.h:  New function.
12176
12177         * dbus/dbus-server.c: Fix small doc typo.
12178
12179         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12180
12181 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12182
12183         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12184         of the string, just as long as specified.
12185
12186 2003-01-19  Havoc Pennington  <hp@pobox.com>
12187
12188         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12189         new function
12190
12191         * dbus/dbus-server.c (dbus_server_set_max_connections)
12192         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12193         keep track of current number of connections, and add API for
12194         setting a max (but haven't implemented enforcing the max yet)
12195
12196 2003-01-18  Havoc Pennington  <hp@pobox.com>
12197
12198         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12199         reading/writing if read_watch != NULL or write_watch != NULL.
12200
12201         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12202         the message loader code to actually load message->header and
12203         message->body into the newly-created message.
12204
12205         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12206         in OOM case
12207
12208         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12209         (dbus_connection_get_max_message_size)
12210         (dbus_connection_set_max_live_messages_size)
12211         (dbus_connection_get_max_live_messages_size): implement some
12212         resource limitation functions
12213
12214         * dbus/dbus-resources.c: new file implementing some of the
12215         resource limits stuff
12216
12217         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12218         missing docs, add @todo to handle OOM etc.
12219
12220         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12221         docs
12222
12223 2003-01-18  Havoc Pennington  <hp@pobox.com>
12224
12225         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12226         connection if it hasn't been already.
12227
12228         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12229         replace with DisconnectFunction.
12230
12231 2003-01-18  Havoc Pennington  <hp@pobox.com>
12232
12233         Building --disable-verbose-mode --disable-asserts --disable-tests
12234         cuts the library from 112K to 45K or so
12235
12236         * configure.in: check for varargs macro support,
12237         add --enable-verbose-mode, --enable-asserts.
12238
12239         * dbus/dbus-internals.h (_dbus_assert): support
12240         DBUS_DISABLE_ASSERT
12241         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12242
12243 2003-01-18  Havoc Pennington  <hp@pobox.com>
12244
12245         * dbus/dbus-test.c: include config.h so that tests actually run
12246
12247         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12248         so the failure mode when that assumption fails will be plenty
12249         obvious.
12250
12251 2003-01-18  Havoc Pennington  <hp@pobox.com>
12252
12253         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12254
12255         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12256         the distribution
12257
12258         * test/Makefile.am: don't use special variable "TESTS" for echo-*
12259         since we don't want to use those in make check
12260
12261 2003-01-15  Havoc Pennington  <hp@redhat.com>
12262
12263         Release 0.2
12264
12265         * NEWS: update
12266
12267 2003-01-15  Havoc Pennington  <hp@redhat.com>
12268
12269         * test/Makefile.am: fix so that test source code ends up in the
12270         distribution on make distcheck
12271
12272 2003-01-15  Havoc Pennington  <hp@redhat.com>
12273
12274         Release 0.1.
12275
12276         * NEWS: update
12277
12278 2003-01-15  Havoc Pennington  <hp@redhat.com>
12279
12280         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12281         fix build when --disable-tests
12282
12283         * Makefile.am (EXTRA_DIST): put HACKING in here
12284
12285         * HACKING: document procedure for making a tarball release.
12286
12287 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
12288
12289         * bus/connection.c: (connection_error_handler),
12290         (bus_connection_setup):
12291         * bus/main.c: (main):
12292         Make sure that the DBusConnectionData struct is NULLed
12293         out to prevent a segfault.
12294
12295         * dbus/dbus-errors.c: (dbus_result_to_string):
12296         * dbus/dbus-errors.h:
12297         * dbus/dbus-message.c: (dbus_message_get_fields),
12298         (dbus_message_get_fields_valist), (_dbus_message_test):
12299         * dbus/dbus-message.h:
12300         Make dbus_message_get_fields return a result code so we can
12301         track invalid fields as well as oom.
12302
12303 2003-01-11  Havoc Pennington  <hp@pobox.com>
12304
12305         * configure.in: change --enable-test/--enable-ansi action-if-given
12306         to enable_foo=$enableval instead of enable_foo=yes
12307
12308 2003-01-08  Havoc Pennington  <hp@pobox.com>
12309
12310         * dbus/dbus-string.c (_dbus_string_align_length): new function
12311
12312         * dbus/dbus-test-main.c: move main() for test app here
12313         * dbus/dbus-test.c
12314         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12315         symbol to run tests, because dbus-test isn't in the main
12316         library
12317
12318         Code review nitpicks.
12319
12320         * dbus/dbus-message.c (dbus_message_write_header): add newlines
12321         for people with narrow emacs ;-). Assert client_serial was filled
12322         in. Assert message->name != NULL.
12323         (dbus_message_append_fields): have "first_field_type" arg separate
12324         from va list, needed for C++ binding that also uses varargs IIRC
12325         and helps with type safety
12326         (dbus_message_new): add @todo about using DBusString to store
12327         service/name internally
12328         (dbus_message_new): don't leak ->service and ->name on OOM later
12329         in the function
12330         (dbus_message_unref): free the service name
12331         (dbus_message_get_fields): same change to varargs
12332         i.e. first_field_type
12333         (_dbus_message_loader_return_buffer): assert that the message data
12334         is aligned (if not it's a bug in our code). Put in verbose griping
12335         about why we set corrupted = TRUE.
12336         (decode_header_data): add FIXME that char* is evil.  Was going to
12337         add FIXME about evil locale-specific string.h strncmp, but just
12338         switched to wacky string-as-uint32 optimization. Move check for
12339         "no room for field name" above get_const_data_len() to avoid
12340         assertion failure in get_const_data_len if we have trailing 2
12341         bytes or the like. Check for service and name fields being
12342         provided twice. Don't leak service/name on error. Require field
12343         names to be aligned to 4 bytes.
12344
12345         * dbus/dbus-marshal.c: move byte swap stuff to header
12346         (_dbus_pack_int32): uscore-prefix
12347         (_dbus_unpack_int32): uscore-prefix
12348         (_dbus_unpack_uint32): export
12349         (_dbus_demarshal_string): add @todo complaining about use of
12350         memcpy()
12351         (_dbus_marshal_get_field_end_pos): add @todo about bad error
12352         handling allowing corrupt data to go unchecked
12353
12354 2003-01-08  Havoc Pennington  <hp@redhat.com>
12355
12356         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12357         to the select() as needed for authentication. (should be using
12358         _dbus_poll() not select, but for another day)
12359
12360         * dbus/dbus.h: include dbus/dbus-protocol.h
12361
12362 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12363
12364         * dbus/Makefile.am (dbusinclude_HEADERS): Install
12365         dbus-connection.h
12366
12367 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
12368
12369         * dbus/dbus-internals.c: (_dbus_type_to_string):
12370         New function that returns a string describing a type.
12371
12372         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12373         * dbus/dbus-marshal.h:
12374         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12375         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12376         (dbus_message_iter_get_byte_array):
12377         * dbus/dbus-message.h:
12378         Add new convenience functions for appending and getting message fields.
12379         Also add demarshalling routines for byte arrays.
12380
12381 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12382
12383         * dbus/dbus-connection-internal.h:
12384         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12385         (_dbus_connection_get_next_client_serial),
12386         (dbus_connection_send_message):
12387         * dbus/dbus-internals.h:
12388         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12389         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12390         (_dbus_marshal_uint32), (_dbus_demarshal_double),
12391         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12392         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12393         (_dbus_verbose_bytes), (_dbus_marshal_test):
12394         * dbus/dbus-marshal.h:
12395         * dbus/dbus-message-internal.h:
12396         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12397         (dbus_message_write_header), (_dbus_message_lock),
12398         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12399         (dbus_message_get_name), (dbus_message_append_int32),
12400         (dbus_message_append_uint32), (dbus_message_append_double),
12401         (dbus_message_append_string), (dbus_message_append_byte_array),
12402         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12403         (dbus_message_iter_unref), (dbus_message_iter_has_next),
12404         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12405         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12406         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12407         (decode_header_data), (_dbus_message_loader_return_buffer),
12408         (message_iter_test), (_dbus_message_test):
12409         * dbus/dbus-message.h:
12410         * dbus/dbus-protocol.h:
12411         * dbus/dbus-test.c: (main):
12412         * dbus/dbus-test.h:
12413         * glib/test-dbus-glib.c: (message_handler), (main):
12414         * test/echo-client.c: (main):
12415         * test/watch.c: (check_messages):
12416         Make messages sendable and receivable for real.
12417
12418 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12419
12420         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12421         (_dbus_marshal_string), (_dbus_marshal_byte_array):
12422         * dbus/dbus-message.c: (dbus_message_append_int32),
12423         (dbus_message_append_uint32), (dbus_message_append_double),
12424         (dbus_message_append_string), (dbus_message_append_byte_array):
12425         Handle OOM restoration.
12426
12427 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
12428
12429         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12430         (_dbus_demarshal_string), (_dbus_marshal_test):
12431         * dbus/dbus-marshal.h:
12432         * dbus/dbus-message.c: (dbus_message_get_name),
12433         Document these functions.
12434
12435         (dbus_message_append_int32), (dbus_message_append_uint32),
12436         (dbus_message_append_double), (dbus_message_append_string),
12437         (dbus_message_append_byte_array):
12438         * dbus/dbus-message.h:
12439         Add functions for adding message fields of different types.
12440
12441         * dbus/dbus-protocol.h:
12442         Add the different types.
12443
12444 2003-01-05  Havoc Pennington  <hp@pobox.com>
12445
12446         * bus/connection.c: implement routines for handling connections,
12447         first thing is keeping a list of owned services on each connection
12448         and setting up watches etc.
12449
12450         * bus/services.c: implement a mapping from service names to lists
12451         of connections
12452
12453         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12454
12455         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12456         to use static mutexes for global data
12457
12458         * dbus/dbus-connection.c (dbus_connection_set_data): add new
12459         collection of functions to set/get application-specific data
12460         on the DBusConnection.
12461
12462 2003-01-04  Havoc Pennington  <hp@pobox.com>
12463
12464         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12465         (_dbus_poll): new function
12466
12467         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12468         copied from GLib
12469
12470         * bus/loop.c: initial code for the daemon main loop
12471
12472 2003-01-04  Havoc Pennington  <hp@pobox.com>
12473
12474         * test/watch.c (error_handler): make it safe if the error handler
12475         is called multiple times (if we s/error handler/disconnect
12476         handler/ we should just guarantee it's called only once)
12477
12478         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12479         error handler on disconnect (it's quite possible we should
12480         just change the error handler to a "disconnect handler," I'm
12481         not sure we have any other meaningful errors)
12482
12483         * configure.in: check for getpwnam_r
12484
12485         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12486         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12487         mechanism as in SASL spec, using socket credentials
12488
12489         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12490         (_dbus_send_credentials_unix_socket): new function
12491
12492         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12493         dbus_accept()
12494         (_dbus_write): only check errno if <0 returned
12495         (_dbus_write_two): ditto
12496
12497 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
12498
12499         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12500         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12501         (_dbus_marshal_test):
12502         * dbus/dbus-marshal.h:
12503         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12504         to _dbus_marshal_utf8_string. Also fix some tests.
12505
12506 2002-12-28  Harri Porten  <porten@kde.org>
12507
12508         * configure.in: added check for C++ compiler and a very cheesy
12509         check for the Qt integration
12510
12511         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12512
12513         * qt/Makefile.am: added
12514
12515         * qt/.cvsignore: added
12516
12517         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12518         latter, added #ifdef QT_THREAD_SUPPORT guard.
12519
12520         * dbus/Makefile.am: added missing headers for make dist
12521
12522 2002-12-28  Kristian Rietveld  <kris@gtk.org>
12523
12524         * dbus/Makefile.am: fixup export-symbols-regex.
12525
12526 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12527
12528         * acinclude.m4: Add this file and put the
12529         PKG_CHECK_MODULE macro in it.
12530
12531 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
12532
12533         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12534         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12535         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12536         (_dbus_marshal_test):
12537         Make the demarshalling routines align the pos argument.
12538         Add string marshalling tests and fix the obvious bugs
12539         discovered.
12540
12541 2002-12-26  Havoc Pennington  <hp@pobox.com>
12542
12543         * dbus/dbus-auth.c: fixes fixes fixes
12544
12545         * dbus/dbus-transport-unix.c: wire up support for
12546         encoding/decoding data on the wire
12547
12548         * dbus/dbus-auth.c (_dbus_auth_encode_data)
12549         (_dbus_auth_decode_data): append to target string
12550         instead of nuking it.
12551
12552 2002-12-26  Havoc Pennington  <hp@pobox.com>
12553
12554         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12555         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12556         doh
12557
12558         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12559         avoid swap_bytes() overhead (ignoring possible assembly stuff for
12560         now). Main point is because I wanted unpack_uint32 to implement
12561         _dbus_verbose_bytes
12562         (_dbus_verbose_bytes): new function
12563
12564         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12565
12566         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12567         mechanism to handle a corrupt message stream
12568         (_dbus_message_loader_new): fix preallocation to only prealloc,
12569         not prelengthen
12570
12571         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12572         (_dbus_string_test): enhance tests for copy/move and fix the
12573         functions
12574
12575         * dbus/dbus-transport-unix.c: Hold references in more places to
12576         avoid reentrancy problems
12577
12578         * dbus/dbus-transport.c: ditto
12579
12580         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12581         leak reference count in no-message case
12582
12583         * test/watch.c (do_mainloop): handle adding/removing watches
12584         during iteration over the watches. Also, ref the connection/server
12585         stored on a watch, so we don't try to mangle a destroyed one.
12586
12587         * dbus/dbus-transport-unix.c (do_authentication): perform
12588         authentication
12589
12590         * dbus/dbus-auth.c (get_state): add a state
12591         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12592         (_dbus_auth_get_unused_bytes): append the unused bytes
12593         to the passed in string, rather than prepend
12594
12595         * dbus/dbus-transport.c (_dbus_transport_init_base): create
12596         the auth conversation DBusAuth
12597
12598         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12599         (_dbus_transport_new_for_domain_socket): when creating a
12600         transport, pass in whether it's a client-side or server-side
12601         transport so we know which DBusAuth to create
12602
12603 2002-12-03  Havoc Pennington  <hp@pobox.com>
12604
12605         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12606         _after_ finalizing the derived members
12607         (unix_connection_set): unref watch if we fail to add it
12608
12609         * dbus/dbus-connection.c (dbus_connection_unref): delete the
12610         transport first, so that the connection owned by the
12611         transport will be valid as the transport finalizes.
12612
12613         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12614         if necessary, and remove watches from the connection.
12615
12616         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12617
12618 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
12619
12620         * dbus/dbus-marshal.c: (_dbus_marshal_string),
12621         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12622         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12623         (_dbus_marshal_test):
12624         * dbus/dbus-marshal.h:
12625         Add string marshal functions and have the demarshal functions
12626         return the new position.
12627
12628 2002-12-25  Havoc Pennington  <hp@pobox.com>
12629
12630         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12631         it is a simple protocol that just maps directly to SASL.
12632
12633         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12634         initial implementation, not actually used yet.
12635
12636         * dbus/dbus-string.c (_dbus_string_find): new function
12637         (_dbus_string_equal): new function
12638         (_dbus_string_base64_encode): new function
12639         (_dbus_string_base64_decode): new function
12640
12641 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
12642
12643         * dbus/Makefile.am:
12644         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12645         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12646         (_dbus_demarshal_double), (_dbus_demarshal_int32),
12647         (_dbus_demarshal_uint32), (_dbus_marshal_test):
12648         * dbus/dbus-marshal.h:
12649         * dbus/dbus-protocol.h:
12650         * dbus/dbus-test.c: (main):
12651         * dbus/dbus-test.h:
12652         Add un-optimized marshalling/demarshalling routines.
12653
12654 2002-12-25  Harri Porten  <porten@kde.org>
12655
12656         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12657
12658 2002-12-24  Zack Rusin  <zack@kde.org>
12659
12660         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12661         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12662         main loop stuff
12663
12664 2002-12-24  Havoc Pennington  <hp@pobox.com>
12665
12666         * glib/dbus-gthread.c: fix include
12667
12668         * glib/dbus-glib.h: rename DBusMessageHandler for now.
12669         I think glib API needs to change, though, as you don't
12670         want to use DBusMessageFunction, you want to use the
12671         DBusMessageHandler object. Probably
12672         dbus_connection_open_with_g_main_loop()
12673         and dbus_connection_setup_g_main_loop() or something like that
12674         (but think of better names...) that just create a connection
12675         that has watch/timeout functions etc. already set up.
12676
12677         * dbus/dbus-connection.c
12678         (dbus_connection_send_message_with_reply): new function just to
12679         show how the message handler helps us deal with replies.
12680
12681         * dbus/dbus-list.c (_dbus_list_remove_last): new function
12682
12683         * dbus/dbus-string.c (_dbus_string_test): free a string that
12684         wasn't
12685
12686         * dbus/dbus-hash.c: use memory pools for the hash entries
12687         (rebuild_table): be more paranoid about overflow, and
12688         shrink table when we can
12689         (_dbus_hash_test): reduce number of sprintfs and write
12690         valid C89. Add tests for case where we grow and then
12691         shrink the hash table.
12692
12693         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12694
12695         * dbus/dbus-connection.c (dbus_connection_register_handler)
12696         (dbus_connection_unregister_handler): new functions
12697
12698         * dbus/dbus-message.c (dbus_message_get_name): new
12699
12700         * dbus/dbus-list.c: fix docs typo
12701
12702         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12703         an object representing a handler for messages.
12704
12705 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12706
12707         * glib/dbus-glib.h:
12708         * glib/dbus-gthread.c: (dbus_gthread_init):
12709         Don't use the gdbus prefix for public functions.
12710
12711 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
12712
12713         * Makefile.am:
12714         * configure.in:
12715         Add GLib checks and fixup .pc files
12716
12717         * glib/Makefile.am:
12718         * glib/dbus-glib.h:
12719         * glib/dbus-gmain.c: (gdbus_connection_prepare),
12720         (gdbus_connection_check), (gdbus_connection_dispatch),
12721         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12722         (dbus_connection_gsource_new):
12723         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12724         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12725         * glib/test-dbus-glib.c: (message_handler), (main):
12726         Add GLib support.
12727
12728 2002-12-15  Harri Porten  <porten@kde.org>
12729
12730         * autogen.sh: check for libtoolize before attempting to use it
12731
12732         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12733         struct.
12734
12735         * .cvsignore: ignore more stamp files
12736
12737         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12738
12739         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12740         without make install.
12741
12742 2002-12-15  Havoc Pennington  <hp@pobox.com>
12743
12744         * dbus/dbus-threads.c: add thread stubs that a higher library
12745         layer can fill in. e.g. the GLib wrapper might fill them in with
12746         GThread stuff. We still need to use this thread API to
12747         thread-safe-ize the library.
12748
12749 2002-12-12  Havoc Pennington  <hp@pobox.com>
12750
12751         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12752         below new interfaces and include fewer system headers.
12753
12754         * dbus/dbus-sysdeps.c (_dbus_read): new function
12755         (_dbus_write): new function
12756         (_dbus_write_two): new function
12757         (_dbus_connect_unix_socket): new function
12758         (_dbus_listen_unix_socket): new function
12759
12760         * dbus/dbus-message-internal.h: change interfaces to use
12761         DBusString
12762
12763 2002-12-11  Havoc Pennington  <hp@pobox.com>
12764
12765         * dbus/dbus-types.h: add dbus_unichar
12766
12767         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12768
12769         * dbus/dbus-connection.c (dbus_connection_send_message): return
12770         TRUE on success
12771
12772         * dbus/dbus-transport.c: include dbus-watch.h
12773
12774         * dbus/dbus-connection.c: include dbus-message-internal.h
12775
12776         * HACKING: add file with coding guidelines stuff.
12777
12778         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12779         handling here, for security purposes (as in vsftpd). Not actually
12780         using this class yet.
12781
12782         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12783         system/libc usage here, as in vsftpd, for ease of auditing (and
12784         should also simplify portability). Haven't actually moved all the
12785         system/libc usage into here yet.
12786
12787 2002-11-25  Havoc Pennington  <hp@pobox.com>
12788
12789         * dbus/dbus-internals.c (_dbus_verbose): fix to not
12790         always print the first verbose message.
12791
12792 2002-11-24  Havoc Pennington  <hp@pobox.com>
12793
12794         * test/echo-client.c, test/echo-server.c: cheesy test
12795         clients.
12796
12797         * configure.in (AC_CHECK_FUNCS): check for writev
12798
12799         * dbus/dbus-message.c (_dbus_message_get_network_data): new
12800         function
12801
12802         * dbus/dbus-list.c (_dbus_list_foreach): new function
12803
12804         * dbus/dbus-internals.c (_dbus_verbose): new function
12805
12806         * dbus/dbus-server.c, dbus/dbus-server.h: public object
12807         representing a server that listens for connections.
12808
12809         * dbus/.cvsignore: create
12810
12811         * dbus/dbus-errors.h, dbus/dbus-errors.c:
12812         public API for reporting errors
12813
12814         * dbus/dbus-connection.h, dbus/dbus-connection.c:
12815         public object representing a connection that
12816         sends/receives messages. (Same object used for
12817         both client and server.)
12818
12819         * dbus/dbus-transport.h, dbus/dbus-transport.c:
12820         Basic abstraction for different kinds of stream
12821         that we might read/write messages from.
12822
12823 2002-11-23  Havoc Pennington  <hp@pobox.com>
12824
12825         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12826         _DBUS_INT_MAX
12827
12828         * dbus/dbus-test.c (main): add list test, and include
12829         dbus-test.h as intended
12830
12831         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12832         (_dbus_hash_table_remove_int): return value indicates
12833         whether the entry existed to remove
12834
12835         * dbus/dbus-list.c: add linked list utility class,
12836         with docs and tests
12837
12838         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12839         array sometimes.
12840
12841 2002-11-23  Havoc Pennington  <hp@pobox.com>
12842
12843         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12844         DBUS_END_DECLS to nothing, that should fix this once and for all
12845
12846         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12847
12848         * dbus/dbus-message.c, dbus/dbus-hash.c:
12849         add some missing @brief
12850
12851 2002-11-23  Havoc Pennington  <hp@pobox.com>
12852
12853         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12854         to avoid confusing Doxygen
12855
12856         * dbus/dbus-hash.c: @} not }@
12857
12858         * dbus/dbus-message.c (struct DBusMessage): split out
12859         internals docs
12860
12861 2002-11-23  Havoc Pennington  <hp@pobox.com>
12862
12863         * configure.in: pile on more warning flags if using gcc
12864
12865         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12866         to document static functions
12867
12868         * configure.in: add summary to end of configure so it
12869         looks nice and attractive
12870
12871         * dbus/dbus-hash.c: finish implementation and write unit
12872         tests and docs
12873
12874         * configure.in: add --enable-tests to enable unit tests
12875
12876         * dbus/dbus-test.c: test program to run unit tests
12877         for all files in dbus/*, initially runs a test for
12878         dbus-hash.c
12879
12880         * dbus/dbus-internals.h: file to hold some internal utility stuff
12881
12882 2002-11-22  Havoc Pennington  <hp@redhat.com>
12883
12884         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
12885         "ported" away from Tcl
12886
12887         * dbus/dbus-types.h: header for types such as dbus_bool_t
12888
12889 2002-11-22  Havoc Pennington  <hp@redhat.com>
12890
12891         * dbus/dbus.h: fixups for doc warnings
12892
12893         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
12894         macros
12895         (QUIET): make it quiet so we can see warnings
12896
12897         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
12898
12899 2002-11-22  Havoc Pennington  <hp@redhat.com>
12900
12901         * Makefile.am: include "Doxyfile" target in all-local
12902
12903         * configure.in: generate the Doxyfile
12904
12905         * Doxyfile.in: move Doxyfile here, so we can use
12906         configure to generate a Doxyfile with the right
12907         version number etc.
12908
12909 2002-11-22  Havoc Pennington  <hp@redhat.com>
12910
12911         * dbus/dbus-message.c: move inline docs into .c file
12912
12913         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
12914         so all docs are under doc/
12915         (MAN_EXTENSION): generate man pages. Use extension
12916         ".3dbus" which matches ".3qt" on my system,
12917         I guess this is OK, I don't know really.
12918         (FILE_PATTERNS): look for .c files not .h, makes sense
12919         for plain C I think
12920
12921 2002-11-22  Havoc Pennington  <hp@pobox.com>
12922
12923         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
12924         because any app can be a server, and any app can be a client,
12925         the bus is a special kind of server.
12926
12927 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
12928
12929         * Doxyfile : adding. Still needs Makefile rules to be generated
12930         automatically (just run "doxygen" in the toplevel dir for now to
12931         generate docs)
12932
12933         * dbus/dbus-message.h : Adding sample docs (javadoc since
12934         resembles gtk-doc a little more)
12935
12936         * dbus/dbus.h : Adding sample docs
12937
12938 2002-11-21  Havoc Pennington  <hp@redhat.com>
12939
12940         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
12941         so we can allow ourselves to include files directly,
12942         instead of having to use dbus.h
12943
12944         * dbus/dbus.h: fill in
12945
12946         * dbus/dbus-message.h: sketch out a sample header file.
12947         Include griping if you include it directly instead of
12948         via dbus.h
12949
12950         * dbus/dbus-macros.h: new file with macros for extern "C",
12951         TRUE/FALSE, NULL, etc.
12952
12953         * doc/file-boilerplate.c: put include guards in here
12954
12955 2002-11-21  Havoc Pennington  <hp@redhat.com>
12956
12957         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
12958
12959         * COPYING: include the GPL as well, and license code
12960         under both AFL and GPL.
12961
12962 2002-11-21  Havoc Pennington  <hp@redhat.com>
12963
12964         * acconfig.h: get rid of this
12965
12966         * autogen.sh (run_configure): add --no-configure option
12967
12968         * configure.in: remove AC_ARG_PROGRAM to make
12969         autoconf complain less. add AC_PREREQ.
12970         add AC_DEFINE third arg.
12971
12972 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
12973
12974         * doc/Makefile.am:
12975         Fix references so we can distcheck.
12976
12977 2002-11-21  Havoc Pennington  <hp@redhat.com>
12978
12979         * Initial module creation
12980